个人博客:https://5mr.xyz

一.问题描述

公司有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方式使用长格式网卡名。
还原脚本如下:

#! /bin/bash
#  redhat还原脚本
cd /etc/sysconfig/network-scripts/
mv ifcfg- bak/
mv ifcfg-eth* bak/
mv ifcfg-bond0 bak/
cd /etc/sysconfig
cp grub  /home/grub.bak
sed -i "s/ net.ifnames=0/ /g" grub
sed -i "s/ biosdevname=0/ /g" grub
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
cd /boot/efi/EFI/redhat/
cp grub.cfg /home/grub.cfg.bak
sed -i "s/ net.ifnames=0/ /g" grub.cfg
sed -i "s/ biosdevname=0/ /g" grub.cfg
sleep 5
sync
sync
sync
reboot
#! /bin/bash
# 中标麒麟还原脚本
cd /etc/sysconfig/network-scripts/
mv ifcfg- bak/
mv ifcfg-eth* bak/
mv ifcfg-bond0 bak/
cd /etc/sysconfig
cp grub  /home/grub.bak
sed -i "s/net.ifnames=0/ /g" grub
sed -i "s/biosdevname=0/ /g" grub
grub2-mkconfig -o /boot/efi/EFI/neokylin/grub.cfg
cd /boot/efi/EFI/neokylin/
cp grub.cfg /home/grub.cfg.bak
sed -i "s/ net.ifnames=0/ /g" grub.cfg
sed -i "s/ biosdevname=0/ /g" grub.cfg
sleep 5
sync
sync
sync
reboot

linux系统操作系统网卡漂移解决方案及问题原因相关推荐

  1. Linux系统下网卡网络配置基础

    Ifconfig命令使LINUX核心知道软件回送和网卡这样一些网络接口,这样Linux就可以使用它们.除了上面介绍的这些用法之外,ifconfig命令用来监控和改变网络接口的状态,并且还可以带上很多命 ...

  2. linux系统重启网卡的方法步骤详解

    在实际工作中,经常会遇到Linux系统进行重启网卡的操作.接下来是小编为大家收集的linux系统重启网卡方法,希望能帮到大家. linux系统重启网卡方法 一.service network rest ...

  3. linux怎样重启网卡,linux系统重启网卡的方法步骤详解

    在实际工作中,经常会遇到Linux系统进行重启网卡的操作.接下来是小编为大家收集的linux系统重启网卡方法,希望能帮到大家. linux系统重启网卡方法 一.service network rest ...

  4. linux网卡驱动离线安装_新装Linux系统没有网卡驱动的解决办法和步骤

    刚安装的linux系统没有网卡驱动,下面给出我的解决方法: (机器系统是RHEL5.3) 首先说明几个命令: #lsmod --显示已载入系统的模块. 执行lsmod指令,会列出所有已载入系统的模块. ...

  5. linux多网卡bind发送数据,Linux系统多网卡绑定实战

    原标题:Linux系统多网卡绑定实战 纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注. 导读 对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡.在生产型的系统中,网卡 ...

  6. 查询Linux系统网卡流量负载,超好用linux系统查询网卡等流量参数的工具,分享给大家!!!...

    超好用linux系统查询网卡等流量参数的工具,分享给大家!!! 工作中大家或许会遇到这类情况:托管服务器流量超出限额,可是突然又不能像windows主机那样通过QQ管家或者360卫士等软件工具那样很直 ...

  7. linux系统单网卡绑定双IP的方法

    linux系统单网卡绑定双IP的方法 1. 进入目录: cd /etc/sysconfig/network-scripts/ 2. 使用vi命令编辑ifcfg-eth0,如下: # Advanced ...

  8. Linux系统双网卡聚合超详细教程

    Linux系统双网卡聚合超详细教程 将多个物理网卡聚合在一起,从而实现冗错和提高吞吐量 网络组不同于旧版中bonding技术,提供更好的性能和扩展性 网络组由内核驱动和teamd守护进程实现. 主要分 ...

  9. Linux系统更改网卡为100 Mbps 全双工模式

    Linux系统更改网卡为100 Mbps 全双工模式 执行:ethtool 网卡名称 ethtool eth0 可以查看网卡工作模式,如果有Half字样,则需要修改,否则无需修改. 编辑/etc/rc ...

最新文章

  1. A 'return' expression required in a function with a block body ('{...}')
  2. python编程基础知识点上的问题_python编程入门之二:必备基础知识
  3. 文巾解题 184. 部门工资最高的员工
  4. 键盘工具栏的快速集成--IQKeyboardManager
  5. mysql(1):查找语句练习
  6. 数理统计的统计量分布t分布_t分布:啤酒厂发现的关键统计概念
  7. 让系统在内存中高速运行
  8. java session失效之后跳转_详解springmvc控制登录用户session失效后跳转登录页面
  9. atitit 商业项目常用模块技术知识点 v3 qc29
  10. 【数学建模】基于matlab GUI弱肉强食问题—Volterra 模型【含Matlab源码 1502期】
  11. 《解读量化投资:西蒙斯用公式打败市的故事》内容简介及PDF下载
  12. java 磁力下载工具_它可能是现在最好用的磁力下载工具
  13. matlab从无到有系列(二):矩阵运算基础
  14. 安卓手机虚拟键盘和position:fixed问题
  15. 浏览器提示代理服务器没有响应
  16. vue项目设置浏览器标题title及图标
  17. 微信语音能保存多久服务器,微信语音播放失败?可能是这几个原因导致的,看完你就懂了...
  18. Dell居然用EMS给我寄发票
  19. Qt之QWidget设置窗口背景图片的几种方法
  20. 小米笔记本待机系统崩溃怎么U盘重装系统?

热门文章

  1. 自学python数据需要多久_零基础自学Python要多久?需要怎样的基础和准备
  2. python桌面宠物_写个桌面挂件 | 手把手带大家做只桌面宠物呗
  3. 【题目49:装快递(C++) ; ps:输入一行数据(带逗号或空格)更好的输入方式】
  4. HarmonyOS应用开发-剪切板
  5. CSS学习记录(二)
  6. Android定制实现上网限制iptables
  7. 直播这碗饭,知乎、豆瓣、虎扑吃不消
  8. 微信电商小程序购买/加入购物车组件设计
  9. Golang sync.Map 原理(两个map实现 读写分离、适用读多写少场景)
  10. 寸照换底色技巧大全,超详细图文教程