#ip bond 通常将服务器双网口通过软件做成bond模式分配一个ip,可以防止单网口故障,达到高可用,负载均衡等特性 ~' 模式 不关心设置mode6,中文选最后一个 共支持bond[0-6]共七种模式,常用的就三种,如下: mode=0:默认,平衡负载模式,有自动备援,但需要配置交换机。 mode=1:主备模式,其中一条线若断线,其他线路将会自动备援,不需要配置交换机。 mode=6:平衡负载模式,有自动备援,不需要配置交换机。 俗称 配置简称 中文名 解释 bond0 balance-rr 平衡轮询策略 传输数据包顺序是依次传输,直到最后一个传输完毕,此模式提供负载平衡和容错能力。 bond1 active-backup 活动备份策略 只有一个设备处于活动状态。一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。此模式提供了容错能力。 bond2 balance-xor 平衡策略 传输根据 (源MAC地址 xor 目标MAC地址) mod 设备数量 的布尔值选择传输设备。 此模式提供负载平衡和容错能力。 bond3 broadcast 广播策略 将所有数据包传输给所有设备。此模式提供了容错能力。 bond4 802.3ad IEEE IEEE 802.3ad 动态链接聚合 创建共享相同的速度和双工设置的聚合组。此模式提供了容错能力。每个设备需要基于驱动的重新获取速度和全双工支持;如果使用交换机,交换机也需启用 802.3ad 模式。 bond5 balance-tlb 适配器传输负载均衡 通道绑定不需要专用的交换机支持。发出的流量根据当前负载分给每一个设备。由当前设备处理接收,如果接受的设 备传不通就用另一个设备接管当前设备正在处理的mac地址。 bond6 balance-alb 适配器负载均衡 包括mode5,由 ARP 协商完成接收的负载。bonding驱动程序截获 ARP在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。 ' #查看bond模块,默认主流发行版都有 modinfo bonding |more #加载bonding模块 sudo modprobe bonding --first-time #卸载bonding模块,可以用于删除bond sudo modprobe -r bonding #验证 lsmod | grep bonding vim /etc/modprobe.d/dist.conf #查看bond具体信息 cat /proc/net/bonding/ ###图形化 nmtui #常规发行版图形化安装时也可以设置 ###nmcli 设置bond #查看网卡信息 nmcli device nmcli connection show #设置bond0 (mode 4) 添加slava网卡 nmcli connection add con-name bond0 ifname bond0 type bond mode 6 nmcli connection add type bond-slave ifname enp49s0f0 master bond0 nmcli connection add type bond-slave ifname enp49s0f1 master bond0 #启用bond0和对应的slava网卡 nmcli connection up bond0 nmcli connection up bond-slave-enp49s0f0 nmcli connection up bond-slave-enp49s0f1 #将下面命令加入/etc/sysconfig/network-scripts/ifcfg-bond4中,可以解决network和NetworkManager冲突 NM_CONTROLLED=no sudo ip link add bond0 type bond mode 802.3ad sudo ip link set ens33 master bond0 sudo ip link set ens36 master bond0 sudo ip link #如果设置bond为静态也是修改/etc/sysconfig/network-scripts/ifcfg-bond4中的设置,具体可以参考下面centos中bond1配置文件 ###centos #编辑bond1配置文件 cat > /etc/sysconfig/network-scripts/ifcfg-bond1 << EOF > DEVICE=bond1 > TYPE=Bond > IPADDR=192.168.171.111 > NETMASK=255.255.255.0 > GATEWAY=192.168.171.2 > DNS1=114.114.114.114 > DNS2=8.8.8.8 > USERCTL=no > BOOTPROTO=none > ONBOOT=yes EOF #修改网卡ens33配置文件 [root@web01 ~]# cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF > DEVICE=ens33 > TYPE=Ethernet > ONBOOT=yes > BOOTPROTO=none > DEFROUTE=yes > IPV4_FAILURE_FATAL=no > NMAE=ens33 > MASTER=bond1 # 需要和上面的ifcfg-bond1配置文件中的DEVICE的值一致 > SLAVE=yes EOF #重启网卡使配置生效 systemctl restart network #查看bond相关信息 cat /proc/net/bonding/bond1 sudo ifconfig ens33 down sudo ifconfig ens36 down sudo ip link add bond0 type bond mode 802.3ad sudo ip link set ens33 master bond0 sudo ip link set ens36 master bond0 sudo ip link sudo vim /etc/network/interfaces ###ubuntu #查看bond模块,默认主流发行版都有 modinfo bonding |more #加载bonding模块 sudo modprobe bonding #写 netplan 的配置文件,可以参考 Netplan reference:bonds 和 Netplan configuration examples,下面给一个大致的写法。 vi /etc/netplan/02-bond-config.yaml ~' # /etc/netplan/02-bond-config.yaml # 上面的是文件名,记住是 # This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: eno0: dhcp4: no optional: true eno1: dhcp4: no optional: true bonds: bond0: interfaces: - eno0 - eno1 parameters: mode: balance-xor mii-monitor-interval: 100 addresses: - "192.168.1.101/24" gateway4: "192.168.1.1" nameservers: addresses: - "192.168.1.101" - "8.8.8.8" - "8.8.4.4" ' #使其生效 sudo netplan -v apply #查看该网卡(注:若网卡不物理up则不会显示IP信息) ifconfig bond0 ethtool bond0 ~' # /etc/netplan/02-bond4.yaml network: version: 2 renderer: networkd ethernets: enp101s0f0: dhcp4: no enp101s0f1: dhcp4: no bonds: bond4: interfaces: - enp101s0f0 - enp101s0f1 parameters: mode: 802.3ad mii-monitor-interval: 100 addresses: - "10.10.1.1/24" gateway4: "10.10.1.1" ' #https://support.huawei.com/enterprise/zh/knowledge/EKB1100110418 modprobe bonding cd /sys/class/net echo +trunk_wl > bonding_masters cd /sys/class/net/trunk_wl/bonding echo 4 > mode ifconfig eth2 down echo +eth2 > slaves ifconfig eth3 down echo +eth3 > slaves ifconfig trunk_wl up