两个虚拟机,IP分别是10.10.61.110和10.10.61.109,通过Linux网桥br连接。在110上面重放报文,只有第一个报文能够到达109,其它报文过不去,但是在网桥上能看到。
这里两个抓包文件是同时抓的,tap.pcap抓的是109的网卡,br.pcap抓的是网桥。第一个报文的内容,完全相同。。。
[root@controller ~]# tcpdump -r tap.pcap -nn
reading from file tap.pcap, link-type EN10MB (Ethernet)
20:41:21.854789 IP 10.10.61.110.50780 > 10.10.61.109.9999: Flags [S], seq 2992711880, win 26880, options [mss 8960,sackOK,TS val 60008757 ecr 0,nop,wscale 7], length 0
[root@controller ~]# tcpdump -r br.pcap -nn
reading from file br.pcap, link-type EN10MB (Ethernet)
20:41:21.854737 IP 10.10.61.110.50780 > 10.10.61.109.9999: Flags [S], seq 2992711880, win 26880, options [mss 8960,sackOK,TS val 60008757 ecr 0,nop,wscale 7], length 0
20:41:21.911194 IP 10.10.61.109.9999 > 10.10.61.110.50780: Flags [S.], seq 702486902, ack 2992711881, win 28960, options [mss 1460,sackOK,TS val 63718971 ecr 60008757,nop,wscale 7], length 0
20:41:21.961547 IP 10.10.61.110.50780 > 10.10.61.109.9999: Flags [.], ack 1, win 210, options [nop,nop,TS val 60008757 ecr 63718971], length 0
20:41:22.073722 IP 10.10.61.110.50780 > 10.10.61.109.9999: Flags [P.], seq 1:82, ack 1, win 210, options [nop,nop,TS val 60008757 ecr 63718971], length 81
20:41:22.124028 IP 10.10.61.109.9999 > 10.10.61.110.50780: Flags [.], ack 82, win 227, options [nop,nop,TS val 63718971 ecr 60008757], length 0
20:41:25.407070 IP 10.10.61.109.9999 > 10.10.61.110.50780: Flags [P.], seq 1:4238, ack 82, win 227, options [nop,nop,TS val 63718974 ecr 60008757], length 4237
还有个现象,就是开始重放后,虽然流量非常非常小(10kbps),但是109竟然网络不通了。包括110和PC,都无法ping通109,但是arping是正常的。停止重放,再等待一段时间,就会恢复。。。
应该不是iptables的问题。我已经把这些报文设置为NOTRACK,并且加了很多日志。报文走到mangle PREROUTING之后就消失了。