虚拟 IP 无法 ping 通:设置错误?

虚拟 IP 无法 ping 通:设置错误?

我在 Linux 上工作。

100.10.10.2我通过运行以下命令添加了到虚拟 IP 的路由:

route -n add 100.10.10.2 gw 127.0.0.1

它已被重定向到我的本地环回。我检查了内核 IP 表,它已正确设置路径。现在,我运行一个绑定在同一 IP 上的脚本,然后尝试从我的机​​器 ping 该 IP,它会正确收到 ping 回复。

但同一网络上的另一台计算机无法 ping 通此虚拟 IP 地址。我在互联网上查了一下,上面确实说我的本地环回上可以有多个 IP,并且可以从同一网络上的对等点查看它们。

我尝试在 eth0 接口上添加路径,方法是127.0.0.1用我的eth0IP 地址替换 。信息已正确添加到路由表中,但随后发生了同样的事情:我可以从自己的机器 ping 通,但对等端却无法 ping 通。

我在 Google 上搜索了同样的事情,但没有任何解决方案能帮助我。

该脚本(它发回 ICMP 数据包答复)是正确的(我确信这一点),因为我从我自己的机器获得了针对我设置了路由的 IP 的 ping 答复。

我哪里做错了?还是我遗漏了一些配置?

任何帮助深表感谢!

编辑:

这是路由表

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
100.10.10.2     localhost.local 255.255.255.255 UGH   0      0        0 lo
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

和接口配置:

eth0     Link encap:Ethernet  HWaddr 00:22:19:ec:ee:50  
          inet addr:192.168.1.2  Bcast:10.200.200.255  Mask:255.255.255.0
          inet6 addr: fe80::222:19ff:feec:ee50/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1

答案1

我不清楚你为什么要在本地系统上乱用路由命令。如果你在本地接口之一上配置了地址,则无需指定显式路由;你的系统已经知道如何联系它。

例如,如果您已经eth0按上述配置,那么您应该能够执行以下操作:

ifconfig eth0:0 100.10.10.2 netmask 255.255.255.0

现在您的本地系统已经全部设置好了。

要使网络上的其他系统能够通过该 IP 地址联系您的系统,需要满足以下三项之一。要么:

  • 它们需要在同一个 IP 网络上有一个接口,或者
  • 他们需要有到该 IP 网络的明确路由,或者
  • 他们的默认网关需要有到该 IP 网络的路由

因此,如果您有另一个系统的“真实”地址是 192.168.1.3,那么您可以执行以下操作:

ifconfig eth0:0 100.10.10.3 netmask 255.255.255.0

或这个:

route add -net 100.10.10.0/24 dev eth0

相关内容