在一次服务器例行重启维护后,发现网络无法联通,带外登录发现IP未能配置在网卡上。以下是一些排查步骤:
操作系统版本:Ubuntu 20.04.1 LTS
查看/etc/netplan路径下yaml文件配置,此前我配置了双网卡做bonding,配置文件01-netcfg.yaml中的内容如下:
network:
ethernets:
eno1: {}
eno2: {}
version: 2
renderer: networkd
bonds:
bond0:
addresses: [ 10.2.30.43/24 ]
gateway4: 10.2.30.3
interfaces:
- eno3
- eno4
parameters:
mode: active-backup
mii-monitor-interval: 100
nameservers:
addresses:
- 10.2.66.66
- 10.35.88.77
netplan默认使用networkd作为网路管理工具(yaml配置文件中也有renderer: networkd
字样),通过systemctl status systemd-networkd查看networkd的运行状态,无明显异常。
手工执行netplan --debug apply,有如下输出
DEBUG:command generate: running ['/lib/netplan/generate']
** (generate:1460): DEBUG: 14:26:04.184: Processing input file /etc/netplan/01-netcfg.yaml..
** (generate:1460): DEBUG: 14:26:04.184: starting new processing pass
** (generate:1460): DEBUG: 14:26:04.184: We have some netdefs, pass them through a final round of validation
** (generate:1460): DEBUG: 14:26:04.184: eno3: setting default backend to 1
** (generate:1460): DEBUG: 14:26:04.184: eno4: setting default backend to 1
** (generate:1460): DEBUG: 14:26:04.184: networkd: definition eno1 is not for us (backend 1)
** (generate:1460): DEBUG: 14:26:04.184: networkd: definition eno2 is not for us (backend 1)
发现日志输出就此止步,没有bond0网卡相关配置输出。
查看系统日志,发现如下信息:
systemd-udevd[1017]: /run/systemd/network/01-netcfg.yaml.link: No valid setting found in the [Match] section, ignoring file.
netplan在系统启动阶段会使用systemd-generator来生产对应的网络配置,同时查看/run/systemd/network路径下,未发现bond0网卡相关的配置。初步推断是netplan工具本身有问题。
经过一番查找,有其他案例也碰到过这样的情况,线索指向netplan的版本兼容性问题(相关链接:https://bugs.launchpad.net/ubuntu/+source/netplan.io/+bug/1922898),通过dpkg -l | grep netplan查看版本号为0.99,文中建议升级至102版本以规避该bug。
在软件仓库中http://security.ubuntu.com/ubuntu/pool/main/n/netplan.io/找到对应操作系统版本的netplan.io版本,推荐是netplan.io_0.102-0ubuntu1~20.04.1_amd64.deb,然后通过dpkg -i netplan.io_0.102-0ubuntu1~20.04.1_amd64.deb安装。安装成功后,再次通过dpkg -l | grep netplan查看版本是否已更新。
最后通过netplan apply重启,发现配置成功生效。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。