CN104579981B - 一种组播数据报文转发方法及设备 - Google Patents

一种组播数据报文转发方法及设备 Download PDF

Info

Publication number
CN104579981B
CN104579981B CN201310495149.7A CN201310495149A CN104579981B CN 104579981 B CN104579981 B CN 104579981B CN 201310495149 A CN201310495149 A CN 201310495149A CN 104579981 B CN104579981 B CN 104579981B
Authority
CN
China
Prior art keywords
multicast
pim
router
message
port
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
Application number
CN201310495149.7A
Other languages
English (en)
Other versions
CN104579981A (zh
Inventor
宋玉兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201310495149.7A priority Critical patent/CN104579981B/zh
Publication of CN104579981A publication Critical patent/CN104579981A/zh
Application granted granted Critical
Publication of CN104579981B publication Critical patent/CN104579981B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了应用于数据中心内部的网关路由桥以及数据中心外部的出口路由器组播数据转发方法和装置。其中,网关路由网桥获取组播组在每个虚拟局域网VLAN内的指定路由器;若组播组的组播源所属VLAN的指定路由器为本设备,则发送携带组播源地址和组播组地址的PIM hello报文;接收组播数据报文,将组播数据报文封装为PIM注册报文发往组播组的汇聚点路由器。数据中心网关设备作为组播源所在VLAN的指定路由器通告给出口路由器并且收到的组播数据报文封装为PIM注册报文发往汇聚点路由器。这样,确保了汇聚点路由器根据PIM注册报文反向发送PIM加入报文时,出口路由器将PIM加入报文发往组播源所在VLAN的指定路由器。

Description

一种组播数据报文转发方法及设备
技术领域
本发明涉及通信领域的组播技术,尤其涉及一种组播数据报文转发方法及设备。
背景技术
目前,数据中心可采用Trill(Transparent Interconnection of Lots ofLinks,多链路透明互联)、SPB(Shortest Path Bridging,最短路径桥)、Vxlan(VirtualExtended VLAN,虚拟扩展虚拟局域网)等大二层网络技术构建数据中心的二层网络。
在利用上述大二层网络技术构建的数据中心内,设备可利用IGMP协议报文维护路由器端口(Router Port)和成员端口,构建组播转发表项用来转发组播数据报文。
发明内容
本发明实施例提供一种数据中心内的组播数据报文转发方法及装置,实现组播数据转发。
本发明提供了一种组播数据报文转发方法,应用于数据中心的网关路由桥,该方法包括:获取组播组在每个虚拟局域网VLAN内的指定路由器;若组播组的组播源所属VLAN的指定路由器为本设备,则发送携带组播源地址和组播组地址的PIM hello报文;接收组播数据报文,将组播数据报文封装为PIM注册报文发往组播组的汇聚点路由器。
本发明提供了一种组播数据报文转发装置,应用于数据中心的网关路由桥,该装置方法包括第一组播协议处理单元,用于获取组播组在每个虚拟局域网VLAN内的指定路由器;第二组播协议处理单元,用于判断组播组的组播源所属VLAN的指定路由器为本设备,若是则发送携带组播源地址和组播组地址的PIM hello报文;组播数据处理单元,用于接收组播数据报文,将组播数据报文封装为PIM注册报文发往组播组的汇聚点路由器。
本发明还提供了一种组播报文转发方法,应用于数据中心的出口路由器,该方法包括:生成并发送PIM hello报文接收邻居组播路由器发送的PIM hello报文;确定收到的PIM hello报文携带了组播源地址和组播组地址,将收到PIM hello报文的端口设置为组播源地址和组播组地址对应的反向路径转发RPF端口;接收PIM注册报文且向汇聚点路由器发送PIM注册报文;接收PIM加入报文,通过PIM加入报文中的组播组地址和组播源地址对应的RPF端口发送PIM加入报文,将PIM加入报文的接收端口设置为对应于PIM加入报文的组播组地址的成员端口;接收组播数据报文,根据组播数据报文的组播地址执行查找,通过查找到的成员端口发送组播数据报文。
本发明还提供了一种组播报文转发装置,应用于数据中心的出口路由器,该装置包括:第一组播协议处理单元,用于生成并发送PIM hello报文;接收邻居组播路由器发送的PIM hello报文;确定收到的PIM hello报文携带了组播源地址和组播组地址,将收到PIMhello报文的端口设置为组播源地址和组播组地址对应的反向路径转发RPF端口;第二组播协议处理单元,用于接收PIM注册报文且根据PIM注册报文内汇聚点路由器的IP地址发送PIM注册报文;组播数据处理单元,用于接收组播数据报文,根据组播数据报文的组播地址执行查找,通过查找到的成员端口发送组播数据报文。
通过本发明数据中心网关设备作为组播源所在VLAN的指定路由器通告给出口路由器并且收到的组播数据报文封装为PIM注册报文发往汇聚点路由器。进一步,确保了汇聚点路由器根据PIM注册报文反向发送PIM加入报文时,出口路由器将PIM加入报文发往组播源所在VLAN的指定路由器。
附图说明
图1是本发明实施例应用于网关路由桥的组播数据报文的转发流程示意图;
图2是本发明一实施例提供的数据中心的TRILL组网架构示意图;
图3A-3B是图2中各指定路由器为树根的TRILL组播树的示意图;
图4是往图2中外部汇聚点路由器发送PIM注册报文的示意图;
图5所示为图2中内部组播源的组播数据报文发往外部汇聚点路由器和内部组播接收端的示意图;
图6是本发明另一实施例提供的数据中心的TRILL组网架构示意图;
图7A-7B是图6中各指定路由器为树根的TRILL组播树示意图;
图8是往图6中外部汇聚点路由器发送PIM注册报文的示意图;
图9A是图6中内部组播源的组播数据报文发往外部汇聚点路由器和内部组播接收端的示意图;
图9B是图6中备份指定路由器将内部组播源的组播数据报文发往外部汇聚点路由器和内部组播接收端的示意图;
图10是本发明实施例提供组播报文转发装置的结构示意图;
图11是本发明又一实施例提供往外部汇聚点路由器发送PIM注册报文的示意图;
图12是本发明实施例提供的出口路由器的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明方案作进一步地详细说明。
如图1所示,网关路由桥转发组播数据报文包括以下步骤:
步骤101,获取组播组在每个虚拟局域网VLAN内的指定路由器;
步骤102,判断组播组的组播源所属VLAN的指定路由器为本设备,若是,则执行步骤103。
步骤103,发送携带组播源地址和组播组地址的PIM hello报文;
步骤104,接收组播数据报文,将组播数据报文封装为PIM注册报文发往组播组的汇聚点路由器。
数据中心的网关设备作为组播源所在VLAN的指定路由器通告给出口路由器并且收到的组播数据报文封装为PIM注册报文发往汇聚点路由器。这样,确保了汇聚点路由器根据PIM注册报文反向发送PIM加入报文时,出口路由器将PIM加入报文发往组播源所在VLAN的指定路由器。
如图2所示的数据中心内,核心层的四台网关路由桥spine1~spine4根据VRRP(虚拟路由器冗余)协议执行邻居发现和主设备选举,构成为一个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执行类似的处理。
为了方便描述,路由桥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的两个端口分别命名为端口leaf4_Pa、leaf4_Pb;路由桥leaf5连接终端client4的端口命名为端口leaf5_Pa。
出口路由器201连接路由桥spine3和spine4的端口被分别命名为端口P3、P4,出口路由器201连接汇聚点RP202方向的上游组播路由器的端口被命名为P22。
出口路由器201的上游组播路由器可以是一个组播路由器也可以是汇聚点(RP,Rendezvous Point)路由器202。
路由桥spine1~spine4以及路由桥leaf1~leaf6都知道VLAN1内组播组G2的指定路由器是路由桥spine3,VLAN2内组播组G2的指定路由器是路由桥spine4。
路由桥spine1~spine4可通过通知的方式,组播组在各VLAN内的指定路由器信息在TRILL网络内通告给所有路由桥。
譬如:路由桥spine3在TRILL网络内通知组播组G2的组播源在数据中心的VLAN1、VLAN1内组播组G2的指定路由器的nickname是路由桥spine3的nickname13。路由桥spine4在TRILL网络内通知VLAN2内组播组G2的指定路由器的nickname是路由桥spine4的nickname14。
路由桥spine1~spine4以及路由桥leaf1~leaf6分别以指定路由器的nickname计算TRILL组播树。
图3A所示为指定路由器spine3为树根的TRILL组播树;图3B所示为指定路由器spine4为树根的TRILL组播树。
路由桥spine1~spine4以及路由桥leaf1~leaf6根据图3A和3B所示的TRILL组播树,计算朝向DR的路由器端口。
朝向DR的路由器端口:TRILL组播树上的到达指定路由器(树根)的TRILL路径上的本地端口。
以图3A所示的组播树为例上,路由桥spine1到路由桥spine3的TRILL路径为spine1->leaf1->spine3,该TRILL路径上的spine1的本地端口是spine1_P1,即路由桥spine1计算的朝向DR的路由器端口为spine1_P1;路由桥spine2到路由桥spine3的TRILL路径为spine2->leaf1->spine3,该TRILL路径上的spine2的本地端口是spine2_P1,即路由桥spine2计算的朝向DR的路由器端口为spine2_P1;路由桥spine3到自身的TRILL路径为回环口,即,路由器spine3计算的朝向DR的路由器端口为空(null);路由桥spine4到路由桥spine3的TRILL路径为spine4->leaf1->spine3,该TRILL路径上的spine4的本地端口是spine4_P1,即路由桥spine4计算的朝向DR的路由器端口是spine4_P4。
路由桥spine1根据图3A-3B所示的TRILL组播树计算的朝向DR的路由器端口如表1.1所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 spine1_P1
V2 G2 spine1_P1
表1.1
路由桥spine2根据图3A-3B所示的TRILL组播树计算的朝向DR的路由器端口如表1.2所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 spine2_P1
V2 G2 spine2_P1
表1.2
路由桥spine3根据图3A-3B所示的TRILL组播树计算的朝向DR的路由器端口如表1.3所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 null
V2 G2 spine3_P1
表1.3
路由桥spine4根据图3A-3B所示的TRILL组播树计算的朝向DR的路由器端口如表1.4所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 spine4_P1
V2 G2 null
表1.4
路由桥leaf4根据图3A-3B示的TRILL组播树计算的朝向DR的路由器端口如表1.5所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 leaf4_P3
V2 G2 leaf4_P4
表1.5
路由桥leaf5根据图3A-3B所示的TRILL组播树计算的朝向DR的路由器端口如表1.6所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 leaf5_P3
V2 G2 leaf5_P4
表1.6
路由桥spine1-spine4、出口路由器201各自周期性的发送PIM hello报文。
组播源(S2,G2,V1)位于TRILL网络内的VLAN1,组播组G2在VLAN1内的指定路由器,即路由桥spine3,在PIM hello报文携带组播源IP地址S2以及组播组地址G2。
出口路由器201收到路由桥spine3发送的PIM hello报文后,基于PIM hello报文携带的(S2,G2)未查找到对应的RPF端口。出口路由器201根据PIM hello报文携带的(S2,G2)以及PIM hello报文的接收端口P3,记录组播源与RPF端口对应关系。
出口路由器201记录的″组播源与RPF端口对应关系″如表2.1所示。
组播源IP地址 组播组 RPF端口
S2 G2 P3
表2.1
图4示出了向图2的外部RP路由器发送PIM注册报文的过程。
位于数据中心的VLAN1内的组播组G2的组播源(S2,G2,V1)发送组播数据报文。
路由桥leaf4收到的组播数据报文,没有查询到(VLAN1,G2)关联的组播表项,则新建组播表项(S2,G2,V1),在出接口(outgoing-interface)中添加朝向DR路由器端口leaf4_P3(请参见表1.5)。
路由桥leaf4通过朝向DR的路由器端口leaf4_P3将组播数据报文发送给spine3。
路由桥spine3收到VLAN1的组播数据报文,没有查询组播组地址G2对应的组播表项,建立组播表项(S2,G2,V1),将组播数据报文封装为PIM注册报文,向RP路由器202方向的上游组播路由器邻居,即出口路由器201,发送PIM注册报文。出口路由器201收到下游组播路由器邻居的PIM注册报文,继续向RP路由器202方向的上游组播路由器邻居发送PIM注册报文。由于路由桥spine3计算的关联于(VLAN1,G2)的路由器端口为空(请参见表1.3),则不在新建的本地组播表项(S2,G2,V1)的出接口中添加朝向DR的路由器端口。
RP路由器202接收PIM注册报文,解封装得到组播数据报文,将组播数据报文发送到数据中心外的组播组G2的接收端。RP路由器202根据注册报文的源IP地址发送加入PIM(S2,G2)加入报文。PIM(S2,G2)加入报文被逐跳地发送到数据中心的出口路由器201。
出口路由器201收到PIM(S2,G2)加入报文,建立(S2,G2)组播表项,将端口P22添加为组播表项的出接口。出口路由器201基于(S2,G2)对应的RPF端口P3发送PIM(S2,G2)加入报文。
路由桥spine3通过本地端口spine3_Pout收到PIM(S2,G2)加入报文,根据组播组地址G2查找到组播表项(S2,G2,V1),在出接口信息添加成员信息(VLAN100,spine3_Pout);其中,VLAN100是PIM加入报文的VLAN ID;成员端口spine3_Pout是PIM加入报文的接收端口。
终端client2请求加入组播组G2的过程
属于VLAN1的终端client2发送加入组播组G2的IGMP报告报文。
路由桥leaf4收到IGMP报告报文后,查询到(VLAN 1,G2)关联的组播表项(S2,G2,V1),在出接口中添加成员端口leaf4_Pa。
路由桥leaf4为收到的IGMP报告报文封装TRILL头和下一跳头,将该IGMP报告报文封装为TRILL封装的IGMP报告报文。其中,TRILL头的Ingress nickname是路由桥leaf4的nickname4,TRILL头的Egress nickname是路由桥spine3(VLAN1内组播组G2的DR)的nickname13。路由桥leaf4通过朝向DR的路由器端口leaf4_P3(参加表1.5)发送TRILL封装的IGMP报告报文。路由桥leaf4为成员端口leaf4_Pa设置组播组成员老化定时器。
路由桥spine3收到TRILL封装的IGMP报告报文后,查询到组播组地址G2关联的组播表项(S2,G2,V1),在出接口中添加成员信息(VLAN1,spine3_P4);其中,VLAN1是IGMP报告报文的VLAN ID;成员端口spine3_P4是TRILL封装的IGMP报告报文的接收端口。路由桥spine3为成员端口spine3_P4设置组播组成员老化定时器。
作为VLAN1内组播组G2的DR,路由桥spine3向组播组G2的RP路由器202发送加入组播组G2的PIM加入报文。出口路由器201收到来自路由桥spine3的PIM加入报文,将PIM加入报文的接收端口P3添加为组播表项(S2,G2)的出接口。
终端client3请求加入组播组G2的过程
属于VLAN2的终端client3发送加入组播组G2的IGMP报告报文。
路由桥leaf4通过端口leaf4_Pb收到IGMP报告报文,未查询到(VLAN2,G2)关联的组播表项,建立组播表项(*,G2,V2),在出接口中添加成员端口leaf4_Pb。路由桥leaf4对该IGMP报告报文进行TRILL封装,其中,TRILL头中,Ingress nickname是路由桥leaf4的nickname4,Egress nickname是路由桥spine4(VLAN2内组播组G2的DR)的nickname14。路由桥leaf4通过朝向DR的路由器端口leaf4_P4(参见表1.5)发送TRILL封装后的IGMP报告报文。
路由桥leaf4为成员端口leaf4_Pb设置组播组成员老化定时器。
路由桥spine4通过端口spine4_P4收到TRILL封装的IGMP报告报文,未查询到组播组地址G2关联的组播表项,建立组播表项(*,G2,V2),在出接口中添加成员信息(VLAN2,spine4_P4);其中,VLAN2是IGMP报告报文的VLAN ID;成员端口spine4_P4是TRILL封装的IGMP报告报文的接收端口。路由桥spine4为成员端口spine4_P4设置组播组成员老化定时器。
作为VLAN2内组播组G2的DR,路由桥spine4向组播组G2的RP路由器202发送PIM加入报文。路由桥spine4将PIM加入报文发送到出口路由器201。出口路由器201将PIM加入报文的接收端口P4添加为组播表项(S2,G2)的出接口,向RP路由器202方向继续发送PIM加入报文。
终端client4加入组播组G2的过程
属于VLAN2的终端client4发送加入组播组G2的IGMP报告报文。
路由桥leaf5通过端口leaf5_Pa收到IGMP报告报文,未查找到(VLAN2,G2)关联的组播表项,建立组播表项(*,G2,V2),在出接口中添加成员端口leaf5_Pa;该成员端口是IGMP报告报文的接收端口。
路由桥leaf5对收到的IGMP报告报文进行TRILL封装,通过朝向DR的路由器端口leaf5_P4(参见表1.6)发送TRILL封装的IGMP报告报文。路由桥leaf5为成员端口leaf5_Pa设置组播组成员老化定时器。
路由桥spine4通过端口spine4_P5收到TRILL封装的IGMP报告报文,查询到组播组地址G2关联组播表项(*,G2,V2),在出接口信息中添加成员信息(VLAN2,spine4_P5)。路由桥spine4已向组播组G2的RP路由器202发送了PIM加入报文,路由桥spine4不再重复向组播组G2的RP路由器202发送PIM加入报文。
图5所示为图2中内部组播源的组播数据报文发送到内部接收端和外部RP路由器的示意图。
组播组G2的组播源(S2,G2,V1)发送组播数据报文到路由桥leaf4。路由桥leaf4根据组播数据报文的VLAN1和组播组地址G2查询到匹配的本地组播表项(S2,G2,V1),通过该匹配组播表项的成员端口leaf4_Pa和朝向DR的路由器端口leaf4_P3分别发送组播数据报文到终端client2和路由桥spine3。
路由桥spine3收到组播数据报文,根据组播组地址G2查询组播表项(S2,G2,V1),根据该匹配组播表项的成员信息(VLAN100,spine3_Pout4)复制和发送组播组G2的数据报文。这样,路由桥spine3将组播组G2的数据报文发往出口路由器201。出口路由器201收到组播数据报文,根据组播表项(S2,G2)表项的出接口P4和P22分别发送组播数据报文到路由桥spine4和上游组播路由器201。
路由桥spine4收到组播数据报文,根据组播组地址G2查询到组播表项(*,G2,V2),根据该组播表项的成员信息(VLAN2,spine4_P4)、(VLAN2,spine4_P5)复制和发送组播组G2的数据报文。这样,路由桥spine4将两份带有VLAN2的组播数据报文发往路由桥leaf4和leaf5。路由桥leaf4收到组播数据报文,查找到(VLAN 2,G2)关联的组播表项,通过该查找到的组播表项的成员端口leaf4_Pb发送组播组G2的数据报文到终端client3。
路由桥leaf5收到组播数据报文,查找到(VLAN 2,G2)关联的组播表项,通过查找到的组播表项的成员端口leaf5_Pa发送组播组G2的数据报文到终端client4。
RP路由器202收到组播数据报文,向下游组播路由器发送PIM(S2,G2)注册停止报文。PIM注册停止报文被逐跳地发到路由桥spine3。路由桥spine3收到PIM(S2,G2)注册停止报文之后,不再向RP路由器202发送PIM注册报文。
通过图5所示组播组G2两个TRILL组播树各自分担VLAN1和VLAN2内组播组G2的组播报文转发。接入层路由桥leaf4通过指定路由器spine3为树根的TRILL组播树将初始格式的组播数据报文发往指定路由器spine3,而无需将组播数据报文封装为TRILL格式。指定路由器spine3通过PIM hello报文将组播源信息通知给出口路由器201出口路由器201根据路由桥spine3的PIM hello报文记录组播源对应的RPF端口,将来自RP路由器202的PIM加入报文发送到组播组的组播组源所在VLAN的指定路由器spine3,确保的PIM注册报文和PIM加入报文的转发路径一致。
IGMP通用组查询报文的处理。
路由桥spine1~spine4基于每个VLAN选举一个IGMP查询器,但是,不同VLAN的IGMP查询器可以是同一个设备。图2中,路由桥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的nickname11,Egress nickname为TRILL VLAN裁剪树的树根(路由桥spine1)的nickname11。同样的,路由桥spine4向VLAN2发送的TRILL封装的IGMP通用组查询报文中,Ingress nickname为路由桥spine4的nickname14,Egress nickname为TRILLVLAN裁剪树的树根(路由桥spine4)的nickname14。
路由桥leaf1~leaf6在VLAN1和VLAN2内收到TRILL封装的IGMP通用组查询报文,各自通过VLAN1的本地端口以及VLAN2的本地端口发送IGMP通用组查询报文。
IGMP通用组查询报文的响应处理
终端client2接收IGMP通用组查询报文后,发送IGMP报告报文。路由桥leaf4通过成员端口leaf4_Pa收到加入组播组G2的IGMP报告报文,重置成员端口leaf4_Pa的组播组成员老化定时器,将IGMP报告报文进行TRILL封装,通过朝向DR的路由器端口leaf4_P3发送TRILL封装的IGMP报告报文到路由桥spine3。
路由桥spine3通过成员端口spine3_P4收到的TRILL封装的IGMP报告报文,重置成员端口spine3_P4的组播组成员老化定时器。
IGMP离开组报文的处理
属于VLAN2的终端client3发送离开组播组G2的IGMP离开组报文。
路由桥leaf4通过成员端口leaf4_Pb收到来自终端client3的IGMP离开组报文,基于指定路由器将收到的IGMP离开组报文封装为TRILL封装的IGMP离开组报文,通过朝向DR的路由器端口leaf4_P4发送TRILL封装的IGMP离开组报文。
路由桥spine4通过成员端口spine4_P4收到TRILL封装的IGMP离开组报文,根据IGMP离开组报文携带的组播组地址G2及VLAN2生成关于组播组G2及VLAN2的IGMP特定组查询报文,将IGMP特定组查询报文封装为TRILL封装的IGMP特定组查询报文。路由桥spine4通过收到TRILL封装的IGMP离开组报文的成员端口spine4_P4,发送TRILL封装的IGMP特定组查询报文,重置成员端口spine4_P4的组播组成员老化定时器。
路由桥leaf4接收TRILL封装的IGMP特定组查询报文,根据IGMP特定组查询报文解析出要查询的VLAN2内的组播组G2。路由桥leaf4通过组播表项(*,G2,V2)的成员端口leaf4_Pb发送IGMP特定组查询报文。路由桥leaf4重置成员端口leaf4_Pb的组播组成员老化定时器。
路由桥leaf4确定设定时间内成员端口leaf4_Pb未收到加入组播组G2的IGMP报告报文,将成员端口leaf4_Pb从(*,G2,V2)组播表项的出接口中删除。路由桥leaf4确定(*,G2,V2)组播表项即没有路由器端口也没有成员端口,删除该组播表项。
路由桥spine4确定成员端口spine4_P4在设定时间内未收到加入组播组G2的TRILL封装的IGMP报告报文,将成员信息(VLAN2,spine4_P4)从(*,G2,V2)组播表项的出接口中删除。
异常处理
路由桥spine3的上行PIM链路故障(down)掉后,路由桥spine3将本设备与外网的PIM邻居关系将全部变为关闭状态。路由桥spine3将所有下行IGMP功能和PIM组播路由功能关闭(VLAN内的IGSP功能仍保持以满足作为transit节点监听维护其他路由器端口的需要)。路由桥spine4检测到路由桥spine3故障,切换为VLAN1内组播组G2的指定路由器状态。
或者,路由桥spine3设备故障,路由桥spine4通过BFD检测到路由桥spine3故障(down),作为VLAN1内组播组G2的指定路由器。
路由桥spine4在TRILL网络内通知组播组G2的组播源在数据中心内、VLAN1内组播组G2的指定路由器的nickname是路由桥spine4的nickname4。
路由桥spine2~spine4以及路由桥leaf1~leaf6计算树根是spine4的TRILL组播树。各RBridge根据新TRILL组播树计算朝向DR的路由器端口,刷新播转发表项。
路由桥spine4作为组播组G2在VLAN1和VLAN2内的指定路由桥,树根是路由桥spine4的这两个TRILL组播树的拓扑可以相同,也可以不同。此处,树根是路由桥spine4的这两个TRILL组播树的拓扑相同且以图3B所示的TRILL树为例进行以下说明:
路由桥spine4在PIM hello报文携带组播源IP地址S2和组播组地址G2。
出口路由器201收到路由桥spine4发送的PIM hello报文后,解析出该PIM hello报文携带的组播源IP地址S2和组播组信息G2。出口路由器201根据组播源IP地址S2和组播组地址G2查找到的RPF端口P3与PIM hello报文的接收端口P4不一致,出口路由器201将组播源IP地址S2和组播组地址G2对应的RPF端口刷新为P4。
出口路由器201更新后的″组播源与RPF端口对应关系″如表2.2所示。
组播源IP地址 组播组 RPF端口
S2 G2 P4
表2.2
位于数据中心的VLAN1内的组播组G2的组播源(S2,G2,V1)发送组播数据报文。
路由桥leaf4收到的组播数据报文,根据组播表项(*,G2,V1)的出接口中朝向DR的路由器端口leaf4_P4和成员端口leaf4_Pa分别发送组播数据报文到路由桥spine4和终端client2。
路由桥spine4收到组播数据报文,根据组播组地址G2查询组播表项(S2,G2,V1),根据出接口的成员信息(VLAN2,spine4_P5)复制和发送组播组G2的数据报文。这样,带有VLAN2的组播数据报文被发往路由桥leaf5。路由桥leaf5根据本地组播表项的成员端口leaf5_Pa将收到的组播数据报文发往client4。
由于路由桥spine4为VLAN1内G2的指定路由器,路由桥spine4基于新TRILL组播树将先前的(*,G2,V2)组播表项刷新为(S2,G2,V1),但是保留先前的成员信息。路由桥spine4将组播数据报文封装为PIM注册报文,发送PIM注册报文到出口路由器201。出口路由器201继续向RP路由器202方向发送PIM注册报文。
RP路由器202接收PIM注册报文,解封装得到组播数据报文,将组播数据报文发送到数据中心外的组播组G2的接收端。RP路由器202发送PIM(S2,G2)加入报文。该PIM(S2,G2)加入报文被逐跳地发送到数据中心的出口路由器201。出口路由器201根据组播源地址S2和组播组地址G2查找到RPF端口P4,通过该端口P4发送PIM(S2,G2)加入报文到路由桥spine4。
路由桥spine4通过本地端口spine4_Pout收到PIM(S2,G2)加入报文,根据组播组地址G2查找到组播表项(S2,G2,V1),在出接口信息中添加成员信息(VLAN100,spine4_Pout);其中,VLAN100是PIM加入报文的VLAN ID;成员端口spine4_Pout是PIM加入报文的接收端口。
后续,路由桥spine4收到组播数据报文,查询到组播组地址G2关联的组播表项(S2,G2,V1),根据查找到的组播表项的出接口的成员信息(VLAN100,spine4_Pout)、(VLAN2,spine4_P5)复制和发送组播组G2的数据报文。这样,路由桥spine4将组播组G2的数据报文发往路由桥leaf5和出口路由器201。路由桥spine4收到携带VLAN1的组播数据报文的入接口和成员信息(VLAN1,spine4_P4)相同,因此不再根据成员信息(VLAN1,spine4_P4)复制和转发组播数据报文。
出口路由器201收到组播数据报文,根据组播表项(S2,G2)表项的出接口P22发送组播数据报文到上游组播路由器。
RP路由器202收到组播组G2的组播数据报文,向路由桥spine4方向(DR)的下游组播路由器发送PIM(S2,G2)注册停止报文。PIM(S2,G2)注册停止报文被逐跳地发到出口路由器201。路由桥spine4收到PIM(S2,G2)注册停止报文之后,不再向RP路由器202发送PIM注册报文。
此外,图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协议报文以及发送数据中心内组播源的组播数据报文。
图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(ProtocolIndependent 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执行类似的处理。
为了方便描述,将路由桥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~transit6各自连接路由桥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。
出口路由器501连接路由桥core1和core2的端口被分别命名为P11和P12,出口路由器501连接RP502方向的上游组播路由器的端口被命名为P52。
出口路由器501的上游组播路由器可以是一个组播路由器也可以是RP路由器502。
路由桥core1~core2、路由桥transit1~transit4以及路由桥leaf21~leaf26都知道TRILL网络内VLAN1和VLAN2的网关是路由桥路由桥core1~core2,VLAN1内组播组G2的指定路由器是core1,VLAN2内组播组G2的指定路由器是路由桥core2。
路由桥core1~core2可通过通知的方式,将组播组G2在各VLAN内的指定路由器信息在TRILL网络内通告给所有路由桥。譬如路由桥core1在TRILL网络内通知组播组G2的组播源在数据中心的VLAN1内、VLAN1内组播组G2的指定路由器的nickname是nickname11。
路由桥core2在TRILL网络内通知VLAN2内组播组G2的指定路由器的nickname是nickname12。
路由桥core1~core2、路由桥transit1~transit4以及路由桥leaf21~leaf26分别计算树根为每个指定路由器的TRILL组播树。
图7A所示为指定路由器core1为树根的TRILL组播树;图7B所示为指定路由器core2为树根的TRILL组播树。
路由桥core1~core2、路由桥transit1~transit4以及路由桥leaf21~leaf26根据图7A-7B所示的TRILL组播树,计算朝向DR的路由器端口。
图7A所示的组播树上,路由桥core1到自身的TRILL路径为回环口,即,朝向DR的路由器端口为空(null);路由器core2到路由桥core1的TRILL路径是路由桥core2->路由桥Transit3->路由桥core1,该TRILL路径上的本地端口是端口core2_P3,即,路由桥core2计算的朝向DR的路由器端口是core2_P3。路由桥transit1~transit4以及路由桥leaf21~leaf26计算朝向DR路由器端口的方式相同。
路由桥core1根据图7A-图7B所示的TRILL组播树计算的朝向DR的路由器端口如表3.1所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 null
V2 G2 core1_P3
表3.1
路由桥core2据图7A-图7B所示的TRILL组播树计算的朝向DR的路由器端口如表3.2所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 core2_P3
V2 G2 null
表3.2
路由桥transit1根据图7A-图7B所示的TRILL组播树计算的朝向DR的路由器端口如表4.1所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 transit1_Pa
V2 G2 transit1_Pb
表4.1
路由桥transit2根据图7A-图7B所示的TRILL组播树计算的朝向DR的路由器端口如表4.2所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 transit2_Pa
V2 G2 transit2_Pb
表4.2
路由桥transit3根据图7A-图7B所示的TRILL组播树计算的朝向DR的路由器端口如表4.3所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 transit3_Pa
V2 G2 transit3_Pb
表4.3
路由桥transit4根据图7A-图7B所示的TRILL组播树计算的朝向DR的路由器端口如表4.4所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 Transit4_Pa
V2 G2 transit4_Pb
表4.4
路由桥leaf24根据图7A-图7B所示的TRILL组播树计算的朝向DR的路由器端口如表5.1所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 Leaf24_P3
V2 G2 Leaf24_P4
表5.1
路由桥leaf25根据图7A-图7B所示的TRILL组播树计算的朝向DR的路由器端口如表5.2所示:
VLAN 组播组 朝向DR的路由器端口
V1 G2 Leaf25_P3
V2 G2 Leaf25_P4
表5.2
路由桥core1-core2、出口路由器501各自周期性的发送PIM hello报文。
组播源(S2,G2,V1)位于TRILL网络内的VLAN1,组播组G2在VLAN1内的指定路由器是路由桥core1。路由桥core1的PIM hello报文携带组播组的组播源IP地址S2和组播组地址G2。
出口路由器501收到路由桥core1发送的PIM hello报文后,解析出该PIM hello报文携带的播源IP地址S2和组播组地址G2,未查询到(S2,G2)对应的RPF端口,根据PIM hello报文携带的(S2,G2)以及PIM hello报文的接收端口P11记录组播源与RPF端口对应关系。
譬如出口路由器501可记录表6.1所示的″组播源与RPF端口对应关系″。
组播源IP地址 组播组 RPF端口
S2 G2 P11
表6.1
图8示出了示出了向图6的外部RP路由器发送PIM注册报文的过程。
位于VLAN1内的组播组G2的组播源(S2,G2,V1)发送组播数据报文。
路由桥leaf24收到的组播数据报文,未查询(VLAN1,G2)关联的组播表项,则新建组播表项(S2,G2,V1),在出接口中添加朝向DR的路由器端口leaf24_P3。路由桥leaf24通过朝向DR的路由器端口leaf24_P3(请参见表5.1)发送组播数据报文。
路由桥transit3收到组播数据报文根据组播数据报文的VLAN1和组播组地址G2没有查询对应的组播表项,建立组播表项(S2,G2,V1),在出接口中添加朝向DR的路由器端口transit3_Pa。路由桥transit3通过朝向DR的路由器端口transit3_Pa(请参见表4.3)发送组播数据报文。
路由桥core1收到组播数据报文,未查找到G2对应的组播表项,建立组播表项并且将组播数据报文封装为PIM注册报文,向上游组播路由器邻居发送PIM注册报文。出口路由器501收到PIM注册报文,继续向上游组播路由器邻居发送PIM注册报文。路由桥core1计算的关联于(VLAN1,G2)的路由器端口为空(请参见表3.1),则不在新建的本地组播表项(S2,G2,V1)的出接口中添加朝向DR的路由器端口。
RP路由器502接收PIM注册报文,解封装得到组播数据报文,将组播数据报文发送到数据中心外的组播组G2的接收端。RP路由器502发送加入PIM(S2,G2)加入报文。PIM(S2,G2)加入报文被逐跳地发送到数据中心的出口路由器501。
出口路由器501收到PIM(S2,G2)加入报文,建立(S2,G2)组播表项,将端口P52添加为组播表项的出接口,通过RPF端口P11发送PIM(S2,G2)加入报文。
路由桥core1通过本地端口core1_Pout收到加入组播组G2的PIM加入报文,根据组播组地址G2查找到组播表项(S2,G2,V1),在该组播表项的出接口添加成员信息(VLAN100,core1_Pout);其中,VLAN100是PIM加入报文的VLAN ID;成员端口core1_Pout是PIM加入报文的接收端口。
终端client2’请求加入组播组G2的过程
属于VLAN1的终端client2’发送加入组播组G2的IGMP报告报文。
路由桥leaf24收到终端client2’发送的请求加入组播组G2的IGMP报告报文后,根据VLAN1和组播组地址G2查询到组播表项(S2,G2,V1),在出接口中添加成员端口leaf24_Pa。
路由桥leaf24为收到的IGMP报告报文封装TRILL头和下一跳头,将该IGMP报告报文封装为TRILL封装的IGMP报告报文,通过朝向DR的路由器端口leaf24_P3(请参见表5.1)发送TRILL封装的IGMP报告报文。路由桥leaf24为成员端口leaf24_Pa设置组播组成员老化定时器。
路由桥transit3收到TRILL封装的IGMP报告报文后,根据VLAN1(TRILL封装的IGMP报告报文的内层VLAN ID)和组播组地址G2查询到组播表项(S2,G2,V1),在出接口中添加成员端口transit3_P4。路由桥transit3为成员端口transit3_P4设置组播组成员老化定时器,通过朝向DR的路由器端口transit3_Pa(请见表4.3)发送TRILL封装的IGMP报告报文。
路由桥core1收到TRILL封装的IGMP报告报文后,根据组播组地址G2查询到组播表项(S2,G2,V1),确定出接口信息已包含成员信息(VLAN1,transit3_P4),则不重复添加。路由桥core1为收到TRILL封装的IGMP报告报文的成员端口core1_P3设置组播组成员老化定时器。
作为VLAN1内组播组G2的DR,路由桥core1根据组播组G2的RP路由器502的IP地址发送PIM加入报文。路由桥core1将PIM加入报文发送到出口路由器501。
出口路由器501将PIM加入报文的接收端口P11添加到组播表项(S2,G2)为出接口,向RP路由器502方向发送PIM加入报文。
终端client3’请求加入组播组G2的过程
属于VLAN2的终端client3’发送加入组播组G2的IGMP报告报文。
路由桥leaf24通过端口leaf24_Pb收到加入组播组G2的IGMP报告报文,根据VLAN2和组播组地址G2未查询到组播表项。路由桥leaf24建立组播表项(*,G2,V2),在出接口中添加成员端口leaf24_Pb。路由桥leaf24对该IGMP报告报文进行TRILL封装。路由桥leaf24通过朝向DR的路由器端口leaf24_P4(请参见表5.1)发送TRILL封装后的IGMP报告报文。
路由桥leaf24为收到IGMP报告报文的成员端口leaf24_Pb设置组播组成员老化定时器。
路由桥transit4通过端口transit4_P4收到TRILL封装的IGMP报告报文,根据VLAN2和组播组地址G2未查询到组播表项,建立组播表项(*,G2,V2),在出接口中添加成员端口transit4_P4;该成员端口是TRILL封装的IGMP报告报文的接收端口。
路由桥transit4通过朝向DR的路由器端口transit4_Pb(请参见表4.4)发送TRILL封装的IGMP报告报文。
路由桥core2收到TRILL封装的IGMP报告报文后,根据组播组地址G2未查询到组播表项。路由桥core2建立组播表项(*,G2,V2),在出接口中添加成员信息(VLAN2,core2_P4);其中,VLAN2(TRILL封装的IGMP报告报文的内层VLAN ID;成员端口core2_P4是TRILL封装的IGMP报告报文的接收端口。
路由桥core2为TRILL封装的IGMP报告报文的成员端口core2_P4设置组播组成员老化定时器。路由桥core2向上游组播路由器发送加入PIM加入报文。出口路由器501收到PIM(*,G2)加入报文,将PIM加入报文的接收端口P12添加到组播表项(S2,G2)为出接口,向RP路由器502方向发送PIM加入报文。
终端client4’请求加入组播组G2的过程
属于VLAN2的终端client4’发送加入组播组G2的IGMP报告报文。
路由桥leaf25通过端口leaf25_Pa收到IGMP报告报文,根据VLAN2和组播组地址G2未查找对应的组播表项,则建立组播表项(*,G2,V2),在出接口中添加成员端口leaf25_Pa。
路由桥leaf25对收到的IGMP报告报文进行TRILL封装,通过朝向DR的路由器端口端口leaf25_P4(请参见表5.2)发送TRILL封装的IGMP报告报文,为成员端口leaf25_Pa设置组播组成员老化定时器。
路由桥transit4通过端口transit4_P5收到TRILL封装的IGMP报告报文,根据VLAN2和组播组地址G2查询到组播表项(*,G2,V2),在出接口中添加成员端口transit4_P5,通过朝向DR的路由器端口transit4_Pb(请参见表4.4)发送TRILL封装的IGMP报告报文。
路由桥core2通过端口core2_P4收到TRILL封装的IGMP报告报文后,根据组播组地址G2查询到组播表项(*,G2,V2),确定查询到的组播表项的出接口已包含成员信息(VLAN2,core2_P4),则不重复添加。路由桥core2重置成员端口core2_P4的组播组成员老化定时器。
图9A为图6中组播源的组播数据报文发往外部汇聚点路由器和内部组播接收端的示意图;
VLAN1内的组播组G2的组播源(S2,G2,V1)发送组播数据报文到路由桥leaf24。路由桥leaf24根据组播数据报文的VLAN1和组播组地址G2查询到匹配的组播表项,分别通过成员端口leaf24_Pa和朝向DR的路由器端口leaf24_P3发送组播数据报文到终端client2’和路由桥transit3。
路由桥transit3收到组播数据报文,根据VLAN1和组播组地址G2查询组播表项(S2,G2,V1),通过出接口中朝向DR的路由器端口transit3_Pa发送收到的组播组G2的数据报文。
路由桥core1收到组播数据报文,根据组播组地址G2查询到组播表项(S2,G2,V1),根据出接口信息中成员信息(VLAN100,core1_Pout)复制和发送组播组G2的数据报文。
出口路由器501收到组播数据报文,根据组播表项(S2,G2)表项的出接口P52和P12发送组播数据报文到RP方向的上游组播路由器和路由桥transit4。
RP路由器502收到组播组G2的组播数据报文,向路由桥core1方向的下游组播路由器发送组播组G2的PIM注册停止报文。PIM注册停止报文被逐跳地发到路由桥core1。路由桥core1收到PIM(S2,G2)注册停止报文之后,不再向RP路由器502发送PIM注册报文。
路由桥transit4根据组播数据报文的组播组地址G2查找到组播表项(*,G2,V2),通过出接口中的成员端口transit4_P4和transit4_P5发送组播数据报文到路由桥leaf24和leaf25。
路由桥leaf24收到组播组G2的数据报文,根据VLAN2和组播组地址G2查找到本地组播表项,通过成员端口leaf24_Pb发送组播组G2的数据报文到终端client3’。
路由桥leaf25收到组播组G2的数据报文,根据VLAN 2和组播组地址G2查找到组播表项,通过成员端口leaf25_Pa发送组播组G2的数据报文到终端client4’。
IGMP通用组查询报文的处理。
路由桥core1~core2基于每个VLAN选举一个IGMP查询器,但是,不同VLAN的IGMP查询器可以是同一个设备。路由桥core1和core2分别为VLAN1和VLAN2的IGMP查询器。
路由桥core1和core2分别在VLAN1和VLAN2内定期发送IGMP通用组查询报文。路由桥core1和core2各自选择一个TRILL VLAN裁剪树发送IGMP通用组查询报文,确保路由桥transit1~transit4以及路由桥leaf21~leaf26分别在VLAN1内和VLAN2内收到IGMP通用组查询报文。
路由桥core1向VLAN1发送的TRILL封装的IGMP通用组查询报文中,Ingressnickname为路由桥core1的nickname31,Egress nickname为TRILL VLAN裁剪树的树根(路由桥core1)的nickname31。同样的,路由桥core2向VLAN2发送的TRILL封装的IGMP通用组查询报文中,Ingress nickname为路由桥core2的nickname32,Egress nickname为TRILLVLAN裁剪树的树根(路由桥core2)的nickname32。
路由桥transit1~transit4收到TRILL封装的IGMP通用组查询报文,根据Egressnickname转发,路由桥leaf21~leaf26在VLAN1和VLAN2内收到TRILL封装的IGMP通用组查询报文,各自通过VLAN1的本地端口以及VLAN2的本地端口发送IGMP通用组查询报文。
IGMP通用组查询报文的响应处理
属于VLAN1的终端client2’接收IGMP通用组查询报文后,发送IGMP报告报文。
路由桥leaf24通过端口leaf24_Pa收到加入组播组G2的IGMP报告报文,重置成员端口leaf24_Pa的组播组成员老化定时器,将IGMP报告报文进行TRILL封装,通过朝向DR的路由器端口leaf24_P3发送TRILL封装的IGMP报告报文。
路由桥transit3通过端口transit3_P4收到TRILL格式的IGMP报告报文,重置成员端口transit3_P4的组播组成员老化定时器,通过朝向DR的路由器端口transit3_Pa发送TRILL封装的IGMP报告报文到路由桥core1。
路由桥core1通过端口core1_P3收到TRILL格式的IGMP报告报文,重置成员端口core1_P3的组播组成员老化定时器。
IGMP离开组报文的处理
属于VLAN2的终端client3’发送IGMP离开组报文。
路由桥leaf24通过成员端口leaf24_Pb收到来自终端client3’的IGMP离开组报文,封装为TRILL封装的IGMP离开组报文,通过朝向DR的路由器端口leaf24_P4发送TRILL封装的IGMP离开组报文。
路由桥transit4通过成员端口transit4_P4收到TRILL封装的IGMP离开组报文,通过朝向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)对应的组播表项(*,G2,V2),向该组播表项的出接口的成员端口transit4_P4发送TRILL封装的IGMP特定组查询报文。路由桥transit4重置成员端口transit4_P4的组播组成员老化定时器。
路由桥leaf24接收TRILL封装的IGMP特定组查询报文,查询到(VLAN2,G2对应的组播表项(*,G2,V2),向该组播表项的成员端口leaf24_Pb发送IGMP特定组查询报文。路由桥leaf24重置成员端口leaf24_Pb的组播组成员老化定时器。路由桥leaf24确定(*,G2,V2)组播表项既没有路由器端口也没有成员端口,删除该组播表项。
路由桥leaf24确定预定时间内成员端口leaf24_Pb未收到加入组播组G2的IGMP报告报文,从组播表项(*,G2,V2)的出接口中删除成员端口leaf24_Pb。
路由桥transit4确定预定时间内成员端口transit4_P4未收到加入组播组G2的TRILL封装的IGMP报告报文,从组播表项(*,G2,V2)的出接口中删除成员端口transit4_P4。
路由桥core2确定成员端口core2_P4在预定时间内未收到加入组播组G2的TRILL封装的IGMP报告报文,将成员信息(VLAN2,core2_P4)从(*,G2,V2)组播表项的出接口中删除。
异常处理
当路由桥core1的上行PIM链路故障(down)掉后,路由桥core1将本设备与外网的PIM邻居关系将全部变为关闭状态。路由桥core1将所有下行IGMP功能和PIM组播路由功能关闭(VLAN内的IGSP功能仍保持以满足作为transit节点监听维护其他路由器端口的需要)。这样,路由桥core2切换到VLAN1的组播组G2的指定路由器。
或者,路由桥core1故障,路由桥core2通过BFD检测到路由桥core1故障(down),作为VLAN1内组播组G2的DR进行工作。路由桥core2在TRILL网络内通知组播组G2的组播源在数据中心的VLAN1、VLAN1内组播组G2的指定路由器的nickname是路由桥core2的nickname12。
需要说明的是,路由桥core1作为组播组G2在VLAN1和VLAN2内的指定路由桥,以路由桥core1为树根这两个TRILL组播树的拓扑可以相同,也可以不同。
本实施例中,为简化说明,树根是路由桥core1的两个TRILL组播树的拓扑一样,即,各路由桥以图7B所示的TRILL组播树计算关联于(VLAN1,G2)的路由器端口以及计算关联于(VLAN2,G2)的路由器端口。
路由桥core2、路由桥transit1~tansit4以及路由桥leaf21~leaf26计算树根是core2的TRILL组播树。
各RBridge根据根据图7B所示的TRILL组播树重新计算关联于(VLAN1,G2)的朝向DR的路由器端口,相应地刷新组播转发表项中朝向DR的路由器端口。
路由桥core2在PIM hello报文携带组播源IP地址和组播组信息。出口路由器501收到路由桥core2发送的PIM hello报文后,解析出该PIM hello报文携带的组播源地址S2和组播组地址G2。出口路由器501根据(S2,G2)查找到的RPF端口P11与PIM hello报文的接收端口P12不一致,出口路由器501将(S2和G2)对应的RPF端口记录为P12。
出口路由器501更新后的″组播源与RPF端口对应关系″如表6.2所示。
组播源IP地址 组播组 RPF端口
S2 G2 P12
表6.2
图9B为图6中备份指定路由器将内部组播源的组播数据报文发往外部汇聚点路由器和内部组播接收端的示意图。
位于VLAN1内的组播组G2的组播源(S2,G2,V1)发送组播数据报文。
路由桥leaf24收到的组播数据报文,根据组播表项(S2,G2,V1)的出接口中朝向DR的路由器端口leaf24_P4和成员端口leaf24_Pa分别发送组播数据报文到路由器transit4和终端client2’。
路由桥transit4收到组播数据报文,根据组播表项(S2,G2,V1)的出接口中朝向DR的路由器端口transit4_Pb发送组播数据报文。
路由桥core2收到组播数据报文,向组播表项(S2,G2,V1)中出接口的成员信息(VLAN2,core2_P4)复制和发送组播数据报文到路由桥transit4,将组播数据报文封装为PIM注册报文并向上游组播路由器发送PIM注册报文。出口路由器501继续向RP路由器502发送PIM注册报文。
路由桥transit4收到携带VLAN2的组播数据报文,查找到(VLAN2,G2)关联的组播表项(*,G2,V2),根据出接口的成员端口transit4_P5发送组播数据报文。路由桥leaf25收到携带VLAN2的组播数据报文,根据匹配的本地组播表项(*,G2,V2)的成员端口leaf25_Pb发送组播数据报文到终端client4’。
路由桥core2是新选举的VLAN1的IGMP查询器,定期在TRILL网络的VLAN1内发送IGMP通用组查询报文。终端client2’收到IGMP通用组查询报文后,发送IGMP报告报文。路由桥leaf24、路由桥transit4通过各自的朝向DR的路由器端口发送TRILL封装的IGMP报告报文。这样路由桥leaf24和路由桥transit4沿路由桥core2为树根的TRILL组播树上到达树根的路径,向指定路由器发送TRILL格式的IGMP报告报文。
路由桥core2通过端口core2_P4为TRILL封装的IGMP报告报文,在组播组地址G2关联的组播表项(S2,G2,V1)的出接口中添加成员信息(VLAN1,core2_P4),为成员端口core2_P4设置组播组成员老化定时器,
后续,路由桥leaf24收到的组播数据报文,根据组播表项(*,G2,V1)的出接口中朝向DR的路由器端口leaf24_P4和成员端口leaf24_Pa分别发送组播数据报文到路由器transit4和终端client2’。
路由桥transit4收到携带VLAN1的组播数据报文,根据组播表项(*,G2,V1)的出接口中朝向DR的路由器端口transit4_Pb发送组播数据报文。路由桥transit4收到组播数据报文的入接口与组播表项(*,G2,V1)中的成员端口transit4_P4相同,因此不再组播表项内的成员端口transit4_P4发送携带VLAN1组播数据报文。
路由桥core2收到携带VLAN1的组播组数据报文,根据组播组地址G2查找到组播表项(S2,G2,V1),根据该组播表项的出接口的成员信息(VLAN2,core2_P4)、(VLAN100,core2_Pout)复制和发送组播数据报文。如图9B所示,组播数据报文分别发往路由桥transit4出口路由器501。路由桥tranisit4根据本地组播表项(*,G2,V1)的成员端口transit4_P5,发送组播数据报文到路由桥leaf25,最终由路由桥leaf25将组播数据报文发往终端client4’。
出口路由器501收到组播数据报文,向RP路由器502方向发送。RP路由器502收到组播组G2的组播数据报文,向路由桥core2发送PIM(S2,G2)注册停止报文。PIM(S2,G2)注册停止报文被逐跳地发到路由桥core2。路由桥core2收到PIM(S2,G2)注册停止报文,不再向RP路由器202发送PIM注册报文。
路由桥core2作为VLAN1的指定路由器,通过端口core2_P4收到携带VLAN1的组播数据报文,由于组播数据报文的入接口与匹配组播表项的出接口的成员信息(VLAN1,core2_P4)相同,不基于根据组播表项中的成员信息(VLAN1,core2_P4)复制和转发组播数据报文。
在图6所示的TRILL网络架构中,路由桥core1和core2可配置有多个nickname,将不同nickname作为组播组在不同VLAN内指定路由器的nickname。
图10是本发明实施例提供组播报文转发装置的结构示意图,该装置应用于数据中心的核心层设备。如图10所示,该装置包括:第一组播协议处理单元1001,第二组播协议处理单元1002,组播数据转发单元1003第一组播协议处理单元1001,用于获取组播组在每个虚拟局域网VLAN内的指定路由器;第二组播协议处理单元1002,用于判断组播组的组播源所属VLAN的指定路由器为本设备,若是则发送携带组播源地址和组播组地址的PIM hello报文;组播数据处理单元1003,用于接收组播数据报文,将组播数据报文封装为PIM注册报文发往组播组的汇聚点路由器。
第二组播协议处理单元1002,还用于接收PIM加入报文,将PIM加入报文的接收端口和VLAN ID设置为对应于PIM加入报文的组播组地址的成员信息。
第一组播协议处理单元1001,还用于接收TRILL封装的IGMP报告报文;将TRILL封装的IGMP报告报文的接收端口和内层VLAN ID设置为对应于TRILL封装的IGMP报告报文的组播组地址的成员信息;
第二组播协议单元1002,还用于根据收到TRILL封装IGMP报告报告报文的组播组地址对应汇聚点路由器的地址发送PIM加入报文。
组播数据处理单元1003,还用于查找组播数据报文的组播组地址对应的成员信息;确定查找到的成员信息中的端口以及VLAN ID不同于组播数据报文的接收端口和VLANID,根据查找到的成员信息复制和发送组播数据报文。
第一组播协议处理单元1001,还用于选举每个虚拟局域网的IGMP查询器;确定本设备被选举为其中一个虚拟局域网的IGMP查询器,定期通过一个TRILL虚拟局域网裁剪树发送TRILL封装的IGMP通用组查询报文。
第一组播协议处理单元1001,还用于接收Trill封装IGMP离开组报文;确定本设备是指定路由器,则根据Trill封装IGMP离开组报文的组播组地址和内层虚拟局域网标识生成Trill封装的IGMP特定组查询报文;通过Trill封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识对应的端口发送Trill封装的IGMP特定组查询报文;将发送了TRILL封装的IGMP离开组报文且在预定时间内未收到TRILL封装IGMP报告报文的端口删除;维持发送了TRILL封装的IGMP离开组报文且预定时间内收到TRILL封装IGMP报告报文的端口。
该装置可设有检测单元1004,检测到指定路由器的状态;将检测到指定路由器的故障状态通知模式切换单元;以及切换单元1005,判断本设备是否是故障状态的指定路由器的备份指定路由器;若是,切换到备份指定路由器。
图11本发明又一实施例提供的数据中心的TRILL组网架构示意图。
图11中,两台出口路由器2011和2012堆叠构成一台虚拟设备200。
出口路由器2011连接路由桥spine1~spine4的四个下行链路的端口分别是P31-P34。路由器2011连接路由桥spine1~spine4的四个下行链路的端口分别是P41-P44。由于出口路由器2011和2012是堆叠设备,因此端口P31和P41是一个跨设备聚合端口agg1,P32和P42是一个跨设备聚合端口agg2,端口P33和P43是一个跨设备聚合端agg3;端口P34和P44是一个跨设备聚合端agg4。
路由桥spine1连接出口路由器2011和2012的两个上行链路绑定为一个聚合链路;同样路由桥spine2~spine4将各自的两个上行链路绑定为一个聚合链路。
路由桥spine1是VLAN1内组播组G1的指定路由桥,路由桥spine2是VLAN2内组播组G1的指定路由器,路由桥spine3是VLAN1内组播组G2的指定路由桥,路由桥spine4是VLAN2内组播组G2的指定路由桥。路由桥spine1发送的PIM hello报文携带组播源IP地址S1和组播组地址G1。路由桥spine3发送的在PIM hello报文携带组播源IP地址S2和组播组地址G2。
虚拟设备200根据收到的携带组播源地址和组播组地址的PIM hello报文记录反向路径转发RPF端口。
虚拟设备200的″组播源与RPF端口对应关系″如表7.1所示。
组播源IP地址 组播组 RPF端口
S1 G1 agg1
S2 G2 agg3
表7.1
路由桥spine2发送PIM(S1,G1)注册报文时,在聚合链路中选择一个连接虚拟设备200的链路,将PIM(S1,G1)注册报文发往虚拟设备200。虚拟设备200将PIM(S1,G1)注册报文发往上游组播路由器。最终,PIM(S1,G1)注册报文被一跳一跳地发往RP202。
RP202发送PIM加入报文。虚拟设备200根据表7.1记录的RPF端口发送PIM(S1,G1)加入报文到路由桥spine2,确保将来自RP 202的PIM加入报文发送到组播源所在VLAN的指定路由器。
路由桥spine3发送PIM(S2,G2)注册报文时,在聚合链路中选择一个连接虚拟设备200的链路,将PIM(S2,G2)注册报文发往虚拟设备200。虚拟设备200将PIM(S2,G2)注册报文发往上游组播路由器。最终,PIM(S2,G2)注册报文被一跳一跳地发往RP202。RP202发送PIM加入报文。PIM加入报文被发送给虚拟设备200,其根据表7.1记录的RPF端口agg3发送PIM加入报文到路由桥spine3,确保将来自RP202的PIM(S2,G2)加入报文发送到组播源所在VLAN的指定路由器。
图11出口虚拟设备200生成组播转发表项以及转发组播数据报文的处理过程与图2中出口路由器201相同。
图12是本发明实施例提供的出口路由器的结构示意图,该出口路由器包括:第一组播协议处理单元1201、第二组播协议处理单元1202和组播数据处理单元1203。
第一组播协议处理单元1201,用于向邻居组播路由器发送PIM hello报文;接收邻居组播路由器发送的PIM hello报文;确定收到的PIM hello报文携带了组播源地址和组播组地址,将收到PIM hello报文的端口设置为组播源地址和组播组地址对应的反向路径转发RPF端口。
第二组播协议处理单元1202,用于接收PIM注册报文且根据PIM注册报文内汇聚点路由器的IP地址发送PIM注册报文;
组播数据处理单元1203,用于接收组播数据报文,根据组播数据报文的组播地址执行查找,通过查找到的成员端口发送组播数据报文。
第一组播协议处理单元1201,还用于检查是否已设置对应于组播源地址和组播组地址的RPF端口;若是,判断PIM hello报文的接收端口与RPF端口是否一致,若否,将RPF端口更新为PIM hello报文的接收端口。
虽然本发明以TRILL技术构建的数据中心的大二层网络为例,对本发明所提供的组播数据报文转发技术方案进行详细描述,相关原理同样适用于Vxlan(virtual ExtendedVLAN,虚拟扩展VLAN(Virtual Local Area Network,虚拟局域网),SPB技术其他的大二层协议构建的数据中心内的组播数据报文转发。本发明中,终端既可以是主机、网络设备也可以是虚拟机(virtual machine)。
需要说明的是,本发明的上述实施例中,是IGMP、IGSP、PIM协议为例描述的,本领域技术人员应该可以理解,将上述协议替换为其它类似协议,依然可以采用本发明实施例的思想,实现本发明实施例所提供的组播转发技术方案,并可以达到相同或相似的技术效果。
本发明中,数据中心的设备根据关联于VLAN和组播组的TRILL的组播树维护对应的路由器端口(router port),不再通过IGMP报文的机制来维护路由器端口。数据中心内部的设备不需要将组播数据报文封装为TRILL报文。这样,网关设备对收到组播数据报文执行三层转发之前无需执行TRILL报文解封装处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (16)

1.一种组播数据转发方法,其特征在于,该方法应用于作为TRILL网络的网关的虚拟路由器冗余VRRP路由器的各成员设备,所述方法包括:
获取组播组在每个虚拟局域网VLAN内的指定路由器;
若所述组播组的组播源所属VLAN的指定路由器为本设备,则发送携带组播源地址和组播组地址的PIM hello报文,所述PIM hello报文能够使出口路由器根据所述组播组地址以及所述组播源地址建立所述组播源与RPF端口的对应关系;
接收组播数据报文,将所述组播数据报文封装为PIM注册报文发往所述组播组的汇聚点路由器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收PIM加入报文,将所述PIM加入报文的接收端口和VLAN ID设置为对应于PIM加入报文的组播组地址的成员信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收TRILL封装的IGMP报告报文;
将所述TRILL封装的IGMP报告报文的接收端口和内层VLAN ID设置为对应于所述TRILL封装的IGMP报告报文的组播组地址的成员信息;
向所述汇聚点路由器发送PIM加入报文。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
查找所述组播数据报文的组播组地址对应的成员信息;
确定查找到的成员信息中的端口以及VLAN ID不同于所述组播数据报文的接收端口和VLAN ID,根据查找到的成员信息复制和发送所述组播数据报文。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
选举每个所述虚拟局域网的IGMP查询器;
确定本设备被选举为其中一个所述虚拟局域网的IGMP查询器,定期通过一个TRILL虚拟局域网裁剪树发送TRILL封装的IGMP通用组查询报文。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收Trill封装IGMP离开组报文;
确定本设备是指定路由器,则根据所述Trill封装IGMP离开组报文的组播组地址和内层虚拟局域网标识生成Trill封装的IGMP特定组查询报文;通过所述Trill封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识对应的端口发送所述Trill封装的IGMP特定组查询报文;将发送了所述TRILL封装的IGMP特定组查询报文且在预定时间内未收到TRILL封装IGMP报告报文的端口关联的成员信息从组播表项的出接口中删除;维持发送了所述TRILL封装的IGMP特定组查询报文且预订预定时间内收到TRILL封装IGMP报告报文的端口。
7.一种组播数据报文转发装置,其特征在于,该装置应用于作为TRILL网络的网关的虚拟路由器冗余VRRP路由器的各成员设备,所述装置包括:
第一组播协议处理单元,用于获取组播组在每个虚拟局域网VLAN内的指定路由器;
第二组播协议处理单元,用于判断所述组播组的组播源所属VLAN的指定路由器为本设备,若是发送携带组播源地址和组播组地址的PIM hello报文,所述PIM hello报文能够使出口路由器根据所述组播组地址以及所述组播源地址建立所述组播源与RPF端口的对应关系;
组播数据处理单元,用于接收组播数据报文,将所述组播数据报文封装为PIM注册报文发往所述组播组的汇聚点路由器。
8.根据权利要求7所述的装置,其特征在于,
所述第二组播协议处理单元,还用于接收PIM加入报文,将所述PIM加入报文的接收端口和VLAN ID设置为对应于PIM加入报文的组播组地址的成员信息。
9.根据权利要求7所述的装置,其特征在于,
所述第一组播协议处理单元,还用于接收TRILL封装的IGMP报告报文;将所述TRILL封装的IGMP报告报文的接收端口和内层VLAN ID设置为对应于所述TRILL封装的IGMP报告报文的组播组地址的成员信息;
所述第二组播协议单元,还用于根据收到TRILL封装IGMP报告报告报文的组播组地址对应汇聚点路由器的地址发送PIM加入报文。
10.根据权利要求8或9所述的装置,其特征在于,
所述组播数据处理单元,还用于查找所述组播数据报文的组播组地址对应的成员信息;确定查找到的成员信息中的端口以及VLAN ID不同于所述组播数据报文的接收端口和VLAN ID,根据查找到的成员信息复制和发送所述组播数据报文。
11.根据权利要求7所述的装置,其特征在于,
所述第一组播协议处理单元,还用于选举每个所述虚拟局域网的IGMP查询器;确定本设备被选举为其中一个所述虚拟局域网的IGMP查询器,定期通过一个TRILL虚拟局域网裁剪树发送TRILL封装的IGMP通用组查询报文。
12.根据权利要求8所述的装置,其特征在于,
所述第一组播协议处理单元,还用于接收Trill封装IGMP离开组报文;确定本设备是指定路由器,则根据所述Trill封装IGMP离开组报文的组播组地址和内层虚拟局域网标识生成Trill封装的IGMP特定组查询报文;通过所述Trill封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识对应的端口发送所述Trill封装的IGMP特定组查询报文;将发送了所述TRILL封装的IGMP特定组查询报文且在预定时间内未收到TRILL封装IGMP报告报文的端口关联的成员信息从组播表项的出接口中删除;维持发送了所述TRILL封装的IGMP特定组查询报文且预订预定时间内收到TRILL封装IGMP报告报文的端口。
13.一种组播报文转发方法,其特征在于,所述方法包括:接收邻居组播路由器发送的PIM hello报文;确定收到的PIM hello报文携带了组播源地址和组播组地址,将收到PIMhello报文的端口设置为所述组播源地址和组播组地址对应的反向路径转发RPF端口;
接收PIM注册报文且向汇聚点路由器发送所述PIM注册报文;
接收PIM加入报文,通过所述PIM加入报文中的组播组地址和组播源地址对应的所述RPF端口发送所述,将所述PIM加入报文的接收端口设置为对应于所述PIM加入报文的组播组地址的成员端口;
接收组播数据报文,根据所述组播数据报文的组播地址执行查找,通过查找到的成员端口发送所述组播数据报文。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
检查是否已设置对应于所述组播源地址和所述组播组地址的RPF端口;
若是,判断所述PIM hello报文的接收端口与所述RPF端口是否一致,若否,将所述RPF端口更新为所述PIM hello报文的接收端口。
15.一种组播报文转发装置,其特征在于,所述装置包括:
第一组播协议处理单元,用于接收邻居组播路由器发送的PIM hello报文;确定收到的PIM hello报文携带了组播源地址和组播组地址,将收到PIM hello报文的端口设置为所述组播源地址和组播组地址对应的反向路径转发RPF端口;
第二组播协议处理单元,用于接收PIM注册报文且根据所述PIM注册报文内汇聚点路由器的IP地址发送所述PIM注册报文;
组播数据处理单元,用于接收组播数据报文,根据所述组播数据报文的组播地址执行查找,通过查找到的成员端口发送所述组播数据报文。
16.根据权利要求15所述的装置,其特征在于,
第一组播协议处理单元,还用于检查是否已设置对应于所述组播源地址和所述组播组地址的RPF端口;若是,判断所述PIM hello报文的接收端口与所述RPF端口是否一致,若否,将所述RPF端口更新为所述PIM hello报文的接收端口。
CN201310495149.7A 2013-10-18 2013-10-18 一种组播数据报文转发方法及设备 Active CN104579981B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310495149.7A CN104579981B (zh) 2013-10-18 2013-10-18 一种组播数据报文转发方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310495149.7A CN104579981B (zh) 2013-10-18 2013-10-18 一种组播数据报文转发方法及设备

Publications (2)

Publication Number Publication Date
CN104579981A CN104579981A (zh) 2015-04-29
CN104579981B true CN104579981B (zh) 2018-10-26

Family

ID=53095205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310495149.7A Active CN104579981B (zh) 2013-10-18 2013-10-18 一种组播数据报文转发方法及设备

Country Status (1)

Country Link
CN (1) CN104579981B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9843513B2 (en) * 2015-03-20 2017-12-12 Juniper Networks, Inc. Multicast flow overlay using registration over a reliable transport
CN108512736A (zh) * 2017-02-24 2018-09-07 联想企业解决方案(新加坡)有限公司 多播方法和装置
CN110636033B (zh) * 2018-06-25 2021-11-26 中国电信股份有限公司 组播数据传输方法、系统、组播隧道终结点和存储介质
US11184259B2 (en) * 2019-06-05 2021-11-23 Vmware, Inc. Highly-scalable, software-defined, in-network multicasting of load statistics data
CN112636997B (zh) * 2020-11-17 2022-08-30 新华三技术有限公司 一种路径检测方法及设备
CN113489642B (zh) * 2021-07-04 2023-05-12 芯河半导体科技(无锡)有限公司 Pim-sm源注册优化方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150524A (zh) * 2007-11-12 2008-03-26 杭州华三通信技术有限公司 组播流量恢复方法及接入设备
CN101442485A (zh) * 2008-12-18 2009-05-27 华为技术有限公司 一种组播转发的方法、装置和系统
CN101674248A (zh) * 2009-10-21 2010-03-17 福建星网锐捷网络有限公司 实现组播流二层转发的方法、设备和系统
CN101986601A (zh) * 2010-11-23 2011-03-16 杭州华三通信技术有限公司 一种组播数据的传输方法和设备
CN102082720A (zh) * 2009-12-01 2011-06-01 杭州华三通信技术有限公司 一种转发组播流量的方法和装置
CN102801632A (zh) * 2012-08-28 2012-11-28 盛科网络(苏州)有限公司 Pim-sm指定路由器和igmp查询器的统一选举方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150524A (zh) * 2007-11-12 2008-03-26 杭州华三通信技术有限公司 组播流量恢复方法及接入设备
CN101442485A (zh) * 2008-12-18 2009-05-27 华为技术有限公司 一种组播转发的方法、装置和系统
CN101674248A (zh) * 2009-10-21 2010-03-17 福建星网锐捷网络有限公司 实现组播流二层转发的方法、设备和系统
CN102082720A (zh) * 2009-12-01 2011-06-01 杭州华三通信技术有限公司 一种转发组播流量的方法和装置
CN101986601A (zh) * 2010-11-23 2011-03-16 杭州华三通信技术有限公司 一种组播数据的传输方法和设备
CN102801632A (zh) * 2012-08-28 2012-11-28 盛科网络(苏州)有限公司 Pim-sm指定路由器和igmp查询器的统一选举方法

Also Published As

Publication number Publication date
CN104579981A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN103873373B (zh) 一种组播数据报文转发方法及设备
US9509522B2 (en) Forwarding multicast data packets
CN104378297B (zh) 一种报文转发方法及设备
CN102035729B (zh) 一种组播数据转发方法
CN104579981B (zh) 一种组播数据报文转发方法及设备
CN101160902B (zh) 数据转发方法及交换设备
CN102316030B (zh) 一种实现数据中心二层互联的方法和装置
CN102075422B (zh) 一种组播管理方法及二层设备
CN105991432A (zh) 提供商边缘路由器及方法
US9548917B2 (en) Efficient multicast delivery to dually connected (VPC) hosts in overlay networks
CN103916905A (zh) 组播源的注册、组播路径的建立方法及装置
US8902794B2 (en) System and method for providing N-way link-state routing redundancy without peer links in a network environment
WO2018014767A1 (zh) 一种信息确定方法、装置及存储介质
CN104539545B (zh) Trill网络中的组播报文转发方法和设备
CN104468139B (zh) 一种组播数据报文转发方法及设备
CN103138955A (zh) 在第2层网络中使用多个igmp查询器
CN104579704B (zh) 组播数据报文的转发方法及装置
US20130279513A1 (en) Systems and methods for pseudo-link creation
CN104468370B (zh) 一种组播数据报文转发方法及设备
US9548887B2 (en) Proactive creation of multicast state in an overlay transport network to achieve fast convergence on failover
CN104579980B (zh) 一种组播数据报文转发方法及设备
CN104601477B (zh) Trill网络的接入方法及路由桥接设备
CN108199960A (zh) 组播数据报文转发方法、入口路由桥、出口路由桥及系统
Chakeres et al. Connecting MANET multicast
CN103595609B (zh) Trill网络互联方法、系统及设备

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