01-Redhat/Centos7网卡命名介绍及修改方式
1. Redhat/Centos7网卡命名介绍1.1 网络设备命名Redhat/Centos7提供在网络接口中使用新的网络设备命名方法。这些功能会更改系统中的网络接口名称,以便定位和区分这些接口。 1.2 命名方案层级结构默认情况下,systemd会使用以下策略,采用支持的命名方案为接口命名:
这个策略(如上所述)是默认策略。如果该系统已启用biosdevname,则会使用该方案。注:启用biosdevname需要添加biosdevname=1作为命令行参数(Dell系统除外),此时只要安装biosdevname,就会默认使用该方案。如果用户已添加udev规则,该规则会更高内核设备名称,则会优先使用这些规则。 1.3 设备重命名过程设备命名过程如下:
文件中的规则会让udev帮助工具/lib/udev/rename_device查看所有/etc/sysconfig/network-scripts/ifcfg-suffix文件。如果发现包含HWADDR条目的ifcfg文件与某个接口的MAC地址匹配,它会将该接口重命名为ifcfg文件中由DEVICE指令给出的名称。 例,如下配置文件网卡则以eth0命名: [[email?protected] rules.d]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 NAME=eth0 UUID=e073eeeb-ecba-4481-841f-539454d90a6f DEVICE=eth0 ONBOOT=yes HWADDR=00:0c:29:7c:4a:f8
文件中的规则让biosdevname根据其命名策略重命名该接口,即在上一步中没有重命名该接口、已安装biosdevname、且在boot命令行中将biosdevname=0作为内核命令给出。
文件中的规则让udev通过检查网络接口设备,填写内部udev设备属性值ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。注:有些设备属性可能处于未定义状态。
文件中的规则让udev重命名该接口,优先顺序如下:ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。并提供如下信息:没有在步骤1或2中重命名该接口,同时未给出内核参数net.ifnames=0。如果一个参数未设定,则会按列表的顺序设定下一个。如果没有设定任何参数,则不会重命名该接口。 1.4 网卡命名规则1.4.1?net.ifnames规范根据接口类型以两个字母开头(net.ifnames规范): 说明:设备类型+设备位置+数字
例: eno1 板载网卡 enp0s2 ?pci网卡 ens33 ??pci网卡 wlp3s0 ?PCI无线网卡 wwp0s29f7u2i2 ??4G modem wlp0s2f1u4u1 ??连接在USB Hub上的无线网卡 enx78e7d1ea46da pci网卡 1.4.2 biosdevname规范dell开发 例: em1 板载网卡 p3p4 pci网卡 p3p4_1 虚拟网卡
?
2. Redhat/Centos7修改网卡名如系统BIOS符合要求,且系统中安装了biosdevname,且biosdevname=1启用,则biosdevname优先; 如果BIOS不符合biosdevname要求或biosdevname=0,则仍然是systemd的规则优先。 如果用户自己定义了udev rule来修改内核设备名字,则用户规则优先。 内核参数组合使用的时候,其结果如下: 默认内核参数(biosdevname=0,net.ifnames=1): ?网卡名 "enp5s2" biosdevname=1,net.ifnames=0:网卡名 "em1" biosdevname=0,net.ifnames=0:网卡名 "eth0" (最传统的方式,eth0 eth1 傻傻分不清) 2.1 方法一说明:修改/etc/sysconfig/grub文件,在GRUB_CMDLINE_LINUX配置中添加"net.ifnames=0 biosdevname=0" 评价:如果系统同时存在光卡、电卡,因为不同网卡驱动加载时间不同,会出现网卡乱序现象,如:2光2电的网口,出现一光一电交错出现的现象。 1. 修改/etc/sysconfig/grub文件 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed ‘s,release .*$,g‘ /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0" GRUB_DISABLE_RECOVERY="true" 2. 生成grub配置 grub2-mkconfig -o /boot/grub2/grub.cfg 3. 修改网卡配置文件 [[email?protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=a88bc211-429d-4a00-8e52-1fa11c811b7f DEVICE=eth0 ONBOOT=yes 4. 重启操作系统 shutdown -h now 2.2 方法二原理同第一种方法,但是在安装系统时配置 1. 进入系统安装界面,将光标移动到Install CentOS7,根据系统提示使用Tab或者e 2. 编辑grub配置 3. 设置网卡选项,发现网卡名称为eth0 2.3 方法三修改/usr/lib/udev/rules.d/60-net.rules更改网卡名,因为mac地址与网卡名一一对应,所以不会出现网卡乱序的现象。 注意:使用以下脚本,网卡配置文件需要存在,使用后如果网卡启动,不能同时多个网卡使用dhcp获取IP模式,否则network网络服务重启会报错 1. 脚本配置文件 #原网卡名 新网卡名 eno1 eth0 eno2 eth1 eno3 eth2 2. 脚本内容 #!/bin/bash inforfile=$1 >testfile cat $1 | egrep -v ‘^#|^#‘ | while read line do src_name=$(echo ${line} | awk ‘{print $1}‘) dst_name=$(echo ${line} | awk ‘{print $2}‘) mac_=$(ifconfig ${src_name} | awk ‘/ether/{print $2}‘) a=‘ACTION=="add",SUBSYSTEM=="net",DRIVERS=="?*",ATTR{type}=="1",ATTR{address}=="‘ b=‘",NAME="‘ c=‘",GOTO="net_end"‘ echo $a$mac_$b$dst_name$c >> testfile cp -a /etc/sysconfig/network-scripts/ifcfg-${src_name} ./ifcfg-${src_name}.backup sed -i -e "/^DEVICE/s/DEVICE=.*/DEVICE=${dst_name}/g" -e "/^NAME/s/NAME=.*/NAME=${dst_name}/g" /etc/sysconfig/network-scripts/ifcfg-${src_name} mv /etc/sysconfig/network-scripts/ifcfg-${src_name} /etc/sysconfig/network-scripts/ifcfg-${dst_name} done echo ‘ACTION=="add",PROGRAM="/lib/udev/rename_device",RESULT=="?*",NAME="$result"‘ >> testfile echo ‘LABEL="net_end"‘ >> testfile cp -a /lib/udev/rules.d/60-net.rules ./60-net.rules.backup cat testfile > /lib/udev/rules.d/60-net.rules 3. 脚本执行 sh change-nic.sh inforfile 2.4 自动生成ifcfg-xxx网卡配置文件的方法启动NetworkManager服务 systemctl start NetworkManager 使用nmcli # 创建通过dhcp获取IP的配置文件 nmcli connection add con-name default type ethernet ifname eth0 # 创建静态配置IP的配置文件 nmcli connection add con-name static type ethernet ifname eth0 ip4 192.168.0.111/24 gw4 192.168.0.254 参数详解: connection/con -- 连接 add -- 添加 default -- 默认dhcp获取IP type ethernet -- 以太网类型 ifname -- 接口名称 3.参考文档Redhat官方手册 https://www.jianshu.com/p/b66981dbb389 https://blog.51cto.com/zaa47/1927466 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |