启动虚拟机后,此时还查看不到新加的网卡:
[root@slave2 ~]# ifconfig
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
eth0 Link encap:Ethernet HWaddr08:00:27:04:05:16
inet addr:10.192.200.202 Bcast:10.192.200.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe04:516/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:321 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:33576 (32.7 KiB) TXbytes:5508 (5.3 KiB)
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:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0(0.0 b)
[root@slave2 ~]#cd /etc/sysconfig/network-scripts/
[root@slave2 network-scripts]# cp ifcfg-eth0 ifcfg-eth1
[root@slave2 network-scripts]# cat /etc/udev/rules.d/70-persistent-net.rules
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
# This file was automatically generated bythe /lib/udev/write_net_rules
# program, run by thepersistent-net-generator.rules rules file.
#
# You can modify it, as long as you keepeach rule on a single
# line, and change only the value of theNAME= key.
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net",ACTION=="add", DRIVERS=="?*",ATTR{address}=="08:00:27:04:05:16", ATTR{type}=="1",KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net",ACTION=="add", DRIVERS=="?*",ATTR{address}=="08:00:27:3a:ec:3c", ATTR{type}=="1", KERNEL=="eth*",NAME="eth1"
[root@slave2 network-scripts]# vi ifcfg-eth1
改下DEVICE,HWADDR,IPADDR,删除GATEWAY
修改后:
[root@slave2 network-scripts]# cat ifcfg-eth1
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
DEVICE=eth1
HWADDR=08:00:27:3a:ec:3c
TYPE=Ethernet
#UUID=a4610b15-fc38-4984-875d-208599054e37
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=10.0.0.2
NETMASK=255.255.255.0
注意:用于内连的网卡不能设置网关,否则会连不上网。
注意:MAC地址HWADDR一定得和/etc/udev/rules.d/70-persistent-net.rules文件中的eth1保持一致,否则servicenetwork restart会报错:
Bringing up interface eth1: Device eth1 does not seem to be present,delaying initialization.
[FAILED]
[root@slave2network-scripts]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface:[ OK ]
Bringing up interface eth0: Determining if ip address 10.192.200.202 isalready in use for device eth0...
[ OK ]
Bringing up interface eth1: Determining if ip address 10.0.0.2 is alreadyin use for device eth1...
[ OK ]
[root@slave2 network-scripts]# ifconfig
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
eth0 Link encap:Ethernet HWaddr 08:00:27:04:05:16
inet addr:10.192.200.202 Bcast:10.192.200.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe04:516/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3303 errors:0 dropped:0 overruns:0 frame:0
TX packets:343 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:339469 (331.5 KiB) TX bytes:49274 (48.1 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:3A:EC:3C
inet addr:10.0.0.2 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe3a:ec3c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:636 (636.0 b)
loLink encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
从 /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 绑定后重命名网卡名称和避免网卡乱序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)