CentOS/RHEL7环境下更改网卡名称为CentOS6的传统命名规则

news2024/11/27 9:41:27

图片

图片

CentOS/RHEL7网卡命名规则介绍

图片

图片

传统的Linux服务器网卡的名称命名方式是从eth0,eth1,eth2....这种方式命名的,但是这个编号往往不一定准确对应网卡接口的物理顺序,常规模式下我们使用的服务器设备可能只有一张网卡,若网卡较多的情况下可能存在网卡乱序的问题。

从CentOS/RHEL7 起,可预见的命名规则变成了默认,通过这一规则,接口名称被自动基于固件,拓补结构和位置信息来确定。即使添加或者移除网络设备,接口名称仍然可以保持固定,而无需重新枚举,换掉的硬件也可以做到无缝替换。

目前新的命名规则有两种方式:Biosdevname & net.ifnames

默认情况下,systemd 会使用以下策略,采用支持的命名方案为接口命名:

  • 方案 1:如果固件或 BIOS 信息适用且可用,则使用整合了为板载设备提供索引号的固件或 BIOS 的名称(例如:eno1),否则请使用方案 2。
  • 方案 2:如果固件或 BIOS 信息适用且可用,则使用整合了为 PCI 快速热插拔插槽提供索引号的固件或 BIOS 名称(例如 ens1),否则请使用方案 3。
  • 方案 3:如果硬件连接器物理位置信息可用,则使用整合了该信息的名称(例如:enp2s0),否则请使用方案 5。
  • 方案 4:默认不使用整合接口 MAC 地址的名称(例如:enx78e7d1ea46da),但用户可选择使用此方案。
  • 方案 5:传统的不可预测的内核命名方案,在其他方法均失败后使用(例如:eth0)。

这个策略(如上所述)是默认策略。如果该系统已启用 biosdevname,则会使用该方案。注:启用 biosdevname 需要添加 biosdevname=1 作为内核命令行参数(Dell 系统除外),此时只要安装 biosdevname,就会默认使用该方案。如果用户已添加 udev 规则,该规则会更改内核设备名称,则会优先使用这些规则。

了解设备重命名过程

设备命名过程如下:

1、/usr/lib/udev/rules.d/60-net.rules 文件中的规则会让 udev 帮助工具 /lib/udev/rename\_device 查看所有 /etc/sysconfig/network-scripts/ifcfg-suffix 文件。如果发现包含 HWADDR 条目的 ifcfg 文件与某个接口的 MAC 地址匹配,它会将该接口重命名为 ifcfg 文件中由 DEVICE 指令给出的名称。

2、/usr/lib/udev/rules.d/71-biosdevname.rules 中的规则让 biosdevname 根据其命名策略重命名该接口,即在上一步中没有重命名该接口、已安装 biosdevname、且在 boot 命令行中将 biosdevname=0 作为内核命令给出。

3、 /lib/udev/rules.d/75-net-description.rules 中的规则让 udev 通过检查网络接口设备,填写内部 udev 设备属性值 ID\_NET\_NAME\_ONBOARD、ID\_NET\_NAME\_SLOT、ID\_NET\_NAME\_PATH。注:有些设备属性可能处于未定义状态。

4、 /usr/lib/udev/rules.d/80-net-name-slot.rules 中的规则让 udev 重命名该接口,优先顺序如下:ID\_NET\_NAME\_ONBOARD、ID\_NET\_NAME\_SLOT、ID\_NET\_NAME\_PATH。并提供如下信息:没有在步骤 1 或 2 中重命名该接口,同时未给出内核参数 net.ifnames=0。如果一个参数未设定,则会按列表的顺序设定下一个。如果没有设定任何参数,则不会重命名该接口。

第 3 步和第4 步采用命名规则 1、2、3,可自选方案 4 。

使用 BIOSDVNAME 保持网络设备命名一致

通过 biosdevname udev 帮助程序实施此功能,可将所有内嵌网络接口名称、PCI 卡网络接口名称、以及现有eth[0123…] 的虚拟功能网络接口名称改为新的命名规范。

biosdevname 命名惯例

图片

图片

系统要求

biosdevname 程序使用来自系统BIOS 的信息,特别是 SMBIOS 中包含。type 9(系统插槽)和 type 41(板载设备扩展信息)字段。如果系统的 BIOS 没有 SMBIOS 版本 2.6 或更高版本和这个数据,则不会使用新的命名规则。大多数老硬件不支持这个功能,因为缺少有正确 SMBIOS 版本的 BIOS 和字段信息。

必须安装 biosdevname 软件包方可或使用这个功能。要安装这个软件包,请作为 root 用户运行以下命令:

yum install biosdevname

启用和禁用该功能

要禁用这个功能,请在安装过程中及安装后,在 boot 命令行中使用以下选项:

biosdevname=0

要启用这个功能,请在安装过程中及安装后,在 boot 命令行中使用以下选项:

biosdevname=1

除非系统达到最低要求,否则会忽略这个选项,同时系统会使用 systemd 命名方案。

如果指定 biosdevname 安装选项,那么它就必须在该系统的声明周期内作为其引导选项使用。

控制网络设备名称选择

可以如下方式控制设备命名:

根据网络接口设备识别

在 ifcfg 文件中使用 HWADDR 指令设定 MAC 地址,这样就可由 udev 识别。会从 DEVICE 指令提供的字符串中提取该名称,根据惯例,该名称应使用与 ifcfg 相同的后缀。例如:ifcfg-eth0。

通过打开或关闭 biosdevname

可使用由 biosdevname 提供的名称(如果 biosdevname 可确定)。

通过打开或关闭 systemd-udev 的命名方案

可使用由systemd-udev 提供的名称(如果 systemd-udev 可确定)。

禁用一致网络设备命名:

请选择以下方法之一禁用一致网络设备命名:

1、通过屏蔽默认策略中的 udev 规则文件,禁止分配固定名称,以便重新使用不可预期的内核名称。可为 /dev/null 生成一个符号链接完成“屏蔽”。请作为 root 用户运行以下命令:

ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

2、创建自己的手动命名方案。例如:将接口命名为 “internet0”、“dmz0” 或 “lan0”。要创建自己的 udev 规则文件,并为那些设备设置 NAME 属性。确定在使用默认策略文件前使用该文件。例如:将其命名为 /etc/udev/rules.d/70-my-net-names.rules。

3、修改策略文件,使其选择不同的命名方案后。例如:默认根据接口的 MAC 地址命名所有接口。作为 root 复制默认策略文件,如下:

cp /usr/lib/udev/rules.d/80-net-name-slot.rules /etc/udev/rules.d/80-net-name-slot.rules

4、在 /etc/udev/rules.d/ 目录中编辑文件,并根据需要修改。

在 GRUB 2 菜单的内核命令行中添加以下指令

net.ifnames=0

更新所有 GRUB 2 内核菜单条目,作为 root 用户输入以下命令:

grub2-mkconfig -o /boot/grub2/grub.cfg

PS:以上内容引用Redhat官方文章,并有做部分修改:

https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/ch-consistent_network_device_naming

若要使用旧的方式去命名网卡该如何处理?

图片

图片

以上介绍了关于CentOS/RHEL7命名规则,但在某些应用场景下,客户还是需要在CentOS/RHEL7的系统下采用CentOS6的命名规则,但这种情况下CentOS/RHEL7不能很好的支持,大概率会产生乱序问题;

一般做法如下:

我们需要手动修改grub文件,增加 net.ifnames=0 biosdevname=0

GRUB_CMDLINE_LINUX="CRASHKERNEL=auto net.ifnames=0 biosdevname=0 rhgb quiet"

再执行:

grub2-mkconfig -o /boot/grub2/grub.cfg

重启系统

然后添加udev规则:

在”/etc/udev/rules.d“目录中创建一个网卡规则”70-persistent-net.rules“,并写入下面的语句:

SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{type}=="1" ,KERNEL=="0000:08:00.1",NAME="eth0"
SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{type}=="1" ,KERNEL=="0000:08:00.2",NAME="eth1"
SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{type}=="1" ,KERNEL=="0000:58:00.1",NAME="eth2"
SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{type}=="1" ,KERNEL=="0000:58:00.2",NAME="eth3"

busid的获取方式为(其他网卡同理):

ethtool -i eth0
bus-info:0000:58:00.0

但此时网卡依然乱序:

图片

图片

我的某客户环境下,有4个网口(两个网卡,一个为intel x722,一个为博通千兆网卡),rules中无法使用eth0-eth3这几个命名(无效),目前猜测是由于系统有某些配置文件优先级高于70-persistent-net.rules(eth4之后的任何命名均不存在问题)。

从Redhat官方的解释来看,CentOS/RHEL7已经不支持这种命名方式,并不给与相关技术支持。

我们采取折中方法,根据客户实际机器网卡配置不同型号为切入口,调整驱动加载顺序,来解决客户的问题;

GRUB_CMDLINE_LINUX="CRASHKERNEL=auto net.ifnames=0 biosdevname=0 rdloaddriver=tg3 rdloaddriver=i40e rhgb quiet"

图片

图片

综上:若客户采用CentOS/RHEL7以上的系统,我们强烈建议不采用旧的方法进行网卡命名,若一定要采用该方法,则建议使用不同品牌网卡通过调整网卡驱动加载顺序的方式规避问题。

文章转载联想TSE技术文档

更多技术文档,请查阅365文档icon-default.png?t=N7T8https://www.365doc.com.cn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1177408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抖音10月榜单有哪些看点?

10月20日,抖音双11好物节在抖音平台正式开启抢跑,据数据显示,截止10月31日平台多项双11销售增长记录再次被刷新。 *新抖双十一活动也已开启,最高可省30788元,活动详情👉 抖音平台内大促氛围火爆&#xff0…

桶装水订水系统水厂送水小程序开发;

桶装水小程序正式上线,支持多种商品展示形式,会员卡、积分、分销等功能; 开发订水送水小程序系统,基于用户、员工、商品、订单、配送站和售后管理模块,对每个模块进行统计分析,简化了分配过程,提…

虹科教您 | 如何选择超声波储罐液位传感器(一)

在储罐中安装传感器时需要考虑: 1.避开障碍物 - 罐壁或罐内的其他障碍物会导致测距读数不准确。 2.放置会影响读数 - 初始的过滤设置是让传感器优先考虑大目标而不是小目标和噪音源。这有利于储罐液位监测的应用,因为液位往往会产生最大的返回声波。 …

ES 报错问题汇总

报错1: curl -XGET http://192.168.56.115:9200/_license解决方式 在 es/config/elasticsearch.yml文件,把开启密码验证把此处也修改成false xpack.security.enabled: false 报错2: 解决方式: 查看服务器es的license信息,发现 …

信驰达RF-DG-52PAS CC2652P Zigbee 3.0 USB Dongle烧录指南

一、使用前准备 RF-DG-52PAS是信驰达科技基于美国 TI CC2652P和CP2102为核心设计的Zigbee 3.0 USB Dongle,可烧录 Z-Stack 3.x.0协调器固件,可以直接连接到计算机或树莓派,通过ZHA或 Zigbee2MQTT连接到 Home Assistant或其他开源物联网平台。还可以烧录…

软件测试面试看这套全网最权威最全面的800+面试题,你值得拥有

想转行的,想跳槽涨薪的,想换一份更舒服更美好的工作的现在可以准备起来了。 软件测试作为IT届最亲民的门槛最低的准入行业,每年在这个时候会迎来很多的小白,在自学一段时间后,马上面临着面试的压力。 全网最权威最全…

【方法】Word文档如何防止更改?

做好的Word文档,担心查看的时候,不小心做了更改,除了可以将Word文档转换成PDF,还可以直接在Word文档里设置保护,防止更改,下面小编来分享3种常用的保护方法。 方法一:设置以“只读方式”打开文档…

CZ发布减半倒计时!暗示投资者熊转牛拐点即将到来?

近日,币安创始人兼首席执行官赵长鹏(CZ)在推特贴出一张时间表,引起百万人浏览热议,他似乎在暗示投资者,熊市转为牛市的拐点即将到来。 “4年周期,”赵长鹏在推特写道,附图标出比特币减半时间表,…

知识经济时代,学历提升行业如何通过软文实现长效发展

国家对于人才需求日益增长,学历提升行业具有广阔的发展前景,知识经济盛行,人们对于终身学习的需求愈发强烈,学历提升机构能够为人们提供进修、升学、转行等机会,帮助他们进行自我提升。 然而学历提升行业也面临市场竞…

seo而生的WordPress主题RabbitV3.0主题分享

seo而生的WordPress主题RabbitV3.0主题分享,是一款专注于SEO优化用途的WordPress主题,专为博客、自媒体、资讯类等类型网站SEO优化设计开发,自适应兼容手机、平板设备,支持前端用户中心,可以前端发布/投稿文章&#xf…

Vision China 2023(深圳)圆满落幕 | 51camera 2023年度展会完美收官

Vision China 2023深圳机器视觉展于10月30日-11月1日在深圳国际会展中心宝安新馆成功举办。7F06展台51camera携多项满足市场需求的创新性视觉产品与应用方案亮相现场,吸引了众多观众驻足咨询,火热人气氛围,成为展会现场的风景线。 7F06展台盛…

MS35657步进电机驱动器可兼容DRV8824

MS35657 是一款双通道 DMOS 全桥驱动器,可以驱动一个步进电机或者两个直流电机。可兼容DRV8824(功能基本一致,管脚不兼容)。每个全桥的驱动电流在 24V 电源下可以工作到 1.4A。MS35657 集成了固定关断时间的 PWM 电流校正器&#…

文案如何打动人心?这个技巧帮助你

在企业推广的大潮中,有一种推广方式是用户接受度较高,同时投放效果相对较好的,那就是软文推广,很多人了解软文推广的优势,但是在创作标题文案时常常感到困惑,导致推广效果好坏不一,不知道其中的…

计讯物联高精度GNSS接收机:担当小型水库大坝安全监测解决方案的“护航者”

应用背景 水库大坝作为水利工程建筑物,承担着灌溉、发电、供水、生态等重任。一旦水库大坝发生安全事故,后果将不堪设想。因此,水库大坝的安全监测对保障水利工程顺利运行具有重要意义。 计讯物联作为水利行业专家型企业,多年来…

亚马逊鲲鹏批量注册amazon买家号软件

亚马逊鲲鹏系统可全自动批量注册亚马逊买家号,自动输入账号信息、自动接收验证码、自动绑定添加的收货地址及支付卡。 功能: 1、单个或批量添加账号信息 2、批量绑定IP和指纹 3、批量绑定信用卡及收货地址 4、自动绑定及解绑手机号(需要注…

antv/x6 使用Stencil实现拖拽生成节点

antv/x6 使用Stencil实现拖拽生产节点 安装stencil插件引用Stencil初始化拖拽生成节点 安装stencil插件 npm install antv/x6-plugin-stencil2.1.4 --save引用Stencil <div id"stencil"></div>import { Stencil } from antv/x6-plugin-stencil// 初始化…

Sam Altman再出手,投资了两个不到20岁的RPA创业者

“AI到底是变革还是泡沫&#xff1f;” 作者 | 王王 首图来源&#xff1a;IndiaTimes Sam Altman又出手了。这次他投资了一个只有5个人的RPA早期团队Induced AI&#xff0c;两位联合创始人Aryan Sharma和Ayush Pathak&#xff0c;一个18岁&#xff0c;一个19岁。 不只是Sam A…

服务号能升级成订阅号吗

服务号和订阅号有什么区别&#xff1f;服务号转为订阅号有哪些作用&#xff1f;一、文章推送的篇数不同服务号在文章的推送篇数上是有所限制的&#xff08;每月推4次&#xff09;订阅号则每天可推送一篇文章。二、定义不同服务号主要是为关注用户提供服务使用的&#xff1b;订阅…

Azure 机器学习 - 使用Python SDK训练模型

目录 一、环境准备二、工作区限制三、什么是计算目标&#xff1f;四、本地计算机五、远程虚拟机六、Apache Spark 池七、Azure HDInsight八、Azure Batch九、Azure Databricks十、Azure Data Lake Analytics十一、Azure 容器实例十二、Kubernetes 了解如何用 SDK v1 将 Azure 计…

嵌入式系统设计与应用---ARM指令集(学习笔记)

目录 本文图片截取自书本和老师的ppt 概述 指令格式 指令的条件码 ARM的寻址方式 立即寻址 寄存器寻址 寄存器间接寻址 寄存器移位寻址 变址寻址 多寄存器寻址 相对寻址 堆栈寻址 块复制寻址 ARM指令集简介 跳转指令 1.B指令 2.BL指令 数据处理指令 1.数据传…