CN104468370B - 一种组播数据报文转发方法及设备 - Google Patents
一种组播数据报文转发方法及设备 Download PDFInfo
- Publication number
- CN104468370B CN104468370B CN201310440087.XA CN201310440087A CN104468370B CN 104468370 B CN104468370 B CN 104468370B CN 201310440087 A CN201310440087 A CN 201310440087A CN 104468370 B CN104468370 B CN 104468370B
- Authority
- CN
- China
- Prior art keywords
- multicast
- port
- trill
- router
- routing bridge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明提供了一种组播数据报文转发和装置,应用于数据中心的核心层设备,其中该方法包括:根据组播数据报文的组播组地址所关联的朝向指定路由器的路由器端口和虚拟局域网标识复制和发送组播数据报文;根据组播数据报文的组播组地址对应的朝向网关的路由器端口和虚拟局域网标识复制和发送组播数据报文;识别组播数据报文的组播组地址是否有关联的成员端口和虚拟局域网标识,若是,根据关联的成员端口和虚拟局域网标识复制和发送组播数据报文。利用本发明方法,核心层路由桥利用Trill网络计算的路由器端口发送组播数据报文时,无需将组播数据报文封装为Trill格式。
Description
技术领域
本发明涉及通信领域的组播技术,尤其涉及一种组播数据报文转发方法及设备。
背景技术
目前,数据中心可采用Trill(Transparent Interconnection of Lots ofLinks,多链路透明互联)、SPB(Shortest Path Bridging,最短路径桥)、Vxlan(VirtualExtended VLAN,虚拟扩展虚拟局域网)等大二层网络技术构建数据中心的二层网络。
在利用上述大二层网络技术构建的数据中心内,设备可利用IGMP协议报文维护路由器端口(Router Port)发送组播数据报文。
发明内容
本发明实施例提供一种数据中心内的组播数据报文转发方法及装置,核心层路由桥利用Trill网络计算的路由器端口发送组播数据报文时,无需将组播数据报文封装为Trill格式。
为实现上述目的,本发明实施例一种组播数据报文转发方法,应用于数据中心的核心层路由桥,其中,该方法包括:根据组播数据报文的组播组地址所关联的朝向指定路由器的路由器端口和虚拟局域网标识复制和发送组播数据报文;根据组播数据报文的组播组地址对应的朝向网关的路由器端口和虚拟局域网标识复制和发送组播数据报文;识别组播数据报文的组播组地址是否有关联的成员端口和虚拟局域网标识,若是,根据关联的成员端口和虚拟局域网标识复制和发送组播数据报文。
为实现上述目的,本发明实施例还一种组播数据报文转发装置,应用于数据中心的核心层路由桥,其中,该装置包括:组播数据处理单元,用于根据组播数据报文的组播组地址所关联的朝向指定路由器的路由器端口和虚拟局域网标识复制和发送组播数据报文;根据组播数据报文的组播组地址对应的朝向网关的路由器端口和虚拟局域网标识复制和发送组播数据报文;识别组播数据报文的组播组地址是否有关联的成员端口和虚拟局域网标识,若是,根据关联的成员端口和虚拟局域网标识复制和发送组播数据报文。
利用本发明方法,接入层路由桥利用Trill网络计算的路由器端口发送组播数据报文时,无需将组播数据报文封装为Trill格式。
附图说明
图1是本发明实施例提供的组播数据报文的转发流程示意图;
图2为本发明一实施例提供的数据中心的TRILL组网架构示意图;
图3A-3B为图2实施例中TRILL组播树的示意图;
图4为图2中数据中心内指定路由器向外部汇聚点路由器发送PIM注册报文的示意图;
图5为图2中组播源的组播数据报文发往外部汇聚点路由器和内部组播接收端的示意图;
图6为本发明另一实施例提供的数据中心的TRILL组网架构示意图;
图7A-7B为图6中数据中心内指定路由器向外部汇聚点路由器发送PIM注册报文的示意图;
图8为图5中数据中心内指定路由器向外部汇聚点路由器发送PIM注册报文的示意图;
图9为图6中组播源的组播数据报文发往外部汇聚点路由器和内部组播接收端的示意图;
图10是本发明实施例提供组播报文转发装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
图1是本发明实施例提供的组播数据报文的转发流程示意图;
步骤101,根据组播数据报文的组播组地址关联的朝向指定路由器的路由器端口和虚拟局域网标识复制和发送组播数据报文;
步骤102,根据组播数据报文的组播组地址对应的朝向网关的路由器端口和虚拟局域网标识复制和发送组播数据报文;
步骤103,识别是否有关联于播数据报文的组播组地址的成员端口和虚拟局域网标识,若是,执行步骤104;
步骤104,根据成员端口和虚拟局域网标识复制和发送组播数据报文。
组播数据报文所属的组播组在不同的虚拟局域网的指定路由器不同,在各指定路由器为树根的Trill组播树上,到达指定路由器(树根)的Trill路径上的本地端口是朝向指定路由器的路由器端口,到达虚拟局域网的所有网关的多个Trill路径上的一个或多个本地端口是朝向网关的路由器端口。
如图2所示的数据中心内,核心层的四台网关路由桥设备spine1~spine4根据VRRP协议执行邻居发现和主设备选举,构成为一个虚拟路由器组,作为VLAN1和VLAN2的网关。路由桥spine1~spine4均处于激活(active)状态,参与VLAN1和VLAN2的数据转发。
网关路由桥spine1~spine4以及接入层的非网关路由桥leaf1~leaf6运行IGMPsnooping(IGMP窥探,简称IGSP)协议。路由桥spine1~spine4还运行IGMP(Internet GroupManagement Protocol,互联网组管理协议)协议和PIM(Protocol IndependentMulticast,协议无关组播)协议。
路由桥spine3是VLAN1内组播组G2的指定路由器,路由桥spine4是VLAN2内组播组G2的指定路由器。
路由桥spine3是VLAN2内组播组G2的备份指定路由器;路由桥spine4是VLAN1内组播组G2的备份指定路由器。
路由桥spine3~spine4之间建立用于PIM协议的BFD(Bidirectional ForwardingDetection,双向转发检测)对话。如果,路由桥spine3检测到路由桥spine4故障,路由桥spine3切换为VLAN2内组播组G2的指定路由器。路由桥spine4执行类似的处理。
路由桥leaf4连接的终端client2和client3分别是VLAN1和VLAN2内组播组G2的接收端;路由桥leaf5连接的终端client4是VLAN2内组播组G2的接收端。路由桥leaf4还连接有组播源(S2,G2,V1)。
为了方便描述,路由桥spine1连接路由桥leaf1、路由桥leaf2、路由桥leaf3、路由桥leaf4、路由桥leaf5以及路由桥leaf6的六个端口分别命名为端口spine1_P1、端口spine1_P2、端口spine1_P3、端口spine1_P4、端口spine1_P5、端口spine1_P6。路由桥spine2~spine4各自连接路由桥leaf1~leaf6的端口命名方式以此类推。
路由桥leaf1连接路由桥spine1、路由桥spine2、路由桥spine3、路由桥spine4的四个端口分别命名为端口leaf1_P1、端口leaf1_P2、端口leaf1_P3、端口leaf1_P4。路由桥leaf2~leaf6各自连接路由桥spine1~spine4的端口命名方式以此类推。
路由桥leaf4连接终端client2、client3以及组播源(S2,G2,V1)的三个端口分别命名为端口leaf4_Pa、leaf4_Pb、leaf4_Pc;将路由桥leaf5上连接终端client4的端口命名为端口leaf5_Pa。
路由桥spine1~spine4以及路由桥leaf1~leaf6都知道Trill网络内VLAN1和VLAN2的网关是路由桥spine1~spine4,VLAN1内组播组G2的指定路由器是spine3,VLAN2内组播组G2的指定路由器是spine4。
路由桥spine1~spine4可通过通知的方式,将网关信息、组播组在各VLAN内的指定路由器信息在TRILL网络内通告给所有路由桥。譬如:路由桥spine1在TRILL网络内通知VLAN1网关和VLAN2网关的nickname是路由桥spine1的nickanme1。路由桥spine2在TRILL网络内通知VLAN1网关和VLAN2网关的nickname是路由桥spine2的nickanme2。路由桥spine3在TRILL网络内通知VLAN1网关和VLAN2网关是路由桥spine3的nickname3、组播组G2的组播源在数据中心的VLAN1内、VLAN1内组播组G2的指定路由器的nickname是路由桥spine3。路由桥spine4在TRILL网络内通知VLAN1网关和VLAN2网关是路由桥spine4的nickname4、VLAN2内组播组G2的指定路由器的nickname是路由桥spine4的nickname。路由桥spine1~spine4可以通过IS-IS(Intermediate System to Intermediate System RoutingProtocol,中间系统到中间系统的路由选择协议)的LSA(Link State Advertisement,链路状态通知)通知上述信息。
路由桥spine1~spine4以及路由桥leaf1~leaf6分别以指定路由器的nickname为树根计算TRILL组播树。
图3A-3B为图2实施例中TRILL组播树的示意图。路由桥spine1~spine4以及路由桥leaf1~leaf6根据图3A和3B所示的TRILL组播树,计算朝向DR的路由器端口和朝向网关的路由器端口。
朝向DR的路由器端口:TRILL组播树上的到达指定路由器的TRILL路径上的本地端口。朝向网关的路由器端口:TRILL组播树上的到达网关的TRILL路径上的本地端口。
以路由桥spine1为例,图3A所示的组播树上,从路由桥spine1到路由桥spine3的TRILL路径上本地端口是端口spine1_P1,即,朝向DR的路由器端口为端口spine1_P1;从路由桥spine1到路由桥spine2、spine3、spine4的三个TRILL路径上的本地端口都是端口spine1_P1,即,朝向网关的路由器端口为端口spine1_P1;在图3B所示的组播树上,路由桥spine1到路由桥spine4的TRILL路径上的本地端口为端口spine1_P1,即,朝向DR的路由器端口是端口spine1_P1;从路由桥spine1到路由桥spine2、spine3、spine4的三个TRILL路径上的本地端口都是端口spine1_P1,即,朝向网关的路由器端口为端口spine1_P1。
路由桥spine1根据图3A-图3B所示的TRILL组播树计算的路由器端口如表1.1所示:
表1.1
路由桥spine2根据图3A-图3B所示的TRILL组播树计算的路由器端口如表1.2所示:
表1.2
路由桥spine3根据图3A-图3B所示的TRILL组播树计算的路由器端口如表1.3所示:
表1.3所示:
表1.3
路由桥spine4根据图3A-图3B所示的TRILL组播树计算的路由器端口如表1.4所示:
表1.4
路由桥leaf4根据图3A-图3B所示的TRILL组播树计算的路由器端口如表1.5所示:
表1.5
路由桥leaf5根据图3A-图3B所示的TRILL组播树计算的路由器端口如表1.6所示:
表1.6
图4示出了图2中数据中心内组播源的组播数据报文封装为PIM注册报文发送到数据中心外的汇聚点(RP,Rendezvous Point)路由器的示意图。
组播组G2的组播源(S2,G2,V1)发送组播数据报文。
路由桥leaf4收到的组播数据报文,根据组播数据报文的VLAN1和组播组地址G2没有查询到组播表项,新建组播表项(S2,G2,V1),将端口leaf4_P3(既是朝向DR的路由器端口,也是朝向网关的路由器端口)添加为出接口(outgoing-interface)。
由于组播组G2的组播源在数据中心内,路由桥leaf4将组播数据报文发往作为VLAN1网关的路由桥。作为VLAN1网关的某个路由桥可以根据收到的来自数据中心外部的PIM加入报文向数据中心外发送组播组G2的组播数据报文。
路由桥spine3收到组播数据报文,根据组播数据报文的组播组地址G2没有查询对应的组播表项,建立组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN1,spine3_P1);其中,VLAN1是组播数据报文的VLAN ID,端口spine3_P1是VLAN1和G2关联的朝向网关的路由器端口。路由桥spine3作为VLAN1内组播组G2的指定路由器,将组播数据报文封装为PIM注册报文。路由桥spine3将PIM注册报文发送到上游组播路由器,即出口路由器201。出口路由器201向RP路由器202的方向发送PIM注册报文。
spine3根据组播表项的出接口的成员信息(VLAN1,端口spine3_P1)复制和发送组播数据报文。路由桥leaf1的端口leaf1_P3收到组播数据报文,根据VLAN1和组播组地址G2没有查询到组播表项,建立组播表项(S2,G2,V1),在出接口中添加成员端口leaf1_P1、leaf1_P2、leaf1_P3、leaf1_P4(VLAN1和G2关联的朝向DR的路由器端口以及朝向网关的路由器端口)。路由桥leaf1通过组播表项的出接口leaf1_P1、leaf1_P2、leaf1_P4分别发送组播数据报文到路由桥spine1、路由桥spine2以及路由桥spine4。路由桥leaf1收到组播数据报文的入接口leaf1_P3与组播表项中出接口的成员端口leaf1_P3相同,不再发送组播数据报文。
路由桥spine1、路由桥spine2和路由桥spine4各自收到组播数据报文,根据组播地址G2未查询到组播表项。路由桥spine1建立组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN1,spine1_p1);其中,VLAN1是组播数据报文的VLAN ID,端口spine1_P1既是朝向DR的路由器端口,也是朝向网关的路由器端口。路由桥spine2建立的组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN 1,spine2_P1);其中,VLAN1是组播数据报文的VLAN ID,端口spine2_P1既是朝向DR的路由器端口,也是朝向网关的路由器端口。路由桥spine4建立的组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN1,spine1_p4);其中,VLAN1是组播数据报文的VLAN ID,端口spine1_p4既是朝向DR的路由器端口,也是朝向网关的路由器端口。路由桥spine1、路由桥spine2和路由桥spine4收到的组播数据报文的入接口信息与出接口的成员信息相同,不会继续复制和发送组播数据报文。
RP路由器202接收PIM注册报文,解封装得到组播数据报文,将组播数据报文发送到数据中心外的组播组G2的接收端。RP路由器202根据注册报文的源IP地址发送加入组播组G2的PIM(S2,G2)加入报文。PIM加入报文被逐跳地发送到数据中心的出口路由器201。出口路由器201收到加入组播组G2的PIM加入报文,在到达VLAN1的四个下一跳路由桥spine1~spine4中选择路由桥spine4。出口路由器201发送加入组播组G2的PIM加入报文到路由桥spine4。出口路由器201可根据加入组播组的G2的PIM加入报文进行HASH(哈希)计算,根据HASH计算结果选择下一跳。
路由桥spine4通过本地端口spine4_Pout收到加入组播组G2的PIM加入报文,根据组播组地址G2查找到组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN100,spine4_Pout);其中,VLAN100是PIM加入报文的VLAN ID;端口spine4_Pout是PIM加入报文的接收端口。如果出口路由器201选择的下一跳是路由桥spine1,则路由桥spine1根据收到的PIM加入报文添加关联的成员信息。
终端client2请求加入组播组G2的过程
属于VLAN1的终端client2发送加入组播组(*,G2)的IGMP报告报文。
路由桥leaf4收到终端client2发送的请求加入组播组G2的IGMP报告报文后,根据VLAN1和组播组地址G2查询到组播表项(S2,G2,V1),在出接口中添加端口leaf4_Pa。
路由桥leaf4为收到的IGMP报告报文封装TRILL头和下一跳头,将该IGMP报告报文封装为TRILL封装的IGMP报告报文。其中,TRILL头的Ingress nickname是路由桥leaf4的nickname,TRILL头的Egress nickname是路由桥spine3(VLAN1内组播组G2的DR)的nickname。路由桥leaf4通过端口leaf4_P3(朝向DR的路由器端口)发送TRILL封装的IGMP报告报文。路由桥leaf4为端口leaf4_Pa设置组播组成员老化定时器。
路由桥spine3收到TRILL封装的IGMP报告报文后,根据组播组地址G2查询到组播表项(S2,G2,V1),根据VLAN1(IGMP报告报文的VLAN ID)和端口spine3_P4(收到IGMP报告报文的成员端口)添加出接口。Spine3为收到TRILL封装的IGMP报告报文的端口spine3_P4设置组播组成员老化定时器。
作为VLAN1内组播组G2的DR,路由桥spine3根据组播组G2的RP路由器202的IP地址发送加入组播组G2的PIM加入报文。路由桥spine3将PIM加入报文到上游组播路由器,即出口路由器201。出口路由器201根据收到PIM加入报文建立组播表项(S2,G2),并向RP路由器202方向发送PIM加入报文。
终端client3请求加入组播组G2的过程
属于VLAN2的终端client3发送加入组播组G2的IGMP报告报文。
路由桥leaf4通过端口leaf4_Pb收到加入组播组G2的IGMP报告报文,根据VLAN2和组播组地址G2未查询到组播表项。路由桥leaf4建立组播表项(*,G2,V2),在出接口中添加端口leaf4_Pb(IGMP报告报文的接收端口)。路由桥leaf4对该IGMP报告报文进行TRILL封装,其中,TRILL头的Ingress nickname是路由桥leaf4的nickname,TRILL头的Egressnickname是路由桥spine4(VLAN2内组播组G2的DR)的nickname。路由桥leaf4通过端口leaf4_P4(关联于VLAN2和组播组地址G2的朝向DR的路由器端口)发送TRILL封装后的IGMP报告报文。
路由桥leaf4为IGMP报告报文的接收端口leaf4_Pb设置组播组成员老化定时器。
路由桥spine4通过端口spine4_P4收到TRILL封装的IGMP报告报文,根据组播组地址G2查询到组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN2,spine4_P4);其中,VLAN2是IGMP报告报文的VLAN ID,端口spine4_P4是(收到TRILL封装的IGMP报告报文的成员端口。
作为VLAN2内组播组G2的DR,路由桥spine4根据组播组G2的RP路由器202的IP地址发送加入组播组G2的PIM加入报文。路由桥spine4将PIM加入报文发送到上游组播路由器,即出口路由器201。出口路由器201根据收到PIM加入报文建立组播表项(S2,G2)向RP路由器202方向发送PIM加入报文。
终端client4加入组播组G2的过程
属于VLAN2的终端client4发送加入组播组G2的IGMP报告报文。
路由桥leaf5通过端口leaf5_Pa收到IGMP报告报文,根据VLAN2和组播组地址未查找对应的组播表项,建立组播表项(*,G2,V2),在出接口中添加成员端口leaf5_Pa(IGMP报告报文的接收端口)。
路由桥leaf5对收到的IGMP报告报文进行TRILL封装,其中,TRILL头的Ingressnickname是路由桥leaf5的nickname,TRILL头的Egress nickname是路由桥spine4(VLAN2内组播组G2的DR)的nickname。路由桥leaf5通过端口leaf5_P4(关联于VLAN2和组播组地址G2的朝向DR的路由器端口)发送TRILL封装的IGMP报告报文。路由桥leaf5为收到IGMP报告报文的接收端口leaf5_Pa设置组播组成员老化定时器。
路由桥spine4通过端口spine4_P5收到TRILL封装的IGMP报告报文,根据组播组地址G2查询到组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN2,spine4_P5);其中,VLAN2是IGMP报文的VLAN ID;端口spine4_P5是TRILL封装的IGMP报告报文的接收端口。
图5所示为数据中心内的组播源的组播数据报文发送到数据中心内的接收端和数据中心外的接收端的示意图。
组播组G2的组播源(S2,G2,V1)发送组播数据报文到路由桥leaf4。路由桥leaf4根据组播数据报文的(VLAN1,G2)查询到匹配的组播表项,分别通过端口leaf4_Pa和端口leaf4_P3发送组播数据报文到终端client2和路由桥spine3。
路由桥spine3收到组播数据报文,根据组播组地址G2查询组播表项(S2,G2,V1),根据出接口中成员信息(VLAN1,spine3_P1)复制和发送组播组G2的数据报文。路由桥spine3已收到PIM注册停止报文,不再向RP路由器202发送PIM注册报文。
路由桥leaf1在VLAN1内收到组播组G2的数据报文,根据(VLAN1,G2)查找到组播表项,根据出接口中的朝向网关的路由器端口leaf1_P1、leaf1_P2、leaf1_P4分别发送组播数据报文到路由桥spine1、spine2、spine4。
路由桥spine4收到组播数据报文,根据组播组地址G2查询到组播表项(S2,G2,V1),根据出接口中成员信息(VLAN2,spine4_P4)、(VLAN2,spine4_P5)、(VLAN100,spine4_Pout)复制和发送组播组G2的数据报文。这样,路由桥spine4将组播组G2的数据报文发往路由桥leaf4、路由桥leaf5、出口路由器201。
出口路由器201向RP路由器202的方向发送组播数据报文。
路由桥leaf4收到组播组G2的数据报文,根据(VLAN 2,G2)查找到组播表项,根据出接口中成员端口leaf4_Pb发送组播组G2的数据报文到终端client3。
路由桥leaf5收到组播组G2的数据报文,根据(VLAN 2,G2)查找到组播表项,根据出接口中成员端口leaf5_Pa发送组播组G2的数据报文到终端client4。
通过图5所示,组播组G2两个TRILL组播树各自分担VLAN1和VLAN2内组播组G2的组播报文转发。接入层路由桥在Trill网络无需将组播数据报文封装为Trill组播数据报文发送;核心层路由桥在执行组播数据报文的三层转发复制时,根据组播数据报文关联的VLANID和路由器端口、VLAN ID和成员端口复制和发送。
数据中心内IGMP通用组查询报文的处理。
路由桥spine1~spine4基于每个VLAN选举一个IGMP查询器,但是,不同VLAN的IGMP查询器可以是同一个设备。路由桥spine1~spine4选举路由桥spine1和spine4分别为VLAN1和VLAN2的IGMP查询器。
路由桥spine1和spine4分别在VLAN1和VLAN2内定期发送IGMP通用组查询报文。路由桥spine1和spine4各自选择一个TRILL VLAN裁剪树发送IGMP通用组查询报文,确保路由桥spine1~spine4以及路由桥leaf1~leaf6分别在VLAN1内和VLAN2内收到IGMP通用组查询报文。
路由桥spine1向VLAN1发送的TRILL封装的IGMP通用组查询报文中,Ingressnickname为路由桥spine1的nickname,Egress nickname为TRILL VLAN裁剪树的树根spine1的nickname。同样的,路由桥spine4向VLAN2发送的TRILL封装的IGMP通用组查询报文中,Ingress nickname为路由桥spine4的nickname,Egress nickname为TRILL VLAN裁剪树的树根spine4的nickname。
本实施例中,以各VLAN查询器的nickname作为TRILL VLAN裁剪树的树根的nickname。
路由桥leaf1~leaf6在VLAN1和VLAN2内收到TRILL封装的IGMP通用组查询报文,各自通过VLAN1的本地端口以及VLAN2的本地端口发送IGMP通用组查询报文。
终端client2响应组加入组播组的处理
属于VLAN1的终端client2接收IGMP通用组查询报文后,发送IGMP报告报文。路由桥leaf4通过端口leaf4_Pa收到加入组播组G2的IGMP报告报文,重置端口leaf4_Pa的组播组成员老化定时器,将IGMP报告报文进行TRILL封装,通过(VLAN1,G2)关联的朝向DR的路由器端口leaf4_P3发送TRILL封装的IGMP报告报文到路由桥spine3。
路由桥spine3根据收到的TRILL封装的IGMP报告报文刷新端口spine3_P4的组播组成员老化定时器。
终端client3离开组播组的处理。
属于VLAN2的终端client3发送IGMP离开组报文。
路由桥leaf4收到来自终端client3的IGMP离开组报文,封装为TRILL封装的IGMP离开组报文。路由桥leaf4通过(VLAN2,G2)对应的朝向DR的路由器端口leaf4_P4发送TRILL封装的IGMP离开组报文。
路由桥spine4通过端口spine4_P4收到TRILL封装的IGMP离开组报文。路由桥spine4根据IGMP离开组报文解析请求离开的组播组G2及VLAN2,生成关于组播组G2及VLAN2的IGMP特定组查询报文,将IGMP特定组查询报文封装为TRILL格式。路由桥spine4通过收到离开组报文的端口spine4_P4,发送TRILL封装的IGMP特定组查询报文,更新端口spine4_P4的组播组成员老化定时器。
路由桥leaf4接收TRILL封装的IGMP特定组查询报文,根据IGMP特定组查询解析出要查询的VLAN2内的组播组G2。路由桥leaf4根据(VLAN2,G2)对应的组播表项的出接口中成员端口leaf4_Pb发送IGMP特定组查询报文。路由桥leaf4刷新端口leaf4_Pb的组播组成员老化定时器。
路由桥leaf4确定设定时间内端口leaf4_Pb未收到加入组播组G2的IGMP报告报文,将端口leaf4_Pb从(*,G2,V2)组播表项的出接口中删除。
spine4确定设定时间内端口spine4_P4未收到加入组播组G2的TRILL封装的IGMP报告报文,将成员信息(VLAN1,spine4_P4)从(S2,G2,V1)组播表项的出接口中删除。
由于组播组的组播源在数据中心内,各路由桥不删除组播表项中的朝向DR的路由器端口和朝向网关的路由器端口。这样,路由桥收到数据中心内的组播源发送的组播数据报文时,继续通过这些路由器端口发送组播数据报文,不再重新生成组播表项。
考虑到TRILL域内的Rbridge可能发生异常,为了提高系统可用性,本发明实施例还提供了异常处理机制。
譬如,路由桥spine3的上行PIM链路故障(down)掉后,路由桥spine3将本设备与外网的PIM邻居关系将全部变为关闭状态。路由桥spine3的组播链路立即将下行所有下行IGMP功能和PIM组播路由功能关闭(VLAN内的IGSP功能仍保持以满足作为transit节点监听维护其他路由器端口的需要)。这样,路由桥spine4切换到指定路由器状态。
或者,路由桥spine3故障,路由桥spine4通过BFD检测到路由桥spine3故障(down),换到VLAN1内组播组G2的指定路由器。
路由桥spine4在TRILL网络内通知VLAN1网关和VLAN2网关路由桥spine3故障、组播组G2的组播源在数据中心的VLAN1内、VLAN1内组播组G2的指定路由器的nickname是路由桥spine4的nickname4。
正常状态下,路由桥spine3和spine4可周期性发布本设备是VLAN1和VLAN2的网关信息。由器spine3故障后,无法发布网关信息,其他路由桥未收到路由桥spine3作为VLAN1和VLAN2网关的的时间达到老化时间后,确定路由桥spine3不再作为VLAN1的网关。
路由桥spine1、spine2、pine4以及路由桥leaf1~leaf6计算树根是spine4的TRILL组播树。各RBridge根据新TRILL组播树计算新的朝向网关的路由器端口和新的朝向DR的路由器端口,刷新组播转发表项中先前的朝向网关的路由器端口和先前的朝向DR的路由器端口,从而根据组播组的当前TRILL组播树计算的路由器端口发送组播数据报文。
此外,图3A-图3B所示的两个TRILL组播树上,每个路由桥leaf1~leaf6与各指定路由器通过TRILL链路直连。如果,在各指定路由器为树根的TRILL组播树上,路由桥leaf1~leaf6与各指定路由器之间不直连,接入层的路由桥leaf1~leaf6仍通过朝向DR的路由器端口发送TRILL封装的IGMP协议报文,leaf1~leaf6将收到TRILL封装的IGMP报告报文的本地端口作为成员端口添加为组播表项的出接口。
同样的,图3A-图3B所示的两个TRILL组播树上,接入层路由桥leaf1~leaf6与指定路由器之间的TRILL链路故障(down)后,接入层路由桥leaf1~leaf6与各指定路由器之间不直连,接入层的路由桥leaf1~leaf6重新计算朝向网关的路由器端口和朝向DR的路由器端口,刷新组播表项中的相应地路由器端口,通过朝向DR的路由器端口发送TRILL封装的IGMP协议报文,通过朝向DR的路由器端口和朝向网关的路由器端口发送组播数据报文。
本发明图2-图5所示的方法适用于IGMP v2和IGMP v3。
譬如,本发明的上述实施例可适用于核心层的路由桥spine1~spine4使能了PIM-SSM(Source Specific Multicast,源特定组播),并采用IGMP v3协议的TRILL组网中。本发明实施例应用在IGMP v3/PIM-SSM环境下时,路由桥spine1~spine4仍按照图2-图5描述方式处理。
接入层的路由桥leaf1~leaf6使能报文拆分功能。当路由桥leaf1~leaf6收到客户端发送过来的IGMP报告报文后,由于IGMP v3协议的IGMP报告报文允许携带有多个组信息,因此路由桥leaf1~leaf6从该报文解析出多个组信息后,根据VLAN信息和组播组地址确定朝向DR的路由器端口,按照树根拆分IGMP报告报文,即,对应于相同树根的组播组信息(group record)放到一个IGMP报告报文中。然后将每个IGMP报告报文进行TRILL封装,并相应的朝向DR的路由器端口发送。
在现有IGMP v3协议中,终端(end-station)不再发送IGMP离开组报文,而是通过成员的报告(report)报文的状态变化来触发DR进行特定组或者特定源组查询,从而维护各组播表项的成员端口列表。在本发明实施例中应用IGMP v3协议时,查询器仍然定期发送通用组查询报文,而特定组查询报文或特定源/组查询报文,则由负责相应组播组的DR来负责发送,其它处理流程参考现有IGMP v3协议的处理流程。
图6为本发明另一实施例提供的数据中心的TRILL组网架构示意图。core1~core2根据VRRP协议执行邻居发现和主设备选举,构成为一个虚拟路由器冗余协议(VRRP)路由器作为VLAN1和VLAN2的网关。路由桥core1~core2均处于激活(active)状态,参与转发VLAN1和VLAN2的数据转发。
核心层路由桥core1~core2、汇聚层路由桥transit1~transit4以及接入层的非网关路由桥leaf21~leaf26运行IGMP snooping(IGMP窥探,简称IGSP)协议。路由桥core1~core2还运行IGMP(Internet Group Management Protocol,互联网组管理协议)协议和PIM(Protocol Independent Multicast,协议无关组播)协议。
路由桥core1是VLAN1内组播组G2的指定路由器,core2是VLAN2内组播组G2的指定路由器。
路由桥core1是VLAN2内组播组G2的备份指定路由器(BDR,Backup DesignedRouter);路由桥core2是VLAN1内组播组G2的备份指定路由器。
路由桥core1~core2之间建立用于PIM协议的BFD(Bidirectional ForwardingDetection,双向转发检测)对话。如果,路由桥core1检测到路由桥core2故障,路由桥core1切换为VLAN2内组播组G2的指定路由器。路由桥core2执行类似的处理。
路由桥leaf24连接的终端client2’和client3’分别是VLAN1和VLAN2内组播组G2的接收端;路由桥leaf25连接的终端client4’是VLAN2内组播组G2的接收端。
为了方便描述,将core1上连接transit1、transit2、transit3、transit4的端口分别命名为core1_P1、core1_P2、core1_P3、core1_P4,将core2上连接transit1、transit2、transit3、transit4的端口分别命名为core2_P1、core2_P2、core2_P3、core2_P4。
将路由桥transit1上连接core1、core2的端口分别命名为transit1_Pa、transit1_Pb,路由桥transit2~transit4各自连接路由桥core1、core2的端口命名方式以此类推。将transit1上连接leaf21、leaf22、leaf23、leaf24、leaf25、leaf26的端口分别命名为transit1_P1、transit1_P2、transit1_P3、transit1_P4、transit1_P5、transit1_P6,路由桥transit2~transit4各自连接路由桥leaf21~leaf26的端口命名方式以此类推。
将路由桥leaf21上连接transit1、transit2、transit3、transit4的端口分别命名为leaf21_P1、leaf21_P2、leaf21_P3、leaf21_P4,路由桥leaf23~leaf26各自连接路由桥transit1~transit4的端口命名方式以此类推。
路由桥leaf24连接终端client2’、client3’以及组播源(S2,G2,V1)的三个端口分别命名为端口leaf24_Pa、leaf24_Pb、leaf24_Pc,将路由桥leaf25上连接终端client4’的端口命名为端口leaf25_Pa。
路由桥core1~core2、路由桥transit1~transit4以及路由桥leaf21~leaf26都知道Trill网络内VLAN1和VLAN2的网关是路由桥路由桥core1~core2,VLAN1内组播组G2的指定路由器是core1,VLAN2内组播组G2的指定路由器是路由桥core2。
路由桥core1~core2可通过通知的方式,将网关信息、组播组在各VLAN内的指定路由器信息在TRILL网络内通告给所有路由桥。譬如:路由桥core1在TRILL网络内通知VLAN1网关和VLAN2网关的nickname是nickname11、组播组G2的组播源在数据中心VLAN1、VLAN1内组播组G2的指定路由器的nickname是nickname11。路由桥core2在TRILL网络内通知VLAN1网关和VLAN2网关的nickname是nickname12、VLAN2内组播组G2的指定路由器的nickname是nickname12。
路由桥core1~core2、路由桥transit1~transit4以及路由桥leaf21~leaf26分别计算树根为每个指定路由器的TRILL组播树。
图7A-7B所示为树根为各指定路由器的TRILL组播树。
路由桥core1~core2、路由桥transit1~transit4以及路由桥leaf21~leaf26根据图7A-7B所示的TRILL组播树,计算朝向DR的路由器端口和朝向网关的路由器端口。
图7A所示的组播树上,路由桥core1朝向DR(自身)的路由器端口为空(null);路由桥core1到路由桥core2的TRILL路径上本地端口是端口core1_P3,即,端口core1_P3是朝向网关的路由器口为。在图7B所示的组播树上,路由桥core1朝向自身的路由器端口为空;路由桥core1到路由桥core2的TRILL路径上的本地端口为端口core1_P4,即,端口core1_P4既是朝向DR的路由器端口,也是朝向网关路由器口。
路由桥core1根据图7A-图7B所示的TRILL组播树计算的路由器端口如表3.1所示:
表3.1
路由桥core2据图7A-图7B所示的TRILL组播树计算的路由器端口如表3.2所示:
表3.2
路由桥transit1根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.1所示:
表4.1
路由桥transit2根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.2所示:
表4.2
路由桥transit3根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.3所示:
表4.3
路由桥transit4根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.4所示:
表4.4
路由桥leaf24根据图7A-图7B所示的TRILL组播树计算的路由器端口如表5.1所示:
表5.1
路由桥leaf25根据图7A-图7B所示的TRILL组播树计算的路由器端口如表5.2所示:
表5.2
图8示出了图5中数据中心内指定路由器向外部汇聚点路由器发送PIM注册报文的过程。
位于VLAN1的组播组G2的组播源(S2,G2,V1)发送组播数据报文。
路由桥leaf24收到的组播数据报文,根据(VLAN1,G2)没有查询到组播表项,则新建组播表项(S2,G2,V1),在出接口中添加端口leaf24_P3。
端口leaf24_P3既是VLAN1和组播组地址G2关联的朝向DR的路由器端口,也是VLAN1和组播组地址G2关联的朝向网关的路由器端口。
路由桥transit3收到组播数据报文,根据组播数据报文的VLAN1和组播组地址G2没有查询对应的组播表项,建立组播表项(S2,G2,V1),在出接口中添加成员端口transit3_Pa、transit3_Pb(朝向网关的路由器端口)。
路由桥transit3通过端口transit3_Pa和transit3_Pb发送收到组播数据报文。
路由桥core2收到组播数据报文,根据组播数据报文的组播组地址G2没有查询对应的组播表项,建立组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN1,core2_P3)。
路由桥core1收到根据组播数据报文的组播组地址G2没有查询对应的组播表项,建立组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN1,core1_P3)。
作为VLAN1内组播组G2的指定路由器,路由桥core1将组播数据报文封装为PIM注册报文,发往出口路由器501。出口路由器501向RP路由器502的方向发送PIM注册报文。
RP路由器502接收PIM注册报文,解封装得到组播数据报文,将组播数据报文发送到数据中心外的组播组G2的接收端。RP路由器502根据注册报文的源IP地址发送加入组播组G2的PIM加入报文。PIM加入报文被逐跳地发送到数据中心的出口路由器501。出口路由器501收到加入组播组G2的PIM加入报文,在到达VLAN1的两个下一跳中选择路由桥core2。
出口路由器501发送加入组播组G2的PIM加入报文到路由桥core2。出口路由器501可根据加入组播组的G2的PIM加入报文进行HASH(哈希)计算,根据HASH计算结果在两个等价的下一跳中选择其中一个下一跳发送PIM加入报文。
路由桥core2通过本地端口core2_Pout收到加入组播组G2的PIM加入报文,根据组播组地址G2查找到组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN100,core2_Pout);其中,VLAN100是PIM加入报文的VLAN ID,端口core2_Pout是PIM加入报文的接收端口。
如果出口路由器501选择的下一跳是路由桥core1,则路由桥core1根据收到的PIM加入报文添加关联的VLAN ID和成员端口。
终端client2’请求加入组播组G2的过程
属于VLAN1的终端client2’发送加入组播组(*,G2)的IGMP报告报文。
路由桥leaf24收到IGMP报告报文,根据(VLAN1,G2)查询到组播表项(S2,G2,V1),在出接口中添加成员端口leaf24_Pa。
路由桥leaf24为IGMP报告报文封装TRILL头和下一跳头,将该IGMP报告报文封装为TRILL封装的IGMP报告报文。其中,TRILL头的Ingressnickname是路由桥leaf24的nickname,TRILL头的Egress nickname是路由桥core1(VLAN1内组播组G2的指定路由器)的nickname11。路由桥leaf24通过端口leaf24_P3(朝向DR的路由器端口)发送TRILL封装的IGMP报告报文。路由桥leaf24为端口leaf24_Pa设置组播组成员老化定时器。
路由桥transit3收到TRILL封装的IGMP报告报文后,根据VLAN1(内层VLAN ID)和组播组地址G2查询到组播表项(S2,G2,V1),将端口transit3_P4添加出接口。路由桥transit3为收到的TRILL封装的IGMP报告报文的端口spine3_P4设置组播组成员老化定时器。路由桥transit3通过端口transit3_Pa(朝向DR的路由器端口)发送TRILL封装的IGMP报告报文。
路由桥core1收到TRILL封装的IGMP报告报文后,根据组播组地址G2查询到组播表项(S2,G2,V1),确定出接口已包含成员信息(VLAN1,spine3_P4),则不重复添加。路由桥core1为收到TRILL封装的IGMP报告报文的端口core1_P3设置组播组成员老化定时器。
作为VLAN1内组播组G2的DR,路由桥core1根据组播组G2的RP路由器502的IP地址发送加入组播组G2的PIM加入报文。路由桥core1将PIM加入报文发送出口路由器501。出口路由器501根据收到PIM加入报文建立组播表项(S2,G2),向RP路由器502方向发送PIM加入报文
终端client3’请求加入组播组G2的过程
终端client3’发送加入组播组G2的IGMP报告报文。
路由桥leaf24通过端口leaf24_Pb收到加入组播组G2的IGMP报告报文。leaf24根据VLAN2和组播组地址G2未查询到组播表项。路由桥leaf4建立组播表项(*,G2,V2),将端口leaf24_Pb添加为出接口。路由桥leaf24对该IGMP报告报文进行TRILL封装,其中,TRILL头的Ingress nickname是路由桥leaf24的nickname24,TRILL头的Egress nickname是路由桥core2的nickname12。路由桥leaf24通过端口leaf24_P4(朝向DR的路由器端口)发送TRILL封装后的IGMP报告报文。
路由桥leaf24为收到IGMP报告报文的成员端口leaf24_Pb设置组播组成员老化定时器。
路由桥transit4通过端口transit4_P4收到TRILL封装的IGMP报告报文,根据VLAN2和组播组地址G2未查询到组播表项,建立组播表项(*,G2,V2),在出接口中添加成员端口transit4_P4(IGMP报告报文的接收端口)。
路由桥transit4通过端口transit4_Pb(朝向DR的路由器端口)发送TRILL封装的IGMP报告报文。
路由桥core2收到TRILL封装的IGMP报告报文后,根据组播组地址G2查询到组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN2,core2_P4)其中,VLAN2是TRILL封装的IGMP报告报文的内层VLAN ID;端口core2_P4是(收到IGMP报告报文的成员端口。路由桥core2为TRILL封装的IGMP报告报文的接收端口core2_P4设置组播组成员老化定时器。
作为VLAN2内组播组G2的DR,路由桥core2根据组播组G2的RP路由器502的IP地址发送加入组播组G2的PIM加入报文。路由桥core2将PIM加入报文发送出口路由器501。出口路由器501根据收到PIM加入报文建立组播表项(S2,G2),向RP路由器502方向发送PIM加入报文
终端client4’请求加入组播组G2的过程
终端client4’发送加入组播组G2的IGMP报告报文。
路由桥leaf25通过端口leaf25_Pa收到IGMP报告报文,根据端口leaf25_Pa关联的VLAN 2为IGMP报告报文添加VLAN ID。路由桥leaf25根据VLAN2和组播组地址G2未查找对应的组播表项,建立组播表项(*,G2,V2),将端口leaf25_Pa(收到IGMP报告报文的成员端口)添加出接口。
路由桥leaf25对收到的IGMP报告报文进行TRILL封装,其中,TRILL头的Ingressnickname是路由桥leaf25的nickname,TRILL头的Egress nickname是路由桥core2的nickname12。路由桥leaf25通过端口leaf25_P4(朝向DR的路由器端口)发送TRILL封装的IGMP报告报文。路由桥leaf25为收到IGMP报告报文的成员端口leaf25_Pa设置组播组成员老化定时器。
路由桥transit4通过端口transit4_P5收到TRILL封装的IGMP报告报文,根据VLAN2和组播组地址G2查询到组播表项(*,G2,V2),在出接口中添加成员端口transit4_P5(IGMP报告报文的接收端口)添加到出接口。
路由桥transit4通过端口transit4_Pb(朝向DR的路由器端口)发送TRILL封装的IGMP报告报文。
路由桥core2收到TRILL封装的IGMP报告报文后,根据组播组地址G2查询到组播表项(S2,G2,V1),确定出接口已包含成员信息(VLAN2,core2_P4),则不重复添加。路由桥core2刷新端口core2_P4的组播组成员老化定时器。
图9为图6中组播源的组播数据报文发往外部汇聚点路由器和内部组播接收端的示意图;
组播组G2的组播源(S2,G2,V1)发送组播数据报文到路由桥leaf24。路由桥leaf24根据组播数据报文的(VLAN1,G2)查询到匹配的组播表项,分别通过成员端口leaf24_Pa和路由器端口leaf24_P3发送组播数据报文到终端client2’和路由桥transit3。
路由桥transit3收到组播数据报文,根据(VLAN1,G2)查询组播表项(S2,G2,V1),通过路由器端口transit3_Pa、Transit3_Pb发送组播组数据报文。
路由桥core1收到组播数据报文,将组播数据报文封装为PIM注册报文,向RP路由器502发送PIM注册报文。
路由桥core2收到组播数据报文,根据组播组地址G2查询到组播表项(S2,G2,V1),根据出接口中成员信息(VLAN2,core2_P4)、(VLAN100,core2_Pout)复制和发送组播组G2的数据报文。这样,路由桥core2将组播组G2的数据报文发往transit4以及出口路由器501。出口路由器501根据组播表项(S2,G2)的出接口向RP路由器502方向发送组播数据报文。
路由桥transit4根据组播表项中成员端口transit4_P4和transit4_P5将组播数据报文发送给路由桥leaf24、路由桥leaf25
路由桥leaf24收到组播组G2的数据报文,根据(VLAN 2,G2)查找到组播表项,根据成员端口leaf24_Pb发送组播组G2的数据报文到终端client3’。
路由桥leaf25收到组播组G2的数据报文,根据(VLAN 2,G2)查找到组播表项,根据成员端口leaf5_Pa发送组播组G2的数据报文到终端client4’。
RP路由器502收到组播数据报文,向路由桥core1发送组播组G2的PIM注册停止报文。路由桥core1收到PIM注册停止报文,不再向RP路由器502发送PIM注册报文。
数据中心内IGMP通用组查询报文的处理。
路由桥core1~core2基于每个VLAN选举一个IGMP查询器,但是,不同VLAN的IGMP查询器可以是同一个设备。路由桥core1和core2分别为VLAN1和VLAN2的IGMP查询器。
路由桥core1和core2分别在VLAN1和VLAN2内定期发送IGMP通用组查询报文。为了减少TRILL域内的网络带宽开销,路由桥core1和core2各自选择一个TRILL VLAN裁剪树发送IGMP通用组查询报文,确保路由桥transit1~transit4以及路由桥leaf21~leaf26分别在VLAN1内和VLAN2内收到IGMP通用组查询报文。
路由桥core1向VLAN1发送的TRILL封装的IGMP通用组查询报文中,Ingressnickname为路由桥core1的nickname,Egress nickname为路由桥core1(TRILL VLAN裁剪树的树根)的nickname11。
路由桥core2向VLAN2发送的TRILL封装的IGMP通用组查询报文中,Ingressnickname为路由桥core2的nickname,Egress nickname为路由桥core2(TRILL VLAN裁剪树的树根)的nickname12。
路由桥transit1~transit4收到TRILL封装的IGMP通用组查询报文,根据Egressnickname转发,路由桥leaf21~leaf26在VLAN1和VLAN2内收到TRILL封装的IGMP通用组查询报文,各自通过VLAN1的本地端口以及VLAN2的本地端口发送IGMP通用组查询报文。
终端client2’响应组加入组播组的处理
终端client2’接收IGMP通用组查询报文后,发送IGMP报告报文。路由桥leaf24通过端口leaf24_Pa收到加入组播组G2的IGMP报告报文,重置端口leaf4_Pa的组播组成员老化定时器,将IGMP报告报文进行TRILL封装,通过朝向DR的路由器端口leaf24_P3发送TRILL封装的IGMP报告报文到路由桥transit3。
路由桥transit3根据收到的TRILL封装的IGMP报告报文刷新端口transit3_P4的组播组成员老化定时器。路由桥transit3通过朝向DR的路由器端口transit3_Pa发送TRILL封装的IGMP报告报文到路由桥core1。
路由桥core1根据收到的TRILL封装的IGMP报告报文刷新端口core1_P3的组播组成员老化定时器。
终端client3’离开组播组的处理
终端client3’发送IGMP离开组报文。
路由桥leaf24收到来自终端client3的IGMP离开组报文,封装为TRILL封装的IGMP离开组报文。路由桥leaf24通过朝向DR的路由器端口leaf4_P4发送TRILL封装的IGMP转发离开组报文。
路由桥transit4通过朝向DR的路由器端口transit4_Pb发送TRILL封装的IGMP报告报文到路由桥core2。
路由桥core2通过端口core2_P4收到TRILL封装的IGMP离开组报文。路由桥core2根据IGMP离开组报文解析携带请求离开的组播组G2及VLAN2,生成关于组播组G2及VLAN2的IGMP特定组查询报文,将IGMP特定组查询报文封装为TRILL封装的IGMP特定组查询报文。路由桥core2通过收到TRILL封装的IGMP离开组报文的端口core2_P4,发送TRILL封装的IGMP特定组查询报文,更新端口core2_P4的组播组成员老化定时器。
路由桥transit4收到TRILL封装的IGMP特定组查询报文,根据VLAN2和组播组地址对应的组播表项(*,G2,V2)的出接口中成员端口transit4_P4发送TRILL封装的IGMP特定组查询报文。
路由桥leaf24接收TRILL封装的IGMP特定组查询报文,根据IGMP特定组查询解析出要查询的VLAN2内的组播组G2。路由桥leaf24根据(VLAN2,G2)组播表项的出接口的成员端口leaf24_Pb发送IGMP特定组查询报文。路由桥leaf24刷新端口leaf24_Pb的组播组成员老化定时器。
路由桥leaf24确定设定时间内端口leaf24_Pb在未收到加入组播组G2的IGMP报告报文,将端口leaf24_Pb从(*,G2,V2)组播表项的出接口中删除。
路由桥transit4确定设定时间内端口transit4_P4未收到加入组播组G2的TRILL封装的IGMP报告报文,将端口transit4_P4从(*,G2,V2)组播表项的出接口中删除。
路由桥core2确定设定时间内端口core2_P4未收到加入组播组G2的TRILL封装的IGMP报告报文,从(S2,G2,V1)组播表项的出接口中删除成员信息(VLAN2,core2_P4)。
当路由桥core1的上行PIM链路故障(down)后,路由桥core1将本设备与外网的PIM邻居关系将全部变为关闭状态。路由桥core1的组播链路立即将下行所有下行IGMP功能和PIM组播路由功能关闭(VLAN内的IGSP功能仍保持以满足作为transit节点监听维护其他路由器端口的需要)。这样,路由桥core2切换到指定路由器状态。
或者,路由桥core1故障,路由桥core2通过BFD检测到路由桥core1故障(down),切换到VLAN1内组播组G2的DR。
路由桥core2在TRILL网络内通知VLAN1网关和VLAN2网关路由桥core1故障、组播组G2的组播源在数据中心内的VLAN1、VLAN1内组播组G2的指定路由器的nickname是路由桥core2的nickname12。
路由桥core2、路由桥transit1~tansit4以及路由桥leaf1~leaf6计算树根是core2的TRILL组播树。
本发明图6-图9所示的方法适用于IGMP v2和IGMP v3。
在图6所示的TRILL网络架构中,路由桥core1和core2可配置有多个nickname,将不同nickname作为不同VLAN的网关的nickname以及组播组在不同VLAN内指定路由器的nickname。
本发明的上述实施例可适用于核心层的路由桥spine1~spine4使能了PIM-SSM(Source Specific Multicast,源特定组播),并采用IGMP v3协议的TRILL组网中。本发明实施例应用在IGMP v3/PIM-SSM环境下时,路由桥core1~core2仍按照图6-图9描述方式处理。
接入层的路由桥leaf21~leaf26使能报文拆分功能,将对应于同一个树根的组播组信息(group record)放到一个IGMP报告报文中,然后将每个IGMP报告报文进行TRILL封装,并相应的朝向DR的路由器端口发送。
图10是本发明实施例提供组播报文转发装置的结构示意图,该装置应用于数据中心的接入层设备。如图6所示,该装置包括:
组播数据处理单元1001,用于根据组播数据报文的组播组地址所关联的朝向指定路由器的路由器端口和虚拟局域网标识复制和发送组播数据报文;根据组播数据报文的组播组地址对应的朝向网关的路由器端口和虚拟局域网标识复制和发送组播数据报文;识别组播数据报文的组播组地址是否有关联的成员端口和虚拟局域网标识,若是,根据关联的成员端口和虚拟局域网标识复制和发送组播数据报文。
组播协议处理单元1002,用于根据收到PIM加入报文的本地端口以及PIM加入报文的组播组地址、虚拟局域网标识,维护关联于组播组地址的成员端口和虚拟局域网标识。
组播协议处理单元1002,还用于根据收到TRILL封装的IGMP报告报文的本地端口以及该TRILL封装的IGMP报告报文的组播组地址和内层虚拟局域网标识,维护关联于组播组地址的成员端口和虚拟局域网标识。
组播协议处理单元1002,还用于为不同的虚拟局域网选举一个IGMP查询器;确定本设备被选举为其中一个虚拟局域网的IGMP查询器,定期通过任一TRILL虚拟局域网裁剪树发送TRILL封装的IGMP通用组查询报文。
组播协议处理单元1002,还用于根据Trill封装IGMP离开组报文的组播组地址和内层虚拟局域网标识判断本设备是否是指定路由器;若是,根据Trill封装IGMP离开组报文的组播组地址和内层虚拟局域网标识生成Trill封装的IGMP特定组查询报文;通过Trill封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识对应的成员端口发送Trill封装的IGMP特定组查询报文;删除预定时间内未收到TRILL封装的IGMP报告报文的成员端口及其关联的虚拟局域网标识;维持预定时间内收到TRILL封装的IGMP报告报文的本地成员端口及其关联的虚拟局域网标识。
组播协议处理单元1002,还用于根据组播数据报文的组播组地址和虚拟局域网标识判断本设备是否是指定路由器;若是,判断是否向组播数据报文的组播组地址对应的汇聚点路由器发送PIM注册报文,若是,将组播数据报文封装为PIM注册报文并发送到汇聚点路由器。
装置还包括检测单元1003和模式切换单元1004。检测单元1003,检测指定路由器的状态;将检测到指定路由器的故障状态通知模式切换单元1004.模式切换单元1004,判断本设备是否是故障状态的指定路由器的备份指定路由器;若是,切换为指定路由器。
虽然本发明以TRILL技术构建的数据中心的大二层网络为例,对本发明所提供的组播数据报文转发技术方案进行详细描述,相关原理同样适用于Vxlan(virtual ExtendedVLAN,虚拟扩展VLAN(Virtual Local Area Network,虚拟局域网),SPB技术其他的大二层协议构建的数据中心内的组播数据报文转发。本发明中,终端既可以是主机、网络设备也可以是虚拟机(virtual machine)。
需要说明的是,本发明的上述实施例中,是IGMP、IGSP、PIM协议为例描述的,本领域技术人员应该可以理解,将上述协议替换为其它类似协议,依然可以采用本发明实施例的思想,实现本发明实施例所提供的组播转发技术方案,并可以达到相同或相似的技术效果。
本发明中,数据中心的设备根据关联于VLAN和组播组的TRILL的组播树维护对应的路由器端口(router port),不再通过IGMP报文的机制来维护路由器端口。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (14)
1.一种组播数据报文转发方法,应用于数据中心的核心层路由桥,其特征在于,所述方法包括:
根据组播数据报文的组播组地址所关联的朝向指定路由器的路由器端口和虚拟局域网标识复制和发送所述组播数据报文;
根据所述组播数据报文的组播组地址对应的朝向网关的路由器端口和虚拟局域网标识复制和发送所述组播数据报文;
识别所述组播数据报文的组播组地址是否有关联的成员端口和虚拟局域网标识,若是,根据关联的成员端口和虚拟局域网标识复制和发送所述组播数据报文;
其中,所述组播组地址关联的组播组的组播源在数据中心内;
在各指定路由器为树根的TRILL组播树上,到达指定路由器的TRILL路径上的本地端口是朝向指定路由器的路由器端口,到达虚拟局域网的所有网关的多个TRILL路径上的一个或多个本地端口是朝向网关的路由器端口。
2.根据权利要求1所述的方法,其特征在于,
根据收到PIM加入报文的本地端口以及PIM加入报文的组播组地址、虚拟局域网标识,维护关联于组播组地址的成员端口和虚拟局域网标识。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据收到TRILL封装的IGMP报告报文的本地端口以及该TRILL封装的IGMP报告报文的组播组地址和内层虚拟局域网标识,维护关联于组播组地址的成员端口和虚拟局域网标识。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为不同的虚拟局域网选举一个IGMP查询器;
确定本设备被选举为其中一个所述虚拟局域网的IGMP查询器,定期通过任一TRILL虚拟局域网裁剪树发送TRILL封装的IGMP通用组查询报文。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据TRILL 封装IGMP离开组报文的组播组地址和内层虚拟局域网标识判断本设备是否是指定路由器;
若是,根据所述TRILL封装IGMP离开组报文的组播组地址和内层虚拟局域网标识生成TRILL封装的IGMP特定组查询报文;通过所述Trill封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识对应的成员端口发送所述TRILL封装的IGMP特定组查询报文;删除预定时间内未收到TRILL封装的IGMP报告报文的成员端口及其关联的虚拟局域网标识;维持预定时间内收到TRILL封装的IGMP报告报文的本地成员端口及其关联的虚拟局域网标识。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述组播数据报文的组播组地址和虚拟局域网标识判断本设备是否是所述指定路由器;
若是,判断是否向所述组播数据报文的组播组地址对应的汇聚点路由器发送PIM注册报文,若是,将所述组播数据报文封装为所述PIM注册报文并发送到所述汇聚点路由器。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测到指定路由器的状态;
检测到指定路由器的故障状态时,判断本设备是否是故障状态的指定路由器的备份指定路由器;若是,切换到指定路由器。
8.一种组播数据报文转发装置,应用于数据中心的核心层路由桥,其特征在于,所述装置包括:
组播数据处理单元,用于根据组播数据报文的组播组地址所关联的朝向指定路由器的路由器端口和虚拟局域网标识复制和发送所述组播数据报文;根据所述组播数据报文的组播组地址对应的朝向网关的路由器端口和虚拟局域网标识复制和发送所述组播数据报文;识别所述组播数据报文的组播组地址是否有关联的成员端口和虚拟局域网标识,若是,根据关联的成员端口和虚拟局域网标识复制和发送所述组播数据报文;
其中,所述组播组地址关联的组播组的组播源在数据中心内;
在各指定路由器为树根的TRILL组播树上,到达指定路由器的TRILL路径上的本地端口是朝向指定路由器的路由器端口,到达虚拟局域网的所有网关的多个TRILL路径上的一个或多个本地端口是朝向网关的路由器端口。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
组播协议处理单元,用于根据收到PIM加入报文的本地端口以及PIM加入报文的组播组地址、虚拟局域网标识,维护关联于组播组地址的成员端口和虚拟局域网标识。
10.根据权利要求9所述的装置,其特征在于,所述组播协议处理单元,还用于根据收到TRILL封装的IGMP报告报文的本地端口以及该TRILL封装的IGMP报告报文的组播组地址和内层虚拟局域网标识,维护关联于组播组地址的成员端口和虚拟局域网标识。
11.根据权利要求9所述的装置,其特征在于,所述组播协议处理单元,还用于为不同的虚拟局域网选举一个IGMP查询器;确定本设备被选举为其中一个所述虚拟局域网的IGMP查询器,定期通过任一TRILL虚拟局域网裁剪树发送TRILL封装的IGMP通用组查询报文。
12.根据权利要求9所述的装置,其特征在于,所述组播协议处理单元,还用于根据TRILL封装IGMP离开组报文的组播组地址和内层虚拟局域网标识判断本设备是否是指定路由器;若是,根据所述TRILL封装IGMP离开组报文的组播组地址和内层虚拟局域网标识生成TRILL封装的IGMP特定组查询报文;通过所述TRILL封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识对应的成员端口发送所述TRILL封装的IGMP特定组查询报文;删除预定时间内未收到TRILL封装的IGMP报告报文的成员端口及其关联的虚拟局域网标识;维持预定时间内收到TRILL封装的IGMP报告报文的本地成员端口及其关联的虚拟局域网标识。
13.根据权利要求9所述的装置,其特征在于,组播协议处理单元,还用于根据所述组播数据报文的组播组地址和虚拟局域网标识判断本设备是否是所述指定路由器;若是,判断是否向所述组播数据报文的组播组地址对应的汇聚点路由器发送PIM注册报文,若是,将所述组播数据报文封装为所述PIM注册报文并发送到所述汇聚点路由器。
14.根据权利要求8所述的装置,其特征在于,所述装置还包括检测单元和模式切换单元;
所述检测单元,检测指定路由器的状态;将检测到指定路由器的故障状态通知所述模式切换单元;
所述模式切换单元,判断本设备是否是故障状态的指定路由器的备份指定路由器;若是,切换到指定路由器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310440087.XA CN104468370B (zh) | 2013-09-24 | 2013-09-24 | 一种组播数据报文转发方法及设备 |
US14/493,984 US9509522B2 (en) | 2013-09-24 | 2014-09-23 | Forwarding multicast data packets |
US14/493,912 US20150085862A1 (en) | 2013-09-24 | 2014-09-23 | Forwarding Multicast Data Packets |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310440087.XA CN104468370B (zh) | 2013-09-24 | 2013-09-24 | 一种组播数据报文转发方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468370A CN104468370A (zh) | 2015-03-25 |
CN104468370B true CN104468370B (zh) | 2018-09-04 |
Family
ID=52913766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310440087.XA Active CN104468370B (zh) | 2013-09-24 | 2013-09-24 | 一种组播数据报文转发方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104468370B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965134B (zh) * | 2017-05-23 | 2022-04-29 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN110999230B (zh) * | 2017-10-18 | 2021-06-01 | 华为技术有限公司 | 传输组播报文的方法、网络设备和系统 |
CN108965141B (zh) * | 2018-09-18 | 2021-03-30 | 深圳市风云实业有限公司 | 一种多路径路由树的计算方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101674248A (zh) * | 2009-10-21 | 2010-03-17 | 福建星网锐捷网络有限公司 | 实现组播流二层转发的方法、设备和系统 |
CN102761477A (zh) * | 2012-05-08 | 2012-10-31 | 中兴通讯股份有限公司 | 组播协议报文发送方法及装置 |
CN102801632A (zh) * | 2012-08-28 | 2012-11-28 | 盛科网络(苏州)有限公司 | Pim-sm指定路由器和igmp查询器的统一选举方法 |
CN102986179A (zh) * | 2010-06-08 | 2013-03-20 | 博科通讯系统有限公司 | 用于处理和/或转发包的方法和设备 |
CN103227757A (zh) * | 2012-08-31 | 2013-07-31 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9407533B2 (en) * | 2011-06-28 | 2016-08-02 | Brocade Communications Systems, Inc. | Multicast in a trill network |
-
2013
- 2013-09-24 CN CN201310440087.XA patent/CN104468370B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101674248A (zh) * | 2009-10-21 | 2010-03-17 | 福建星网锐捷网络有限公司 | 实现组播流二层转发的方法、设备和系统 |
CN102986179A (zh) * | 2010-06-08 | 2013-03-20 | 博科通讯系统有限公司 | 用于处理和/或转发包的方法和设备 |
CN102761477A (zh) * | 2012-05-08 | 2012-10-31 | 中兴通讯股份有限公司 | 组播协议报文发送方法及装置 |
CN102801632A (zh) * | 2012-08-28 | 2012-11-28 | 盛科网络(苏州)有限公司 | Pim-sm指定路由器和igmp查询器的统一选举方法 |
CN103227757A (zh) * | 2012-08-31 | 2013-07-31 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
Non-Patent Citations (1)
Title |
---|
Routing Bridges (RBridges): Base Protocol Specification;R.Perlman;《IETF RFC6325》;20110731;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104468370A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3188409B1 (en) | Oam mechanisms for evpn active-active services | |
US9509522B2 (en) | Forwarding multicast data packets | |
CN103873373B (zh) | 一种组播数据报文转发方法及设备 | |
US10193812B2 (en) | Multicast load balancing in multihoming EVPN networks | |
CN104378297B (zh) | 一种报文转发方法及设备 | |
EP2129049B1 (en) | A protecting method and device for ethernet tree service | |
US8842550B2 (en) | Scalable connectivity fault management in a bridged/virtual private LAN service environment | |
CN1716912B (zh) | 提供分组交换通信网络中快速端到端失效转移的方法与设备 | |
US8694664B2 (en) | Active-active multi-homing support for overlay transport protocol | |
US9059902B2 (en) | Procedures, apparatuses, systems, and computer-readable media for operating primary and backup network elements | |
US20140122704A1 (en) | Remote port mirroring | |
CN107592262A (zh) | 报文发送方法和装置、报文跨域转发的网络架构 | |
CN104579981B (zh) | 一种组播数据报文转发方法及设备 | |
CN104243270A (zh) | 一种建立隧道的方法和装置 | |
CN104468139B (zh) | 一种组播数据报文转发方法及设备 | |
US8902794B2 (en) | System and method for providing N-way link-state routing redundancy without peer links in a network environment | |
WO2018014767A1 (zh) | 一种信息确定方法、装置及存储介质 | |
CN104579704B (zh) | 组播数据报文的转发方法及装置 | |
CN104468370B (zh) | 一种组播数据报文转发方法及设备 | |
US20130279513A1 (en) | Systems and methods for pseudo-link creation | |
CN104009919A (zh) | 报文转发方法及装置 | |
CN108111423A (zh) | 流量传输管理方法、装置及网络分路设备 | |
US9548887B2 (en) | Proactive creation of multicast state in an overlay transport network to achieve fast convergence on failover | |
CN104579980B (zh) | 一种组播数据报文转发方法及设备 | |
Danilov et al. | MANET multicast with multiple gateways |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |