Centos 7 中网卡重命名及网乱序解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 7 中网卡重命名及网乱序解决方案相关的知识,希望对你有一定的参考价值。

参考技术A

从 /lib/udev/rules.d 可提取出网卡名称相关的配置文件:

60-net.rules
使用 /lib/udev/rename_device 这个程序,去查询 /etc/sysconfig/network-scripts/ 下所有以ifcfg-开头的文件
如果在 ifcfg-xx 中匹配到 HWADDR=xx:xx:xx:xx:xx:xx 参数的网卡接口
则选取 DEVICE=yyyy 中设置的名字作为网卡名称。

71-biosdevname.rules
如果系统中安装了 biosdevname ,且内核参数未指定 biosdevname=0 ,且上一步没有重命名网卡,则按照 biosdevname 的命名规范,从BIOS中取相关信息来命名网卡。
主要是取 SMBIOS 中的 type 9 (System Slot) 和 type 41 (OnboardDevices Extended Information)
不过要求 SMBIOS 的版本要高于2.6,且系统中要安装 biosdevname 程序。

75-net-description.rules
udev 通过检查网卡信息,填写如下这些 udev 的属性值
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
ID_NET_NAME_MAC

80-net-name-slot.rules
如果在 60-net.rules , 71-biosdevname.rules 这两条规则中没有重命名网卡,且内核未指定 net.ifnames=0 参数
则 udev 依次尝试使用以下属性值来命名网卡,如果这些属性值都没有,则网卡不会被重命名。
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH

硬件:戴尔服务器
系统: Centos 7
千兆网卡:1,(4个接口)
万兆网卡:1(2个接口)
网卡 1 mac:00:0c:29:6e:8e:40

1 .网卡重命名测试

测试用例 :修改网卡1 的配置文件,步骤为添加文件 /etc/sysconfig/network-scripts/ifcfg-eth0

在上面的条件下,分别使用不同只的 biosdevname 和 net.ifnames ,然后重启查看网卡名称

测试结果

2. 网卡乱序测试

测试用例

测试结果

结论

在不修改 udev 规则的条件下, /etc/sysconfig/network-scripts/ 的 ifcfg-* 文件的优先最高。在 ifcfg-* 文件中将 DEVICE 和 mac 绑定后重命名网卡名称和避免网卡乱序。

centos 网卡重命名

    centos网卡重命名


    在cento卡模块就是网卡的驱动程序,驱动程序是一种可以使计算机和设备通信的特殊程序,是硬件厂商根据操作系统编写的配置文件,是添加到操作系统中的一小块代码,其中包含有关硬件设备的信息,相当于硬件的接口,操作系统只能通过这个接口,才能控制硬件设备的工作,s网如若系统没有加载网卡模块,则无法识别硬件物理网卡。

    在centos6中查看系统所使用的网络驱动ethtool工具:

[[email protected] ~]# ethtool -i eth0           #查看网卡驱动
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: 
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
[[email protected] ~]# modprobe -r e1000     #卸载网卡驱动后,ssh等断开
######################通过桌面终端查看验证###########################
[[email protected] ~]# ifconfig              #卸载网卡驱动后,只有环回口                        
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:60 errors:0 dropped:0 overruns:0 frame:0
          TX packets:60 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5280 (5.1 KiB)  TX bytes:5280 (5.1 KiB)
[[email protected] net]# cd /lib/modules/2.6.32-696.el6.x86_64/kernel/drivers/net
[[email protected] net]# ll |grep e100      #查看相关驱动安装的位置
drwxr-xr-x.  2 root root   4096 Jul 14 10:39 e1000
drwxr-xr-x.  2 root root   4096 Jul 14 10:39 e1000e
-rwxr--r--.  1 root root  66400 Mar 22 03:45 e100.ko
[[email protected] net]# modprobe e1000     #装载系统网卡模块

在Linux系统之上一切皆文件,网卡的命名同样由相关配置文件组成,在centos6中网卡的启动识别文件/etc/udev/rules.d/70-persistent-net.rules,通过修改此配置文件即可实现网卡的重命名,具体可是将网卡重命名分为两步:

第一步:修改/etc/udev/rules.d/70-persistent-net.rules配置文件

    第二步:修改/etc/sysconfig/network-scripts/ifcfg-eth*中的 DEVICE=***和NAME=***配置文件

    具体可参考如下实例:

[[email protected]  ~]# sed -i ‘s/eth0/eth-DB1/;s/eth1/eth-DB2/‘  /etc/udev/rules.d/70-persistent-net.rules                                              #第一步:通过sed处理 文件名字更改  

[email protected] ~]#  cat /etc/udev/rules.d/70-persistent-net.rules

# This file was  automatically generated by the /lib/udev/write_net_rules

# program, run  by the persistent-net-generator.rules rules file.

# You can modify  it, as long as you keep each rule on a single

# line, and change  only the value of the NAME= key.

# PCI device  0x8086:0x100f (e1000)

SUBSYSTEM=="net",  ACTION=="add", DRIVERS=="?*",  ATTR{address}=="00:0c:29:ad:7b:c1", ATTR{type}=="1",  KERNEL=="eth*", NAME="eth-DB1"

# PCI device  0x8086:0x100f (e1000)

SUBSYSTEM=="net",  ACTION=="add", DRIVERS=="?*",  ATTR{address}=="00:0c:29:ad:7b:cb", ATTR{type}=="1",  KERNEL=="eth*", NAME="eth-DB2"

[[email protected]  ~]#                                 #第二步:修改配置文件中的设备name

sed -i  ‘s/eth0/eth-DB1/g‘ /etc/sysconfig/network-scripts/ifcfg-eth0

[[email protected]  ~]#                                 #第三步:修改配置文件中的设备name

sed -i ‘s/eth1/eth-DB2/g‘  /etc/sysconfig/network-scripts/ifcfg-eth1

[[email protected]  ~]# modprobe -r e1000               #卸载驱动模块或重启机器

###############################通过桌面终端查看验证############################

[[email protected]  ~]# modprobe e1000                  #重新加载驱动模块

[[email protected]  ~]# ip a

1: lo:  <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd  00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft  forever

8: eth-DB1:  <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP  qlen 1000                                                         #验证说明配置文件已更改

    link/ether 00:0c:29:ad:7b:c1 brd  ff:ff:ff:ff:ff:ff

    inet 192.168.100.128/24 brd  192.168.100.255 scope global eth-DB1

    inet6 fe80::20c:29ff:fead:7bc1/64 scope  link

       valid_lft forever preferred_lft  forever

9: eth-DB2:  <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP  qlen 1000                                                         #验证说明配置文件已更改

    link/ether 00:0c:29:ad:7b:cb brd  ff:ff:ff:ff:ff:ff

    inet 172.18.253.115/16 brd 172.18.255.255  scope global eth-DB2

    inet6 fe80::20c:29ff:fead:7bcb/64 scope  link

       valid_lft forever preferred_lft  forever

     在centos7中,正常情况下网卡的命名过程如下:

     第一步:
       udev, 辅助工具程序/lib/udev/rename_device/usr/lib/udev/rules.d/60-net.rules
     第二步:
       biosdevname会根据/usr/lib/udev/rules.d/71-biosdevname.rules
     第三步:
       通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description
       ID_NET_NAME_ONBOARD
       ID_NET_NAME_SLOT
       ID_NET_NAME_PATH

      如若采用传统的网卡命名则采用如下方式:

1./etc/default/grub and add net.ifnames=0 biosdevname=0 to line GRUB_CMDLINE_LINUX,
2.grub2-mkconfig -o /boot/grub2/grub.cfg            #修改开启启动引导文件,执行命令重新生效
3.vim /etc/sysconfig/network-scripts/ifcfg-eno1     #编辑配置网卡配置文件
......
NAME=eth0                                           #修改name和设备名称
DEVICE=eth0
4. mv /etc/sysconfig/network-scripts/ifcfg-eno1 /etc/sysconfig/network-scripts/ifcfg-eth0 
5. shutdown -r now                                  #修改网卡1和网卡2位eth0和eth1



本文出自 “11831715” 博客,请务必保留此出处http://11841715.blog.51cto.com/11831715/1958144

以上是关于Centos 7 中网卡重命名及网乱序解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Centos 7中的网卡一致性命名规则

vm 安装centos 7无网卡配置文件解决方法

centos 网卡重命名

修改Linux/Centos 7下的默认网卡名

Centos7中的网卡一致性命名规则网卡重命名方法

新安装的Centos 7系统怎么将网卡名称改为eth0