Linux网卡bond的七种模式详解,⽹卡绑定(bond)怎么实现?有哪些绑定⽅式?

七种bond模式说明:
第一种模式:mod=0,即:(balance-rr) Round-robin policy(平衡抡循环策略) 特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传 输完毕),此模式提供负载平衡和容错能力。

第二种模式:mod=1,即: (active-backup) Active-backup policy(主-备份策略)
特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。

第三种模式:mod=2,即:(balance-xor) XOR policy(平衡策略)
特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。
其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力。

第四种模式:mod=3,即:broadcast(广播策略) 特点:在每个slave接口上传输每个数据包,此模式提供了容错能力。

第五种模式:mod=4,即:(802.3ad) IEEE 802.3adDynamic link aggregation(IEEE 802.3ad 动态链接聚合)
特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。
必要条件:
条件1:ethtool支持获取每个slave的速率和双工设定。
条件2:switch(交换机)支持IEEE 802.3ad Dynamic link aggregation。
条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式。

第六种模式:mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)
特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。
该模式的必要条件:
ethtool支持获取每个slave的速率

第七种模式:mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)
特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance,
rlb),而且不需要任何switch(交换机)的支持。

centos配置

将网卡名称改为传统网卡命名方式,看着方便,好区分,添加 rhgb quiet net.ifnames=0

[root@woo ~]# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

在这里插入图片描述
为grub2生成其配置文件

[root@woo ~]# grub2-mkconfig -o /etc/grub2.cfg

重启系统后,网卡名变为eh0、eth1、eth2、eth3

[root@woo ~]# reboot

4个物理网口分别是 :
eth0、eth1(这2块网卡为外网,192.168.190.0/24)
绑定后的虚拟口是 :bond0(192.168.190.111)
eth2、eth3(这2块网卡为内网,192.168.56.0/24)
绑定后的虚拟口是:bond1(192.168.56.111)

在这里插入图片描述

配置网卡信息,bond0配置:

[root@woo ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
BONDING_OPTS="miimon=100 mode=0"
IPADDR=192.168.190.111
NETMASK=255.255.255.0
GATEWAY=192.168.190.2
DNS1=114.114.114.114

在这里插入图片描述

配置网卡信息,eth0配置:

[root@woo ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
SLAVE=yes

在这里插入图片描述
配置网卡信息,eth1配置:

[root@woo ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes

在这里插入图片描述

配置网卡信息,bond1配置:

[root@woo ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond1
DEVICE=bond1
BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
BONDING_OPTS="miimon=100 mode=1"
IPADDR=192.168.56.111
NETMASK=255.255.255.0
GATEWAY=192.168.56.2
#DNS1=114.114.114.114

在这里插入图片描述

配置网卡信息,eth2配置:

[root@woo ~]# vim ifcfg-eth2
DEVICE=eth2
ONBOOT=yes
MASTER=bond1
SLAVE=yes

在这里插入图片描述
配置网卡信息,eth3配置:

[root@woo ~]# vim ifcfg-eth3
DEVICE=eth3
ONBOOT=yes
MASTER=bond1
SLAVE=yes

在这里插入图片描述

重启一下网络,然后确认一下状况:

[root@woo ~]#  systemctl  restart network
[root@woo ~]#  cat /proc/net/bonding/bond0
[root@woo ~]#  cat /proc/net/bonding/bond1

在这里插入图片描述
在这里插入图片描述

确认模块是否加载成功:

[root@woo ~]#  lsmod | grep bonding
bonding 149864 0

ubuntu 18.04配置

4个物理网口分别是 :
eth0、eth1(这2块网卡为外网,192.168.190.0/24)
绑定后的虚拟口是 :bond0(192.168.190.18)
eth2、eth3(这2块网卡为内网,192.168.56.0/24)
绑定后的虚拟口是:bond1(192.168.56.18)

在这里插入图片描述

root@web2:~# sudo vim /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
    eth1:
      dhcp4: no
      dhcp6: no
    eth2:
      dhcp4: no
      dhcp6: no
    eth3:
      dhcp4: no
      dhcp6: no

  bonds:
    bond0:
      interfaces:
        - eth0
        - eth1
      addresses: [192.168.190.18/24]
      gateway4: 192.168.190.2
      nameservers:
        addresses: [114.114.114.114,180.76.76.76]
      parameters:
        mode: active-backup
        mii-monitor-interval: 100
    bond1:
      interfaces:
        - eth2
        - eth3
      addresses: [192.168.56.18/24]
      parameters:
        mode: active-backup
        mii-monitor-interval: 100
        #      routes:
        #- to: 172.20.0.0/16
        #  via: 10.20.0.1
        #- to: 10.20.0.0/16
        #  via: 10.20.0.1
        #- to: 10.2.0.0/16
        #  via: 10.20.0.1
        #- to: 10.8.0.0/16
        #  via: 10.20.0.1

yaml文件有严格的缩进格式,严格按照以下格式
在这里插入图片描述
重启网络服务

root@web2:~# sudo netplan apply

查看网卡状态

root@web2:~# cat /proc/net/bonding/bond0
root@web2:~# cat /proc/net/bonding/bond1

在这里插入图片描述
在这里插入图片描述

备注:
如果有同学想直接复制我的配置文件进行修改,可能在vim里面格式会错乱,需要进入 paste 模式:

:set paste

进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。但粘帖后还需要按<ESC> 进入普通模式并执行如下命令结束 paste 模式:

:set nopaste
  • 8
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值