日常工作生产环境的x86服务器都使用了双网卡接入模式,无论是出于增加网络带宽的考虑,还是冗余,高可用的考虑,双网卡绑定都能带来非常多的裨益,双网卡即把两块网卡虚拟成为一块网卡,具有相同的IP地址,可看做一个单独的以太网接口设备。
正常情况下,网卡只接收目的MAC地址是自身MAC的以太网帧。但处于绑定模式下的两个网卡运行在混杂模式下,会接受所有的以太网帧,并且将驱动程序中两块网卡的 MAC地址改成相同,可以接收特定MAC的数据帧并处理。
日常工作中使用的双网卡绑定模式主要有A/S主备模式,AA静态聚合模式,AA 802.3ad动态聚合模式三种,下面详细分析一下他们的特点和适用场景。
一. 三种绑定模式浅析
(1). A/S主备模式
顾名思义,主备模式下只有一个网络设备处于活动状态,当主网卡down掉以后,备网卡会切换为主设备。此模式提供比较高的容错能力,并且mac地址在交换机等设备看来是可见并唯一的,但是资源利用率不高,也不能满足高带宽的需求。
主备模式的实现原理是将做绑定的两个slave网口的MAC地址都改为虚拟网卡的MAC地址,而虚拟网卡的MAC地址是Bond创建启动后,主网口的MAC地址。如下示意图。
而当主网卡故障时,Bond会切换到备用网口,切换过程中,上层的应用是无感知不受影响的,因为bond驱动程序会接管上层应用的数据包,缓存起来等备用网卡起来后再通过备用网卡发送出去。但是缓冲区容量有限,如果切换时间过长会造成缓冲区溢出并丢包。
主备模式的容错能力决定这种网卡绑定模式适用于对网络链路带宽不是很敏感,但是要求高冗余性的场景下,比如部署应用的机器。
(2). AA静态聚合绑定模式
AA静态聚合绑定模式,即轮询模式,做绑定的两个网卡的数据传输是按顺序进行的,第一个包走网卡一,第二个包走网卡二,第三个包走网卡三,依次类推。该模式下,由于绑定的所有网卡的IP都被修改为同一个MAC地址。此时交换机收到发往该MAC地址的数据包时,将不知道从对应的哪个端口转发该数据,为了解决交换机的这个问题,交换机应做端口绑定,将数据发往逻辑聚合端口,之后由聚合端口从多个端口转发数据。此绑定模式在比较大的网络压力下,性能提升并不会很明显,因为一个连接或者会话的数据包如果从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。并且,交换