1. 网卡的绑定模式 网卡的bond模式有七种,0到6,常用的三种,分别是mode 0,mode 1,mode 6。 1.1. mode=0(balance-rr) 平衡轮询策略:轮流使用每个接口的发送接收数据包。 1.2. mode=1(active-backup) 表示主备模式,即同时只有一块网卡在工作。冗余性高,链路利用率低。 1.3. mode=2(balance-xor) 平行策略,基于锁选的传送hash进行策略,表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。 1.4. mode=3(broadcast) 广播策略,表示所有包从所有网络接口发出,这个不均衡,只有冗余机制,但过于浪费资源。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。需要和交 1.5. mode=4(802.3ad) IEEE802.3ad动态链接聚合,表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy).标准要求所有设备在聚合操作时,要在同样的速率和双工模式,而且,和除了balance-rr模式外的其它bonding负载均衡模式一样,任何连接都不能使用多于一个接口的带宽。 1.6. mode=5(balance-tlb) 适配器传输负载均衡,是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave。该模式要求slave接口的网络设备驱动有某种ethtool支持;而且ARP监控不可用。 1.7. mode=6(balance-alb) 适配器适应性负载均衡,在5的tlb基础上增加了rlb(接收负载均衡receiveload balance).不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的. 2. 网卡绑定配置 2.1. 配置bond环境 2.1.1. 安装负载均衡软件fenslave sudo apt install ifenslave 2.1.2. 添加bonding模块 添加 bonding 模块,使之开机自动加载该模块
手动加载绑定模块 modprobe bonding lsmod | grep bonding
2.1.3. 停用NetworkManager服务 systemctl stop NetworkManager # 停止NetworkManager服务 systemctl disable NetworkManager # 取消NetworkManager服务开机自启 2.1.4. 启用networking服务 systemctl start networking.service # 启动networking服务 systemctl enable networking.service # 设置networking服务开机自启 2.2. 配置bond模式0 2.2.1. 创建bond模式0配置文件 sudo vim /etc/network/interfaces.d/bond0 添加内容如下: auto bond0 iface bond0 inet static address 192.168.0.210 netmask 255.255.255.0 gateway 192.168.0.1 bond-mode 0 bond-slaves eth0 eth1 bond-miimon 100 bond-downdelay 200 bond-updelay 200
配置参数解析: 使能bond1模块,配置为静态IP auto bond1 配置静态IP参数 address xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx gateway xxx.xxx.xxx.xxx bond-mode 1 # 绑定模式为1(可选模式0-6) bond-slave eth0 eht1 # 从网卡设置 bond-miimon 100 # 网卡状态监测周期100ms bond-downdealy 200 # 网卡down时间,单位ms bond-updelay 200 # 网卡up时间,单位ms 2.2.2. 重启网络服务 systemctl restart networking.service 2.2.3. 查看状态 cat /proc/net/bonding/bond0
2.3. 配置bond模式1(主备模式) 2.3.1. 创建bond模式1配置文件 sudo vim /etc/network/interfaces.d/bond0 添加如下内容: auto bond0 iface bond0 inet static address 192.168.0.210 netmask 255.255.255.0 gateway 192.168.0.1 bond-mode 1 bond-primary eth0 bond-slaves eth0 eth1 bond-miimon 100 bond-downdelay 200 bond-updelay 200
配置参数解析: bond-primary eth0 # 绑定主网卡为eth0,有流量优先走eth0 2.3.2. 重启网络服务 systemctl restart networking.service 2.3.3. 查看状态 cat /proc/net/bonding/bond0
2.4. 配置bond模式6 2.4.1. 创建bond模式6配置文件 sudo vim /etc/network/interfaces.d/bond0 添加如下内容: auto bond0 iface bond0 inet static address 192.168.0.210 netmask 255.255.255.0 gateway 192.168.0.1 bond-mode 6 bond-slaves eth0 eth1 bond-miimon 100 bond-downdelay 200 bond-updelay 200
2.4.2. 重启网络服务 systemctl restart networking.service 2.4.3. 查看状态 cat /proc/net/bonding/bond0
2.5. bond网卡启动及停止 ifdown bond0 # 停止bond0网卡 ifup bond0 # 启动bond0网卡 |