Netplan dhcp 不工作。Ubuntu 18.04+ 启动延迟 2 分钟

Netplan dhcp 不工作。Ubuntu 18.04+ 启动延迟 2 分钟

我见过很多这样的问题,没有明确而理想的答案,所以我自己问。

自从 Ubuntu 18.04.3(我认为是 .3 启动的)到至少 20.04.1 以来,我一直看到启动时有 2 分钟的延迟,等待网络启动。我们的网络上没有配置 IPv6,DHCP 服务器是基于 Windows 的,有 2 个复制服务器和 VLAN 上的 IP 助手 - 虽然我的 Ubuntu 服务器与 DHCP 服务器位于同一个 VLAN 上(我的所有虚拟机都在同一个 VLAN 上)。

netplan 往往会被忽略,因为 dhcp 坚持使用 GUID 作为标识符,即使 /etc/netplan/ 中的 interface.yaml 表示使用 MAC。此外,除非我将接口标记为可选,否则 DHCP 甚至在启动后 10-15 分钟内都不会尝试获取地址。但是,调用 dhclient 可以完美且立即运行。

据我所知,这种延迟似乎是 IPv6 寻址问题。因此,我在 grub 中禁用了 ipv6。我在 netplan yaml 文件中将接口标记为可选,并将 dhcp6 标记为 false,这解决了 2 分钟的启动延迟,但 dhcp 服务器返回了一个意外的 IP,因为 netplan 中的 dhcp-identifier 行被忽略了。Ubuntu 不显示 MAC 地址,而是显示 GUID。

这是我的 01-netcfg.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens160:
      dhcp4: true
      dhcp6: false
      dhcp-identifier: mac
      optional: true
      link-local: [ ]

一旦生成并应用 netplan,我就会断开连接,并获取错误的 IP 地址。如果我手动调用sudo dhclient -r; sudo dhclient,我会立即获得预期的 IPv4 地址。

因此,我能够使服务器毫不延迟地获取正确地址的唯一方法是按照所述设置接口,然后在启动时运行脚本以手动运行dhclient

这似乎是一种相当笨拙的做事方式,因为它似乎是在绕过问题而不是解决问题。

有人能告诉我发生了什么事吗?更重要的是,如何解决它?

提前致谢!

使用新信息进行编辑:如果我让虚拟机静置,它最终会在登录提示后约 8.5 分钟内获取 IP。我猜测即接口启动后10分钟。

此外,我在另一个关于类似问题的帖子中看到,该网段上有多个 DHCP 服务器导致另一个用户遇到问题。我们该段上有 2 个 Windows 2019 DHCP 服务器,进行负载平衡(范围复制)。

EDITsudo netplan --debug generate输出以下内容:

** (generate:3137): DEBUG: 14:26:01.499: Processing input file /etc/netplan/00-installer-config.yaml
..
** (generate:3137): DEBUG: 14:26:01.501: starting new processing pass
** (generate:3137): DEBUG: 14:26:01.501: We have some netdefs, pass them through a final round of validation
** (generate:3137): DEBUG: 14:26:01.503: ens160: setting default backend to 1
** (generate:3137): DEBUG: 14:26:01.504: Configuration is valid
** (generate:3137): DEBUG: 14:26:01.505: Generating output files..
** (generate:3137): DEBUG: 14:26:01.505: openvswitch: definition ens160 is not for us(backend 1)
** (generate:3137): DEBUG: 14:26:01.506: NetworkManager: definition ens160 is not for us(backend 1)
(generate:3137): GLib-DEBUG: 14:26:01.507: posix_spawn avoided (fd close requested)
(generate:3137): GLib-DEBUG: 14:26:01.511: posix_spawn avoided (fd close requested)

以下是输出sudo journalctl | grep ens160

Nov 08 08:45:30 graylog systemd-networkd[846]: ens160: DHCP lease lost
Nov 08 08:45:44 graylog kernel: vmxnet3 0000:03:00.0 ens160: renamed from eth0
Nov 08 08:45:52 graylog kernel: vmxnet3 0000:03:00.0 ens160: intr type 3, mode 0, 5 vectors allocated
Nov 08 08:45:52 graylog kernel: vmxnet3 0000:03:00.0 ens160: NIC Link is Up 10000 Mbps
Nov 08 08:45:52 graylog systemd-networkd[843]: ens160: Link UP
Nov 08 08:45:52 graylog systemd-networkd[843]: ens160: Gained carrier
Nov 08 08:45:53 graylog cloud-init[851]: ci-info: | ens160 | True |     .     |     .     |   .   | 00:50:56:96:c6:b7 |
Nov 08 08:45:53 graylog cloud-init[851]: ci-info: |   2   |  multicast  |    ::   |   ens160  |   U   |
Nov 08 08:54:29 graylog systemd-networkd[843]: ens160: DHCPv4 address 10.83.1.5/24 via 10.83.1.1

答案1

Jay,我遇到了这个问题,我认为它是在我切换到 18 时开始的。一台机器甚至花了将近 4 分钟——起初我以为它根本没有启动。如您所见,没有人想出可行的解决方案,所以我偶然发现了 Xubuntu!!它应该是一个最小版本,但 2 年来我还没有发现它缺少什么,它启动需要 30-45 秒。我使用相同的 Ubuntu 内核。我不是专家用户,但我有一个系统用作媒体播放器(智能电视),另一个系统我仅用于下载。Xubuntu 支持我所有的硬件和软件,满足这些需求。我遇到的唯一问题是图形支持,但这也是 Ubuntu 的一个问题,从未修复过。Xubuntu 20.04.1 确实解决了这个问题,可以很好地播放视频。希望有所帮助——下载 20.04.1 ISO 并安装新的(如果可以)——效果很好。

答案2

从问题和评论来看......

关于:“自从 Ubuntu Server 18.04.3 到至少 20.04.1 以来,我的网络一直无法获取合适的 DHCP IP 地址。启动网络也需要两分钟。我正在使用 netplan。”

建议启动到 Ubuntu Live 21.10 DVD/USB 并重新测试。

关于:“Ubuntu 21.10 似乎解决了所有问题。我尝试更改 VMWare 驱动程序,将我的东西添加到 netplan 以禁用 ipv6,使用 mac 作为 dhcp 标识符,一切都运行正常!ip a 在 21.10 下显示更多信息,显示网络设备被别名(altname enps0)。”

在 .yaml 文件中添加“optional: true”解决了较长的启动时间问题。

我相信原来的网络设置一直存在问题,或者 Ubuntu 21.10 中较新版本的 netplan 解决了这些问题。

相关内容