• 麒麟系统修改网卡名步骤和网卡占用故障处理


    第1章  单网卡环境修改网卡名

    ■ 修改网卡配置。

    • 检查当前网卡名称和MAC地址,网卡名称ens33MAC地址00:0c:29:ab:3a:40。

    复制代码
    [root@localhost ~]# ip a
    
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    
        inet 127.0.0.1/8 scope host lo
    
           valid_lft forever preferred_lft forever
    
        inet6 ::1/128 scope host
    
           valid_lft forever preferred_lft forever
    
    2: ens33:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    
        link/ether 00:0c:29:ab:3a:40 brd ff:ff:ff:ff:ff:ff
    
        inet 192.168.1.161/24 brd 192.168.1.255 scope global noprefixroute ens33
    
           valid_lft forever preferred_lft forever
    
        inet6 fe80::588d:c898:3370:2cca/64 scope link noprefixroute
    
           valid_lft forever preferred_lft forever
    复制代码

    • 修改网卡的配置文件名称。

    [root@localhost ~]# cd /etc/sysconfig/network-scripts/
    
    [root@localhost network-scripts]# mv ifcfg-ens33 ifcfg-eth0

    • 修改网卡配置内容,将网卡和绑定设备名改成eth0,其他不用修改。

    复制代码
    [root@localhost network-scripts]# vi ifcfg-eth0
    
    NAME=eth0
    
    DEVICE=eth0
    
    [root@localhost network-scripts]# 
    复制代码

    ■ 修改BIOS参数。

    • 更新内核文件,于"GRUB_CMDLINE_LINUX="行尾额外添加"net.ifnames=0 biosdevname=0"两条参数。

    [root@localhost ~]# vi /etc/default/grub
    
    GRUB_CMDLINE_LINUX="resume=/dev/mapper/klas-swap rd.lvm.lv=klas/root rd.lvm.lv=klas/swap rhgb quiet crashkernel=1024M,high audit=0 net.ifnames=0 biosdevname=0"

    • 检查系统引导启动方式。

    复制代码
    [root@localhost ~]# ll /sys/firmware/efi
    
    ls: cannot access '/sys/firmware/efi': No such file or directory
    
    [root@localhost ~]# dmesg | grep "EFI v"
    
    [root@localhost ~]#
    复制代码

    说明:一般系统有UEFI和传统BIOS两种引导启动方式,如上述命令中,没有/sys/firmware/efi文件,并且dmesg命令没有EFI关键词输出,说明当前系统是传统BIOS方式引导启动;如果有目录和关键词输出,说明是UEFI启动。

    • 重新生成内核引导文件。

    复制代码
    [root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
    
     
    
    #执行成功输出如下:
    
    Generating grub configuration file ...
    
    Found linux image: /boot/vmlinuz-4.19.90-52.22.v2207.ky10.x86_64
    
    Found initrd image: /boot/initramfs-4.19.90-52.22.v2207.ky10.x86_64.img
    
    Found linux image: /boot/vmlinuz-0-rescue-c30be0c3a35649f1b686342f9354e4aa
    
    Found initrd image: /boot/initramfs-0-rescue-c30be0c3a35649f1b686342f9354e4aa.img
    
    done
    
    注意:如果系统引导启动方式是UEFI,那么不能在/boot/grub2目录下生成内核引导文件,需要执行命令:“grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg”,将内核文件生成到/boot/efi/EFI/kylin/下才能生效。
    复制代码

    ■ 修改udev,配置网卡名和MAC地址绑定。

    • 注释第一行,并手动添加一行,通过网卡MAC地址绑定eth0网卡名。

    • [root@localhost ~]# vi /usr/lib/udev/rules.d/60-net.rules
    
    #ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result"
    
    ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:0c:29:ab:3a:40", NAME="eth0"

    ■ 验证修改结果。

    • 重启系统后配置生效。

    [root@localhost ~]# reboot

    • 检查网卡,成功将网卡名修改为eth0。

    复制代码
    [root@localhost ~]# ip a
    
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    
        inet 127.0.0.1/8 scope host lo
    
           valid_lft forever preferred_lft forever
    
        inet6 ::1/128 scope host
    
           valid_lft forever preferred_lft forever
    
    2: eth0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    
        link/ether 00:0c:29:ab:3a:40 brd ff:ff:ff:ff:ff:ff
    
        inet 192.168.1.161/24 brd 192.168.1.255 scope global noprefixroute eth0
    
           valid_lft forever preferred_lft forever
    
        inet6 fe80::3445:a251:8e9:8c84/64 scope link noprefixroute
    
           valid_lft forever preferred_lft forever
    复制代码

    第2章  多网卡环境修改网卡名

    说明:多网卡修改网卡名的步骤和单网卡步骤一致,不同点是udev配置文件中需要加多行参数,对所有网卡名和网卡MAC地址进行绑定。

    ■ 修改网卡配置。

    • 检查当前网卡名称和MAC地址,当前有ens33ens37ens38,共3块网卡。

    复制代码
    [root@localhost network-scripts]# ip a
    
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    
        inet 127.0.0.1/8 scope host lo
    
           valid_lft forever preferred_lft forever
    
        inet6 ::1/128 scope host
    
           valid_lft forever preferred_lft forever

    2: ens33: mtu 1500 qdisc fq_codel state UP group default qlen 1000

    
    

        link/ether 00:0c:29:ab:3a:40 brd ff:ff:ff:ff:ff:ff

    
    

        inet 192.168.1.161/24 brd 192.168.1.255 scope global noprefixroute ens33

    
    

           valid_lft forever preferred_lft forever

    
    

        inet6 fe80::588d:c898:3370:2cca/64 scope link noprefixroute

    
    

           valid_lft forever preferred_lft forever

    3: ens37: mtu 1500 qdisc fq_codel state UP group default qlen 1000

        link/ether 00:0c:29:ab:3a:4a brd ff:ff:ff:ff:ff:ff

        inet 192.168.1.162/24 brd 192.168.1.255 scope global noprefixroute ens37

           valid_lft forever preferred_lft forever

        inet6 fe80::7820:36ad:e6f7:59c9/64 scope link noprefixroute

           valid_lft forever preferred_lft forever

    4: ens38: mtu 1500 qdisc fq_codel state UP group default qlen 1000

        link/ether 00:0c:29:ab:3a:54 brd ff:ff:ff:ff:ff:ff

        inet 192.168.1.163/24 brd 192.168.1.255 scope global noprefixroute ens38

           valid_lft forever preferred_lft forever

        inet6 fe80::f4e9:65e6:f38d:cba3/64 scope link noprefixroute

           valid_lft forever preferred_lft forever

    复制代码

    • 修改网卡的配置文件名称。

    复制代码
    [root@localhost ~]# cd /etc/sysconfig/network-scripts/
    
    [root@localhost network-scripts]# mv ifcfg-ens33 ifcfg-eth0
    
    [root@localhost network-scripts]# mv ifcfg-ens37 ifcfg-eth1
    
    [root@localhost network-scripts]# mv ifcfg-ens38 ifcfg-eth2
    复制代码

    • 修改网卡配置内容,将网卡和绑定设备名改成ethxx。

    复制代码
    [root@localhost network-scripts]# vi ifcfg-eth0
    
    NAME=eth0
    
    DEVICE=eth0
    
    [root@localhost network-scripts]# vi ifcfg-eth1
    
    NAME=eth1
    
    DEVICE=eth1
    
    [root@localhost network-scripts]# vi ifcfg-eth2
    
    NAME=eth2
    
    DEVICE=eth2
    
    [root@localhost network-scripts]# 
    复制代码

    修改BIOS参数。

    • 更新内核文件,于"GRUB_CMDLINE_LINUX="行尾额外添加"net.ifnames=0 biosdevname=0"两条参数。

    [root@localhost ~]# vi /etc/default/grub
    
    GRUB_CMDLINE_LINUX="resume=/dev/mapper/klas-swap rd.lvm.lv=klas/root rd.lvm.lv=klas/swap rhgb quiet crashkernel=1024M,high audit=0 net.ifnames=0 biosdevname=0"

    • 检查系统引导启动方式。

    复制代码
    [root@localhost ~]# ll /sys/firmware/efi
    
    ls: cannot access '/sys/firmware/efi': No such file or directory
    
    [root@localhost ~]# dmesg | grep "EFI v"
    
    [root@localhost ~]#

    说明:一般系统有UEFI和传统BIOS两种引导启动方式,如上述命令中,没有/sys/firmware/efi文件,并且dmesg命令没有EFI关键词输出,说明当前系统是传统BIOS方式引导启动;如果有目录和关键词输出,说明是UEFI启动。

    复制代码

    • 重新生成内核引导文件。

    复制代码
    [root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 
    
    #执行成功输出如下:
    Generating grub configuration file ...
    Found linux image:
    /boot/vmlinuz-4.19.90-52.22.v2207.ky10.x86_64

      Found initrd image: /boot/initramfs-4.19.90-52.22.v2207.ky10.x86_64.img

      Found linux image: /boot/vmlinuz-0-rescue-c30be0c3a35649f1b686342f9354e4aa

      Found initrd image: /boot/initramfs-0-rescue-c30be0c3a35649f1b686342f9354e4aa.img

      done

    复制代码

    注意:如果系统引导启动方式是UEFI,那么不能在/boot/grub2目录下生成内核引导文件,需要执行命令:grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg”,将内核文件生成到/boot/efi/EFI/kylin/下才能生效。

    ■ 修改udev,配置网卡名和MAC地址绑定。

    • 注释第一行,并手动添加3行,通过网卡MAC地址绑定ethxx网卡名。

    复制代码
    • [root@localhost ~]# vi /usr/lib/udev/rules.d/60-net.rules
    
    #ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result"
    
    ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:0c:29:ab:3a:40", NAME="eth0"
    
    ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:0c:29:ab:3a:4a", NAME="eth1"
    
    ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:0c:29:ab:3a:54", NAME="eth2"
    复制代码

    ■ 验证修改结果。

    • 重启系统后配置生效。

    [root@localhost ~]# reboot

    • 检查网卡,成功将网卡名修改为ethx。

    复制代码
    [root@localhost ~]# ip a
    
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    
        inet 127.0.0.1/8 scope host lo
    
           valid_lft forever preferred_lft forever
    
        inet6 ::1/128 scope host
    
           valid_lft forever preferred_lft forever
    
    2: eth0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    
        link/ether 00:0c:29:ab:3a:40 brd ff:ff:ff:ff:ff:ff
    
        inet 192.168.1.161/24 brd 192.168.1.255 scope global noprefixroute eth0
    
           valid_lft forever preferred_lft forever
    
        inet6 fe80::3445:a251:8e9:8c84/64 scope link noprefixroute
    
           valid_lft forever preferred_lft forever
    
    3: eth1:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    
        link/ether 00:0c:29:ab:3a:4a brd ff:ff:ff:ff:ff:ff
    
        inet 192.168.1.162/24 brd 192.168.1.255 scope global noprefixroute eth1
    
           valid_lft forever preferred_lft forever
    
        inet6 fe80::6812:c44f:ab83:9d8a/64 scope link noprefixroute
    
           valid_lft forever preferred_lft forever
    
    4: eth2:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    
        link/ether 00:0c:29:ab:3a:54 brd ff:ff:ff:ff:ff:ff
    
        inet 192.168.1.163/24 brd 192.168.1.255 scope global noprefixroute eth2
    
           valid_lft forever preferred_lft forever
    
        inet6 fe80::5534:cbf5:8f66:963e/64 scope link noprefixroute
    
           valid_lft forever preferred_lft forever
    复制代码

     

    第3章   网卡名故障处理

    ■ 说明:本故障处理方案适用于多网卡环境下,仅为某个或某几个网卡修改网卡名称。

    1.1、 现象描述

    ■ 需求:当前系统部署k8s集群,需要k8s集群中所有节点网卡名称统一为eth0,虽然系统中有多块网卡,但是只有最后一块网卡是UP状态,现在需要将最后一块网卡名更改为eth0。

     

    ■ 问题现象:如下图所示,在udev中将最后一块网卡名称更改为eth0,重启后网卡名变成了rename4,并且IP地址在DOWN的网卡上,导致网络不通。

    1.2、 问题分析

    因为内核参数中增加了net.ifnames=0 biosdevname=0,重启系统生效后会自动分配ethx的名称给每一块网卡,当前eth0名称已经被第一块网卡占用,所以修改udev后会发生冲突,导致最后一块网卡名变为rename4。

     

    1.3、 解决思路

    先将第一块网卡名通过udev改名,如改成eth8,解决eth0名称占用问题;再将rename4网卡名改成eth0,恢复网络故障。

     

    1.4、 处理步骤

    • 将第一块网卡名称修改为eth8,使用第一块网卡的MAC地址修改网卡名,修改udev需要重启系统生效。

    复制代码
    [root@localhost ~]# vi /usr/lib/udev/rules.d/60-net.rules
    
    #ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result"
    
    ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:0c:29:ab:3a:40", NAME="eth8"
    
    [root@localhost ~]# reboot
    复制代码

    重启后如下图,第一块网卡名更改为eth8:

    将rename4网卡名称修改为eth0,并检查网卡配置文件NAMEDEVICE是否为eth0。

    [root@localhost ~]# vi /usr/lib/udev/rules.d/60-net.rules
    #ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result"
    ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:0c:29:ab:3a:40", NAME="eth8"
    ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", ATTR{address}=="00:0c:29:ab:3a:54", NAME="eth0"
    复制代码
    [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=192.168.1.163
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.254
    
    [root@localhost ~]# reboot
    复制代码

    验证故障恢复,如下图所示,状态为UP的网卡更改为eth0,并恢复网络故障。

     
     
  • 相关阅读:
    Android 组件化
    eshop(商城管理系统)MySQL源码
    使用 curator 连接 zookeeper 集群 Invalid config event received
    电力行业放大招了!赶紧学起来
    【Nginx笔记02】通过Nginx服务器转发客户端的WebSocket接口到后端服务
    java常用集合之Set
    git在linux情况下设置git 命令高亮
    Auto.js 清除指定应用缓存
    Prompt-Tuning源码分析
    java并发面试题
  • 原文地址:https://www.cnblogs.com/Dfengshuo/p/18089597