精华内容
下载资源
问答
  • 2022-05-16 10:12:22

    #vi /etc/sysconfig/network-scripts/ifcfg-bond0

    DEVICE=bond0

    BONDING_MASTER=yes

    PROXY_METHOD=none

    BROWSER_ONLY=no

    BOOTPROTO=none

    DEFROUTE=yes

    IPV4_FAILURE_FATAL=no

    IPV6INIT=yes

    IPV6_AUTOCONF=no

    IPV6_DEFROUTE=yes

    IPV6_FAILURE_FATAL=no

    IPV6_ADDR_GEN_MODE=stable-privacy

    TYPE=bond

    ONBOOT=yes

    USERCTL=no

    BONDING_OPTS="mode=1 miimon=100"

    IPADDR=211.136.70.68

    #PREFIX=28

    NETMASK=255.255.255.240

    GATEWAY=211.136.70.65

    如果添加ipv6地址,修改IPV6_AUTOCONF=no

    IPV6ADDR=2409:8000:2000:0:301::4/120

    IPV6_DEFAULTGW=2409:8000:2000:0:301::1

    #BONDING_OPTS="resend_igmp=1 updelay=0 use_carrier=1 arp_all_targets=any miimon=100 lp_interval=1 min_links=0 downdelay&

    更多相关内容
  • 【Linux词典】bond 0 配置 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助...

    【Linux词典】bond 0 配置



    前言


    一、添加一块网卡

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在虚拟机中添加一张网卡。

    在这里插入图片描述
    查看添加好的网卡。

    二、配置两张网卡

    在这里插入图片描述
    vim /etc/sysconfig/network-scripts/ifcfg-ens33 #配置ens33网卡

    在这里插入图片描述
    vim /etc/sysconfig/network-scripts/ifcfg-ens36 #配置ens36网卡

    三、配置bond 0

    在这里插入图片描述
    vim /etc/sysconfig/network-scripts/ifcfg-bond0 #配置bond0

    四、重启并查看

    systemctl restart network #重启网卡


    总结

    展开全文
  • 文章目录说明执行成功的界面如下脚本内容 说明 bond0脚本其实就是把手动修改的内容变成一键修改而已,所以,理论上,只要会手动配置链路...注意:本脚本默认一键配置bond0bond1双联路,如果仅仅是需要配置一个bond0

    说明【必看】

    • 该脚本中如果没有你需要的功能,可以私信我需求,我后面会加上相应功能的。

    • bond0脚本其实就是把手动修改的内容变成一键修改而已,所以,理论上,只要会手动配置链路,就知道配置链路脚本的原理的,所以就不对脚本内容做解析了,只对脚本需要修改的内容做详细说明;
      注:如果不会配置双网卡的,去好好研究研究这篇博客,跟着走几遍就懂了:

    • 超详细linux手动配置单网卡和双网卡(bond0和team)以及DNS,ps:使用命令配置

    • 该脚本适用于单台服务器【主要是用于新服务器配置IP用】,如果想批量跑,额,还挺麻烦,可以自己想想怎么弄,无法解决再看最下面的”遍历执行过程“,我提供了一种方法。

    双bond脚本

    执行成功的界面如下

    在这里插入图片描述

    bond脚本内容

    • 注意:本脚本默认一键配置bond0和bond1双联路,如果仅仅是需要配置一个bond0,需要把bond1的代码注释掉,否则会报错【找不到参数】

    • 需要修改的地方已经在文章中详细说明了,拷贝到服务器内,修改网卡名称即可直接使用。
      注:bond1或bond0写入时,记得注释或取消注释,超人性化的预留了2种mode模式:mode1和mode4

    • 如果服务器上网卡名称太多,不知道哪两个网卡绑定在一起,可以用ethtool命令来查询该网卡是否启用以及该网卡是千兆口还是万兆口。

    #!/usr/bin/sh
    
    # 定义bond的2个网卡名称参数
    # bond0 
    # 需要修改最后的网卡名称
    bond0_port1="/etc/sysconfig/network-scripts/ifcfg-enp11"
    bond0_port2="/etc/sysconfig/network-scripts/ifcfg-enp22"
    
    # bond1
    # 需要修改最后的网卡名称
    bond1_port1="/etc/sysconfig/network-scripts/ifcfg-enps11"
    bond2_port2="/etc/sysconfig/network-scripts/ifcfg-enps12"
    
    # 固定格式
    bond0="/etc/sysconfig/network-scripts/ifcfg-bond0"
    bond1="/etc/sysconfig/network-scripts/ifcfg-bond1"
    
    # 创建bond文件夹
    touch $bond0
    touch $bond1
    
    
    # 写入(修改)bond0网卡配置文件内容
    # 需要修改 DEVICE名称为真实网卡名称
    echo "DEVICE=enp11
    BOOTPROTO=none
    MASTER=bond0
    NM_CONTROLLED=no
    SLAVE=yes" > $bond0_port1
    
    echo "DEVICE=enp22
    BOOTPROTO=none
    MASTER=bond0
    NM_CONTROLLED=no
    SLAVE=yes" > $bond0_port2
    
    # 写入(修改)bond1网卡配置文件内容
    # 需要修改 DEVICE名称为真实网卡名称
    echo "DEVICE=enps11
    BOOTPROTO=none
    MASTER=bond1
    NM_CONTROLLED=no
    SLAVE=yes" > $bond1_port1
    
    echo "DEVICE=enps12
    BOOTPROTO=none
    MASTER=bond1
    NM_CONTROLLED=no
    SLAVE=yes" > $bond2_port2
    
    # 写入bond0配置文件
    # 需要修改IPADDR、NETMASK【注,如果是内部网通信bond,是不需要网关GATEWAY的】,最后的BONDING需要选择
    echo "DEVICE=bond0
    BOOTPROTO=none
    NM_CONTROLLED=no
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=10.233.20.5
    NETMASK=255.255.255.0" > $bond0
    # 【建议用于mode=4或mode=6】
    echo 'BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast xmit_hash_policy=layer3+4"' >> $bond0
    #【建议用于mode=1】
    #echo 'BONDING_OPTS = "mode=1 miimon=100 updelay=600000 primary=em1"' >> $bond0
    
    # 写入bond1配置文件
    # 需要修改IPADDR、NETMASK【注,如果是内部网通信bond,是不需要网关GATEWAY的】,最后的BONDING需要选择
    echo "DEVICE=bond1
    BOOTPROTO=none
    NM_CONTROLLED=no
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.123.2
    GATEWAY=192.168.123.254
    NETMASK=255.255.255.0"  > $bond1
    # 【建议用于mode=4或mode=6】
    #echo 'BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast xmit_hash_policy=layer3+4"' >> $bond1
    #【建议用于mode=1】
    echo 'BONDING_OPTS = "mode=1 miimon=100 updelay=600000 primary=em1"' >> $bond1
     
    
    sleep 1
    # 关闭Networkmanager并重启网卡
    echo "systemctl stop NetworkManager"
    systemctl stop NetworkManager
    echo "systemctl disable NetworkManager"
    systemctl disable NetworkManager
    echo "systemctl restart network"
    systemctl restart network
    
    sleep 1
    # 查看bond0的配置文件
    echo "ip -o a | grep bond0"
    ip -o a | grep bond0
    
    sleep 1
    # 查看bond1的配置文件
    echo "ip -o a | grep bond1"
    ip -o a | grep bond1
    
    

    删除已配置的bond方法

    你认为怎么删? 是不是以为在配置文件中把网卡删了重启网络就好了?

    答案是:

    no

    下面这就是在配置文件中删了bond0和bond1,重启网卡后依然能看到bond1和bond0的IP
    在这里插入图片描述

    • 删除方法如下:
      这是最简单的方法:
      • 1、启动Networkmanager服务
        systemctl start NetworkManager
      • 2、nmcli查看网络链接
        nmcli con show
      • 3、使用nmcli删除接口
        nmcli con delete bond0
        nmcli con delete bond1
        在这里插入图片描述

    遍历执行过程

    说明

    • 遍历首先要满足一个条件,就是服务器之间已经打通了网络【如果是新服务器,一般是没有被打通网络的,所以只能用上面的方法,一台一台执行配置ip】。

    • 这个遍历比较特殊,需要满足2个条件和一个执行条件:

      • 1、scp拷贝上面的bond脚本到目标服务器上,然后把脚本中IP掩码网关改成自动获取;
      • 2、因为是在目标服务器执行,需要给每台服务器准备ip,掩码和网关,而这些文件是不能存放在本地服务器的,所以得想办法把3样放到目标服务器,因为批量跑,肯定不能像上面一样手动给每个脚本更换IP。
      • 执行条件就是上面2样准备完毕以后批量执行每台目标服务器上的脚本。
      • 先思考一下怎么解决上面的2样东西,如果实在想不出,再看我下面的方案【思路已经提供了,脚本还是要多想多测试,不然没法提升的】

    遍历脚本代码

    遍历给每台服务器准备需要配置的IP、掩码和网关。

    [root@controll ccx]# pwd
    /ccx
    [root@controll ccx]# cat iplist1.txt 
    # 这个文件是放能正常ssh上去的目标服务器IP
    192.168.59.128
    192.168.59.129
    192.168.59.130
    [root@controll ccx]# cat ipmask.txt 
    # 这个文件是存放需要新配置的IP、掩码和网关,中间用一个空格隔开【空格只能有一个,不能多】
    192.168.59.128 255.255.255.0 192.168.59.2
    192.168.59.129 255.255.255.0 192.168.59.2
    192.168.59.130 255.255.255.0 192.168.59.2
    [root@controll ccx]# 
    [root@controll ccx]# cat echo.sh 
    #!/bin/bash
    
    file=/ccx/iplist1.txt
    ip=/ccx/ipmask.txt
    cat $file|while read line ; do
    cat $ip | while read ip ; do
    a=($ip)    
    ssh $line << EOF
    mkdir /ccx
    echo ${a[0]} > /ccx/ip
    echo ${a[1]} > /ccx/mask
    echo ${a[2]} > /ccx/gateway
    
    EOF
    done
    done
    
    [root@controll ccx]# 
    

    执行查看效果

    • 执行方式:sh echo.sh
    • 因为需要拷贝3个文件,所以需要输入3次密码【其中第一次创建了/ccx这个文件,所以第二第三次就会报/ccx文件已存在,无法创建,这个无所谓的,如果有强迫症,不想出现这个提升,可以加个if条件,if=1的时候创建即可】
    [root@controll ccx]# 
    [root@controll ccx]# sh echo.sh 
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    root@192.168.59.128's password: 
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    root@192.168.59.128's password: 
    mkdir: 无法创建目录"/ccx": 文件已存在
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    root@192.168.59.128's password: 
    mkdir: 无法创建目录"/ccx": 文件已存在
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    root@192.168.59.129's password: 
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    root@192.168.59.129's password: 
    mkdir: cannot create directory ‘/ccx’: File exists
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    root@192.168.59.129's password: 
    mkdir: cannot create directory ‘/ccx’: File exists
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    root@192.168.59.130's password: 
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    root@192.168.59.130's password: 
    mkdir: cannot create directory ‘/ccx’: File exists
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    root@192.168.59.130's password: 
    mkdir: cannot create directory ‘/ccx’: File exists
    [root@controll ccx]# ssh 192.168.59.128
    root@192.168.59.128's password: 
    Last login: Fri May 28 17:57:44 2021 from 192.168.59.133
    [root@centso76_1 ~]# cd /ccx/
    [root@centso76_1 ccx]# ls
    gateway  ip  mask
    [root@centso76_1 ccx]# cat gateway 
    192.168.59.2
    [root@centso76_1 ccx]# cat mask 
    255.255.255.0
    [root@centso76_1 ccx]# cat ip 
    192.168.59.130
    [root@centso76_1 ccx]# 登出
    Connection to 192.168.59.128 closed.
    [root@controll ccx]# ssh 192.168.59.129
    root@192.168.59.129's password: 
    Last login: Thu May 27 22:09:09 2021 from 192.168.59.133
    [root@centos76_2 ~]# cd /ccx/
    [root@centos76_2 ccx]# ls
    gateway  ip  mask
    [root@centos76_2 ccx]# cat gateway 
    192.168.59.2
    [root@centos76_2 ccx]# cat mask 
    255.255.255.0
    [root@centos76_2 ccx]# cat ip 
    192.168.59.130
    [root@centos76_2 ccx]#
    

    批量拷贝bond脚本代码

    注:上面脚本执行完毕以后,本地中就会生成IP、掩码和网关3个文件,先把bond脚本中不需要的注释掉,只留一个需要用的bond,然后把IP掩码和网关部分改成自动获取【自动获取这个脚本中也有方法,我就不去修改了,自己修改吧】,就是下图这3个地方的固定值改为自动获取文件即可【因为都是脚本跑的,所以每一个脚本文件都是固定的,不存在出错】
    在这里插入图片描述

    • 上面的bond脚本修改完毕以后就可以批量拷贝了
    [root@controll ccx]# pwd
    /ccx
    [root@controll ccx]# cat iplist1.txt  
    # 这个文件是放能正常ssh上去的目标服务器IP
    192.168.59.128
    192.168.59.129
    192.168.59.130
    [root@controll ccx]# cat install.sh 
    if [ $# -eq 0 ] ;then
            echo "Usage: /ccx/iplist1.txt"
            elif [ -f $1 ] ; then
                    for ip in `cat $1` ; do
                    scp /ccx/bond_aotu.sh $ip:/ccx
                    done
            else
                    echo "Input file not found"
    fi
    [root@controll ccx]# 
    

    执行查看效果

    • 执行方式:sh install.sh /ccx/iplist1.txt
    [root@controll ccx]# sh install.sh  # 如果不指定文件就报错咯
    Usage: /ccx/iplist1.txt
    [root@controll ccx]# 
    [root@controll ccx]# sh install.sh /ccx/iplist1.txt 
    root@192.168.59.128's password: 
    bond_aotu.sh                                                                                                                      100%    0     0.0KB/s   00:00    
    root@192.168.59.129's password: 
    bond_aotu.sh                                                                                                                      100%    0     0.0KB/s   00:00    
    root@192.168.59.130's password: 
    bond_aotu.sh                                                                                                                      100%    0     0.0KB/s   00:00    
    [root@controll ccx]# 
    

    批量执行bond脚本代码

    注:上面的脚本全部执行完毕以后,每台目标服务器上都会有这4个文件【bond脚本、ip、掩码和网关】:bond_aotu.sh gateway ip mask

    [root@controll ccx]# ssh 192.168.59.128
    root@192.168.59.128's password: 
    Last login: Fri May 28 18:13:17 2021 from 192.168.59.133
    [root@centso76_1 ~]# cd /ccx
    [root@centso76_1 ccx]# ls
    bond_aotu.sh  gateway  ip  mask
    [root@centso76_1 ccx]# 
    
    • 因为上面的全部条件都已经准备好了,所以可以直接在一台服务器上批量执行目标服务器上的这个脚本即可。
      【执行方式有很多,可以用expect,我这仅展示使用ssh执行即可】
      【另外,因为我不需要批量配置脚本ip,所以我的bond脚本代码内容是:echo "Good morning:hero ccx"
    [root@controll ccx]# pwd
    /ccx
    [root@controll ccx]# cat iplist1.txt  
    # 这个文件是放能正常ssh上去的目标服务器IP
    192.168.59.128
    192.168.59.129
    192.168.59.130
    [root@controll ccx]# cat /ccx/send.sh 
    if [ $# -eq 0 ] ;then
            echo "Usage: /ccx/iplist1.txt"
            elif [ -f $1 ] ; then
                    for ip in `cat $1` ; do
                    ssh $ip sh /ccx/bond_aotu.sh
                    done
            else
                    echo "Input file not found"
    fi
    [root@controll ccx]# 
    

    执行查看效果

    • 执行方式:sh install.sh /ccx/iplist1.txt
    [root@controll ccx]#
    [root@controll ccx]# sh send.sh iplist1.txt 
    root@192.168.59.128's password: 
    # 正常情况执行成功后呢,这展示的是bond脚本中的配置内容
    Good morning:hero ccx
    root@192.168.59.129's password: 
    Good morning:hero ccx
    root@192.168.59.130's password: 
    Good morning:hero ccx
    [root@controll ccx]#
    

    注:如果你执行这个脚本去目标服务器上发现ip并没有被配置的话,原因是因为这个方法调用的是本地服务器的ssh进程,换expect的方式执行这个脚本【但配置未成功的几率应该不会发生,这只是留下一个解决方案,以防万一】

    定位使用中的网络接口名称

    说明

    • 这个主要针对 一批服务器上有很多接口名称,从其中定位到正在使用的接口名称;
    • 实现方式依然是使用命令ethtool查看link是否为yes。
    • 注:如果是在虚拟机上做测试,添加的网卡,需要在设置中把设备状态已连接取消,使用ethtool命令看到的link才会为no【如果仅在虚拟机中down掉网卡,link状态依然为yes】
      在这里插入图片描述
    • 我现在的网卡场景是:
      ens33和38是正常的,ens39和40是没有连接的。
    [root@controll network-scripts]# nmcli device status
    DEVICE      TYPE      STATE        CONNECTION 
    ens33       ethernet  connected    ens33      
    ens38       ethernet  connected    ens38      
    virbr0      bridge    connected    virbr0     
    ens39       ethernet  unavailable  --         
    ens40       ethernet  unavailable  --         
    lo          loopback  unmanaged    --         
    virbr0-nic  tun       unmanaged    --         
    [root@controll network-scripts]# ethtool ens33 | grep Link
            Link detected: yes
    [root@controll network-scripts]# ethtool ens38 | grep Link
            Link detected: yes
    [root@controll network-scripts]# ethtool ens39 | grep Link
            Link detected: no
    [root@controll network-scripts]# ethtool ens40 | grep Link
            Link detected: no
    [root@controll network-scripts]# 
    

    代码

    • 要遍历link状态,首先得获取全部的接口名称,本来这种方式想用数组的方式存储的,但数组有点复杂,并且难以理解,所以就用最简单的,存入文件方式实现了【无需担心本地会多文件,最终会干掉所有生成的文件】;
      其次lo名称是回环接口名称,所以不需要看lo的Link状态,所以我用if过滤掉lo接口了。
    • 下列代码不需要修改任何信息,直接执行即可。
    [root@controll ~]# cat link.sh 
    #/bin/sh
    
    # 先创建一个文件
    if [ -e /work ] ; then
            echo '/work The file exists'
    else
            mkdir /work
            echo 'mkdir /work ok '
    fi
    
    > /work/ifcfg.txt
    ls /etc/sysconfig/network-scripts| grep ifcfg- |awk -F- '{print $2}' >> /work/ifcfg.txt
    echo "现有如下网卡名称:"
    cat /work/ifcfg.txt
    
    cat << ccx
    ******************************************
    *  下面展示接口名称的 Link detected状态     *
    ******************************************
    ccx
    
    cat /work/ifcfg.txt| while read work ; do
            if [ $work == lo ] ;then
                    continue
            fi
    echo -e "ifcfg-$work网口的Link detected状态为:\c"
    ethtool $work | grep Link | awk '{print $3}'
    done
    
    if [  -f /work/ ] ; then
    echo "/work is exists"
    else
    rm -rf /work
    fi
    [root@controll ~]# 
    

    执行效果

    • 该脚本可以放在任意位置
      注:执行前先看看本地是否有/work的文件夹,如果有该文件夹,将代码中的/work改一下,否则会干掉该文件夹【文件不会被干掉】!!!!
    • 执行方式:sh link.sh
    [root@controll ~]# sh link.sh
    mkdir /work ok 
    现有如下网卡名称:
    ens33
    ens38
    ens39
    ens40
    lo
    ******************************************
    *  下面展示接口名称的 Link detected状态     *
    ******************************************
    ifcfg-ens33网口的Link detected状态为:yes
    ifcfg-ens38网口的Link detected状态为:yes
    ifcfg-ens39网口的Link detected状态为:no
    ifcfg-ens40网口的Link detected状态为:no
    [root@controll ~]# 
    [root@controll ~]# ll /work
    ls: cannot access /work: No such file or directory
    [root@controll ~]# 
    

    遍历该脚本

    • 上面已经有遍历的方式了,我这就不展示了。
    • 执行思路:
      • 1、先将该脚本用scp批量拷贝到需要执行的服务器上
      • 2、批量执行服务器上的该脚本

    确认千兆口网卡名称和万兆口网卡名称

    说明

    • 这个主要是用于,千兆和千兆做一个bond,万兆和万兆做一个bond,所以需要先知道千兆和万兆口分别是哪些
    • 使用命令ethtool命令可以看到Speed结果的。

    代码

    • 要获取全部网卡的Speed结果,首先得获取全部的接口名称,本来这种方式想用数组的方式存储的,但数组有点复杂,并且难以理解,所以就用最简单的,存入文件方式实现了【无需担心本地会多文件,最终会干掉所有生成的文件】;
      其次lo名称是回环接口名称,所以不需要看lo的Link状态,所以我用if过滤掉lo接口了。
    • 下列代码不需要修改任何信息,直接执行即可。
    [root@controll ~]# cat speed.sh 
    #/bin/sh
    
    # 先创建一个文件
    if [ -e /work ] ; then
            echo '/work The file exists'
    else
            mkdir /work
            echo 'mkdir /work ok '
    fi
    
    > /work/ifcfg.txt
    ls /etc/sysconfig/network-scripts| grep ifcfg- |awk -F- '{print $2}' >> /work/ifcfg.txt
    echo "现有如下网卡名称:"
    cat /work/ifcfg.txt
    
    cat << ccx
    ******************************************
    * 下列网卡中万兆接口结果为:10000Mb/s       *
    * 下列网卡中千兆接口结果为: 1000Mb/s       *
    * 【下列网卡中结果为:Unknown!             *
    *   则表示该网卡未启用,忽略即可】          *
    ******************************************
    ccx
    
    cat /work/ifcfg.txt| while read work ; do
            if [ $work == lo ] ;then
                    continue
            fi
    echo -e "ifcfg-$work网口的Speed结果为:\c"
    ethtool $work | grep Speed | awk '{print $2}'
    done
    
    if [  -f /work/ ] ; then
    echo "/work is exists"
    else
    rm -rf /work
    fi
    [root@controll ~]# 
    

    执行效果

    • 该脚本可以放在任意位置
      注:执行前先看看本地是否有/work的文件夹,如果有该文件夹,将代码中的/work改一下,否则会干掉该文件夹【文件不会被干掉】!!!!
    • 执行方式:sh speed.sh
    [root@controll ~]# sh speed.sh
    mkdir /work ok 
    现有如下网卡名称:
    ens33
    ens38
    ens39
    ens40
    lo
    ******************************************
    * 下列网卡中万兆接口结果为:10000Mb/s       *
    * 下列网卡中千兆接口结果为: 1000Mb/s       *
    * 【下列网卡中结果为:Unknown!             *
    *   则表示该网卡未启用,忽略即可】          *
    ******************************************
    ifcfg-ens33网口的Speed结果为:1000Mb/s
    ifcfg-ens38网口的Speed结果为:1000Mb/s
    ifcfg-ens39网口的Speed结果为:Unknown!
    ifcfg-ens40网口的Speed结果为:Unknown!
    [root@controll ~]#
    [root@controll ~]# ll /work
    ls: cannot access /work: No such file or directory
    [root@controll ~]# 
    

    遍历该脚本

    • 上面已经有遍历的方式了,我这就不展示了。
    • 执行思路:
      • 1、先将该脚本用scp批量拷贝到需要执行的服务器上
      • 2、批量执行服务器上的该脚本

    确认网卡接口位置

    说明

    • 如现在有一个需求:需求是1&4 2& 3进行绑定
      问题来了:你怎么知道谁是1,谁是2,谁是3,谁是4 。【所谓是1,2,3,4:就是机房光口的位置而已】

      • 最简单的解决方法:
        去机房插光纤,一根一根的插
        插第一口,在服务器上记录名称,
        再插第二口,在服务器上记录名称
        再插第三口,在服务器上记录名称
        在插第四口,在服务器上记录名称

      • 另一个方法,就是在交换机上获取接口的mac名称【需要网络的同事提供了】
        然后根据第一口的mac名称对应出第一口网卡名称
        根据第二口的mac名称对应出第二口网卡名称
        根据第三口的mac名称对应出第三口网卡名称
        根据第四口的mac名称对应出第四口网卡名称

    • mac查看说明
      有些Linux发行版本的MAC地址字段为HWaddr,有些Linux发行版本的MAC地址字段为ether,根据实际情况看关键字【多数为ehter】
      查看方式见下面代码【命令后面有说明】

    [root@controll ~]# ip link #查看所有mac
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:4c:e2:1a brd ff:ff:ff:ff:ff:ff
    3: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:4c:e2:24 brd ff:ff:ff:ff:ff:ff
    4: ens39: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:4c:e2:2e brd ff:ff:ff:ff:ff:ff
    5: ens40: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:4c:e2:38 brd ff:ff:ff:ff:ff:ff
    6: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
        link/ether 52:54:00:d1:84:32 brd ff:ff:ff:ff:ff:ff
    7: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT group default qlen 1000
        link/ether 52:54:00:d1:84:32 brd ff:ff:ff:ff:ff:ff
    [root@controll ~]# ip link show ens33 #查看单台mac
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
        link/ether 00:0c:29:4c:e2:1a brd ff:ff:ff:ff:ff:ff
    [root@controll ~]# 
    [root@controll ~]# ip link show ens33 | awk '/ether/ {print $2}' #提取mac
    00:0c:29:4c:e2:1a
    [root@controll ~]#
    

    代码

    • 要获取全部网卡的Speed结果,首先得获取全部的接口名称,本来这种方式想用数组的方式存储的,但数组有点复杂,并且难以理解,所以就用最简单的,存入文件方式实现了【无需担心本地会多文件,最终会干掉所有生成的文件】;
      其次lo名称是回环接口名称,所以不需要看lo的Link状态,所以我用if过滤掉lo接口了。
    • 下列代码直接执行如果获取不到mac信息,将下面的ether更改为HWaddr即可。
    • 下面直接提出所有网卡mac信息和使用中网卡的mac信息,自己对应一下吧,如果弄成自动对应的话,还需要定义mac,较麻烦不说,如果mac定义错了就没结果了。
    [root@controll ~]# cat mac.sh 
    #/bin/sh
    
    # 先创建一个文件
    if [ -e /work ] ; then
            echo '/work The file exists'
    else
            mkdir /work
            echo 'mkdir /work ok '
    fi
    
    > /work/ifcfg.txt
    ls /etc/sysconfig/network-scripts| grep ifcfg- |awk -F- '{print $2}' >> /work/ifcfg.txt
    echo "现有如下网卡名称:"
    cat /work/ifcfg.txt
    
    cat << ccx
    ******************************************
    * 全部网卡对应的mac信息如下                 *
    ******************************************
    ccx
    
    cat /work/ifcfg.txt| while read work ; do
            if [ $work == lo ] ;then
                    continue
            fi
    echo -e "ifcfg-$work网口的mac为:\c"
    ip link show $work | awk '/ether/ {print $2}'
    done
    cat << ccx
    ******************************************
    * 使用中的网卡mac信息如下                  *
    ******************************************
    ccx
    
    cat /work/ifcfg.txt| while read work ; do
            if [ $work == lo ] ;then
                    continue
            fi
    link=`ethtool $work | grep Link | awk '{print $3}'`
            if [ $link == yes ] ;then
            echo -e "ifcfg-$work网口的mac为:\c"
            ip link show $work | awk '/ether/ {print $2}'
            else
                    continue
            fi
    done
    
    if [  -f /work/ ] ; then
    echo "/work is exists"
    else
    rm -rf /work
    fi
    [root@controll ~]# 
    

    执行效果

    • 该脚本可以放在任意位置
      注:执行前先看看本地是否有/work的文件夹,如果有该文件夹,将代码中的/work改一下,否则会干掉该文件夹【文件不会被干掉】!!!!
    • 执行方式:sh mac.sh
    [root@controll ~]# sh mac.sh 
    mkdir /work ok 
    现有如下网卡名称:
    ens33
    ens38
    ens39
    ens40
    lo
    ******************************************
    * 全部网卡对应的mac信息如下                 *
    ******************************************
    ifcfg-ens33网口的mac为:00:0c:29:4c:e2:1a
    ifcfg-ens38网口的mac为:00:0c:29:4c:e2:24
    ifcfg-ens39网口的mac为:00:0c:29:4c:e2:2e
    ifcfg-ens40网口的mac为:00:0c:29:4c:e2:38
    ******************************************
    * 使用中的网卡mac信息如下                  *
    ******************************************
    ifcfg-ens33网口的mac为:00:0c:29:4c:e2:1a
    ifcfg-ens38网口的mac为:00:0c:29:4c:e2:24
    [root@controll ~]# 
    [root@controll ~]# ls /work
    ls: cannot access /work: No such file or directory
    [root@controll ~]# 
    

    遍历该脚本

    • 上面已经有遍历的方式了,我这就不展示了。
    • 执行思路:
      • 1、先将该脚本用scp批量拷贝到需要执行的服务器上
      • 2、批量执行服务器上的该脚本
    展开全文
  • Linux下配置bond0

    千次阅读 2021-04-07 16:05:04
    Linux下配置bond0 1.使用network接管网络服务,停止使用NetworkManager,如若没有network服务,安装network-scripts安装包即可 2.做之前备份网卡配置文件。 配置模板 前景要求:6个网口,两两配置bond0,连接名分别...

    Linux下配置bond0

    1.使用network接管网络服务,停止使用NetworkManager,如若没有network服务,安装network-scripts安装包即可

    2.做之前备份网卡配置文件。

    配置模板

    前景要求:6个网口,两两配置bond0,连接名分别为servicebondcloudbondstoragebond,三个平面的VLan ID分别为19,320,414

    一、配置连接名

    # vim /etc/sysconfig/network-scripts/ifcfg-servicebond
    NAME=servicebond
    BONDING_MASTER=yes
    TYPE=Bond
    DEVICE=servicebond
    BONDING_OPTS="mode=0 miimon=100"
    BOOTPROTO=static
    ONBOOT=yes
    USERCTL=no
    

    二、配置VLan ID子接口

    # vim /etc/sysconfig/network-scripts/ifcfg-servicebond.19
    DEVICE=servicebond.19
    NAME=servicebond.19
    BOOTPROTO=none
    ONBOOT=yes
    IPADDR=
    NETMASK=
    GATEWAY=
    USERCTL=no
    VLAN=yes
    NM_CONTROLLED=no
    
    ###如不配置VLan ID,做以下操作外加第三、四步骤即可
    # vim /etc/sysconfig/network-scripts/ifcfg-servicebond
    DEVICE=servicebond
    NAME=servicebond
    TYPE=Bond
    IPADDR=
    NETMASK=
    GATEWAY=
    USERCTL=no
    NM_CONTROLLED=no
    BONDING_OPTS="mode=0 miimon=100"
    BOOTPROTO=static
    ONBOOT=yes
    USERCTL=no
    
    

    三、添加两块子网卡

    # vim /etc/sysconfig/network-scripts/ifcfg-enp130s0f1
    BOOTPROTO=none
    DEVICE=enp130s0f1
    ONBOOT=yes
    MASTER=servicebond
    SLAVE=yes
    USERCTL=no
    
    # vim /etc/sysconfig/network-scripts/ifcfg-enp132s0f0 <<CCC
    BOOTPROTO=none
    DEVICE=enp132s0f0
    ONBOOT=yes
    MASTER=servicebond
    SLAVE=yes
    USERCTL=no
    
    

    四、启动网络服务

    # service network restart
    出现ignore等告警,忽略即可
    

    五、查看bond状态

    # cat /proc/net/bonding/servicebond
    查看两块子网卡和激活状态
    
    展开全文
  • centos7和centos6的bond0配置

    千次阅读 2018-11-23 00:24:37
    centos7和centos6的bond0配置 版权声明:转载请标明出处 https://blog.csdn.net/root__oo7/article/details/81902736 通过两个网卡设置主备模式,已达到更加安全的措施。当一块网卡坏时,另一块网卡会自动补充上去...
  • 运维工程师 谢晋 网卡绑定bond0的实现 查看系统版本 # cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) VMware虚拟机添加一块新网卡 可以看到新加了一块网卡(DHCP自动获取到了地址) 配置物理网卡 ...
  • 网口bond配置

    2022-05-11 21:49:31
    在实际环境中,通常都要配置bond,起到一个冗余和负载均衡的作用,提高...二、创建bond配置文件 1、vim /etc/sysconfig/network-scripts/ifcfg-bond0,把下面的配置文件写入配置文件当中 DEVICE=bond0 TYPE=Ethernet
  • bond网卡配置文件

    2021-10-28 16:50:44
    MASTER=bond0 SLAVE=yes ====================================== ifcf-bond0(逻辑网卡) DEVICE=bond0 TYPE=Bond NAME=bond0 BONDING_MASTER=yes BOOTPROTO=static USERCTL=no ONBOOT=yes IPADDR=xxx.xxx...
  • Centos网卡bond模式配置 比较详细,希望能帮助到大家
  • 实验环境: 新增两块网卡,仅主机模式 实验目的: ...nmcli connection add type bond con-name bond0 ifname bond0 mode balance-rr 加入组成员 nmcli connection add type bond-slave con-name bond0-e...
  • 配置示例:网卡名为eno2和eno3,bond名为bond0 前期准备 需要一个叫 ifenslave_2.7kord1_all的包 我这里有arm环境的 下载地址 1.配置eno2 vim /etc/sysconfig/network-scripts/ifcfg-eno2 配置如下 DEVICE=eno2 NAME...
  • CentOS 7 网卡bond配置

    2020-12-31 07:17:15
    对p1p1 p1p2两张网卡做bond步骤1)做之前请对各网卡配置进行备份1 使用root账号登录服务器2 cp p1p1 p1p2网卡的初始配置到tmp 目录下,进行备份。--------------------------------------------------------------...
  • 网口绑定bond配置

    2018-06-29 11:08:07
    本文不但有详细的bond原理和bond工作资料的介绍,还有华为、华三、思科等交换机厂家对于的配置说明。
  • centos7配置bond

    2022-04-28 11:42:34
    前言 这个是一个很简单的配置 操作步骤 原始配置 [root@lab101 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 DEVICE=ens33 NAME=ens33 TYPE=Ethernet BOOTPROTO=static ...配置bond 对应的增加一个bind的
  • CentOS7.x配置bond0

    千次阅读 2019-09-27 17:07:56
    系统环境 CentOS7.3、双网卡(eth0和eth1...nmcli connection add type bond ifname bond0 mode 0 如果不想修改bond网络接口配置文件可以命令后加上 ip4 "ip地址" gw4 "网关地址" nmcli connection add type bo...
  • 多网卡配置bond模式

    2021-06-03 22:35:35
    多网卡配置bond模式如何查看机器中的网卡bonding情况配置网卡bonding环境准备操作步骤(1)新增bond(2)添加slave(3)启动bond(4)查看bond连接状态(5)查看bond运行模式状态模拟环境网卡故障故障网卡删除bond...
  • bond驱动加载 [root@compute1 ~]# vim /etc/modprobe.d/bond.conf # 开机自动加载bonding...options bond0 miimon=100 mode=0 # miimon:多长时间检查一次网络,单位ms; 首先编辑文件/etc/sysconfig/network-s...
  • Linux系统bond配置

    千次阅读 2020-02-23 15:19:24
    linux系统下配置bond,通过网卡绑定可增加服务器可靠性,同时可增加网络带宽,提供稳定的网络服务。 3、bond模式 (1)mode=1:在主备模式下,只有主网卡工作,备份网卡不工作,只有当一个网络接口失效时(例如...
  • Redhat7配置bond

    千次阅读 2021-12-03 14:44:46
    nmcli connection add con-name bond0 type bond ifname bond0 mode 802.3ad nmcli connection modify bond0 ip4.addresses 192.168.1.20/24 ipv4.gateway 192.168.1.1 ipv4.method manual connection.autoconnect ...
  • ip route add default nexthop via 10.19.243.254 dev bond0 nexthop via 10.20.33.254 dev bond1 保存退出 然后 systemctl daemon-reload systemctl restart network 注意:根据实际情况的ip对应的网关和bond去...
  • bond0bond1、bond2、bond3、bond4、bond5、bond6 常用的有三种 mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。 mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。 mode=6:平衡...
  • 服务器各项配置 1、网络配置 Ubuntu20.04进行静态网络配置,需要修改的文件是一...Ubuntu配置bond需要注意以下几点: 层级的对应关系 冒号和破折号后面需要空一格 network: ethernets: eno1: dhcp4: false ...
  • SUSE和CentOS配置bond 并且加vlan1SUSE和CentOS配置bond 并且加vlan1.查询802.1q 模块是否加载2.执行加载命令3.确认是否加载4.配置bond05.给bond配置vlan号 #xxx 为...给bond配置vlan号*注意:bond配置 和 vlan 配置
  • 本文主要介绍linux bond配置步骤中的七种bond模式,希望对您的学习有所帮助。
  • 多网卡bond 0 配置

    2017-04-01 11:31:06
    bond 说明bonding 中文可以翻译为绑定。意思是将两种以上的东西绑在一块。绑定技术将多块网卡虚拟成为一块网卡,使其具有相同的ip地址,来实现提升主机的网络吞吐量或者是提高可用性,这种技术被称作bonding.|...
  • 网卡bonding模式 - bond0、1、4配置

    千次阅读 2018-12-20 10:15:02
    网卡绑定就是把多张物理网卡通过软件虚拟成一个虚拟的网卡,配置完毕后,所有的物理网卡的ip和mac将会变成相同的。多网卡同时工作可以提高网络速度,还可以实现网卡的负载均衡、冗余。   bonding模式 1 round-...
  • 先看一下系统版本# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 6.4 (Santiago)看一下网卡情况# ifconfigeth0 Link encap:Ethernet HWaddr2C:44:FD:7F:E4:C4UP BROADCAST RUNNING ...
  • centos7 bond配置和调试

    万次阅读 2018-08-27 14:23:57
    一,在做bond的时候一般都是两个网卡以上的,在/etc/sysconfig/network-scripts/中将你需要做bond的的网卡内容改为以下: ...二,在上述目录下新建ifcfg-bond0(这里只是新建名称,也可以新建其他名称)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,593
精华内容 4,637
关键字:

bond0配置