我正在使用 openstack,但我认为这是一个更普遍的问题。实际上我有一个带有 1 个 IP 地址的专用 IP 地址,我又买了一个,并使用 openstack 的 nova-manage cli 添加。
所以现在这就是我得到的
$ ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:30:48:fc:4c:92 brd ff:ff:ff:ff:ff:ff
inet 188.165.x.x/24 brd 188.165.225.255 scope global eth0
inet 94.23.x.x/32 scope global eth0
inet6 fe80::230:48ff:fefc:4c92/64 scope link
valid_lft forever preferred_lft forever
因此看起来两个 IP 都绑定到了 eth0,问题是我没有收到目标设置为 94.23.xx 的数据包,当我运行 tcpdump -i eth0 时,我看见发往两个 IP 的数据包,当我运行 tcpdump -p -i eth0 时,所以不是在混杂模式下,我只看见发往第一个 IP 的数据包,所以 dnat 和我需要的将不起作用。
如果我尝试 ping 主机上的 94.23.xx,则工作正常,但从外部 ping 则会超时。
任何想法?
此致
编辑:
$ ip route
default via 188.165.x.254 dev eth0 metric 100
188.165.x.0/24 dev eth0 proto kernel scope link src 188.165.x.x
192.168.3.0/24 dev br100 proto kernel scope link src 192.168.3.1
192.168.4.32/27 dev br100 proto kernel scope link src 192.168.4.33
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
答案1
您能否检查一下在混杂模式下 tcpdump 中接收的数据包的目标 MAC 地址是什么?
如果其目标 MAC 不正确:00:30:48:fc:4c:92 - 您存在 IP 冲突,应联系您的提供商。
如果正确,则说明您这边存在问题,例如错误的 NIC、IP、内核设置,也许是错误的网络掩码或路由问题。
答案2
您的第二个 IP 设置了 /32 网络掩码。这几乎会阻止它执行任何操作,除非您尝试将其作为环回托管(并且您的上游正在将其路由给您)。
您的提供商应该已经为您提供了您购买的第二个地址的子网掩码。设置完成后,您的系统应该能够 ping 通该 94.23.xx 子网中的其他主机。