DHCP 客户端停止为特定 NIC 工作

DHCP 客户端停止为特定 NIC 工作

发生了一些奇怪的事情。我将一根带有 VLAN 300 的电缆插入我的 ubuntu 机器。它工作正常,就像这样。

Jul  9 09:13:16 ruby dhclient[17696]: bound to 85.x.x.136 -- renewal in 1797 seconds.
Jul  9 09:43:13 ruby dhclient[17696]: DHCPREQUEST of 85.x.x.136 on enp5s0.300 to 85.144.96.1 port 67 (xid=0x5bf4fa8d)

我向接口添加了 VLAN 640,一段时间内也能正常工作。但随后 300 停止工作。我再次删除 VLAN 640,回滚到我保存的配置,但 300 再也没有开始工作,而是给我以下信息:

Jul  9 21:01:18 ruby dhclient[10101]: Listening on LPF/enp5s0.300/bc:5f:f4:35:31:4e
Jul  9 21:01:18 ruby dhclient[10101]: Sending on   LPF/enp5s0.300/bc:5f:f4:35:31:4e
Jul  9 21:01:18 ruby dhclient[10101]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 3 (xid=0xd0b9a504)
Jul  9 21:01:21 ruby dhclient[10101]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 5 (xid=0xd0b9a504)
Jul  9 21:01:26 ruby dhclient[10101]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 7 (xid=0xd0b9a504)
Jul  9 21:03:16 ruby dhclient[10578]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 3 (xid=0x773a3622)
Jul  9 21:03:19 ruby dhclient[10578]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 3 (xid=0x773a3622)
Jul  9 21:03:22 ruby dhclient[10578]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 4 (xid=0x773a3622)
Jul  9 21:03:26 ruby dhclient[10578]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 11 (xid=0x773a3622)
Jul  9 21:03:36 ruby dhclient[10601]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 3 (xid=0xdb1d8017)
Jul  9 21:03:39 ruby dhclient[10601]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 6 (xid=0xdb1d8017)
Jul  9 21:03:45 ruby dhclient[10601]: DHCPDISCOVER on enp5s0.300 to 255.255.255.255 port 67 interval 9 (xid=0xdb1d8017)

然后我将电缆插入同一台机器上的另一个 NIC,配置 eth0.300 以通过 DHCP 工作,并且它确实起作用了。

于是我重新配置,将 enp5s0 NIC 设为局域网卡,将 eth0 设为广域网接口。但我不明白为什么会发生这种情况。

什么原因导致一个 NIC 突然停止为该特定 VLAN 工作?它在 VLAN 640 上仍然可以工作。

我试过;

  • 重启次数
  • 删除所有接口并恢复它们
  • 重写 /etc/network/interfaces 文件
  • 切换和更换电缆

什么都不起作用,VLAN 300 上的 Realtek NIC 仍然无法通过 DHCP 获取地址,而另一个 NIC 可以。

这是网络 lspci 位;

03:06.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05)
        Subsystem: Intel Corporation PRO/1000 GT Desktop Adapter
        Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 21, NUMA node 0
        Memory at fe140000 (32-bit, non-prefetchable) [size=128K]
        Memory at fe120000 (32-bit, non-prefetchable) [size=128K]
        I/O ports at e180 [size=64]
        Expansion ROM at fe100000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: e1000
        Kernel modules: e1000

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
        Subsystem: ASRock Incorporation Motherboard (one of many)
        Flags: bus master, fast devsel, latency 0, IRQ 19, NUMA node 0
        I/O ports at d000 [size=256]
        Memory at d0004000 (64-bit, prefetchable) [size=4K]
        Memory at d0000000 (64-bit, prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: r8169
        Kernel modules: r8169

我困惑了。

编辑1,响应所要求的更多信息:

  1. 这两个接口是否连接到同一个设备?您可以访问它吗?最好绘制网络拓扑。

是的。它们都连接到了接受光纤线路的媒体转换器。是的,我可以物理访问它,也对其进行了电源循环。直接插入另一个调制解调器或笔记本电脑即可在 VLAN 300 上建立网络连接,因此我倾向于相信那里的电缆和硬件没有问题。

这是网络拓扑的原始图。

Media Converter
      |
      +----- NIC A
               |
          Ubuntu Server
               |
             NIC B
               |             
               +--- Switch --- Desktop 1
                      |        Desktop 2
                      |        NAS
                      |
                      +--- Wifi ----- Laptop 1
                      |               Laptop 2
                      |               Android 1
                      |
                      +--- Switch --- TV
                                      Steam Link
                                      Set Top Box

最终目标是使用 VLAN 300 连接互联网,并将 VLAN 640 路由到机顶盒。这是在以下网址中提出的另一个问题:通过一个端口路由 2 个 VLAN

  1. 运行 tcpdump -ni enp5s0 -e 命令并检查输出。您是否看到 vlan 300 中的传出和传入帧?

运行转储后,我确实看到了 VLAN300,奇怪的是,我认为这也是 DHCP 仍有效时我使用的旧 IP。日志在这里:https://pastebin.com/raw/1UYAhPr9

此处为片段;

23:11:45.394550 bc:5f:f4:35:31:4e > 33:33:00:00:00:16, ethertype 802.1Q (0x8100), length 94: vlan 300, p 0, ethertype IPv6, fe80::be5f:f4ff:fe35:314e > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), length 28
23:11:45.468708 bc:5f:f4:35:31:4e > 33:33:00:00:00:fb, ethertype 802.1Q (0x8100), length 149: vlan 300, p 0, ethertype IPv6, fe80::be5f:f4ff:fe35:314e.5353 > ff02::fb.5353: 0*- [0q] 2/0/0 PTR _smb._tcp.local., PTR RUBY._smb._tcp.local. (83)

编辑2:接口文件

auto lo
iface lo inet loopback

auto enp5s0
iface enp5s0 inet static
        address 10.20.40.12
        netmask 255.255.255.0

iface enp5s0.300 inet dhcp

auto eth0
iface eth0 inet static
        address 192.168.40.12
        netmask 255.255.255.0

您究竟如何启动 VLAN 640?

在接口中添加一个条目,iface enp5s0.640 inet manual然后:

ifup enp5s0.640
dhclient enp5s0.640

答案1

让我们尝试解决您的问题。更新问题,我会延长答案,直到问题得到解决。

  1. 这两个接口是否连接到同一个设备?您可以访问它吗?最好绘制网络拓扑。
  2. 运行tcpdump -ni enp5s0 -e命令并检查输出。您是否看到 VLAN 300 中的传出和传入帧?

答案2

如果我没记错的话,dhclient需要REORDER_HEADERS (1)VLAN 标志(vlan.flags输入nmcli)。你设置了吗?

相关内容