在机器 A 和机器 B 这两台机器上建立了一条 IP 隧道,用的是 IPIP 模式,但是建立好之后无法 ping 通,用同样的方式在另外的两台机器上建立是能够 ping 通的,百思不得其解,求助 v 友帮忙看下。
A 机器隧道
tun1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
link/ipip 192.168.0.27 peer 192.168.0.53
inet 1.1.1.1 peer 2.2.2.2/32 brd 255.255.255.255 scope global tun1
valid_lft forever preferred_lft forever
inet6 fe80::5efe:c0a8:1b/64 scope link
valid_lft forever preferred_lft forever
B 机器隧道
tun1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default qlen 1000
link/ipip 192.168.0.53 peer 192.168.0.27
inet 2.2.2.2 peer 1.1.1.1/32 brd 255.255.255.255 scope global tun1
valid_lft forever preferred_lft forever
inet6 fe80::5efe:c0a8:35/64 scope link
valid_lft forever preferred_lft forever
在 A 机器中 ping 2.2.2.2 不通,抓包 tun1 结果是
09:32:03.045283 IP 1.1.1.1 > 2.2.2.2: ICMP echo request, id 58496, seq 1434, length 64
09:32:04.069248 IP 1.1.1.1 > 2.2.2.2: ICMP echo request, id 58496, seq 1435, length 64
09:32:05.093183 IP 1.1.1.1 > 2.2.2.2: ICMP echo request, id 58496, seq 1436, length 64
09:32:06.117212 IP 1.1.1.1 > 2.2.2.2: ICMP echo request, id 58496, seq 1437, length 64
可见只有发出去的包,没有回来的包。 抓包 A 机器 eth0 网卡结果是:
09:32:58.309256 IP 192.168.0.27 > 192.168.0.53: IP 1.1.1.1 > 2.2.2.2: ICMP echo request, id 58496, seq 1488, length 64 (ipip-proto-4)
09:32:58.310069 IP 192.168.0.53 > 192.168.0.27: IP 2.2.2.2 > 1.1.1.1: ICMP echo reply, id 58496, seq 1488, length 64 (ipip-proto-4)
09:32:59.333270 IP 192.168.0.27 > 192.168.0.53: IP 1.1.1.1 > 2.2.2.2: ICMP echo request, id 58496, seq 1489, length 64 (ipip-proto-4)
09:32:59.334073 IP 192.168.0.53 > 192.168.0.27: IP 2.2.2.2 > 1.1.1.1: ICMP echo reply, id 58496, seq 1489, length 64 (ipip-proto-4)
09:33:00.357227 IP 192.168.0.27 > 192.168.0.53: IP 1.1.1.1 > 2.2.2.2: ICMP echo request, id 58496, seq 1490, length 64 (ipip-proto-4)
09:33:00.358090 IP 192.168.0.53 > 192.168.0.27: IP 2.2.2.2 > 1.1.1.1: ICMP echo reply, id 58496, seq 1490, length 64 (ipip-proto-4)
09:33:01.381253 IP 192.168.0.27 > 192.168.0.53: IP 1.1.1.1 > 2.2.2.2: ICMP echo request, id 58496, seq 1491, length 64 (ipip-proto-4)
09:33:01.382149 IP 192.168.0.53 > 192.168.0.27: IP 2.2.2.2 > 1.1.1.1: ICMP echo reply, id 58496, seq 1491, length 64 (ipip-proto-4)
09:33:02.405262 IP 192.168.0.27 > 192.168.0.53: IP 1.1.1.1 > 2.2.2.2: ICMP echo request, id 58496, seq 1492, length 64 (ipip-proto-4)
既有 request 包也有 reply 包,但是却没有到达机器的 tun1 上,不知道是为什么,这种情况应该怎么解决呢?
找到原因了,是因为集群中calico的配置把ipip包drop了,现在得想办法把这个规则干掉。感谢各位的解答
1
defunct9 2020-10-13 09:37:22 +08:00 1
开 ssh,让我上去看看
|
2
sniperking1234 OP @defunct9 多谢好意,是公司内网,没法开 ssh
|
3
march1993 2020-10-13 10:15:19 +08:00 via iPhone
wireshark 抓包分析
|
4
cq65617875 2020-10-13 10:18:29 +08:00
1.1.1.1
2.2.2.2 不是同一个段的啊 并且都是 /32 这样真的能通的么 |
5
zhangsanfeng2012 2020-10-13 10:27:59 +08:00
看一下网卡丢包信息,还有防火墙配置
|
6
sniperking1234 OP |
7
sniperking1234 OP @zhangsanfeng2012 没有丢包信息,但是我用了 iptables -F 命令之后,就能 ping 通了,过了一会又无法 ping 通,需要再使用 iptables -F,这是怎么回事呢
|
8
sniperking1234 OP @zhangsanfeng2012 好像是业务上设置了防火墙,我自己查一下
|
9
name1991 2020-10-13 11:00:15 +08:00
应该还是 iptables 的问题吧, 可以吧 iptables 的 rule 都 show 出来看看,是不是匹配到某个 rule 了
|
10
sniperking1234 OP @name1991 是的,的确是 iptables 的问题,和 calico 相关
|
12
barathrum 2020-10-13 11:13:55 +08:00
@sniperking1234 让你开 ssh 可不是好意啊。。
|
13
sniperking1234 OP @barathrum 哈哈,我也是客气一下
|