深圳网站推广中关村在线官网入口
news/
2025/10/1 12:01:08/
文章来源:
深圳网站推广,中关村在线官网入口,洛可可设计公司主页,西安景点网页设计Linux网卡命名规则
网卡命名
一、为什么需要这个 服务器通常有多块网卡#xff0c;有板载集成的#xff0c;同时也有插在PCIe插槽的。Linux系统的命名原来是eth0,eth1这样的形式#xff0c;但是这个编号往往不一定准确对应网卡接口的物理顺序。 为解决这类问题有板载集成的同时也有插在PCIe插槽的。Linux系统的命名原来是eth0,eth1这样的形式但是这个编号往往不一定准确对应网卡接口的物理顺序。 为解决这类问题dell开发了biosdevname方案。 systemd v197版本中将dell的方案作了进一步的一般化拓展。 目前的Centos既支持dell的biosdevname也支持systemd的方案。
二、Centos7中的命名策略 Scheme 1: 如果从BIOS中能够取到可用的板载网卡的索引号则使用这个索引号命名例如: eno1如不能则尝试Scheme 2 Scheme 2: 如果从BIOS中能够取到可以用的网卡所在的PCI-E热插拔插槽(注pci槽位号)的索引号则使用这个索引号命名例如: ens1如不能则尝试Scheme 3 Scheme 3如果能拿到设备所连接的物理位置PCI总线号槽位号信息则使用这个信息命名例如:enp2s0如不能则尝试Scheme 5 Scheme 5传统的kernel命名方法例如: eth0这种命名方法的结果不可预知的即可能第二块网卡对应eth0第一块网卡对应eth1。 Scheme 4 使用网卡的MAC地址来命名这个方法一般不使用。
三、biosdevname和net.ifnames两种命名规范
net.ifnames的命名规范为: 设备类型设备位置数字
设备类型 en 表示Ethernet wl 表示WLAN ww 表示无线广域网WWAN
实际的例子: eno1 板载网卡 enp0s2 pci网卡 ens33 pci网卡 wlp3s0 PCI无线网卡 wwp0s29f7u2i2 4G modem wlp0s2f1u4u1 连接在USB Hub上的无线网卡 enx78e7d1ea46da pci网卡
biosdevname的命名规范为
实际的例子: em1 板载网卡 p3p4 pci网卡 p3p4_1 虚拟网卡 四、systemd中的实际执行顺序 按照如下顺序执行udev的rule
1./usr/lib/udev/rules.d/60-net.rules
2./usr/lib/udev/rules.d/71-biosdevname.rules
3./lib/udev/rules.d/75-net-description.rules
4./usr/lib/udev/rules.d/80-net-name-slot.rules
160-net.rules 使用/lib/udev/rename_device这个程序去查询/etc/sysconfig/network-scripts/下所有以ifcfg-开头的文件如果在ifcfg-xx中匹配到HWADDRxx:xx:xx:xx:xx:xx参数的网卡接口则选取DEVICEyyyy中设置的名字作为网卡名称。
271-biosdevname.rules 如果系统中安装了biosdevname且内核参数指定biosdevname1且上一步没有重命名网卡则按照biosdevname的命名规范从BIOS中取相关信息来命名网卡。 主要是取SMBIOS中的type 9 (System Slot) 和 type 41 (Onboard Devices Extended Information)不过要求SMBIOS的版本要高于2.6且系统中要安装biosdevname程序。
375-net-description.rules udev通过检查网卡信息填写如下这些udev的属性值 ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH ID_NET_NAME_MAC
480-net-name-slot.rules 如果在60-net.rules 71-biosdevname.rules这两条规则中没有重命名网卡且内核指定net.ifnames1参数则udev依次尝试使用以下属性值来命名网卡如果这些属性值都没有则网卡不会被重命名。 ID_NET_NAME_ONBOARD ID_NET_NAME_SLOT ID_NET_NAME_PATH 上边的71-biosdevname.rules 是实际执行biosdevname的策略 75-net-description.rules和80-net-name-slot.rules实际执行上面策略的1,2,3。 根据上述的过程可见网卡命名受 biosdevname和net.ifnames这两个内核参数影响。 这两个参数都可以在grub配置中提供。 biosdevname0是系统默认值dell服务器默认是1net.ifnames1是系统默认值:
修改默认参数如回归默认命名方式
1.编辑内核参数 在GRUB_CMDLINE_LINUX中加入net.ifnames0即可 [rootcentos7 ~]$vim /etc/default/grub GRUB_CMDLINE_LINUXcrashkernelauto net.ifnames0 rhgb quiet
2.为grub2生成配置文件 编辑完grub配置文件以后不会立即生效需要生成配置文件。 [rootcentos7 ~]$grub2-mkconfig -o /etc/grub2.cfg 第二节所说的Scheme的策略顺序是系统默认的。 如系统BIOS符合要求且系统中安装了biosdevname且biosdevname1启用则biosdevname优先 如果BIOS不符合biosdevname要求或biosdevname0则仍然是systemd的规则优先。 如果用户自己定义了udev rule来修改内核设备名字则用户规则优先。
内核参数组合使用的时候其结果如下 默认内核参数(biosdevname0net.ifnames1): 网卡名 enp5s2 biosdevname1net.ifnames0网卡名 em1 biosdevname0net.ifnames0网卡名 eth0 (最传统的方式,eth0 eth1 傻傻分不清) 修改网卡名优先级
/lib/sysytemd/network/99-default.link
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923820.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!