物理网络中存在终端设备和交换机设备,中间交换机设备常常使用负载分担,增加网络带宽。链路根据是否启用链路聚合控制协议LACP,链路聚合分为手工模式和LACP模式。负载分担(Load Balance),指的是网络节点在转发流量时,将负载(流量)分摊到多条链路上进行转发,包括路由负载分担、隧道负载分担和Trunk负载分担。
1. 手工模式链路聚合
手工模式下,Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议LACP的参与。当需要在两个直连设备之间提供一个较大的链路带宽而设备又不支持LACP协议时,可以使用手工模式。手工模式可以实现增加带宽、提高可靠性和负载分担的目的。
2.LACP模式链路聚合
作为链路聚合技术,手工模式Eth-Trunk可以完成多个物理接口聚合成一个Eth-Trunk口来提高带宽,同时能够检测到同一聚合组内的成员链路有断路等有限故障,但是无法检测到链路层故障、链路错连等故障。
LACP为交换数据的设备提供一种标准的协商方式,以供设备根据自身配置自动形成聚合链路并启动聚合链路收发数据。聚合链路形成以后,LACP负责维护链路状态,在聚合条件发生变化时,自动调整或解散链路聚合。
LACP协议工作模式:启动LACP的端口可以有两种工作模式,Passive和Active。(注:必须有一端为Active模式才能正常协商)
Passive:被动模式,该模式下端口不会主动发送LACPDU报文,在接收到对端发送的LACP报文后,该端口进入协议计算状态。
Active:主动模式,该模式下端口会主动向对端发送LACPDU报文,进行LACP协议的计算。
a. 路由负载分担
路由负载分担是指在网络节点之间,去往同一个目的地存在多条转发路径,流量被分担到多条路径上进行转发。
b. 隧道负载分担
隧道负载分担是指VPN场景下,在入口PE节点上,存在去往同一个目的PE的多条隧道,流量被分担到多条隧道上进行转发。
c. Trunk接口负载分担
Trunk接口负载分担是指将多个相同链路层协议的物理端口捆绑在一起,形成一条逻辑上的数据链路,流量在多个成员链路之间分担。
3.逐流和逐包负载分担
无论是路由负载分担、隧道负载分担,还是Trunk接口负载分担,都可按逐流或逐包方式进行。
a. 逐流负载分担
逐流负载分担是指按照一定的规则,如根据五元组(源IP地址、目的IP地址、协议号、源端口号、目的端口号),将报文分成不同的流,同一条流的报文将在同一条链路上发送。
b. 逐包负载分担
逐包负载分担是指在转发时,按报文到来的次序,将报文均匀地分摊到参与负载的各条链路上
4. 使用场景:服务器结合负载分担几种bond模式
a. 服务器双网卡做bond,现网常用的bond模式:
mode=1:主备模式,只有一个网卡工作,其余成员备份,链路利用率低;active口mac地址。
mode=4:动态链路聚合,基于hash策略选路(现 网配layer3+4),具备负载和容错能力,上行一对接入 交换机Mlag组网对接;自动生成bond口的mac地址
bond口的mac地址、P1和p0:
mode=2:静态链路聚合
mode=6:实现多网卡备份及使用不同网卡mac响应arp请求实现与同网段多台主机的互访流量在bond成员网卡上负载,具备负载和容错能力,上行一对接入交换机单机部署,无需额外配置;
现网去堆叠组网方案:交换机单机+modMlag+mode6、Mlag+mode4、 Mlag+mde2
b. 同mlag配合使用:
M-LAG(Multichassis Link Aggregation Group)提供一种跨设备链路聚合的技术
mlag设备:对leaf交换机进行跨设备链路聚合,部署mlag协议,动态交换完成M-LAG设备之间的配对,当两台leaf交换机配对成功后会协商出主备关系。
mlag成员口:服务器双网卡聚合接入的接口,二层通过LACP协议进行链路聚合,对于三层配置相同的网关ip。
Keepalive链路:也叫DAD链路,一对Leaf之间的心跳链路,承载心跳数据包,主要作用是进行双主检测,不同于Peer-link直连的要求,Keepalive IP可达即可;
Peer-link链路:Peer-link链路:一对Leaf之间的直连链路,用于协议报文交互及横穿流量的传输;实时同步对端信息
Mlag优势:Mlag设备独立,各设备仍有独立的管理网口,对于管理面来说是独立部署的设备,对于转发面可看作一台设备,与堆叠技术相比,M-LAG存在更高的可靠性和独立升级的优势。堆叠和M-LAG实现跨设备链路聚合提高二层链路利用率,M-LAG的双活网关技术提高了三层链路利用率,且服务器可以通过链路聚合实现双活接入设备。