一个 vmware VM 被分配了两个 IP。我们只能从同一网络上的 VM ping 通其中一个 IP。
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:98:87:db brd ff:ff:ff:ff:ff:ff
inet 10.233.0.2/16 brd 10.233.255.255 scope global ens160
valid_lft forever preferred_lft forever
inet 10.233.0.3/16 brd 10.233.255.255 scope global secondary ens160
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe98:87db/64 scope link
valid_lft forever preferred_lft forever
源是 10.233.15.102,测试显示 10.233.0.2 可以 ping 通,但 10.233.0.3 不能。
$ ping 10.233.0.3
PING 10.233.0.3 (10.233.0.3) 56(84) bytes of data.
From 10.233.0.3 icmp_seq=1 Destination Port Unreachable
From 10.233.0.3 icmp_seq=2 Destination Port Unreachable
From 10.233.0.3 icmp_seq=3 Destination Port Unreachable
$ ping 10.233.0.2
PING 10.233.0.2 (10.233.0.2) 56(84) bytes of data.
64 bytes from 10.233.0.2: icmp_seq=1 ttl=64 time=0.502 ms
64 bytes from 10.233.0.2: icmp_seq=2 ttl=64 time=0.155 ms
64 bytes from 10.233.0.2: icmp_seq=3 ttl=64 time=0.171 ms
当源是 10.233.14.102 时,测试显示 10.233.0.2 和 10.233.0.3 都可以 ping 通。
$ ping 10.233.0.2
PING 10.233.0.2 (10.233.0.2) 56(84) bytes of data.
64 bytes from 10.233.0.2: icmp_seq=1 ttl=64 time=0.223 ms
64 bytes from 10.233.0.2: icmp_seq=2 ttl=64 time=0.175 ms
$ ping 10.233.0.2
PING 10.233.0.2 (10.233.0.2) 56(84) bytes of data.
64 bytes from 10.233.0.2: icmp_seq=1 ttl=64 time=0.252 ms
这可能是什么原因呢?
答案1
事实证明,有一个 kubernetes 集群使用相同的范围 10.233.0.0/24 作为其内部网络。这导致 arp 表被填充了它们的 MAC 地址。