一、bond配置

1.1什么是bond?

全称:网卡绑定 / 链路聚合 把多张物理网卡(比如 ens33 + ens37)绑在一起,虚拟成一张网卡(叫 bond0)

大白话:把 2 个甚至更多网卡,合成 1 个虚拟网卡(bond0),让网速更快、更稳定、断一张不影响业务。

1.2 bond作用

服务器一般不止 1 个网口(eth0、eth1、ens33、ens37…),bond 就是把它们绑定成一个逻辑网卡,实现 3 个核心作用:

① 冗余高可用(坏一个不宕机)

  • 一张网卡坏了、网线断了
  • 另一张自动顶上
  • 业务不断、不丢包、不卡顿这叫 主备模式(active-backup)

② 带宽叠加(网速变快)

  • 2 张千兆网卡绑定 → 近似 2G 带宽
  • 4 张绑一起 → 更快这叫 负载均衡模式(balance-rr 等)

③ 自动故障切换

  • 哪张网卡出问题自动切走
  • 不用人工拔线重启

1.3 配置方法

简单来说多 就是多加一份网卡如ens36

新建两个文件ifcfg-ens36 ifcfg-bond ens36可以复制ens33 里面ip 或者其他改一下 bond 加一些东西 。可以用1.动态DHCP 2.用静态要把IP 重新配置填写好(IP、子网掩码、网关、nds 等)3.检查防护墙,重新启动 ,ping一下网站是否可以ping通。

具体步骤

1.4 网络绑定配置指南

1.4.0 查看现有网络接口UUID

执行命令查看当前网络接口配置:

nmcli connection

输出示例显示ens33和ens37接口的UUID信息。

此步可忽略

1.4.1 创建新网络接口配置文件 

   复制ens33配置作为ens36模板

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36

    修改ens36配置文件

    vi /etc/sysconfig/network-scripts/ifcfg-ens36
    

    更新以下参数:

    ifcfg-ens36 具体内容

    TYPE=Ethernet
    BOOTPROTO=none
    NAME=ens36
    DEVICE=ens36
    ONBOOT=yes
    NETBOOT=YES
    USERCTL=no
    MASTER=bond0
    SLAVE=yes

    1.4.2 配置绑定接口

    创建bond0配置文件   本人现在整理有静态和DHCP两种方法,以上仅个人看法仅供参考。

    vi /etc/sysconfig/network-scripts/ifcfg-bond0
    
    1.4.2.1 静态IP配置方案
    DEVICE=bond0
    TYPE=Bond
    NAME=bond0
    BONDING_MASTER=yes
    BOOTPROTO=static
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    DNS2=8.8.4.4
    ONBOOT=yes
    BONDING_OPTS="mode=1 miimon=100"
    

      1.4.2.2 DHCP配置方案

      DHCP 自动获取(如果网络有 DHCP 服务器)

      DEVICE=bond0
      TYPE=Bond
      NAME=bond0
      BONDING_MASTER=yes
      BOOTPROTO=dhcp
      ONBOOT=yes
      BONDING_OPTS="mode=1 miimon=100"
      

          注意检查和更新ens33和ens36配置文件。

      mode 说明:

      • mode=0 (balance-rr):负载均衡,需交换机支持端口聚合(LACP 不是必须,但建议交换机配置静态链路聚合)。

      • mode=1 (active-backup):主备模式,不需要交换机配置,更稳定。 如果只是简单测试或不确定交换机配置,推荐使用 mode=1。

      • mode=2,(平衡策略)

        mode=4,( IEEE 802.3ad 动态链路聚合,需要交换机配置)

        mode=5,

        mode=6

        miimon:指定MII链路监控频率,单位是毫秒(ms)。这将决定驱动检查每个slave链路状态频率。0表示禁止MII链路监控。100可以作为一个很好的初始参考值

      1.4.3  验证配置
      1. 检查绑定状态
      cat /proc/net/bonding/bond0
      
        注意事项

        确保关闭NetworkManager服务

        systemctl stop NetworkManager
        systemctl disable NetworkManager
        
          echo "bonding" > /etc/modules-load.d/bonding.conf
          
          1. 如需持久化配置,创建模块加载文件防火墙配置可能需要相应调整以允许网络流量

               2. 确保dns客户配置文件里面nameserver 114.114.114.114 或者 8.8.8.8如追加一下。 

          1.4.4 重启网络服务

          根据系统类型选择对应方法:

          使用 systemctl(推荐)
          执行以下命令重启网络服务:

          sudo systemctl restart network
          

          对于使用 NetworkManager 的系统(如 CentOS 8+),需停用其托管接口或改用 nmcli 配置绑定。更稳妥的方法是直接操作 network 服务:

          sudo systemctl stop NetworkManager
          sudo systemctl disable NetworkManager  # 临时禁用
          sudo systemctl restart network
          

          若需保留 NetworkManager,可通过 nmcli 配置绑定,但建议优先使用传统脚本方式。


          1.4.5 验证 bond0 状态

          检查绑定接口状态:

          cat /proc/net/bonding/bond0
          ip a

          输出应显示两个从属接口(如 ens33、ens36)及 bond0 的 IP 信息。

          测试网络连通性:

          ip a show bond0
          ping 8.8.8.8 -c 4
          ping baidu.com -c 4
          

          若能成功 ping 通外部地址,说明配置生效。


          1.4.6 持久化配置(可选)

          若重启后绑定失效,需确保以下配置正确:

          • 文件 /etc/modules-load.d/bonding.conf 存在且内容完整。
          • ifcfg-bond0 中的 BONDING_OPTS 参数与需求一致。

          注意补充:设置bond时虚拟机可能会有适配器mac冲突,需要在重新生成一下。

          二、正则表达式(部分)

          2.1文本处理工具:(文本三剑客)

          egrep   匹配并输出关键词所在的行
          sed     修改、查找、替换文本的关键词/行内容
          awk     已列为单位提取并输入列内容(一般会以指定的符号作为分割符)

          2.2 正则表达式基础

          正则表达式:把我们用户的需本处理工具 + 特殊符号的表达方式
          元字符:指的是文本处理工具(三剑客) 使用求,转换为文的特殊符号

          2.3 基础元字符匹配

          单字符与范围匹配:点(.)匹配任意单个字符;中括号([])匹配括号内任意一个字符,支持范围表示(如[a-z]);上箭头(^)在中括号内表示取反,在中括号外表示行首锚定。

          次数匹配逻辑:星号(*)表示前一个字符出现零次或多次;加号(+)表示前一个字符出现一次或多次;问号(?)表示前一个字符出现零次或一次。

          精确次数控制:大括号({})用于精确控制次数,{n} 表示恰好 n 次,{n,} 表示至少 n 次,{n,m} 表示 n 到 m 次。

          2.4 元字符运用案例

          ① .    代表有且只有一个字符,案例:

          [root@localhost opt]# grep 'a.c' 1.txt
          abc
          a c
          aBc
          a?c

          ② [] 表示匹配中括号中任意一个字符,案例:

          [root@localhost opt]# egrep 'a[bB ]c' 1.txt
          abc
          a c
          aBc

          ③ [^] 表示先匹配中括号中任意一个字符,然后取反案例:

          [root@localhost opt]# egrep 'a[^bB ]c' 1.txt
          a?c

          ④ [a-z] [A-Z] [a-Z] [0-9]
          分别表示匹配"小写字母" "大写字母" "大小写字母" "0-9数字"

          [root@localhost opt]# egrep 'a[a-Z0-9]c' 1.txt
          abc
          a1c
          aBc
          
          表示:0~255 区间
          0~9:       [0-9]
          10~99:     [1~9][0-9]
          100~199:   1[0-9][0-9]
          200~249:   2[0-4][0-9]
          250~255:   25[0-5]
          egrep^ '[0-9]|[1~9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]'$
             加上首尾限制^$


          ⑤ 匹配次数:

          *  表示前面的一个字符出现0次1次或多次
          +  表示前面的一个字符出现1次或多次
          ? 表示前面的一个字符出现0次或1次 案例:
          [root@localhost opt]# egrep 'ab*c' 1.txt
          abc
          abbc
          ac
          [root@localhost opt]# egrep 'ab+c' 1.txt
          abc
          abbc
          [root@localhost opt]# egrep 'ab?c' 1.txt
          abc
          ac
          
          
          {n} 表示前一个字符出现n次
          {n,} 表示前一个字符至少出现n次
          {n,m} 表示前一个字符至少出现n次,最多出现m次 案例:
          
          [root@localhost opt]# egrep 'ab{2}c' 1.txt
          abbc
          [root@localhost opt]# egrep 'ab{8}c' 1.txt
          abbbbbbbbc
          [root@localhost opt]# egrep 'ab{3,}c' 1.txt
          abbbbbbbbc
          abbbbbc
          [root@localhost opt]# egrep 'ab{2,5}c' 1.txt
          abbc
          abbbbbc

          ⑥ 分组 () 小括号内的多个字符视为一个整体,案例:

          [root@localhost opt]# egrep '(ab)+' 1.txt
          abc
          abbc
          abbbbbbbbc
          abbbbbc
          ababababa
          abbbabbb
          [root@localhost opt]# egrep '(ab){2}' 1.txt
          ababababa
          [root@localhost opt]# egrep '(ab){3,}' 1.txt
          ababababa

          更多推荐