![6 个月后目标主机无法到达本地网络地址](https://linux22.com/image/1088679/6%20%E4%B8%AA%E6%9C%88%E5%90%8E%E7%9B%AE%E6%A0%87%E4%B8%BB%E6%9C%BA%E6%97%A0%E6%B3%95%E5%88%B0%E8%BE%BE%E6%9C%AC%E5%9C%B0%E7%BD%91%E7%BB%9C%E5%9C%B0%E5%9D%80.png)
我有一个 Ubuntu 14 LTS 服务器,已经投入生产大约 6 个月。
今天,我正在对网络配置进行例行调整,但一切都出了问题。我有 4 个 vlan 网络接口突然无法路由流量。我无法在任何网络接口上 ping 任何内容。
我已多次重启服务器,甚至在进行任何更改之前恢复了昨晚的备份,但什么也无法使它们正常工作。
起初我以为问题可能是由数据中心网络工程师造成的,但我已经向其中一个 VLAN 添加了几个 Windows 机箱,它们之间可以正常通信,但无法 ping 通 VLAN 上的 freeswitch。UFW 已禁用。
我有一个 eth0,它有两个 IP 地址并且继续正常工作:
auto eth0
iface eth0 inet static
address 192.168.1.13
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.12 192.168.1.11 10.1.0.10
hwaddress ether 00:50:56:b1:23:b0
auto eth0:0
iface eth0:0 inet static
address 192.168.1.14
netmask 255.255.255.0
我有 3 个 VLAN,它们是通过专用接口接入的点对点电路(我已经混淆了公共 IP 地址):
auto eth2
iface eth2 inet static
address 10.2.0.12
netmask 255.255.255.0
hwaddress ether 00:50:56:b1:71:7a
post-up route add -net 192.168.211.32 netmask 255.255.255.224 gw 10.2.0.1
auto eth3
iface eth3 inet static
address 10.3.0.13
netmask 255.255.255.0
hwaddress ether 00:50:56:b1:1c:cd
post-up route add -net 192.168.211.64 netmask 255.255.255.224 gw 10.3.0.1
auto eth4
iface eth4 inet static
address 144.?.?.206
netmask 255.255.255.252
hwaddress ether 00:50:56:b1:3d:10
post-up route add -net 199.?.?.67 netmask 255.255.255.255 gw 144.?.?.205
还有第 4 个 vlan,也就是我们今天尝试打开的那个,我已经删除了“添加后路由”,因为当我尝试添加它时,事情出了问题:
auto eth1
iface eth1 inet static
address 10.100.0.11
netmask 255.255.255.0
hwaddress ether 00:50:56:b1:82:59
以下是路由表(我混淆了公网 IP 地址):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
10.2.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10.3.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
144.?.?.204 0.0.0.0 255.255.255.252 U 0 0 0 eth4
172.16.43.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.211.32 10.2.0.1 255.255.255.224 UG 0 0 0 eth2
192.168.211.64 10.3.0.1 255.255.255.224 UG 0 0 0 eth3
199.?.?.67 144.?.?.205 255.255.255.255 UGH 0 0 0 eth4
eth3 ( 10.3.0.13 ) 投入生产的时间最长。为了进行故障排除,我已将两台 Windows 计算机添加到该 vlan,分别为 10.3.0.99 和 10.3.0.98,它们可以互相 ping 通,但都无法 ping 10.3.0.13,而 ubuntu 服务器在尝试 ping 其中一台时只会收到以下信息:
itas@FreeSWITCH2:~$ ping 10.3.0.99
PING 10.3.0.99 (10.3.0.99) 56(84) bytes of data.
From 10.3.0.13 icmp_seq=1 Destination Host Unreachable
From 10.3.0.13 icmp_seq=2 Destination Host Unreachable
From 10.3.0.13 icmp_seq=3 Destination Host Unreachable
根据该 ping 输出,它似乎选择了正确的接口,因为 10.3.0.13 是该接口上的 ip,但是“sudo tcpdump -i eth3”从未显示单个数据包进出,“sudo tcpdump -i any icmp”显示以下内容:
20:10:52.378575 IP 10.3.0.13 > 10.3.0.13: ICMP host 10.3.0.99 unreachable, length 92
看起来 icmp 拒绝从未触及“线路”(这是 vmware 环境)。Windows 机器上的 Wireshark 从未看到 icmp echo 请求,并且我已将 VMware 配置为允许混杂。其中一个 Windows 机器位于同一主机上,另一个测试机器位于不同的主机上。
从我读过的所有内容来看,这看起来应该是路由表的问题,但我似乎找不到路由表的问题,而且我似乎无法说服这个盒子在 eth3 或任何 vlan 接口上发送数据包。
我完全不知道这些网络接口出了什么问题。