linux 修改网卡名称
在centos7的时候,我们习惯了em1这样的网络设备命名,在centos8发现网络设备变成了eno1这样的命名。
centos这种变化的原因是由于systemd和udev引入了一种新的网络设备命名方式:
一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING)
服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的。
Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的物理顺序。
为解决这类问题,dell开发了biosdevname方案(systemd v197版本中将dell的方案作了进一步的一般化拓展)。
目前的Centos既支持dell的biosdevname,也支持systemd的方案。
为了满足我们k8s集群相应的网络名称统一,统一使用eno 模式(按centos 8的名称来)
具体操作
biosdevname的命名规范为:
实际的例子:
em1 板载网卡
p3p4 pci网卡
p3p4_1 虚拟网卡
net.ifnames命名规范为:设备类型+设备位置+数字
设备类型:
en 表示Ethernet
wl 表示WLAN
ww 表示无线广域网WWAN
这两个参数都可以在grub配置中提供,biosdevname=0是系统默认值(dell服务器默认是1),net.ifnames=1是系统默认值。
我们服务器是dell 的所以最终的规则可以配置为下图
grub2-mkconfig -o /boot/grub2/grub.cfg
cd /etc/sysconfig/network-scripts/
mv ifcfg-em3 ifcfg-eno3
vim ifcfg-eno3
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno3
DEVICE=eno3
ONBOOT=yes
IPADDR=192.168.8.205
reboot 重启系统就可以生效了
上面这种方式不推荐
我推荐下面的修改方式
如果用户自定义了rules文件(一般命名为70-persistent-net.rules),放在/etc/udev/rules.d/目录下,则这个优先级是最高的;比ifcfg-xx方式优先级更高,但是如果两者不一致,则在重启network服务时,会依据/etc/udev/rules.d下的用户定制配置文件
直接在/etc/udev/rules.d/中创建或修改70-persistent-net.rules文件,加上或修改信息为:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME=="eno1"
vim ifcfg-eno1
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno3
DEVICE=eno3
ONBOOT=yes
IPADDR=192.168.8.205
就可以重启电脑了
参考文章
https://blog.csdn.net/jerryleon007/article/details/123401643
https://www.cnblogs.com/yanh0606/p/10910808.html