CN104468139A - 一种组播数据报文转发方法及设备 - Google Patents
一种组播数据报文转发方法及设备 Download PDFInfo
- Publication number
- CN104468139A CN104468139A CN201310440051.1A CN201310440051A CN104468139A CN 104468139 A CN104468139 A CN 104468139A CN 201310440051 A CN201310440051 A CN 201310440051A CN 104468139 A CN104468139 A CN 104468139A
- Authority
- CN
- China
- Prior art keywords
- multicast
- port
- trill
- router
- message
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 16
- 238000005538 encapsulation Methods 0.000 claims description 10
- 230000032683 aging Effects 0.000 description 21
- 239000010410 layer Substances 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 241001125929 Trisopterus luscus Species 0.000 description 8
- 239000012792 core layer Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种组播数据报文转发方法以及装置,应用于数据中心的接入层路由桥,其中,该方法包括:通过组播数据报文的虚拟局域网标识和组播组地址关联的朝向指定路由器的路由器端口和朝向网关的路由器端口发送组播数据报文;识别组播数据报文的虚拟局域网标识和组播组地址是否有关联的成员端口,若是,通过关联于组播数据报文的虚拟局域网标识和组播组地址的成员端口发送组播数据报文。利用本发明方法,接入层路由桥利用Trill网络计算的路由器端口发送组播数据报文时,无需将组播数据报文封装为Trill格式。
Description
技术领域
本发明涉及通信领域的组播技术,尤其涉及一种组播数据报文转发方法及设备。
背景技术
目前,数据中心可采用Trill(Transparent Interconnection of Lots of Links,多链路透明互联)、SPB(Shortest Path Bridging,最短路径桥)、Vxlan(Virtual Extended 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是本发明实施例提供组播报文转发装置的结构示意图。
根据组播组在各虚拟局域网内的指定路由器计算Trill组播树,根据
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实 施例,对本发明所述方案作进一步地详细说明。
图1是本发明实施例提供的组播数据报文的转发流程示意图;
步骤101,通过组播数据报文的虚拟局域网标识和组播组地址关联的朝向指定路由器的路由器端口和朝向网关的路由器端口发送组播数据报文。
步骤102,识别组播数据报文的虚拟局域网标识和组播组地址是否有关联的成员端口,如果是,执行步骤103。
步骤103,通过成员端口发送组播数据报文。
同一个组播组在不同的虚拟局域网的指定路由器不同。在同一个组播组的各指定路由器为树根的Trill组播树上,到达各指定路由器(树根)的Trill路径上的本地端口是朝向指定路由器的路由器端口,到达虚拟局域网的每个网关的每个Trill路径上的本地端口是朝向网关的路由器端口。
如图2所示的数据中心内,核心层的四台网关路由桥设备spine1~spine4根据VRRP协议执行邻居发现和主设备选举,构成为一个虚拟路由器组,作为VLAN1和VLAN2的网关。路由桥spine1~spine4均处于激活(active)状态,参与VLAN1和VLAN2的数据转发。
网关路由桥spine1~spine4以及接入层的非网关路由桥leaf1~leaf6运行IGMP snooping(IGMP窥探,简称IGSP)协议。路由桥spine1~spine4还运行IGMP(Internet Group Management Protocol,互联网组管理协议)协议和PIM(Protocol Independent Multicast,协议无关组播)协议。
路由桥spine3是VLAN1内组播组G2的指定路由器,路由桥spine4是VLAN2内组播组G2的指定路由器。
路由桥spine3是VLAN2内组播组G2的备份指定路由器;路由桥spine4是VLAN1内组播组G2的备份指定路由器。
路由桥spine3~spine4之间建立用于PIM协议的BFD(Bidirectional Forwarding Detection,双向转发检测)对话。如果,路由桥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;将路由桥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 Routing Protocol,中间系统到中间系统的路由选择协议)的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),在出接口中添加成员信息(VLAN1,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头的Egress nickname是路由桥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头的Ingress nickname是路由桥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的数据报文,根据(VLAN2,G2)查找到组播表项,根据出接口中成员端口leaf4_Pb发送组播组G2的数据报文到终端client3。
路由桥leaf5收到组播组G2的数据报文,根据(VLAN2,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通用组查询报文中, Ingress nickname为路由桥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 Designed Router);路由桥core2是VLAN1内组播组G2的备份指定路由器。
路由桥core1~core2之间建立用于PIM协议的BFD(Bidirectional Forwarding Detection,双向转发检测)对话。如果,路由桥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组播树计算的路由器端口如表2.1所示:
表2.1
路由桥core2据图7A-图7B所示的TRILL组播树计算的路由器端口如表2.2所示:
表2.2
路由桥transit1根据图7A-图7B所示的TRILL组播树计算的路由器端口如表3.1所示:
表3.1
路由桥transit2根据图7A-图7B所示的TRILL组播树计算的路由器端口如表3.2所示:
表3.2
路由桥transit3根据图7A-图7B所示的TRILL组播树计算的路由器端口如表3.3所示:
表3.3
路由桥transit4根据图7A-图7B所示的TRILL组播树计算的路由器端口如表3.4所示:
表3.4
路由桥leaf24根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.1所示:
表4.1
路由桥leaf25根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.2所示:
表4.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头的Ingress nickname是路由桥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关联的VLAN2为IGMP报告报文添加VLAN ID。路由桥leaf25根据VLAN2和组播组地址G2未查找对应的组播表项,建立组播表项(*,G2,V2),将端口leaf25_Pa(收到IGMP报告报文的成员端口)添加出接口。
路由桥leaf25对收到的IGMP报告报文进行TRILL封装,其中,TRILL头的Ingress nickname是路由桥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的数据报文,根据(VLAN2,G2)查找到组播表项,根据成员端口leaf24_Pb发送组播组G2的数据报文到终端client3’。
路由桥leaf25收到组播组G2的数据报文,根据(VLAN2,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通用组查询报文中, Ingress nickname为路由桥core1的nickname,Egress nickname为路由桥core1(TRILL VLAN裁剪树的树根)的nickname11。
路由桥core2向VLAN2发送的TRILL封装的IGMP通用组查询报文中,Ingress nickname为路由桥core2的nickname,Egress nickname为路由桥core2(TRILL VLAN裁剪树的树根)的nickname12。
路由桥transit1~transit4收到TRILL封装的IGMP通用组查询报文,根据Egress nickname转发,路由桥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,用于根据IGMP报告报文的组播组地址、虚拟局域网标识以及收到IGMP报告报文的本地端口维护关联于组播数据报文的组播组地址的虚拟局域网标识和成员端口,根据IGMP报告报文的组播组地址和虚拟局域网标识所关联的朝向指定路由器的路由器端口发送Trill封装的IGMP报告报文。
组播协议处理单元1002,还用于通过TRILL封装的IGMP通用组查询报文的内层虚拟局域网标识关联的本地端口发送解TRILL封装的IGMP通用组查询报文。
组播协议处理单元1002,还用于通过IGMP离开组查询报文的组播组地址和虚拟局域网标识关联的朝向指定路由器的路由器端口发送TRILL封装的IGMP离开组查询报文。
组播协议处理单元1002,还用于通过TRILL封装的IGMP特定组查询报文的组播组地址以及内层虚拟局域网标识所关联的成员端口发送解TRILL封装的IGMP离开组报文;删除预定时间内未收到IGMP报告报文的成员端口;维持预定时间内收到IGMP报告报文的成员端口且通过朝向指定路由器的路由器端口发送Trill封装的IGMP报告报文。
虽然本发明以TRILL技术构建的数据中心的大二层网络为例,对本发明所提供的组播数据报文转发技术方案进行详细描述,相关原理同样适用于Vxlan(virtual Extended VLAN,虚拟扩展VLAN(Virtual Local Area Network,虚拟局域网),SPB技术其他的大二层协议构建的数据中心内的组播数据报文转发。本发明中,终端既可以是主机、网络设备也可以是虚拟机(virtual machine)。
需要说明的是,本发明的上述实施例中,是IGMP、IGSP、PIM协议为例描述的,本领域技术人员应该可以理解,将上述协议替换为其它类似协议,依 然可以采用本发明实施例的思想,实现本发明实施例所提供的组播转发技术方案,并可以达到相同或相似的技术效果。
本发明中,数据中心的设备根据关联于VLAN和组播组的TRILL的组播树维护对应的路由器端口(router port),不再通过IGMP报文的机制来维护路由器端口。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (10)
1.一种组播数据报文转发方法,应用于数据中心的接入层路由桥,其特征在于,所述方法包括:
通过组播数据报文的虚拟局域网标识和组播组地址关联的朝向指定路由器的路由器端口和朝向网关的路由器端口发送所述组播数据报文;
识别所述组播数据报文的虚拟局域网标识和组播组地址是否有关联的成员端口,若是,通过关联于所述组播数据报文的虚拟局域网标识和组播组地址的成员端口发送所述组播数据报文。
2.根据权利要求1所述的方法,其特征在于,
根据IGMP报告报文的组播组地址、虚拟局域网标识以及收到所述IGMP报告报文的本地端口维护所述组播数据报文的组播组地址和虚拟局域网标识关联的成员端口;或者,
根据TRILL封装的IGMP报告报文的组播组地址和内层虚拟局域网标识以及收到TRILL封装的IGMP报告报文的本地端口维护所述组播数据报文的组播组地址和虚拟局域网标识关联的所述成员端口。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述IGMP报告报文的组播组地址和虚拟局域网标识关联的朝向指定路由器的路由器端口发送Trill封装的IGMP报告报文;
通过TRILL封装的IGMP通用组查询报文的内层虚拟局域网标识关联的本地端口发送解TRILL封装的IGMP通用组查询报文。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过IGMP离开组查询报文的组播组地址和虚拟局域网标识关联的朝向指定路由器的路由器端口发送TRILL封装的IGMP离开组查询报文。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过TRILL封装的IGMP特定组查询报文的组播组地址以及内层虚拟局域网标识所关联的成员端口发送解TRILL封装的IGMP离开组报文;
删除预定时间内未收到IGMP报告报文的成员端口;
维持预定时间内收到IGMP报告报文的成员端口且通过所述朝向指定路由器的路由器端口发送Trill封装的IGMP报告报文。
6.一种组播数据报文转发装置,应用于数据中心的接入层路由桥,其特征在于,所述装置包括:
组播数据处理单元,通过所述组播数据报文的虚拟局域网标识和组播组地址关联的朝向指定路由器的路由器端口和朝向网关的路由器端口发送所述组播数据报文;识别所述组播数据报文的虚拟局域网标识和组播组地址是否有关联的成员端口,若是,通过所述组播数据报文的虚拟局域网标识和组播组地址关联的成员端口发送所述组播数据报文。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
组播协议处理单元,用于根据IGMP报告报文的组播组地址、虚拟局域网标识以及收到所述IGMP报告报文的本地端口维护关联于所述组播数据报文的组播组地址的虚拟局域网标识和成员端口,根据所述IGMP报告报文的组播组地址和虚拟局域网标识所关联的朝向指定路由器的路由器端口发送Trill封装的IGMP报告报文。
8.根据权利要求6所述的装置,其特征在于,
所述组播协议处理单元,还用于通过TRILL封装的IGMP通用组查询报文的内层虚拟局域网标识关联的本地端口发送解TRILL封装的IGMP通用组查询报文。
9.根据权利要求6所述的装置,其特征在于,所述组播协议处理单元,还用于通过IGMP离开组查询报文的组播组地址和虚拟局域网标识关联的朝向指定路由器的路由器端口发送TRILL封装的IGMP离开组查询报文。
10.根据权利要求6所述的装置,其特征在于,所述组播协议处理单元,还用于通过TRILL封装的IGMP特定组查询报文的组播组地址以及内层虚拟局域网标识所关联的成员端口发送解TRILL封装的IGMP离开组报文;删除预定时间内未收到IGMP报告报文的成员端口;维持预定时间内收到IGMP报告报文的成员端口且通过所述朝向指定路由器的路由器端口发送Trill封装的IGMP报告报文。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310440051.1A CN104468139B (zh) | 2013-09-24 | 2013-09-24 | 一种组播数据报文转发方法及设备 |
US14/493,912 US20150085862A1 (en) | 2013-09-24 | 2014-09-23 | Forwarding Multicast Data Packets |
US14/493,984 US9509522B2 (en) | 2013-09-24 | 2014-09-23 | Forwarding multicast data packets |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310440051.1A CN104468139B (zh) | 2013-09-24 | 2013-09-24 | 一种组播数据报文转发方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104468139A true CN104468139A (zh) | 2015-03-25 |
CN104468139B CN104468139B (zh) | 2018-08-24 |
Family
ID=52913569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310440051.1A Active CN104468139B (zh) | 2013-09-24 | 2013-09-24 | 一种组播数据报文转发方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104468139B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579704A (zh) * | 2013-10-18 | 2015-04-29 | 杭州华三通信技术有限公司 | 组播数据报文的转发方法及装置 |
CN109218187A (zh) * | 2018-09-30 | 2019-01-15 | 中国船舶重工集团公司第七0九研究所 | 一种二层组播转发表更新方法及装置 |
CN110324247A (zh) * | 2019-06-29 | 2019-10-11 | 北京东土军悦科技有限公司 | 三层组播网络中的组播转发方法、设备及存储介质 |
CN113273226A (zh) * | 2019-01-08 | 2021-08-17 | 黑莓有限公司 | 控制组寻址数据的传输 |
US11729702B2 (en) | 2018-09-07 | 2023-08-15 | Malikie Innovations Limited | Indicating support for a broadcast service |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060002370A1 (en) * | 2004-07-02 | 2006-01-05 | Nortel Networks Limited | VLAN support of differentiated services |
CN102150148A (zh) * | 2008-09-09 | 2011-08-10 | 思科技术公司 | 层2拓扑中针对单播帧和多播帧的差别化服务 |
CN102986179A (zh) * | 2010-06-08 | 2013-03-20 | 博科通讯系统有限公司 | 用于处理和/或转发包的方法和设备 |
-
2013
- 2013-09-24 CN CN201310440051.1A patent/CN104468139B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060002370A1 (en) * | 2004-07-02 | 2006-01-05 | Nortel Networks Limited | VLAN support of differentiated services |
CN102150148A (zh) * | 2008-09-09 | 2011-08-10 | 思科技术公司 | 层2拓扑中针对单播帧和多播帧的差别化服务 |
CN102986179A (zh) * | 2010-06-08 | 2013-03-20 | 博科通讯系统有限公司 | 用于处理和/或转发包的方法和设备 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579704A (zh) * | 2013-10-18 | 2015-04-29 | 杭州华三通信技术有限公司 | 组播数据报文的转发方法及装置 |
CN104579704B (zh) * | 2013-10-18 | 2018-09-04 | 新华三技术有限公司 | 组播数据报文的转发方法及装置 |
US11729702B2 (en) | 2018-09-07 | 2023-08-15 | Malikie Innovations Limited | Indicating support for a broadcast service |
CN109218187A (zh) * | 2018-09-30 | 2019-01-15 | 中国船舶重工集团公司第七0九研究所 | 一种二层组播转发表更新方法及装置 |
CN109218187B (zh) * | 2018-09-30 | 2020-12-01 | 中国船舶重工集团公司第七0九研究所 | 一种二层组播转发表更新方法及装置 |
CN113273226A (zh) * | 2019-01-08 | 2021-08-17 | 黑莓有限公司 | 控制组寻址数据的传输 |
CN113273226B (zh) * | 2019-01-08 | 2022-12-30 | 黑莓有限公司 | 控制组寻址数据的传输的方法、设备及存储介质 |
US12082076B2 (en) | 2019-01-08 | 2024-09-03 | Malikie Innovations Limited | Controlling transmission of group-addressed data |
CN110324247A (zh) * | 2019-06-29 | 2019-10-11 | 北京东土军悦科技有限公司 | 三层组播网络中的组播转发方法、设备及存储介质 |
CN110324247B (zh) * | 2019-06-29 | 2021-11-09 | 北京东土军悦科技有限公司 | 三层组播网络中的组播转发方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104468139B (zh) | 2018-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103873373B (zh) | 一种组播数据报文转发方法及设备 | |
US20150085862A1 (en) | Forwarding Multicast Data Packets | |
JP6234440B2 (ja) | Ietfevpn上での802.1aqのサポート | |
US8761044B2 (en) | Selection of multicast router interfaces in an L2 switch connecting end hosts and routers, which is running IGMP and PIM snooping | |
CN113364610B (zh) | 网络设备的管理方法、装置及系统 | |
US20140122704A1 (en) | Remote port mirroring | |
US8705403B2 (en) | Load balancing multicast traffic | |
EP3226491A1 (en) | Hot root standby support for multicast | |
US9548917B2 (en) | Efficient multicast delivery to dually connected (VPC) hosts in overlay networks | |
CN104468139B (zh) | 一种组播数据报文转发方法及设备 | |
US9432280B2 (en) | Network device configured to generate empty route for limiting number of withdrawal messages | |
CN109196819B (zh) | 虚拟端口信道上的双向多播 | |
US9008118B2 (en) | Multicast data delivery over mixed multicast and non-multicast networks | |
CN104579981B (zh) | 一种组播数据报文转发方法及设备 | |
JP2024027107A (ja) | 通信方法および関連する装置 | |
CN104579704A (zh) | 组播数据报文的转发方法及装置 | |
CN104468370B (zh) | 一种组播数据报文转发方法及设备 | |
CN108199960B (zh) | 组播数据报文转发方法、入口路由桥、出口路由桥及系统 | |
CN115102806A (zh) | 组播数据传输方法、装置、系统及存储介质 | |
CN104579980B (zh) | 一种组播数据报文转发方法及设备 | |
US11811509B2 (en) | Upstream multicast hop (UMH) extensions for anycast deployments |
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 | ||
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 |