记一次linux 如何更改网卡的顺序

在使用维护过程中,经常因为添加更换网卡导致网卡的顺序产生不一至的现象

1、启动流程

1)linux内核一般会在rc.sysinit里执行/sbin/udevd -d开始执行udev程序

2)执行udev的过程中会检测所有设备,并根据不同的设备来加载不同的驱动

3)加载完相应设备的驱动后,udev会收到一个该设备的内核事件,udev会根据相应的事件来匹配相应的规则,或者是执行某些脚本修改设备名重新书写规则(rules)

4)当规则生成后,当再次产生此设备的内核事件时,则首先会匹配这些规则

这里要注意udev的两点:

1)我们可以通过udev来修改任何设备的名字

2)在我们没修改名字之前,内核已经给给设备分配了名字(值得注意这点,否则修改的名字和内核给其他设备分配的名字冲突,则会修改失败)

2、不同的网卡设备

目前为止我已知的网卡有如下几种(都是intel的):

网卡型号 所用驱动

8086:1502 e1000e

8086:10d3 e1000e

8086:150e igb

8086:105e e1000e

8086:1521 igb

这只是我接触的几种网卡,不同种类的驱动对网卡端口的命名还是会有影响的

3.pci接口的bus id号

-bash-3.2# lspci -n –D grep 0200

0000:00:19.0 0200: 8086:1502 (rev 05)

0000:01:00.0 0200: 8086:150e (rev 01)

0000:01:00.1 0200: 8086:150e (rev 01)

0000:01:00.2 0200: 8086:150e (rev 01)

0000:01:00.3 0200: 8086:150e (rev 01)

0000:03:00.0 0200: 8086:105e (rev 06)

0000:03:00.1 0200: 8086:105e (rev 06)

0000:04:00.0 0200: 8086:10d3

我们通过lspci -n -D可以查看所有的连在pci接口上的设备的busid号(第一列)和设备型号(最后一列)的对应列表,这里的0200代表的是网卡设备,通过大量的实验发现,无论网口的名字(eth*)怎么变化,在同一台机器上,他们的busid号是不变的。这里的8086:1502,8086:10d3是主板自带的两个端口,8086:150e是一个4口的Intel网卡,8086:105e是一个两口的intel网卡。由此,在这一型号的机器上,这一型号的网卡上,可已通过busid号,网卡型号来固定网口名。

2、shell编写过程

  1. 查看目录/etc/udev/rules.d/70-persistent-net.rules 

问题发现:没有这个文件,自己手动创建也不好使,重启的时候不会执行

/lib/udev/write_net_rules这个脚本都不存在,应该是生成不了。

编写文件

 命名完规则之后,网卡名称和pci的对应关系地方

 

 ----------暂时未完成还差一些测试和总结,以后有机会在继续研究------------------------------

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敬业小码哥

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值