具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中提出一种基于堆叠系统的报文转发方法,所述堆叠系统中CB设备之间通过堆叠链路依次链形或环形互连,各CB设备通过级联链路与一个或多个PE设备连接,所述方法应用于堆叠系统中的核心骨干CB设备上。该CB设备在接收到单播报文时,判断识别该单播报文的目的芯片标识,根据该目的芯片标识对应的是CB设备的芯片,还是PE设备的芯片,转发该单播报文。能够满足当前数据中心需要简化网络结构、简化管理的需求。
下面结合附图,详细说明在堆叠系统中本发明具体实施例如何实现报文转发。
参见图2,图2为本发明具体实施例堆叠系统中报文转发流程示意图。具体步骤为:
步骤201,任一CB设备接收到单播报文,判断识别收到的单播报文的目的芯片标识。
本步骤中,如果接收到的单播报文是由其他CB设备发送的,则需要对该单播报文根据源丢弃表项确定,是否丢弃该单播报文。
在该堆叠系统中收发的报文,可能为二层转发,或三层转发,以二层转发为例,查找的MAC地址表项为接收到报文时,进行源MAC学习获得的。
本步骤中,CB设备接收到单播报文时,需要进行源MAC地址学习,CB设备学习到的源芯片标识和所述源端口标识是收到所述单播报文的本地端口对应的芯片标识和端口标识;通过所述级联链路或所述堆叠链路接收的所述单播报文携带了所述源芯片标识和所述源端口标识。具体如下:
如果通过该堆叠系统之外的设备进入该CB设备,即通过本地端口接收该单播报文时,则将该报文进入该CB设备的端口的端口标识和芯片标识学习到MAC地址表项中。
如果该单播报文通过其他CB设备或PE设备进入该CB设备,在进行源MAC学习时,将该报文携带的芯片标识和端口标识学习到MAC地址表项中。
在具体实现时,PE设备和CB设备之间,以及CB设备之间通信,可以通过HG头携带目的芯片标识和目的端口标识,以及源芯片标识和源端口标识。因此,如果该单播报文是从PE设备或CB设备发送来的,可以从接收的该单播报文的HG头中学习源芯片标识和源端口标识。
如果该单播报文通过本地端口接收,则需通过MAC地址表项查找目的芯片标识;如果通过PE设备或CB设备接收该单播报文,需从该单播报文的HG头中获取目的芯片标识。
基于各本地端口或级联链路接收的单播报文的VLAN标识和目的MAC地址在MAC地址表中查找到MAC表项中的芯片标识和端口标识是所述目的芯片标识和所述目的端口标识。
该CB设备通过所述堆叠链路收到的单播报文携带了所述目的芯片标识和所述目的端口标识。
步骤202,若确定所述目的芯片标识对应本地芯片,该CB设备根据所述单播报文的目的端口标识对应的端口发送所述单播报文,结束本流程。
所述目的芯片标识和所述目的端口标识关联于所述单播报文的VLAN标识和目的MAC地址。
若该单播报文通过本地端口接收,且确定目的芯片标识对应本地芯片,直接通过目的端口标识对应的端口发送所述单播报文。
若该单播报文通过PE设备或CB设备接收到,且确定目的芯片标识对应本地芯片,则将该单播报文HG头剥掉,再通过目的端口标识对应的端口发送所述单播报文。
步骤203,若确定目的芯片标识对应其他CB设备的芯片,该CB设备根据第一转发表项转发该单播报文,结束本流程。
如果该单播报文通过本CB设备进入该堆叠系统,且目的芯片标识对应其他CB设备的芯片时,将接收该单播报文的本CB设备的芯片的芯片标识和接收该单播报文的端口的端口标识作为源封装在HG头中,将目的芯片标识和目的端口标识作为目的封装在HG头中。
如果该单播报文是CB设备或PE设备发送的,直接将该报文根据第一表项转发。
步骤204,若确定目的芯片标识对应所PE设备的芯片,该CB设备根据第二转发表项转发该单播报文。
如果该单播报文通过本CB设备进入该堆叠系统,且目的芯片标识对应为PE设备的芯片时,将接收该单播报文的本CB设备的芯片的芯片标识和接收该单播报文的端口的端口标识作为源封装在HG头中,将目的芯片标识和目的端口标识作为目的封装在HG头中。
如果该单播报文是CB设备或PE设备发送的,根据该单播报文中的HG头中携带的目的芯片标识,进行对应的转发。如果目的芯片标识对应的PE设备的芯片时,本CB设备不修改该单播报文的HG头,根据第二转发表项转发该单播报文。
其中,第一转发表项记录本CB设备到其他CB设备的芯片标识对应的堆叠口,即第一转发表项为本CB设备到其他CB设备的之间的转发表项。该表项建立的具体过程如下:
各CB设备计算到其他CB设备的距离,从左右两个堆叠口出发,到同一个目的CB可能得到两个距离,选择最短的路径作为从本CB设备向目的CB设备的转发路径;同时在另一侧的堆叠口上设置对目的CB的源丢弃表项,即来自于目的CB的报文只能从转发路径通过。
对于非环形拓扑,CB设备从某个堆叠口出发不可到达某个CB设备,这时,该CB设备到某个CB设备的距离视为无穷大。
仍以图1为例,图1中的各CB设备计算各自的转发路径,以CB设备1计算转发路径,配置CB设备1到其他各CB设备的转发表。
参见表1,表1为CB1配置的各CB设备之间的转发表项。
目的设备 |
CB设备1 |
CB设备2 |
CB设备3 |
转发端口 |
-- |
堆叠口1 |
堆叠口2 |
表1
表1表明CB设备1到CB设备2和CB设备3要走的堆叠口,如CB设备1到CB设备2走堆叠口1,到CB设备3走堆叠口2,到自身自然不必走堆叠口。CB设备2和CB设备3各自计算转发路径,配置转发表项,同CB设备1,这里不再一一举列。
此外,为了防止报文环路转发,如CB设备1通过堆叠口1发出的报文,又从堆叠口2接收到了,并会再次从堆叠口1发出,或从堆叠口1发出的报文,之后又从堆叠口1接收到了,为了在各CB设备上配置了源丢弃表项。
以CB设备1在本地配置的源丢弃表项为例,参见表2,表2为CB设备1配置的源丢弃表项。
目的设备 |
CB设备1 |
CB设备2 |
CB设备3 |
堆叠口1 |
Y |
N |
Y |
堆叠口2 |
Y |
Y |
N |
表2
表2中如果CB设备从堆叠口1接收到报文时,需进行源丢弃检测,如果报文的源为CB设备1和CB设备3,就需要丢弃;对于从堆叠口2接收到报文时,也需进行源丢弃检测,如果源为CB设备1和CB设备2时,就需要丢弃。
配置源丢弃表项时,遵守如下原则:源为本设备的报文,丢弃;如果到某CB设备的转发路径走的是堆叠口1,就需要在通过堆叠口2接收到该CB设备的报文时,进行丢弃。这样可以保障任何情况下,都不会出现环路的可能。
其中,所述第二转发表项记录本CB设备各PE设备的芯片标识对应的堆叠口或级联端口,即第二转发表项为本CB设备到各PE设备的转发表项。在配置CB设备到各PE设备的转发表项时,按照该CB设备到各PE设备的距离最近原则配置。具体配置过程如下:
该CB设备计算本CB设备到连接各PE设备的各CB设备的距离。
该CB设备通过本CB设备到其他CB设备的跳数作为本CB设备到其他CB设备的距离,对于本CE设备到自身的跳数为0,则确定本CE设备到自身的距离为最小。
对于任一PE设备,若本CB设备直接连接该PE设备,将本CB设备连接该PE设备的端口作为到该PE设备的转发端口,配置本CB设备到该PE设备的转发表项;若本CB设备未直接连接该PE设备,确定距本CB设备跳数最少的可达的,且与该PE设备直连的CB设备,将本CB设备到确定的CB设备可达的堆叠口作为转发端口,配置本CB设备到该PE设备的转发表项。如果一个CB设备通过一侧堆叠口不能到达某一个CB设备,则确定通过该堆叠口两个CB设备之间的距离为无穷远,不可达。
依然以图1中CB设备1配置到各PE设备的转发表项。对于PE设备1,与CB设备1、CB设备2和CB设备3相连,因此CB设备1到与PE设备1相连的CB设备距离最近的CB设备为CB设备1,配置端口3为CB设备1到PE设备1的转发端口;同样配置端口4为到PE设备2的转发端口。
对于PE设备3,仅有CB设备3与之相连,因此可达的路径为通过CB设备3到PE设备3,且可达CB设备3的端口为堆叠口2,因此,配置堆叠口2为到PE设备3的转发端口。
对于PE设备4,CB设备1距离直连PE设备4距离最近的CB设备为CB设备3,因此将堆叠口2,作为CB设备1到PE设备4的转发端口。通过CB设备之间的转发表项可知,通过堆叠口1到CB设备3不可达,则确定通过堆叠口1到达CB设备的跳数为无穷的,即距离为最远。
如果CB设备2也连接PE设备4,则距离CB设备1最近的CB设备存在两个,则根据具体应用情况,选择其中一个CB设备进行表项配置,如选择到CB设备3的链路为转发链路,则配置堆叠口1为转发端口;如选择到CE设备2的链路为转发链路,则配置堆叠口2为转发端口。
参见表3,表3为CB设备1到各PE设备的转发表项。
目的设备 |
PE设备1 |
PE设备2 |
PE设备3 |
PE设备4 |
转发端口 |
端口3 |
端口3 |
堆叠口2 |
堆叠口2 |
表3
仍然以图2为例,详细说明本发明具体实施例中如何进行单播报文转发的。
以CB设备1对报文的处理为例。CB设备1通过本地端口,如端口5接收到单播报文,以二层转发为例,根据该单播报文的目的MAC地址和VLAN标识在MAC地址表项中查找到对应的目的芯片标识和目的端口标识。
如果目的芯片标识对应本CB设备的芯片,则将该单播报文通过查找到的端口标识对应的端口转发该单播报文。
同时对该单播报文进行源MAC地址学习,将该单播报文的源MAC地址学习到本CB设备接收该单播报文的芯片标识和端口标识上。
如果目的芯片标识对应CB设备2的芯片,则在第一转发表项中,见表1,查找本CB设备到CB设备2的转发端口,查找到通过堆叠口1转发给CB设备2,并且为该单播报文封装HG头,将本CB设备接收该单播报文的芯片标识和端口标识作为源,将在MAC地址表项中查找到的目的芯片标识和目的端口标识作为目的。
CB设备2接收该封装HG头的单播报文时,确定该单播报文中的HG头中的目的芯片标识对应本CB设备的芯片标识,因此,将该单播报文解封装,并根据该单播报文的目的端口标识对应的端口转发该单播报文。
同时将该单播报文的源MAC地址学习到该单播报文的HG头中的源芯片标识和源端口标识上。
如果目的芯片标识对应PE设备4的芯片,则查找第二转发表项,即表3,可获知,通过堆叠口2转发,并且为该单播报文封装HG头,将本CB设备接收该单播报文的芯片标识和端口标识作为源,将在MAC地址表项中查找到的目的芯片标识和目的端口标识作为目的。
CB设备3接收该封装HG头的单播报文时,确定该单播报文中的HG头中的目的芯片标识不对应本CB设备的芯片标识,对应PE4设备的芯片,因此,查找本地的第二转发表项转发该单播报文。
PE设备4接收到该单播报文时,根据HG头中的目的芯片标识确定为发给本设备的单播报文,将该单播报文接封装,并根据该单播报文的HG头中的目的端口标识对应的端口转发该单播报文。同时进行源MAC地址学习。
本发明具体实施例中基于同样的发明构思,还提出一种设备,可应用于该堆叠系统中的CB设备。图3为本发明具体实施例中应用于上述技术的设备的结构示意图。该设备包括:接收单元301、判断单元302和处理单元303。
接收单元301,用于接收单播报文。
判断单元302,用于当接收单元301接收到单播报文时,判断识别收到的单播报文的目的芯片标识。
处理单元303,用于判断单元302若确定所述目的芯片标识对应本地芯片,根据所述单播报文的目的端口标识对应的端口发送所述单播报文;若确定目的芯片标识对应其他CB设备的芯片,则根据第一转发表项转发该单播报文;若确定目的芯片标识对应所PE设备的芯片,根据第二转发表项转发该单播报文。
较佳地,
所述目的芯片标识和所述目的端口标识关联于所述单播报文的VLAN标识和目的MAC地址。
较佳地,
基于各本地端口或级联链路接收的单播报文的VLAN标识和目的MAC地址在MAC地址表中查找到MAC表项中的芯片标识和端口标识是所述目的芯片标识和所述目的端口标识;通过所述堆叠链路收到的单播报文携带了所述目的芯片标识和所述目的端口标识。
较佳地,该设备进一步包括:学习单元304。
学习单元304,用于当接收单元301接收到单播报文时,学习所述单播报文的VLAN标识和源MAC地址对应的源芯片标识和源端口标识;所述源芯片标识和所述源端口标识是收到所述单播报文的本地端口对应的芯片标识和端口标识;通过所述级联链路或所述堆叠链路接收的所述单播报文携带了所述源芯片标识和所述源端口标识。
较佳地,
所述第一转发表项记录本设备到其他CB设备的芯片标识对应的堆叠口。
所述第二转发表项记录本设备到各PE设备的芯片标识对应的堆叠口或级联端口。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明具体实施例中通过第一和第二转发表项,指导CB设备对接收到的单播报文进行转发,从而实现在堆叠系统中报文的转发,能够满足当前数据中心需要简化网络结构、简化管理的需求。通过虚拟化接入网的方式实现单一管理域,减少网络层次,管理扁平化等功能,是当前数据中心技术的一个重要发展趋势。
在具体实施例中还配置了第二转发表项,以及配置第二转发表项的方法,CB设备无论是否下接PE设备,或者下接的PE设备发生变化,如增加或减少PE设备时,不影响配置的第一转发表项,即不影响CB设备之间原有的业务流的转发。同时第二表项的配置遵循最小距离原则,使CB设备根据第二转发表项向PE设备发送单播报文时,经过的设备最少,有利于提供转发效率,减少时延。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。