在 Ubuntu 18.04 Server 上使用 systemd-networkd 时配置 DHCP 租约

在 Ubuntu 18.04 Server 上使用 systemd-networkd 时配置 DHCP 租约

我们有一个由 IONOS (1&1) 托管的 Ubuntu 18.04 专用服务器,并且想要使用一个 IPv4 和 2 个 IPv6 地址。最近,我们决定从 networking.service 切换到 systemd-networkd.service,以避免 IPv6 配置出现问题。当我们通过 使用 networking.service 时,2 个额外的 IPv6 地址未正确分配/etc/network/interfaces。使用 systemd-networkd 似乎可以解决问题,但 IPv4 地址存在问题,该地址是通过 DHCP 分配的。

/etc/systemd/network/10-eth0.network看起来像这样:

    [Match]
    Name=eth0
    
    [Network]
    Description=Main network interface
    DHCP=ipv4
    DefaultRouteOnDevice=true
    Gateway=fe80::1
    IPv6AcceptRA=false
    
    [Address]
    Address=2001:xxxx:xxxx:xxxx::1/64
    
    [Address]
    Address=2001:xxxx:xxxx:xxxx::2/64

重新启动后,所有 IP 地址均已正确分配,但一段时间后 IPv4 地址消失并且无法再访问(我认为是由于租约时间所致)。该ip addr命令告诉我范围,global dynamic我认为这是导致问题的原因。当我dhclient手动使用时,我可以指定获取一次租约的选项-1。如何在 .network 文件中设置它?DHCP 服务器由我们的托管服务提供商管理,因此我无法访问它。

答案1

我发现在文件 /etc/netplan/00-installer-config.yaml 中添加“critical: true”可确保接口不会定期关闭(似乎是 IONOS 的问题)。该文件应如下所示:

# This is the network config written by 'subiquity'
network:
  ethernets:
    ens192:
      dhcp4: true
      critical: true
  version: 2

然后运行:

$ sudo netplan generate
$ sudo netplan apply

这应该有助于解决任何网络中断问题。

相关内容