我想在 netplan 的一个配置文件中设置两个接口。
目前我正在使用这个:
network:
version: 2
renderer: networkd
ethernets:
ens18:
dhcp4: no
dhcp6: no
addresses: [1.2.3.4/32]
gateway4: 1.2.3.254
nameservers:
search: [domain.tld]
addresses: [123.456.789.101]
routes:
- to: 1.2.3.254/32
via: 0.0.0.0
scope: link
ens19:
dhcp4: true
没有第二个接口(ens19)时,它工作正常。添加第二个接口(ens19)后,系统在启动时出现一些问题。但系统启动后,第二个接口工作正常。
我做错了什么?
提前致谢。
新输出:
root@web:/etc/netplan# sudo netplan --debug apply
** (generate:18692): DEBUG: 03:51:19.153: Processing input file /etc/netplan/50-cloud-init.yaml..
** (generate:18692): DEBUG: 03:51:19.153: starting new processing pass
** (generate:18692): DEBUG: 03:51:19.153: ens18: setting default backend to 1
** (generate:18692): DEBUG: 03:51:19.153: ens19: setting default backend to 1
** (generate:18692): DEBUG: 03:51:19.153: Generating output files..
** (generate:18692): DEBUG: 03:51:19.153: NetworkManager: definition ens18 is not for us (backend 1)
** (generate:18692): DEBUG: 03:51:19.153: NetworkManager: definition ens19 is not for us (backend 1)
DEBUG:netplan generated networkd configuration exists, restarting networkd
DEBUG:no netplan generated NM configuration exists
DEBUG:ens18 not found in {}
DEBUG:ens19 not found in {'ens18': {'addresses': ['1.2.3.4/32'], 'gateway4': '1.2.3.254', 'dhcp4': False, 'dhcp6': False, 'nameservers': {'search': ['domain.tld'], 'addresses': ['1.2.3.4']}, 'routes': [{'to': '1.2.3.254/32', 'via': '0.0.0.0', 'scope': 'link'}]}}
DEBUG:Merged config:
network:
bonds: {}
bridges: {}
ethernets:
ens18:
addresses:
- 1.2.3.4/32
dhcp4: false
dhcp6: false
gateway4: 1.2.3.254
nameservers:
addresses:
- 1.2.3.4
search:
- domain.tld
routes:
- scope: link
to: 1.2.3.254/32
via: 0.0.0.0
ens19:
dhcp4: true
dhcp6: false
vlans: {}
wifis: {}
DEBUG:Skipping non-physical interface: lo
DEBUG:device ens18 operstate is up, not changing
DEBUG:device ens19 operstate is up, not changing
DEBUG:{}
DEBUG:netplan triggering .link rules for lo
DEBUG:netplan triggering .link rules for ens18
DEBUG:netplan triggering .link rules for ens19
重启后同样存在问题
root@web:~# ip addr show dev ens19
3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 12:87:10:bf:35:c5 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.3/8 brd 10.255.255.255 scope global dynamic ens19
valid_lft 602786sec preferred_lft 602786sec
inet6 fe80::1087:10ff:febf:35c5/64 scope link
valid_lft forever preferred_lft forever
root@web:~# ip route show dev ens19
10.0.0.0/8 proto kernel scope link src 10.0.0.3
答案1
请添加此配置:
network:
renderer: networkd
ethernets:
ens18:
addresses: [1.2.3.4/24]
gateway4: 1.2.3.254
dhcp4: no
dhcp6: no
nameservers:
search: [domain.tld]
addresses: [123.456.789.101]
routes:
- to: 1.2.3.254/32
via: 0.0.0.0
scope: link
ens19:
dhcp4: true
dhcp6: no
version: 2
无需重启
sudo netplan --debug apply
请粘贴此输出
答案2
您确定您的 DHCP 中需要大约 1700 万台主机吗?
10.0.0.0/8是一个很大的(非常大的网络)也许这就是导致它速度变慢的原因。但是你可以这样做:
ens19:
dhcp4: true
dhcp6: true
optional: true
这应该可以解决启动缓慢的问题,或者改变(如果可以的话)你的网络规模。
答案3
99-disable-network-config.cfg
在我创建目录中的 文件之前,我遇到了同样的问题/etc/cloud/cloud.cfg.d/
。该文件的内容如下。
network: {config: disabled}
该命令禁用 cloud-init 的网络配置功能,如目录50-cloud-init.yaml
中的文件中注释部分所述/etc/netplan/
。
我的配置现在可以经受多次重启。