我的服务器有一个文件 /etc/netplan/50-cloud-init.yaml,其内容如下:
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
ens3:
dhcp4: true
match:
macaddress: fa:**:**:**:**:**
set-name: ens3
这会产生以下接口配置:
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc fq_codel state UP group default qlen 1000
link/ether fa:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
inet 10.0.0.5/24 brd 10.0.0.255 scope global dynamic ens3
...
到目前为止一切顺利。但现在我需要将 10.0.0.250 作为附加辅助静态 IP 添加到此接口。最好的方法是什么?我创建了一个新文件 /etc/netplan/60-service-ip.yaml,其中包含:
network:
version: 2
ethernets:
ens3:
addresses:
- 10.0.0.5/24
- 10.0.0.250/24
这似乎有效,但它将动态 IP 重新定义为静态 IP。
答案1
它实际上更简单,您只需dhcp4: true
像这样添加到您的静态配置中(如果不需要,请禁用 v6):
network:
version: 2
ethernets:
ens3:
dhcp4: yes
dhcp6: no
addresses:
- 10.0.0.250/24
答案2
我遇到了同样的问题,在 Azure 中,我将 dhcp 地址设置为辅助地址,将静态地址设置为主地址。将 dhcp 地址保留为主要地址很重要,因为 Azure 虚拟网络提供网关和名称服务器信息。
我找到了这个解决方法:
network:
version: 2
ethernets:
eth0:
dhcp4: true
addresses:
- 10.0.2.6/24 (IP acquired by DHCP)
- 10.0.2.21/24
match:
macaddress: 00:0d:3a:4f:45:f0
set-name: eth0
具体来说,在 Azure 中,我们在 Azure 资源端分配静态 IP 地址,通常由 dhcp 将其带到客户操作系统。因此,即使客户操作系统将其视为动态 IP,它也始终会从 Azure 获取相同的静态 IP。
上面,我强制将 dhcp IP 置于辅助 IP 之前。
在我的例子中,它按预期工作。
答案3
复制:
解决方案很简单,只需设置静态 IP 地址并启用 DHCP。基本上,您只需添加dhcp4: yes
到您的配置中即可。
此配置为我提供了一个主静态 IP 地址和一个辅助 DHCP 分配的 IP 地址:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
dhcp6: no
addresses:
- 10.1.2.15/24
gateway4: 10.1.2.1
nameservers:
search:
- example.com
addresses: [10.1.2.10]
ip address show enp0s3 的结果如下:
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ab:cd:ef brd ff:ff:ff:ff:ff:ff
inet 10.1.2.15/24 brd 10.0.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet 10.1.2.96/24 brd 10.0.1.255 scope global secondary dynamic enp0s3
valid_lft 3224sec preferred_lft 3224sec
inet6 fe80::a00:27ff:fe20:2c40/64 scope link
valid_lft forever preferred_lft forever
地址 10.1.2.96 是辅助 DHCP 分配的地址,如辅助动态关键字所示。
答案4
最简单的方法(并且更容易自动化)是创建第二个名为“/etc/netplan/60-static.yaml”的文件,内容如下:
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses:
- 10.0.0.250/24
并执行:
netplan try