我正在尝试获取多个 IP 地址以连接到在 vmware esxi 上运行 ubuntu 10.04 的虚拟服务器。
使用 esxi,我为其分配了 10 个虚拟网卡,它们都连接到同一个虚拟交换机。
每个虚拟网卡都有自己的 IP 地址,网络上没有其他设备使用该地址。
问题是,在办公室内部,即路由器之前,一切都运行正常,没有问题,所有服务都可以正常使用。在办公室外部,即公共互联网上,机器上只有一个 IP 提供任何服务。那就是 eth0 上的 IP。所有其他 IP 都超时了。
所有 IP 都是同一范围内的公共 IP。不存在防火墙问题,因为防火墙配置未更改,并且所有 IP 在已关闭电源的旧硬件上都是公开可用的。
来自其他地方的另一台服务器的 traceroute 输出如下:
root@jaguar:~# tcptraceroute x.x.x.252
traceroute to x.x.x.252 (x.x.x.252), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 Xe0-1-1-0-grtontl1.red.telefonica-wholesale.net (213.140.51.181) 21.845 ms 22.682 ms 23.545 ms
4 GE6-1-0-0-grtlontl3.red.telefonica-wholesale.net (84.16.12.14) 24.144 ms 24.834 ms GE7-0-0-0-grtlontl3.red.telefonica-wholesale.net (84.16.12.94) 25.374 ms
5 CW-2-1-0-0-grtlontl3.red.telefonica-wholesale.net (213.140.52.62) 67.339 ms 67.334 ms 67.327 ms
6 xe-4-2-0-xcr1.lnd.cw.net (195.2.25.58) 86.102 ms 64.355 ms 64.136 ms
7 ge-5-0-0-dcr1.lnd.cw.net (195.2.25.2) 18.486 ms ge-1-0-0-dcr1.lnd.cw.net (195.2.25.122) 18.664 ms 18.613 ms
8 so-0-0-0-zcr1.lnt.cw.net (166.63.163.222) 18.830 ms so-4-0-0-zcr1.lnt.cw.net (166.63.161.146) 18.437 ms so-0-0-0-zcr1.lnt.cw.net (166.63.163.222) 18.372 ms
9 so-1-3-0-ycr1-lo7.cw.net (166.63.222.30) 22.153 ms 22.413 ms 22.411 ms
10 ge-0-0-0-kar1.lo7.cw.net (195.2.12.178) 22.886 ms 22.404 ms 22.356 ms
11 hackney-gw.uk.insnet.net (213.38.241.146) 28.065 ms 28.818 ms 29.410 ms
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
root@jaguar:~# tcptraceroute x.x.x.244
traceroute to x.x.x.244 (x.x.x.244), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 GE7-0-0-0-grtlontl3.red.telefonica-wholesale.net (84.16.12.94) 23.450 ms 24.431 ms GE6-1-0-0-grtlontl3.red.telefonica-wholesale.net (84.16.12.14) 24.956 ms
5 CW-2-1-0-0-grtlontl3.red.telefonica-wholesale.net (213.140.52.62) 25.626 ms 26.377 ms 26.975 ms
6 xe-4-0-0-xcr1.lnd.cw.net (195.2.25.30) 27.823 ms xe-4-2-0-xcr1.lnd.cw.net (195.2.25.58) 18.397 ms 18.448 ms
7 ge-5-0-0-dcr1.lnd.cw.net (195.2.25.2) 18.660 ms ge-1-0-0-dcr1.lnd.cw.net (195.2.25.122) 22.714 ms 21.367 ms
8 so-4-0-0-zcr1.lnt.cw.net (166.63.161.146) 18.789 ms so-0-0-0-zcr1.lnt.cw.net (166.63.163.222) 18.915 ms so-4-0-0-zcr1.lnt.cw.net (166.63.161.146) 18.532 ms
9 so-1-3-0-ycr1-lo7.cw.net (166.63.222.30) 22.877 ms 22.694 ms 22.405 ms
10 ge-12-0-0-kar1.lo7.cw.net (195.2.12.182) 22.404 ms 22.430 ms 22.600 ms
11 hackney-gw.uk.insnet.net (213.38.241.146) 27.783 ms 27.810 ms 28.225 ms
12 rsvd-company-name-244.x.x.x.in-addr.arpa (x.x.x.244) 28.292 ms 28.295 ms 27.762 ms
以 252 结尾的地址不起作用,以 244 结尾的地址起作用
/etc/network/interfaces 如下所示:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address x.x.x.244
netmask 255.255.255.0
broadcast x.x.x.255
gateway x.x.x.x
dns-nameservers x.x.x.x
auto eth1
iface eth1 inet static
address x.x.x.252
netmask 255.255.255.0
gateway x.x.x.x
broadcast x.x.x.255
...
等等等等
答案1
最终找到了解决办法。
这与 Ubuntu 或 VMWare 上的配置无关,而实际上是路由器本身的问题。它的 arp 表似乎有极长的使用寿命。对路由器进行电源循环解决了问题,并且从那时起每次出现此问题时都能解决问题。
只是发布此信息以便其他遇到这种情况的人可以得到一些帮助。
答案2
所有 IP 地址都在同一个子网吗?
如果是这样:
- 你可能希望在 ubuntu 中使用虚拟接口而不是真实接口(即:eth0、eth 0:1、eth0:2 等)以降低虚拟交换机配置的复杂性
- 只需要定义一个网关
如果不是,那么可能让你感到困惑的是,你定义了 10 个网关,它们可能相同也可能不同;并且可能允许也可能不允许“源路由”(即接受来自与传入路由规则不匹配的源的出站数据包)。在这种情况下,你需要谷歌搜索“源路由”。
答案3
检查 VMware 内部的交换机配置。还可以尝试使用 ping -I 并选择不工作的接口,看看是否能解决问题。(可能是因为它没有 arp 条目。)
答案4
不确定问题到底是什么,但在我将所有接口更改为 eth0 上的虚拟接口、关机、从 esxi 虚拟机设置中删除额外的网卡并再次启动后,一切就正常了。