![在 Ubuntu 18.04 Server 上使用 systemd-networkd 时配置 DHCP 租约](https://linux22.com/image/754158/%E5%9C%A8%20Ubuntu%2018.04%20Server%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20systemd-networkd%20%E6%97%B6%E9%85%8D%E7%BD%AE%20DHCP%20%E7%A7%9F%E7%BA%A6.png)
我们有一个由 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
这应该有助于解决任何网络中断问题。