mLACP协议学习
在电信级以太网中,各种冗余机制提供了节点和网络的弹性互联。冗余机制的选择要依靠各种不同的因素:传输技术,拓扑,单节点对整个网络的多归属(multi-homing),设备性能,自治系统边界或者运营商的服务模型,以及运行商的选择。
电信级以太网络的高可用性可以通过同时使用机框内和机框间的冗余机制实现。运营商希望一台设备双归属(dual home)到两个上游PoA(Point of Attachment)上进行冗余,Cisco的多机架链路聚合(Multi-chassis EtherChannel (MCEC))解决方案的满足了机架间的冗余机制的需要。一些运营商不希望或者不支持在接入网行运行环路预防控制协议,这就需要一个替代的冗余机制。MCEC解决了对802.3ad链路汇聚控制协议(LACP)实现增强这一问题。
1. mLACP限制
? ? ? ? ? ? ? ? ? ? ? ?
mLACP不支持快速以太网 mLACP不支持半双工链路 mLACP不支持多邻居
端口通道转换到mLACP可能引起服务中断
PoA上LAG的最大链路数受到端口通道的最大端口数的限制。 DHD(dual homing device)上的系统优先级必须小于PoA的优先级
MAC Tunneling Protocol (MTP) supports only one member link in a port channel. 当LACP稳定时,一个端口通道或它的成员链路可能flap 当最小链路数没有配置时,基于DHD的控制不能进行。 不支持最小链路数的DHD-controlled恢复行为 强制故障切换总会导致min-link故障 任何强制故障切换的故障可以回复
2. 多机架链路聚合(ECMC)概述
在MCEC中,DHC双归属到两个上游PoA上。DHD不能运行多生成树(Multiple Spanning Tree,MST)这样的环路保护控制协议。因此,需要一种防止环路的冗余设置。一种方法是将DHD的上行链路放到一个聚合组(LAG)中,通常被称为链路聚合(EtherChannel)。这种方法假设DHD可以运行IEEE802.3ad LACP来建立和维护聚合组。
LACP,是一个链路级控制协议,允许聚合组的动态协商和建立。需要一个LACP应用到PoA的扩展,使得DHD连接到一个虚拟的LACP对等体而不是连接到两个分开的设备上。这种扩展被称为Multichassis LACP或者mLACP,如图所示:
PoA形成了一个虚拟的LACP对等体,从DHD的角度看,它被定义为冗余组的成员。由于冗余组中的PoA对DHD表现为一个独立的设备,PoA之间的状态必须通过机框间通信协议(InterChassis Communication Protocol,ICCP)进行同步。ICCP提供了一个仅仅用于控制的机框间通信通道(interchassis communication channel,ICC)。
系统可以有active和standby两种冗余模式。这种模式下,在任何时间,系统的上行链路中仅仅有一个独立的PoA可以是active模式。DHD认为一个PoA是active的,另一个是standby的。这种情况是允许的:一个给定的PoA,对一个DHD是active,对于另外一个是standby。这种性能使得两个PoA为不同的服务提供负载共享。
3. MPLS伪线冗余机制的交互
Figure1中的网络设置可用于为虚拟专网服务(VPLS)和虚拟专线服务(VPWS)部署提供运营商边缘(provider edge,PE)节点的冗余。
连接环路(attachment circuit)冗余机制决定和控制伪线冗余机制。mLACP根据配置的LACP系统和端口优先级决定一个给定PoA的连接环路的状态,然后给定PoA的伪线状态和本地连接环路的状态进行同步。这种同步保证了带有active连接环路的PoA的伪线也是active的。同样的,standby的PoA的伪线也是standby模式。通过保证连接环路的转发状态和伪线的转发状态的同步性,可以避免一个冗余组中PoA间转发数据。这种同步性节约了因在故障时PoA间进行数据转发而浪费的带宽。
4. 冗余机制
电信级以太网解决方案应该包括以下处理过程(以及他们如何应用到mLACP解决方案):
? 连接环路(attachment circuit)active或standby状态选择——可以由接入节点或网
络决定,也可以由聚合节点决定,或者两者组合决定。对于mLACP,连接环路的状态选择由DHD和PoA协同决定。
? 伪线(pseudowire,PW)状态转发通告——当mLACP部署到VPWS或者VPLS应用
中时,也就是当PoA上行连接使用了伪线技术时,这种通告是强制的。当PoA需要决定自己是处于active还是standby的时候,就需要通知对方(对端PoA)自己连接到远端的PE的伪线状态。对于MPLS 伪线,这个功能通过使用LDP协议来完成。
? MAC flushing indication:对于任何一种冗余机制来说,如果要快速收敛和避免流量
黑洞,都必须支持这种indication,mLACP必须集成802.1Q/802.1ad/802.1ah的MAC flushing机制,这样在VPLS中应用时就可以使用。
注意:流量黑洞的出现是:当接收的报文被丢弃时,却没有将该报文无法递交到其接收者的消息通知源。只有监测到了报文丢失,才能够发现流量黑洞(traffic blackholing)。 ? Active vlan通告:对于mLACP来说,只要PoA遵循了Active/Standby冗余模型,这
种通告就是不需要的。
Figure2 展示了电信级以太网络中冗余机制。
5. 使用mLACP的双归属拓扑
虚拟LACP实例和DHD之间通过IEEE802.3ad(LACP)来形成横跨两个或多个机框的聚合组(LAG)。
5.1 LACP和802.3ad参数交换
在802.3ad中,LACP system ID由LACP system MAC和system priority组成。tow byte system priority + six byte MAC address。两个设备之间的system ID优先级的比较是使用小写字母来比较。为了获得最高的system ID优先级,mLACP的两端互相交互冗余组的system ID信息,然后选取其中较小的一个作为整个虚拟的LACP设备的system ID。
cisco可以提供两个冗余组下的命令mlacp system mac和mlacp system priority来配置。这两个命令可以较好的确定连接环路(attachment circuit)的哪一边来控制LAG的选择逻辑。缺省时mac使用系统mac地址,priority使用32768。
5.2 端口标识符(port identifier)
IEEE 802.3ad 在一个系统中使用一个4字节的标识来唯一标识一个端口。端口标识由端口优先级和端口编号(每系统唯一)组成。 端口标识的比较是按照无符号整型原则,组成原则是2字节的端口优先级<<16+2字节的端口编号。mLACP特性需要对端口ID进行一些调整,以确保其在冗余组内是唯一的 。
5.3 端口号(port number)
LACP对端口编号的依赖很大,故在mlacp特性中,必须使用mlacp node-id命令来协调这些端口编号,来避免两个PoA之间的端口编号重复。
5.4 端口优先级(port priority)
当对一个链路聚合组的最大链路数做了限制的时候(软件或者硬件),端口优先级用来决定一个端口的active/standby状态。对于mLACP来说,因为是冗余机制,故Active PoA中所有连接DHD的端口优先级都必须比Standby PoA中连接DHD的高。端口的优先级可以显式配置也可以由系统依照选择标准自适应产生。如,挑选拥有最高端口优先级的PoA为Active PoA,并动态的调整其他具有相同的port key的链路的端口为同一优先级。
当前mLACP只支持Active/Standby冗余模式,一个聚合组中的同一个PoA中的所有成员链路端口优先级须是相同的。为了支持这种需求,可以在端口下配置mlacp lag-priority命令,这个命令可以配置所有位于一个LAG组中的所有端口的优先级。而LACP配置的优先级将会被忽略。mlacp lag-priority命令也可以用于在以下两种情况下的强制切换:
设置当前active的PoA LAG的优先级比standby的优先级的值大,这会快速的完成切换。因为需要转换的状态少。
设置standby PoA的LAG 优先级比active PoA的LAG 优先级小。这个切换花费的时间比较多,因为standby链路在变为active之前,必须通知DHD一个消息OUT_OF_SYNC。
5.5 多机框注意事项(Multichassis Considerations)
由于LACP是一个链路层协议,一个链路上的所有信息交换包括链路的特定信息和本地
相关推荐: