具体实施方式
针对现有技术存在的上述问题,本发明实施例提供了一种EVI网络中的 MAC地址信息维护方案,用以在发生二层链路故障时,减少MAC地址学习时间,以及端到端数据流量的切换时间,实现故障流量快速切换。
下面结合附图对本发明实施例进行详细描述。
在多归属EVI网络中,各ED设备建立有站点内邻居关系和站点间邻居关系。站点间邻居关系是在EVI-Link上建立的。站点内邻居关系是在二层以太链路上建立的,建立站点内邻居关系的前提是ED设备在EVI-ISIS指定VLAN内二层可达,即,只有处在指定VLAN内的ED设备才能建立站内邻居关系。
站点内各ED设备之间的站点内邻居关系建立之后,站点内的各ED设备选举DED(Designated ED,指定ED)设备。具体的,站点内具有邻居关系的各ED设备通过在EVI-ISISHello中携带自身的优先级和MAC地址以及自身所支持的扩展VLAN信息进行相互通告,从而根据各ED设备的优先级和MAC地址选举出DED设备。
选举出的DED设备根据各ED设备所支持的扩展VLAN,为自身和站点内的邻居ED设备分配LAV(本地激活VLAN)和LBV(本地备份VLAN),从而为扩展VLAN指定AEF(指定边缘转发者)和BEF(Backup Edge Forwarder,备份边缘转发者)。对于每一个分配到LAV和LBV的ED设备,该ED设备即为自身的LAV内的扩展VLAN的AEF,并且为自身的LBV内的扩展VLAN的BEF。比如,switch C的LAV为扩展VLAN701~1000、LBV为扩展VLAN100~400,则switch C是扩展VLAN701~1000的AEF,并且是扩展VLAN100~400的BEF。
其中,LAV的分配算法可以为满足以下条件之一或者任意组合:
1、对于各ED没有竞争关系的扩展VLAN,将该VLAN指定为通告该VLAN的ED的LAV;
2、对于各ED有竞争关系的扩展VLAN,各ED分得的LAV尽量连续;
3、对于各ED有竞争关系的扩展VLAN,使各ED分得的竞争部分LAV的数量尽量平均;
4、分配完成后,尽量保证各ED已分配LAV的稳定:后续新增扩展VLAN不影响已有的LAV分配结果,且双归属ED都有新增扩展VLAN后才会进行一次对新增扩展VLAN的平均分配;后续减少的扩展VLAN按照上述规则分配给其它支持该扩展VLAN的ED作为LAV。
LBV的分配算法可以为满足以下条件之一或者任意组合:
1、对于各ED没有竞争关系的扩展VLAN,不作为LBV进行分配;
2、对于各ED有竞争关系的扩展VLAN,为每个ED分配的LAV和LBV没有重复,即保证LAV和LBV处于不同的ED;
3、对于各ED有竞争关系的扩展VLAN,分给一个ED的LAV被整体分配给另一ED作为LBV,可以保证故障切换时控制最小范围内ED受到相应影响;
4、对于各ED有竞争关系的扩展VLAN,为各ED分配的LBV尽量连续;
5、对于各ED有竞争关系的扩展VLAN,为各ED分配的竞争部分LBV的数量尽量平均。
DED设备将分配结果通告给各邻居ED设备。所通告的信息中包括为各ED设备分配的LAV和LBV。
本发明实施例通过扩展EVI-ISIS Hello报文的方式通告上述信息。DED设备周期发送EVI-ISIS Hello报文,发送周期是普通ED设备的发送周期的1/3。DED发送的EVI-ISISHello报文中携带本EVI站点所有扩展VLAN的AEF信息和BEF信息,可以保证站点内所有邻居ED设备均被告知本EVI站点所有扩展VLAN的AEF和BEF位置。具体的,通过EVI-ISIS Hello中原有的Appointed Forwarders sub-TLV(指定转发TLV)携带LAV和AEF信息,在该报文中新增加Backup Forwarders sub-TLV(备份转发TLV),用于携带LBV和BEF信息。BackupForwarders sub-TLV用于指定扩展VLAN的备份边缘转发者,为非DED设备分配扩展VLAN的BEF。
图2示出了一种Backup Forwarders sub-TLV格式,其中,各字段含义如下:
Type(类型):1字节,可选取一个当前空闲的Type值,本发明实施例中取值0x06;
Length(长度):1字节;
Value(取值)字段中各子字段含义:
S:是否包括最小激活VLAN标识;
L:是否包括最大激活VLAN标识;S置位与L置位,用于表示是否已分配完成所有有竞争关系的LAV,当S置位1,L置位0时表示本TLV中还没有分配到最大LAV;
RESV(保留):6bit保留位;
Backup Mac Address(BEF的MAC地址):6字节;
S:是否包括该ED最小备份VLAN标识;
L:是否包括该ED最大备份VLAN标识;
RESV:6bit保留位;
RESV:4bit保留位;
Start VLAN-ID:12bit;
RESV:4bit保留位;
End VLAN-ID:12bit,与Start VLAN-ID一起所标识的连续VLAN,即为作为LBV的扩展VLAN。
下面详细说明ED设备学习站点内的MAC地址信息并向远端站点通告MAC地址信息的过程。
ED设备作为本设备的LAV的AEF,学习到LAV内的本地MAC地址表项后,向远端邻居ED设备发送携带本设备学习到的LAV内的本地MAC地址表项的EVI-ISIS LSP(Link StatePacket,链路状态包)报文,其中包括本设备学习到的本地MAC地址和该MAC地址所在的扩展VLAN,并对于可备份本地MAC地址指示有对应的BEF,对应的BEF为对应的MAC地址所在的扩展VLAN的BEF。可备份本地MAC地址是指从指定VLAN端口学习到的MAC 地址,该端口即为指定VLAN内与站点内其它ED设备二层可达的端口。
本发明实施例通过扩展EVI-ISIS LSP报文以通告上述MAC地址信息和可备份本地MAC地址的BEF信息。具体的,扩展EVI-ISIS LSP报文中的MAC Reachability TLV(MAC地址可达TLV),使该TLV除了携带通告的MAC地址信息以外还可携带可备份本地MAC地址对应的BEF信息。
图3示出了一种扩展后的MAC Reachability TLV格式,其中,各字段含义如下:
Type:1字节,取值0x93;
Length:1字节;
Value字段中的各子字段含义:
Topology-id:2字节,默认取值0;
Confidence:1字节,默认取值1,标识没有感知MAC迁移;
B:1bit(位),备份标识位,为本发明实施例新增,置位(为1)表示该站点为多归属组网站点,站点内存在BEF设备,否则取值为0;
RESV:3bit,保留字段;
VLAN-ID:12bit,标识所通告的MAC地址所在的扩展VLAN;
Backup System-Id(BEF系统标识):6字节,B置位1情况下有效,B置0情况下取值全0。取值一般为系统MAC地址。当B置位时,该字段中的MAC地址是VLAN-ID字段所标识的扩展VLAN的BEF的MAC地址;
MAC:6字节,即所通告的MAC地址。
远端邻居ED设备接收到上述EVI-ISIS LSP报文后,从该EVI-ISIS LSP报文的MACReachability TLV中解析出MAC地址及其所在的扩展VLAN,以及可备份本地MAC地址所在扩展VLAN的BEF(Backup System-Id),确定出本设备连接该BEF的EVI-Link,然后根据以上信息配置(在还未存在对应表项的情况下)或刷新(在已存在对应表项的情况下)对应的远端MAC地址表项,对于可备份本地MAC地址,远端MAC地址表项除了有主出接口,还有 备出接口,主出接口为远端邻居ED接收LSP的EVI链路接口,备出接口为远端邻居ED连接可备份本地MAC地址对应BEF的EVI链路接口。其中,如果解析出远端MAC地址所在的扩展VLAN在该远端邻居ED设备的LAV内,则该远端邻居ED设备将该远端MAC地址表项作为主用表项配置到硬件转发表中,用于指导流量转发;如果解析出的扩展VLAN在该远端邻居ED设备的LBV内,则该远端邻居ED设备将该远端MAC地址表项作为备用表项配置到硬件转发表中,备用表项不参与指导流量转发。如果解析出的扩展VLAN既不在该远端邻居ED设备的LAV也不在LBV内,则该远端邻居ED设备仅学习该远端MAC地址表项配置到软件转发表中,同样不用于指导流量转发。
具体的,主用表项和备用表项中可以包括以下字段:
MAC address(MAC地址):用于记录从远端邻居ED设备发送的EVI-ISIS LSP报文的MAC Reachability TLV中解析出的MAC地址;
VLAN ID(VLAN标识):用于记录从远端邻居ED设备发送的EVI-ISIS LSP报文的MACReachability TLV中解析出的MAC地址所在的扩展VLAN;
Master Interf(主出接口):用于记录接收远端邻居ED设备发送的EVI-ISIS LSP报文的EVI-link接口信息;
Backup Interf(备出接口):用于记录BEF对应的EVI-Link接口信息,该BEF即为从远端邻居ED设备发送的EVI-ISIS LSP报文的MAC Reachability TLV中解析出的BEF,该EVI-Link接口即为本设备连接该BEF的EVI-link接口。
Flag(标记):取值为0、1或2,用于标识远端MAC地址表项是否是主用表项。若远端邻居ED设备发来的EVI-ISIS LSP报文中携带的MAC地址所在的扩展VLAN在本设备上的LAV内,则将Flag设置为2;若远端邻居ED设备发来的EVI-ISIS LSP报文中携带的MAC地址所在的扩展VLAN在本设备上的LBV内,则将Flag设置为1;若远端邻居ED设备发来的EVI-ISISLSP报文中携带的MAC地址所在的扩展VLAN既不在本设备的LAV内也不在本设 备的LBV内,则将Flag设置为0。Flag=2的表项为主用表项,Flag=1的表项为备用表项,主用表项和备用表项配置在硬件转发表中,Flag=0的表项可不配置在硬件转发表中。
当ED设备接收到数据报文并根据该数据报文的目的MAC地址匹配硬件转发表中的远端MAC地址表项时,若匹配到Flag=2的表项,则根据匹配到的表项中的主出接口转发该数据报文;若未匹配到Flag=2的表项,则放弃转发该数据报文。即,只有Flag=2的远端MAC地址表项才能用于指导流量转发。
为了进行链路故障检测,在ED设备上的指定VLAN端口上使能链路检测功能,如CFD(Connectivity Fault Detection,连通错误检测)功能。CFD是一种二层网络中基于VLAN的端到端OAM(Operations,Administration and Maintenance,操作、管理和维护)机制,用于在二层网络中检测链路连通性,以及在故障发生时确认故障并定位。在本实施例中,多归属组网站点内的所有EVI邻居在指定VLAN端口上均使能了CFD连通性检测功能,当ED设备检测到本地站点网络内有ED发生故障时,该ED设备判断发生故障的ED设备的LAV是否与本设备的LBV相同,或者说本设备LBV内的扩展VLAN的AEF是否是发生故障的ED设备,若是,则将本设备的LBV配置为LAV,使得本设备对于该从LBV迁移为LAV的扩展VLAN不再是BEF而成为AEF,该ED设备将发生迁移的扩展VLAN(即从LBV迁移为LAV的扩展VLAN)信息,以及迁移前扩展VLAN的AEF和迁移后扩展VLAN的AEF通告给远端邻居ED设备。
本发明实施例通过扩展EVI-ISIS LSP报文,即在该报文中增加LAV Switch TLV来通告上述信息。
图4示出了一种LAV Switch TLV格式,各字段含义如下:
Type:1字节,可选取一个当前空闲的Type值,本方案中取值0x94;
Length:1字节;
Value字段中各子字段的含义:
Topology-id:2字节,默认取值0;
S:1bit,默认取值1,标识发生LAV迁移,即原来作为LBV的扩展VLAN现在迁移为LAV,发生迁移的扩展VLAN的原BEF变为该扩展VLAN的AEF。该TLV仅在发生了LAV迁移时才会出现,因此S置0情况下该TLV相当于非法,对端ED设备收到后可直接丢弃不处理;
New System-Id:6字节,S置位1情况下有效,用于标识发生迁移的扩展VLAN迁移后的AEF,一般为系统MAC地址;S置0情况下取值全0;
Old System-Id:6字节,S置位1情况下有效,用于标识发生迁移的扩展VLAN迁移前的AEF,一般为系统MAC地址。S置0情况下取值全0。
RESV:4bit,保留字段;
Start VLAN-ID:12bit,ED设备故障后发生迁移的扩展VLAN的最小值;
RESV:4bit,保留字段;
End VLAN-ID:12bit,ED设备故障后发生迁移的扩展VLAN的最大值,该字段与Start VLAN-ID字段一起,可标识出发生迁移的扩展VLAN。
远端邻居ED设备收到携带LAV Switch TLV的EVI-ISIS LSP报文后,解析出其中携带的发生迁移的扩展VLAN和迁移前后的AEF信息,将所述发生迁移的扩展VLAN对应的远端MAC地址表项中的主出接口删除并启用备出接口。
若多归属组网中DED设备故障,则需要重新选举DED设备,并重新在站点内分配LAV和LBV。对于不受本地邻居ED影响的LAV和LBV,新选举出的DED设备维持之前的分配结果不变;对于受到本地邻居ED影响的LAV,将该LAV分配给其对应的BEF作为该LAV新的AEF,,负责该LAV的EVI流量转发,并指定新的BEF;对于受到影响的LBV,重新分配LBV。新选出的DED设备将重新分配的扩展VLAN及相应的AEF和BEF通告本EVI站点内的ED设备,各ED设备更新对应的本地MAC地址表项,并通告给远端邻居ED设备进行相应的更新。
以下以一具体场景为例,详细说明本发明实施的具体实现过程。
如图5所示,多归属EVI网络包括站点1和站点2,Switch A、Switch B和Switch C位于站点1内,是站点1的ED设备;Switch D和Switch E位于站点2内,是站点2的ED设备。Switch A、Switch B和Switch C建立站点内EVI-ISIS邻居,Switch D和Switch E建立站点内EVI-ISIS邻居,Switch A、Switch B和Switch C分别与站点2的Switch D和Switch E建立站点间EVI-ISIS邻居。其中,Switch E与Switch A、Switch B和Switch C间的EVI-Link分别为EVI-Link2、EVI-Link1、EVI-Link0,Switch D与Switch A、Switch B和Switch C间的EVI-Link分别为EVI-Link5、EVI-Link4、EVI-Link3。
站点1和站点2内配置的扩展VLAN为VLAN100-1000。站点1内配置的指定VALN为VLAN3。站点1中存在多个接入共享网段,VLAN3包括上述共享网段内的所有端口(如图中的端口p1、p2、p3、p4、p5、p6)。同理,站点2内进行类似配置。
Switch A、Switch B、Switch C在VLAN3上使能CFD故障检测功能,以便站点内ED设备可感知与其它ED设备是否二层可达。
Switch A上VLAN3对应的CFD状态如下:
Switch B上VLAN3对应的CFD状态如下:
Switch C上VLAN3对应的CFD状态如下:
站点1内的Switch A、Switch B和Switch C按照EVI ISIS协议建立站点内邻居关系。
站点1内EVI-ISIS邻居关系建立之后,Switch A、Switch B和Switch C选举SwitchA为DED。Switch A根据站点内各ED设备所支持的扩展VLAN,为每个ED设备分配LAV和LBV,从而为扩展VLAN指定AEF和BEF,分配结果以表1形式记录如下:
表1、Switch A分配的LAV和LBV
由表1可以看出,Switch A的LAV为扩展VLAN100~400,LBV为扩展VLAN401~700,因此,Switch A是扩展VLAN100~400的AEF,是扩展VLAN401~700的BEF。同理,Switch B是扩展VLAN401~700的AEF,是扩展VLAN701~1000的BEF;Switch C是扩展VLAN701~1000的AEF,是扩展VLAN100~400的BEF。
DED设备通过EVI-ISIS Hello报文将分配结果通告给作为站点内邻居的Switch B和Switch C。该EVI-ISIS Hello报文的格式如前所述,其Appointed Forwarders sub-TLV中携带为各ED设备指定的LAV和AEF,Backup Forwarders sub-TLV中携带为各ED指定的LBV和BEF。
同理,站点2内选举Switch D为DED设备,并分配LAV和LBV。其中,为Switch D分配的LAV为扩展VLAN100~500,LBV为扩展VLAN501~1000,为Switch E分配的LAV为扩展VLAN501~1000,LBV为扩展VLAN100~500。
下面以扩展VLAN1000为例,描述MAC地址表项的维护流程。通过以上LAV和LBV分配结果可以看出,在站点1内,对于扩展VLAN1000,其AEF为Switch C,BEF为Switch B,在站点2内,对于扩展VLAN1000,其AEF为Switch E,BEF为Switch D。
Switch C作为扩展VLAN1000的AEF,学习到本地扩展VLAN1000内的MAC1和MAC3后,判断出学习到MAC1的端口在作为指定VLAN的VLAN3内,即判断出学习到MAC1的端口是p3和p4中的端口,而学习到MAC3的端口是端口p7,不在作为指定VLAN的VLAN3内,即,不是VLAN3内与站点内其它ED设备二层可达的端口。Switch C向远端邻居Switch D和Switch E发送EVI-ISIS LSP报文,报文格式如前所述,其中携带本设备学习到的LAV内的MAC1和MAC3,并对于MAC1指出对应的BEF是Switch B。
Switch E接收到Switch C发送的携带MAC1和MAC3的EVI-ISIS LSP报文后,维护对应的远端MAC地址表项,如以下表2所示:
表2、Switch E上的远端MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC1 |
1000 |
EVI-Link0 |
EVI-Link1 |
2 |
MAC3 |
1000 |
EVI-Link0 |
-- |
2 |
其中,MAC1对应的远端MAC地址表项的配置过程为:Switch E从 EVI-Link0接收到Switch C发送的EVI-ISIS LSP报文后,解析出其中携带的MAC1和MAC1所在的扩展VLAN1000,以及对应的BEF是Switch B,则将MAC1、VLAN1000添加到MAC1对应的表项中,将该EVI-ISIS LSP报文的接收接口EVI-Link0的接口作为主出接口添加到该表项中;根据MAC1对应的BEF(这里是Switch B),确定本设备连接Switch B的接口为EVI-Link1接口,因此将EVI-Link1作为备出接口添加到该表项中。由于MAC1所在的扩展VLAN1000为Switch E上LAV内的扩展VLAN,则将该表项的Flag设置为2。
MAC3对应的远端MAC地址表项的配置过程类似,只是由于EVI-ISIS LSP报文中没有针对MAC3指示出对应的BEF,因此MAC3对应的远端MAC地址表项中的备出接口列表为空。
Switch E将Flag值为2的MAC地址表项配置到硬件转发表中。
Switch D接收到Switch C发送的携带MAC1和MAC3的EVI-ISIS LSP报文后,维护对应的远端MAC地址表项,如以下表3所示:
表3、Switch D上的远端MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC1 |
1000 |
EVI-Link3 |
EVI-Link4 |
1 |
MAC3 |
1000 |
EVI-Link3 |
-- |
1 |
其中,MAC1对应的远端MAC地址表项的配置过程为:Switch D从EVI-Link3接收到Switch C发送的EVI-ISIS LSP报文后,解析出其中携带的MAC1和MAC1所在的扩展VLAN1000,以及对应的BEF是Switch B,则将MAC1、VLAN1000添加到MAC1对应的表项中,将该EVI-ISIS LSP报文的接收接口EVI-Link3的接口作为主出接口添加到该表项中;根据MAC1对应的BEF(这里是Switch B),确定本设备连接Switch B的接口为EVI-Link4接口,因此将EVI-Link4作为备出接口添加到该表项中。由于MAC1所在的扩展VLAN1000为Switch E上LBV内的扩展VLAN,则将该表项的Flag设置为1。
MAC3对应的远端MAC地址表项的配置过程类似,只是由于EVI-ISIS LSP报文中没有针对MAC3指示出对应的BEF,因此MAC3对应的远端MAC地址表项中的备出接口列表为空。
Switch D将Flag值为1的MAC地址表项配置到硬件转发表中。
同理,站点1内的Switch A学习到远端MAC地址MAC2后,得到如表4所示的MAC地址表项:
表4、Switch A上的MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC2 |
1000 |
EVI-Link2 |
EVI-Link5 |
0 |
其中,Switch A判断由于MAC2所在的扩展VLAN既不是本设备的LAV,也不是本设备的LBV,因此将Flag设置为0。
站点1内的Switch B学习到远端MAC地址MAC2后,得到如表5所示的远端MAC地址表项:
表5、Switch B上的MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC2 |
1000 |
EVI-Link1 |
EVI-Link4 |
1 |
其中,Switch B判断MAC2所在的扩展VLAN1000在本设备的LBV内,因此将Flag设置为1。Switch B将Flag=1的远端MAC地址表项配置到硬件转发表中。
站点1内的Switch C学习到远端MAC地址MAC2后,得到如表6所示的远端MAC地址表项:
表6、Switch C上的远端MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC2 |
1000 |
EVI-Link0 |
EVI-Link3 |
2 |
其中,Switch C判断MAC2所在的VLAN1000是本设备的LAV,因此,Flag值为2。Switch C将Flag=2的远端MAC地址表项配置到硬件转发表中。
站点1内本地MAC地址(如MAC1和MAC3)以及站点2内本地MAC地址(如MAC2)的学习过程与现有技术一致,在此不再赘述。
当Switch C正常工作时,扩展VLAN1000数据流量仅通过EVI-Link0进出核心网进行转发,作为扩展VLAN1000的BEF的Switch B,对扩展VLAN1000的数据流量不进行转发。比如,当Switch C从连接本站点内的用户设备的端口接收到目的MAC地址为MAC2的报文后,匹配到如表6所示的远端MAC地址表项,根据该表项中的主出接口转发该报文到Switch E,Switch E根据相应的本地MAC地址表项转发该报文到本站点内的接收设备。当Switch E从连接本站点内的用户设备的端口接收到目的MAC地址为MAC1的报文后,匹配到如表2所示的远端MAC地址表项,根据该表项中的主出接口转发该报文到Switch C,Switch C根据相应的本地MAC地址表项转发该报文到本站点内的接收设备。
Switch A、Switch B、Switch C根据CFD检测机制检测到VLAN3内P3、P4端口所在链路发生故障,Switch A、Switch B和Switch C上VLAN3对应的CFD状态分别如下:
Switch A上VLAN3对应的CFD状态如下:
Switch B上VLAN3对应的CFD状态如下:
Switch C上如检测到VLAN3本地端口所在链路故障,对应的本地CFD状态为Inactive。
Switch B检测到Switch C在指定VLAN3上二层不可达后,由于自身是Switch C上激活VLAN的BEF,因此将本设备上的LBV激活,即,将本设备上原来作为LBV的扩展VLAN701-1000,配置为该设备的LAV。这样,扩展VLAN1000作为本设备的LAV,本设备作为扩展VLAN1000的AEF。此时将本设备上新激活扩展VLAN1000内的远端MAC表项激活。
表8、Switch B上的远端MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC2 |
1000 |
EVI-Link1 |
EVI-Link4 |
2 |
同时,Switch B向远端邻居Switch D和Switch E发送携带LAV Switch TLV的EVI-ISIS LSP报文,其中指示出扩展VLAN1000发生了迁移,并指示出扩展VLAN1000的原AEF是Switch C,迁移后的AEF是Switch B。
Switch E接收到携带上述LAV Switch TLV的EVI-ISIS LSP报文后,查询以下表项:MAC地址在扩展VLAN1000内、主出接口为与扩展VLAN1000迁移前的AEF连接的EVI-Link接口(这里为EVI-Link0)、备出接口为与扩展VLAN1000迁移后的AEF连接的EVI-Link接口(这里为EVI-Link1),这里查询到的符合上述要求的远端MAC地址表项为MAC1的远端MAC地址表项(如表2所示);将发生迁移的扩展VLAN对应的远端MAC地址表项中的主出接口删除并启用备出接口,更新远端MAC地址表项更新后的远端MAC地址表项如表9所示:
表9、Switch E上更新后的远端MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC1 |
1000 |
|
Evi-Link1 |
2 |
MAC3 |
1000 |
EVI-Link0 |
|
2 |
其中由于Switch E与Switch C之间的EVI-Link状态保持UP,且MAC在远端站点中为非可备份MAC,因此MAC3表项不变。
同理,Switch D接收到携带上述LAV Switch TLV的EVI-ISIS LSP报文后进行类似处理,更新后的远端MAC地址表项如表10所示:
表10、Switch D上更新后的远端MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC1 |
1000 |
|
EVI-Link4 |
1 |
MAC3 |
1000 |
EVI-Link3 |
|
1 |
此后,Switch E上扩展VLAN1000发送到站点1的数据流量均从EVI-Link1进出核心网进行转发。可以看出,故障切换时间仅与故障检测时间相关,远端MAC地址不需要重新学习下发表项,加快了端到端故障切换速度。
Switch A作为站点内DED设备,检测到Switch C二层不可达后,对受影响的LBV(VLAN100-400和VALN701-1000)进行重新分配。重新分配的LAV和LBV如表7所示:
表7、Switch A重分配的LAV和LBV
Switch A重新分配LAV和LBV后,发送EVI-ISIS Hello报文,将重新分配的扩展VLAN及相应的AEF和BEF通告本EVI站点内的ED设备Switch B,各ED(Switch A,Switch B)设备更新对应的本地MAC地址表项,并通告给远端邻居ED设备进行相应的更新。
Switch C与Switch A、Switch B在VLAN3内二层不可达,Switch C判断自身所处站点为单归属站点,将激活本地所有扩展VLAN,同时清除本地记录LAV和LBV的表项,与SwitchA和Switch C建立站点间EVI-ISIS邻居关系,并进行相应的LSDB同步。
Switch E学习到远端MAC1后,更新远端MAC地址表项如表11所示:
表11、Switch E上更新后的远端MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC1 |
1000 |
EVI-Link1 |
EVI-Link2 |
2 |
MAC3 |
1000 |
EVI-Link0 |
|
2 |
其中,与更新前的如表9所示的表项相比,Switch E根据Switch B所通告的MAC1对应的AEF和BEF(这里为Switch A),更新主出接口为连接Switch B的接口EVI-Link1,备出接口为连接该BEF Switch A的接口EVI-Link2。
Switch D学习到远端MAC1后,更新远端MAC地址表项如表12所示:
表12、Switch D上更新后的远端MAC地址表项
MAC地址 |
VLAN ID |
主出接口 |
备出接口 |
Flag |
MAC1 |
1000 |
EVI-Link4 |
EVI-Link5 |
1 |
MAC3 |
1000 |
EVI-Link0 |
|
1 |
其中,与更新前的如表10所示的表项相比,Switch D根据Switch B所通告的MAC1对应的AEF和BEF(这里为Switch A),更新主出接口为连接Switch B的接口EVI-Link4,备出接口为连接该BEF的接口EVI-Link5。
站点1内有新的ED设备加入,或者Switch C故障恢复时,只对新的扩展VLAN有影响,不改变原有的LAV和LBV分配结果,从而最大限度避免影响已有EVI业务以及出现EVI网络站点震荡。
若故障链路是P1、P2端口所在链路,则Switch A和Switch C可判断为Switch B二层不可达,Switch B判断指定VLAN3上无二层邻居可达,即自身所处站点为单归属站点,将激活本地所有扩展VLAN,同时清除本地记录LAV和LBV的表项,与Switch A和Switch C建立站点间EVI-ISIS邻居关系,并进行相应的LSDB同步。
若站点1内DED设备Switch A在指定VLAN3二层链路故障,则Switch B、Switch C判断Switch A在VLAN3上二层不可达,立即进行新的DED设备选举,重新在站点内分配LAV和LBV。对于不受影响的LAV和LBV,新选举出的DED设备维持之前的分配结果不变;对于受到影响的LAV,将该LAV对应备份LBV激活,将其BEF作为新的AEF,负责该LAV的EVI流量转发,并指定新的BEF;对于受到影响的LBV,重新分配LBV。DED设备将重新分配的扩展VLAN及相应的AEF和BEF通告本EVI站点内的ED设备,各ED设备更新对应的本地MAC地址表项,并通告给远端邻居ED设备进行相应的更新。
本发明实施例的站点内故障流量恢复的时间仅与EVI多归属站点二层链路故障检测的时间相关,与EVI站点规模即所承载的MAC地址表项数量无关,EVI网络中的故障切换方案的切换时间可达到ms级,从而实现故障流量快速切换。
基于相同的技术构思,本发明实施例还提供了一种路由交换设备,如图6所示,作为边缘设备ED应用于以太网虚拟化互联EVI网络站点,包括:
配置模块61,用于将分配给本设备的本地激活虚拟局域网LAV和本地备份虚拟局域网LBV配置在本设备上;其中,本设备为本设备LAV内的扩展虚拟局域网VLAN的指定边缘转发者AEF,以及为本设备LBV内的扩展VLAN的备份边缘转发者BEF;
本地表项处理模块62,用于根据本设备的LAV学习相应扩展VLAN内的本地媒体接入控制MAC地址信息,并将学习到的本地MAC地址和该MAC地址所在的扩展VLAN通过链路状态包LSP通告给远端邻居ED;
所述LSP中对于可备份本地MAC地址指示有对应的BEF,所述对应的BEF为对应的MAC地址所在的扩展VLAN的BEF,其中,可备份本地MAC地址是指从指定VLAN端口学习到的MAC地址,所述LSP用于使所述远端邻居ED解析MAC地址及其所在的扩展VLAN,以及可备份MAC地址所在扩展VLAN的BEF,确定出自身设备连接该BEF的EVI链路接口,然后根据以上信息配置或刷新对应的远端MAC地址表项,对于可备份MAC地址,所述远端MAC地址表项中包括主出接口和备出接口,其中,主出接口为所述远端邻居ED接收所述LSP的EVI链路接口,备出接口为远端邻居ED连接可备份本地MAC地址对应BEF的EVI链路接口;若所述远端MAC地址所在的扩展VLAN在自身设备的LAV内,则配置所述远端MAC地址表项为主用表项,所述主用远端MAC地址表项用于指导流量转发,且流量根据该表项中的主出接口进行转发;
链路检测模块63,用于检测本地邻居ED二层是否可达;
故障处理模块64,用于在所述链路检测模块检测到本地邻居ED二层不可达时,若判断本设备是所述本地邻居ED的LAV的BEF,则将本设备对应所述本地邻居ED的LAV的LBV迁移为LAV,并向所有远端邻居ED发送迁移LSP,其中所述迁移LSP携带发生迁移的扩展VLAN信息以及该扩展VLAN迁移前的AEF和迁移后的AEF,以使远端邻居ED接收所述迁移LSP后,将所述发生迁移的扩展VLAN对应的远端MAC地址表项中的主出接口删除并启用备出接口。
本地表项处理模块62还用于,在所述故障处理模块64将本设备对应所述本地邻居ED的LAV的LBV迁移为LAV之后,将本设备LBV对应的的备用远端MAC地址表项配置为主用远端MAC地址表项。
配置模块61还用于,若本设备被选举为指定ED,为本设备和本设备的各本地邻居ED分配LAV和LBV,并通过扩展Hello报文将为本设备的各本地邻居ED分配的LAV和LBV分别发送给本设备的各本地邻居ED设备。
当本设备通过所述指定VLAN检测到本地邻居ED在二层不可达,且所述本地邻居为指定ED时,所述EVI网络站点重新选举后,本设备被选为指定ED,所述配置模块61还用于:
重新在站点内分配LAV和LBV,对于不受本地邻居ED影响的LAV和LBV,维持之前的分配结果不变;对于受到本地邻居ED影响的LAV,将该LAV分配给其对应的BEF作为该LAV新的AEF,并指定新的BEF;对于受到影响的LBV,重新分配LBV;将重新分配的结果通告本EVI网络站点内的ED设备。
优选的,配置模块61分配LAV和LBV时的分配原则,包括以下之一或组合:
对于同一站点网络内各本地邻居ED没有竞争关系的扩展VLAN,不作为LBV进行分配;
对于同一站点网络内各本地邻居ED有竞争关系的扩展VLAN,为每个本地邻居ED分配的LAV和LBV没有重复;
对于同一站点网络内各本地邻居ED有竞争关系的扩展VLAN,分给一个本地邻居ED的LAV被整体分配给另一本地邻居ED作为LBV;
对于同一站点网络内各本地邻居ED有竞争关系的扩展VLAN,为各本地邻居ED分配的LBV尽量连续;
对于同一站点网络内各本地邻居ED有竞争关系的扩展VLAN,为各本地邻居ED分配的竞争部分LBV的数量尽量平均。
本发明实施例还提供了另一种路由交换设备,如图7所示,作为边缘设备ED应用于以太网虚拟化互联EVI网络站点,包括:
接口模块71,用于接收远端邻居ED发送的链路状态包LSP,其中所述远端邻居ED分配有该远端邻居ED设备的本地激活虚拟局域网LAV和本地备份虚拟局域网LBV,所述远端邻居ED为自身LAV内的扩展虚拟局域网VLAN的指定边缘转发者AEF,以及自身LBV内的扩展VLAN的备份边缘转发者BEF;
所述LSP中包含所述远端邻居ED根据本设备的LAV学习到的相应扩展VLAN内的本地媒体接入控制MAC地址信息以及该MAC地址所在的扩展VLAN,其中,对于可备份本地MAC地址指示有对应的BEF,所述对应的BEF为对应的MAC地址所在的扩展VLAN的BEF,其中,可备份本地MAC地址是指从指定VLAN端口学习到的MAC地址;
远端表项处理模块72,用于解析LSP中MAC地址及其所在的扩展VLAN,以及可备份MAC地址所在扩展VLAN的BEF,确定出本设备连接该BEF的EVI链路接口,然后根据以上信息配置或刷新对应的远端MAC地址表项,对于可备份MAC地址,所述远端MAC地址表项中包括主出接口和备出接口,其中,主出接口为本设备接收所述LSP的EVI链路接口,备出接口为远端邻居ED连接可备份本地MAC地址对应BEF的EVI链路接口;若所述远端MAC地址所在的扩展VLAN在本设备的LAV内,则配置所述远端MAC地址表项为主用表项,所述主用远端MAC地址表项用于指导流量转发,且流量根据该表项中的主出接口进行转发;以及,当所述接口模块71接收到远端邻居ED发送的迁移LSP后,根据所述迁移LSP中携带的发生迁移的扩展VLAN信息以及该扩展VLAN迁移前的AEF和迁移后的AEF,将所述发生迁移的扩展VLAN对应的远端MAC地址表项中的主出接口删除并启用备出接口。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上 或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台客户端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。