centos7下双网卡绑定(bonding技术)
现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景。linux操作系统下自带的网卡绑定模式,Linux bonding驱动提供了一个把多个网络接口设备捆绑为单个网络接口设置来使用,用于网络负载均衡及网络冗余。当然现在网卡产商也会出一些针对windows操作系统网卡管理软件来做网卡绑定(windows操作系统没有网卡绑定功能 需要第三方支持)。
一、 Bonding的应用
1、 网络负载均衡
对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多个用户同时使用的情况下,网络压力是极大的,为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是bonding 。
2、 网络冗余
对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把网个网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡也能提供正常的服务。
二、 Bonding的原理
什么是bonding需要从网卡的混杂(promisc)模式说起。我们知道,在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接 收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的 Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。
三、 Bonding的模式
linux有七种网卡绑定模式:
模式代号 |
模式名称 |
模式方式 |
说明 |
0 |
(balance-rr) Round-robin policy |
轮询策略 |
该策略是按照设备顺序依次传输数据包,直到最后一个设备。这种模式提供负载均衡和容错能力。 |
1 |
(active-backup) Active-backup policy |
主备策略 |
该策略只有一个设备处于活动状态。 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见的。 此模式提供了容错能力。 |
2 |
(balance-xor) XOR policy |
异或策略 |
该策略是根据MAC地址异或运算的结果来选择传输设备,提供负载均衡和容错能力。 |
3 |
Broadcast policy |
广播策略 |
该策略将所有数据包传输给所有接口通过全部设备来传输所有数据,提供容错能力。 |
4 |
(802.3ad) IEEE 802.3ad Dynamic link aggregation |
动态链接聚合 |
该策略通过创建聚合组来共享相同的传输速度,需要交换机也支持 802.3ad 模式,提供容错能力。 |
5 |
(balance-tlb) Adaptive transmit load balancing |
适配器传输负载均衡 |
该策略是根据当前的负载把发出的数据分给每一个设备,由当前使用的设备处理收到的数据。本策略的通道联合不需要专用的交换机支持,提供负载均衡和容错能力。
|
6 |
(balance-alb) Adaptive load balancing |
适配器负载均衡 |
该策略在IPV4情况下包含适配器传输负载均衡策略,由ARP协商完成接收的负载,通道联合驱动程序截获ARP在本地系统发送出的请求,用其中一个设备的硬件地址覆盖从属设备的原地址。 |
常用的是模式0和模式1,通常使用模式0。