如何理解bond呢?
bond 可以叫做网卡组合,它可以实现将多个网卡的物理网络接口绑定在一起,组合成一个逻辑接口,提供更高的带宽,冗余等等。
什么场景会用的比较多呢?
在常见的云计算,虚拟化等场景中bond是非常常见的,主要用于解决网卡的可用性,当某一块网卡故障时,另外一块网卡可以自动接替服务,从而保障业务的平稳运行。
个人理解:在我个人见到的场景中,网民是通过直接访问URL来获取到想要得到的资源,而在访问的过程的域名有又是会直接解析成某个单独的IP,但是当这个IP对应设备网卡挂了,那么业务也会受到相应的影响,并且就算服务器上配备了多块网卡,也解决不了问题,因为无法将所有网卡设置为一个IP;
这个时候bond的作用就体现出来了,无需将物理网卡去设置IP,而是做一个单独的逻辑接口,也就是bond,通过bond的IP来对外,我只需要将多个物理网卡绑定在这个bond下面,那么就算某块网卡突然坏了,业务也不会直接宕掉,很好的缩小了影响范围。
bond的级别?
bond级别 | bond名称 | bond特点 | 对交换机要求 |
0 | round-robin | 按照设备顺序依次传输数据包。提供负载均衡和容错能力 | 交换机需要配置 trunking |
1 | active-backup | 只有一个设备处理数据,当它宕机时候就会由备份替代,仅提供容错能力 | 交换机不需要配 置trunking |
2 | load-balancing(xor) | 根据MAC地址异或运算的接口来选择传输设备,提供负载均衡和容错能力 | 交换机需要配置 trunking |
3 | fault-tolernace(broadcast) | 通过全部设备来传输所有数据,提供容错能力 | 交换机需要配置 trunking |
4 | lacp | 通过创建聚合组来共享相同的传输速度,需要交换机也支持 802.3ad模式,提供容错能力 | 需要交换机支持 802.3d、交换机 需要配置trunking |
5 | transmit load balancing | 由负载最轻的网口发送,由当前使用的网口接收。提供负载均衡和容错能力 | 交换机不需要配 置 trunking |
6 | adaptive load balancing | 用负载最轻的网口进行发送和接收。提供负载均衡和容错能力。 | 交换机不需要配 置trunking |
如何理解trunking:
trunking 是将一条物理链路传输到多个虚拟局域网的技术;在交换机上trunking功能是允许将多个虚拟局域网的数据通过同一条物理链路传输。
示例:
背景:有两块网卡,bond创建为主备模式,active-backup
1.创建虚拟接口
nmcli connection add type bond ifname bond1 con-name bond1 mode active-backup miimon 1000
miimon:链路监测时间,单位毫秒
2.将网卡绑定到bond接口
nmcli connection add type bond-slave ifname ens224 con-name bond-ens224 master bond1
nmcli connection add type bond-slave ifname ens160 con-name bond1-ens160 master bond1
3.给bond设置IP地址
nmcli connection modify bond1 ipv4.method auto autoconnect yes
4.激活bond
nmcli connection up bond1
5.查看bond所使用的是哪一张网卡
(其中 Currently Active Slave 这一项就代表你当前使用的网卡)
cat /proc/net/bonding/bond1