链路聚合的3种模式
=====> ①手工聚合、②静态聚合 ③动态聚合
手工聚合:
手工汇聚概述:
手工负载分担模式是一种最基本的链路聚合方式,Eth-Trunk 接口的建立,成员接口的加入完全由手工来确定,没有链路聚合控制协议的参与。该模式下所有成员接口(selected)都参与数据的转发,分担负载流量,因此称为手工负载分担模式。
手工链路聚合存在的问题场景1:
如上图:CE1将3条物理链路都加入聚合链路Eth-Trunk1中,而CE2只将2条物理链路加入到聚合链路Eth-Trunk2中,这个时候会存在什么问题呢?
——> 丢包!!
原因为:CE2的1/0/2接口没有接入到聚合链路中,那么他收到CE1侧1/0/2发来的数据就会丢弃处理。
这种在实际网络运维中出现过较多丢包案例较多:双方加入的聚合链路时存在较长时间差导致了丢包。
静态LACP聚合:
基于 IEEE802.3ad 标准的LACP(Link Aggregation Control Protocol,链路汇聚控制协议)是一种实现链路动态汇聚与解汇聚的协议。
LACP协议通过LACPDU(Link Aggregation Control Protocol Data Unit,链路汇聚控制协议数据单元)与对端交互信息。
使能某端口的LACP协议后,该端口将通过发送LACPDU 向对端通告自己的系统优先级、系统MAC、端口优先级、端口号和操作Key。
对端接收到这些信息后,将这些信息与其它端口所保存的信息比较以选择能够汇聚的端口,从而双方可以对端口加入或退出某个动态汇聚组达成一致。
本端状态信息:
对端状态信息:
字段 | 长度 | 说明 |
---|
Destination Address | 6字节 | 目的MAC地址,是一个组播地址(01-80-C2-00-00-02) |
Source Address | 6字节 | 源MAC地址,发送端口的MAC地址 |
Length/Type | 2字节 | 协议类型:0x8809 |
Subtype | 1字节 | 报文子类型:0x01,说明是LACP报文 |
Version Number | 1字节 | 协议版本号:0x01 |
TLV_type | 1字节 |
- 0x00代表Terminator字段
- 0x01代表Actor字段
- 0x02代表Partner字段
- 0x03代表Collector字段
|
Actor_Information_Length | 1字节 | actor信息字段长度,为20字节 |
Actor_Port | 2字节 | 端口号,根据算法生成,由接口所在的槽位号、子卡号和端口号决定 |
Actor_State | 1字节 | 本端状态信息:
- LACP_Activity:代表链路所在的聚合组参与LACP协商的方式。主动的LACP被编码为1,主动方式下会主动发送LACPDU报文给对方,被动方式不会主动发送协商报文,除非收到协商报文才会参与。
- LACP_Timeout:代表链路接收LACPDU报文的周期,有两种,快周期1s和慢周期30s,超时时间为周期的3倍。短超时被编码为1,长超时被编码为0。
- Aggregation:标识该链路能否被聚合组聚合。如果编码为0,该链路被认为是独立的,不能被聚合,即,这个链路只能作为一个个体链路运行。
- Synchronization:代表该链路是否已被分配到一个正确的链路聚合组,如果该链路已经关联了一个兼容的聚合器,那么该链路聚合组的识别与系统ID和被发送的运行Key信息是一致的。编码为0,代表链路当前不在正确的聚合里。
- Collecting:帧的收集使能位,假如编码为1,表示在这个链路上进来的帧的收集是明确使能的;即收集当前被使能,并且不期望在没有管理变化或接收协议信息变化的情况下被禁止。其它情况下这个值编码为0。
- Distributing:帧的分配使能位,假如编码为0,意味着在这个链路上的外出帧的分配被明确禁止,并且不期望在没有管理变化或接收协议信息变化的情况下被使能。其它情况下这个值编码为1。
- Default:诊断调试时使用,编码为1,代表接收到的对端的信息是管理配置的。假如编码为0,正在使用的运行伙伴信息在接收到的LACPDU里。该值不被正常LACP协议使用,仅用于诊断协议问题。
- Expired:诊断调试时使用,编码为1,代表本端的接收机是处于EXPIRED超时状态;假如编码为0,本端接收状态机处于正常状态。该值不被正常LACP协议使用,仅用于诊断协议问题。
|
Actor_System_Priority | 2字节 | 本端系统优先级,可以设置,默认情况下为32768 |
Actor_System | 6字节 | 系统ID,本端系统的MAC地址 |
Actor_key | 2字节 | 端口KEY值,系统根据端口的配置生成,是端口能否成为聚合组中的一员的关 键因素,影响Key值得因素有trunk ID、接口的速率和双工模式 |
Actor_Port_Priority | 2字节 | 接口优先级,可以配置,默认为0x8000 |
Reserved | 3字节 | 保留字段,可用于功能调试以及扩展 |
Partner_Information_Length | 1字节 | Partner信息字段长度。 Partner字段代表了链路接口接收到对端的系统信息、接口信息和状态信息,与actor字段含义一致。在协商最开始未收到对端信息时,partner字段填充0,接收到对端信息后会把收到的对端信息补充到partner字段当中。 |
Partner_Port | 2字节 | 对端端口号 |
Partner_State | 2字节 | 对端状态信息 |
Partner_System_Priority | 2字节 | 对端系统优先级 |
Partner_System | 6字节 | 对端系统ID,对端系统的MAC地址 |
Partner_key | 2字节 | 对端端口KEY值 |
Partner_Port_Priority | 2字节 | 对端接口优先级 |
Reserved | 2字节 | 保留字段 |
Collector_Information_Length | 1字节 | Collector信息字段长度:0x10 |
CollectorMaxDelay | 2字节 | 最大延时:默认情况下为0xffff |
Reserved | 12字节 | 保留字段 |
Terminator_Length | 1字节 | Terminator信息字段长度:0x00 |
Reserved | 50字节 | 保留字段,全置0 |
FCS | 4字节 | 用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)。 |
当本段配置timeout fast时:
interface Eth-Trunk1
mode lacp-static
lacp timeout fast
本段会1秒钟发送1次lacp pdu报文检测链路,timeout fast超时时间默认是3秒。也可以自己定位超时时间为其他时间(其他时间范围是3-90秒,但也任然是每秒发送一次报文)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)