IPv6连接B到A工作,A到B发生故障,B的SYN-ACK接收ICMP目标不可达

我正在testingIPv6。 A是具有原生IPv6的Cogent colo中的服务器,将其称为2001:db8:1111 :: 1。 B是位于ISP Comcast后面的Airport Extreme路由器的Mac mini; 路由器设置为使用anycast 6to4,B可以说是2002:c000:202 :: 2。

在B, ssh 2001:db8:1111::1工作得很好。

在A, ssh 2002:c000:202::2次。 (对于任何其他的TCP连接都是一样的)在B上运行tcpdump -nnvvvSs0 ,可以看到A的SYN包到达B,但是从B回到A的SYN-ACK包被告知“目的不可达,不可达” :

 12:16:42.266203 IP6 (hlim 51, next-header TCP (6) payload length: 40) 2001:db8:1111::1.43263 > 2002:c000:201::2.22: Flags [S], cksum 0x6c79 (correct), seq 102729844, win 5760, options [mss 1440,sackOK,TS val 749393277 ecr 0,nop,wscale 7], length 0 12:16:42.266330 IP6 (flowlabel 0xb4ac1, hlim 64, next-header TCP (6) payload length: 44) 2002:c000:202::2.22 > 2001:db8:1111::1.43263: Flags [S.], cksum 0xa0e9 (correct), seq 122191294, ack 102729845, win 65535, options [mss 1440,nop,wscale 3,nop,nop,TS val 1053035827 ecr 749393277,sackOK,eol], length 0 12:16:42.403695 IP6 (hlim 51, next-header ICMPv6 (58) payload length: 92) 2001:db8:1111::1 > 2002:c000:202::2: [icmp6 sum ok] ICMP6, destination unreachable, length 92, unreachable prohibited 2001:db8:1111::1 

B可以发送一个SYN给A并build立一个连接,但是B的SYN-ACK被拒绝。 我应该在哪里看看为什么发生这种情况?

编辑:这是从服务器A /etc/sysconfig/ip6tables

 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d ff02::fb -j ACCEPT #-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT #-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT #-A RH-Firewall-1-INPUT -p udp -m udp --dport 32768:61000 -j ACCEPT #-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 32768:61000 ! --syn -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -m udp -p udp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited -A RH-Firewall-1-INPUT -j DROP COMMIT 

这听起来像你缺less一个ip6tables规则,如下所示:

 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 

更改防火墙A固定它。 我们补充说

 -A RH-Firewall-1-INPUT -s 2002:c000:202::2 -j ACCEPT 

之前

 -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited 

B – > A已经工作了,这对我来说还是有点神秘的。