一.问题描述

公司有100-150台服务器安装RHEL7.4&中标麒麟7.4系统,为方便编辑配置网卡,使用脚本方式配置为biosname=0,ifname=0,目的是为将en1o2p此类长字符网卡名称规范为传统的eth*,使用传统的网卡识别方式,但安装完成后配置IP,BOND双网卡存在网络漂移现象,现象即重启网卡后所有网口均发生变化导致网络不通

二.原理说明

  • 在/usr/lib/udev/rules.d/60-net.rules中有一条规则指示udev助手实用程序/lib/udev/rename_device查看所有的/etc/sysconfig/network-scripts/ifcfg后缀文件。如果它发现一个带有HWADDR条目的ifcfg文件与一个接口的MAC地址匹配,它将该接口重命名为DEVICE指令在ifcfg文件中给出的名称。

  • 在/usr/lib/udev/rules.d/71-biosdevname.rules中指示biosdevname根据其命名策略重命名接口, 前提是在前面的步骤中没有重命名接口,安装了biosdevname,并且在引导命令行上没有将biosdevname =0作为内核命令给出。

  • 在/lib/udev/rules.d/75-net-description.rules中的规则指示udev通过检查网络接口设备来填充 内部udev设备属性值id_net_name_board、ID_NET_NAME_SLOT、ID_NET_NAME_PATH、ID_NET_NAME_MAC 。注意,有些设备属性可能是未定义的。

  • 在/usr/lib/udev/rules.d/80-net-name-slot.rules中有一条规则指示udev重命名接口(前提是在 第1步或第2步中没有重命名接口)和内核参数net。根据以下优先级:id_net_name_board、ID_NET_NAME _SLOT、ID_NET_NAME_PATH,没有指定ifnames=0。如果其中一个未设置,则它将进入列表中的下一个。 如果没有设置这些参数,则不会重命名接口。

  • 步骤2实际执行的是biosdevname的policy 步骤3和4实际执行的是Scheme1、2、3

三.处理步骤

由于在实际场景中,使用的是biosdevname=0 ifname=0的配置,实际影响的文件为在/usr/lib/udev/rules.d/60-net.rules文件,随即在该配置文件中使用了以下设置:

在使用此设置后,RHEL7.4系统问题彻底解决,经过近20次左右的测试,网口不会漂移。但是在中标麒麟7.4系统中,使用次配置后在网口状态不变的情况下不会发生任何漂移,但是如果随机拔掉其中一个网口,所有的网口会全部变化

随后用udevadm test命令进行测试,此命令可以根据网卡名回溯是哪条策略生效,从输出结果看RHEL7.4&中标麒麟7.4系统全部显示60-rules规则已经生效,但是在中标麒麟中仍然存在漂移问题。 经过文档查询,和进一步替换测试,基本可确定此问题为系统差异导致

四.解决方案

在使用systemd的命名规则时候,网卡名类似en1o2p3,此种命令可以准确的指出网卡来自主板上的哪一个pci槽位哪一条总线,以及具体的口。Systemd的命名方式虽然可读性差,但是本身就是为了解决此问题而做出的改变,建议同一为systemd方式使用长格式网卡名。

转载请标明出处:

1.博客中标注原创的文章,版权归原作者 heardic 所有;

2.未经原作者允许不得转载本文内容,否则将视为侵权;

3.转载或者引用本文内容请注明来源及原作者;

4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

linux系统操作系统网卡漂移解决方案及问题原因的更多相关文章

  1. 新装Linux系统没有网卡驱动的解决办法和步骤

    Linux下查看网卡驱动和版本信息 - CSDN博客 https://blog.csdn.net/guyan1101/article/details/72770424/ 检查网卡是否加载 - Linu ...

  2. Linux系统无法启动故障解决方案

    Linux系统无法启动故障解决方案 2011-09-27 09:42 佚名 比特网 我要评论(0) 字号:T | T 不管你多么喜爱你的Linux系统机器,有时候你都必须恢复你的系统.是的,即使一台L ...

  3. Linux 系统假死的解决方案

    Linux 系统有时因为软件不兼容或未知 bug,导致系统假死.比如我的 Ubuntu 14.04 最近使用 vscode 时偶尔会导致系统假死,即鼠标可以移动,但点击无反应. 此时可试试如下解决方案 ...

  4. linux操作系统网卡漂移导致网络不可用

    1.故障描述 公司有100-150台服务器安装RHEL7.4&中标麒麟7.4系统,为方便编辑配置网卡,使用脚本方式配置为biosname=0,ifname=0,目的是为将en1o2p此类长字符 ...

  5. Centos 7 Linux系统修改网卡名称为ethx

    一.Centos7 系统安装完成后更改网卡名称方法 1.查看Centos7系统默认的网卡配置(eno16777736) [root@server ~]# ifconfig eno16777736: f ...

  6. Linux系统修改网卡名(eth0-3)

    一.命名规则策略 规则1: 对于板载设备命名合并固件或 BIOS 提供的索引号,如果来自固件或 BIOS 的信息可读就命名,比如eno1,这种命名是比较常见的,否则使用规则2. 规则2: 命名合并固件 ...

  7. linux系统重启网卡后网络不通(NetworkManager篇)

    一.故障现象 RHEL7.6系统,使用nmcli绑定双网卡后,再使用以下命令重启network服务后主机网络异常,导致无法通过ssh远程登录系统.      # systemctl restart n ...

  8. Linux系统针对网卡中断的优化处理

    摘要: 中断: 当网卡接收到数据包后,会触发硬中断,通知CPU来收包.硬中断是一个CPU和网卡交互的过程.这其实会消耗CPU资源.特别是在使用速度极快的万兆网卡 之后,大量的网络交互使得CPU很大一部 ...

  9. Linux系统多网卡绑定实战

    导读 对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡.在生产型的系统中,网卡的可靠性就更为重要了. 多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正 ...

随机推荐

  1. 第十八章、QListView/Model开发

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 QListView理论上可以和所有QAbstractItemModel派生的类如QStri ...

  2. 百度前端技术学院-基础-day2

    2020.9.15 今天是学习前端基础技术的第二天,今天制作了一个在线简历,纯html的那种.帮助我复习了以前的基础知识,也增加了新的知识点,比如制作列表可以用fieldset来整合数据. 我的在线简 ...

  3. ajax的五种状态

    ajax的五种状态(readyState ) 0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成,已经接 ...

  4. ThreadLocal原理记录,别被坑了!!

    简介 ThreadLocal的用处 ThreadLocal是为了将数据记录一份到某个线程里,确保该数据线程安全 例如数据库的Connection放入ThreadLocal,一个事务会用到很多DAO,但 ...

  5. P5838 [USACO19DEC]Milk Visits G

    发现是一道比较裸的树上莫队,于是就开始刚,然后发现好像是最难的一道题--(本题解用于作者加深算法理解,也欢迎各位的阅读) 题意 给你一棵树,树有点权,询问一条路径上是否有点权为 \(c\) 的点. 题 ...

  6. Power BI八年回望记

    本人从事BI,数据仓库领域相关工作15个年头,这15年目睹了这个方向从火爆到逐渐被大数据领域不断吞食.中间零散关注Power BI好长时间,也算目睹了它的成长. 那天在网络上搜索power bi,无意 ...

  7. 深入理解Java虚拟机(九)——后端编译与优化

    即时编译器 Java程序最初都是通过解释器进行执行,当发现某个方法或者代码块被运行得非常频繁,这些代码就被认为是热点代码,为了提高这些代码得运行效率,虚拟机会把热点代码编译成本地机器码,并进行优化,运 ...

  8. sqli-labs less-7(文件读写)

    less-7 dump into outfile(文件读写) 通俗的来讲,就是通过outfile传入一句话木马到网站目录里,然后用菜刀或者蚁剑等连接 过程: 输入id=?判断闭合类型 页面上提示了使用 ...

  9. axios 封装 跨域 实现 (后端跨域配置白名单)

    1. 始vue化项目 vue init webpack deaxios # 使用脚手架创建项目 deaxios(项目名,随便取得) cd deaxios # 进入项目cnpm install npm ...

  10. JavaSE10-继承&super&this&抽象类

    1.继承 1.1 概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可. 其中,多个类可以称为子类,单独那一个类称为父类.超类(s ...