udev绑定多网卡名称

作者:独笔孤行@TaoCloud

一、问题概况

Linux系统使用中,服务器重启后,网卡名称改变、网口名称调换导致之前的网络配置失效,而必须重新配置网络才将网络环境恢复正常,是一个既常见又头疼的问题,CentOS/RedHat环境出现频率相对低一点,而在Ubuntu、kylin、deepin出现频率很高,有时几乎成了必现问题。开始遇到这种问题只能不断的重启机器,至于重启能不能解决完全看运气。后来讲过调查找了解决此问题的办法。一劳永逸。

二、问题表现

服务器重启后,原来的网口名称ens192、ens224名称变成其他名称,或ens192和ens224网口名称位置互换。

三、处理措施

1.进入系统后,以root用户权限,编辑配置文件 /etc/default/grub ,并配置GRUB_CMDLINE_LINUX_DEFAULT参数值内容,保证原有参数值内容不变,加入新的参数值内容"net.ifnames=0 biosdevname=0",配置后情况如下:

vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"

2.重新生成grub文件,执行如下命令:

grub-mkconfig -o /boot/grub/grub.cfg

执行命令后会产生如下内容:

root@ubuntu-node1:~# grub-mkconfig -o /boot/grub/grub.cfg 
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-21-generic
Found initrd image: /boot/initrd.img-4.4.0-21-generic
done

注:操作完以上步骤后,原来的网卡名称ens192、ens224会变成eth0、eth1.

3.手动编辑创建网卡绑定文件 /etc/udev/rules.d/70-persistent-net.rules, 网口名称通过该文件进行永久绑定,并写入如下内容,该文件通过mac地址将网卡与网卡名称进行绑定。

vi /etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:99:e1:59", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:99:66:07", KERNEL=="eth*", NAME="eth1"

相关内容说明:

保持以上内容格式不变,配置参数名 ATTR{address} 与 NAME 为正确的参数值,参数值可通过命令 "ip a" 进行查看。

ATTR{address} 参数值为ip a命令查看获取的mac地址

NAME 参数值为ip a 命令查看获取的网口名称

注:以上实践过程环境为Ubuntu,其他环境方法类似,部分参数可能有调整

关注公众号“云实战”,欢迎更多问题咨询
udev绑定多网卡名称

猜你喜欢

转载自blog.51cto.com/9099998/2495020