我刚刚在我的 Ubuntu 服务器上创建了一个虚拟接口 (VLAN 10);我网络中的主机可以访问物理接口;但是 VLAN 10 上的网络主机无法访问虚拟接口 IP。我进行了 tcpdump 并确认服务器正在物理接口上接收数据包;不知何故它没有将其转发到虚拟接口。物理接口 (ens33) 位于未标记的 VLAN 上。
奇怪的是,当我检查网络上的计算机或网络交换机上的 ARP 表时,它知道虚拟接口 IP (10.10.0.43) 的 mac 地址。因此看起来 ARP 正在运行:
My_Home_Wall#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 10.10.0.43 18 000c.294c.0aaf ARPA Vlan10
从 Ubuntu 服务器内部对虚拟接口 IP 执行 ping 操作正常:
admin@ubuntu:~$ ping 10.10.0.43
PING 10.10.0.43 (10.10.0.43) 56(84) bytes of data.
64 bytes from 10.10.0.43: icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from 10.10.0.43: icmp_seq=2 ttl=64 time=0.029 ms
我可能遗漏了什么?以下是服务器的一些输出:
admin@ubuntu:~$ nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected Ifupdown (ens33)
ens33.10 vlan connected ens33.10
lo loopback unmanaged --
admin@ubuntu:~$ ifconfig
ens33 Link encap:Ethernet HWaddr 00:0c:29:4c:0a:af
inet addr:10.20.0.64 Bcast:10.20.0.255 Mask:255.255.255.0
inet6 addr: fe80::f135:7631:4bd8:96ad/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3064 errors:0 dropped:0 overruns:0 frame:0
TX packets:2529 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:469165 (469.1 KB) TX bytes:427318 (427.3 KB)
ens33.10 Link encap:Ethernet HWaddr 00:0c:29:4c:0a:af
inet addr:10.10.0.43 Bcast:10.10.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe4c:aaf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2269 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:355582 (355.5 KB)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.20.0.120 0.0.0.0 UG 0 0 0 ens33
0.0.0.0 10.20.0.120 0.0.0.0 UG 100 0 0 ens33
10.10.0.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33.10
10.20.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
PS:我静态分配了虚拟接口,因为它无法从 DHCP 获取 IP。查看服务器的调试时,我看到 dhcp 请求进入 VLAN,它为该 VLAN 提供了一个 IP 地址,服务器收到了该请求(我从 tcpdump 中知道这一点),但它从未发回请求。