CN104579704A - 组播数据报文的转发方法及装置 - Google Patents
组播数据报文的转发方法及装置 Download PDFInfo
- Publication number
- CN104579704A CN104579704A CN201310493750.2A CN201310493750A CN104579704A CN 104579704 A CN104579704 A CN 104579704A CN 201310493750 A CN201310493750 A CN 201310493750A CN 104579704 A CN104579704 A CN 104579704A
- Authority
- CN
- China
- Prior art keywords
- multicast
- igmp
- message
- trill
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了应用于数据中心的TRILL网络的网关路由桥和非网关路由桥的组播数据报文的方法及装置,应用于网关路由桥的组播报文转发方法包括:获取组播组在不同虚拟局域网内的指定路由器;以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;通过树根是本设备的TRILL组播树收到TRILL封装的IGMP报告报文时,发送加入组播组的PIM加入报文且基于TRILL封装的IGMP报告报文的内层虚拟局域网标识以及接收端口记录组播组的地址关联的成员信息;接收组播组的组播数据报文,通过组播组的地址关联的成员信息的虚拟局域网标识和成员端口进行复制和发送组播数据报文。
Description
技术领域
本发明涉及通信领域的组播技术,尤其涉及组播数据报文的转发方法及装置。
背景技术
目前,数据中心可采用TRILL(Transparent Interconnection of Lots of Links,多链路透明互联)、SPB(Shortest Path Bridging,最短路径桥)、Vxlan(VirtualExtended VLAN,虚拟扩展虚拟局域网)等大二层网络技术构建数据中心的二层网络。
在利用上述大二层网络技术构建的数据中心内,设备可利用IGMP协议报文维护路由器端口(Router Port)和成员端口,构建组播转发表项用来转发组播数据报文。
发明内容
本发明实施例提供一种组播数据报文转发方法及装置,用以在数据中心的TRILL网络转发不带TRILL封装的初始格式的组播数据报文。
为实现上述目的,本发明提供了一种组播数据报文转发方法,应用于网关路由桥,该方法包括:获取组播组在不同虚拟局域网内的指定路由器;以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;通过树根是本设备的TRILL组播树收到TRILL封装的IGMP报告报文时,发送加入组播组的PIM加入报文且基于TRILL封装的IGMP报告报文的内层虚拟局域网标识以及接收端口记录组播组的地址关联的成员信息;接收组播组的组播数据报文,通过组播组的地址关联的成员信息的虚拟局域网标识和成员端口进行复制和发送组播数据报文。
为实现上述目的,本发明提供了一种组播数据报文转发装置,应用于网关路由桥,该装置包括:组播协议单元,用于获取组播组在不同虚拟局域网内的指定路由器;以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;通过树根是本设备的TRILL组播树收到TRILL封装的IGMP报告报文时,发送加入组播组的PIM加入报文且基于TRILL封装的IGMP报告报文的内层虚拟局域网标识以及接收端口记录组播组的地址关联的成员信息;组播数据单元,用于接收组播组的组播数据报文,通过组播组的地址关联的成员信息的虚拟局域网标识和成员端口进行复制和发送组播数据报文。
为实现上述目的,本发明还提供了一种组播数据报文转发方法,应用于数据中心内的非网关路由网桥,该方法包括:获取组播组在不同虚拟局域网内的指定路由器;以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;记录IGMP报告报文的接收端口为IGMP报告报文的组播组地址和虚拟局域网标识对应的成员端口;通过IGMP报告报文的组播组地址和虚拟局域网标识对应的朝向指定路由器端口发送TRILL封装的IGMP报告报文;通过收到的组播数据报文的虚拟局域网标识和组播组地址的每个成员端口转发收到的组播数据报文。
为实现上述目的,本发明还提供了一种组播数据报文转发装置,应用于非网关路由桥,该装置包括:组播协议处理单元,用于获取组播组在不同虚拟局域网内的指定路由器;以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;记录IGMP报告报文的接收端口为IGMP报告报文的组播组地址和虚拟局域网标识对应的成员端口;通过IGMP报告报文的组播组地址和虚拟局域网标识对应的朝向指定路由器端口发送TRILL封装的IGMP报告报文;组播数据处理单元,用于通过收到的组播数据报文的虚拟局域网标识和组播组地址的每个成员端口转发收到的组播数据报文。
利用本发明方法,网关路由桥利用TRILL网络维护路由器端口,在TRILL网络转发初始格式的组播数据报文,而无需将来自外部组播源的组播数据报文封装为TRILL格式。
附图说明
图1A是本发明实施例提供的应用于网关路由桥的组播数据报文的转发流程示意图;
图1B是本发明实施例提供的应用于非网关路由桥的组播数据报文的转发流程示意图;
图2为本发明一实施例提供的数据中心的TRILL组网架构示意图;
图3A-3B为图2中各指定路由器作为树根的TRILL组播树的示意图;
图4为图2中数据中心内的组播组的成员加入外部组播源的示意图;
图5为图2中外部组播源的组播数据报文发往内部组播接收端的示意图;
图6为本发明另一实施例提供的数据中心的TRILL组网架构示意图;
图7A-7B为图6中各指定路由器作为树根的TRILL组播树的示意图;
图8为图6中数据中心内组播组的成员加入外部组播源示意图;
图9为图6中外部组播源的组播数据报文发往内部组播接收端的示意图;
图10是本发明实施例提供应用于网关路由桥的组播报文转发装置的结构示意图。
图11是本发明实施例提供应用于非网关路由桥的组播报文转发装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明方案作进一步地详细说明。
如图1A所示,本发明实施例提供网关路由网桥的组播数据报文的转发流程包括以下步骤:
步骤101,获取组播组在不同虚拟局域网内的指定路由器。
步骤102,以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口。
步骤103,通过树根是本设备的TRILL组播树收到TRILL封装的IGMP报告报文时,发送加入组播组的PIM加入报文。
步骤104,基于TRILL封装的IGMP报告报文的内层虚拟局域网标识以及接收端口记录组播组的地址关联的成员信息。
步骤105,接收组播组的组播数据报文。
步骤106,通过组播组的地址关联的成员信息的虚拟局域网标识和成员端口进行复制和发送组播数据报文。
如图1B所示,本发明实施例提供非网关路由网桥的组播数据报文的转发流程包括以下步骤:
步骤121,获取组播组在不同虚拟局域网内的指定路由器;
步骤122,以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口。
步骤123,记录IGMP报告报文的接收端口为IGMP报告报文的组播组地址和虚拟局域网标识的成员端口。
步骤124,通过IGMP报告报文的组播组地址和虚拟局域网标识对应的朝向指定路由器的路由器端口发送TRILL封装的IGMP报告报文。
步骤125,通过收到的组播数据报文的虚拟局域网标识和组播组地址的每个成员端口转发收到的组播数据报文。
通过基于图1A和1B所示的实施例可知,网关路由网桥以及非网关路由网桥通过各指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口,从而利用TRILL网络拓扑维护路由器端口。各指定路由器为其负责的虚拟局域网内的组成员向组播组的汇聚路由器发送加入消息,并且收到的初始格式的组播组的数据报文在TRILL网络内进行转发,无需将来自外部组播源的组播数据报文封装为TRILL格式的组播数据报文。
如图2所示的数据中心内,核心层的四台网关路由桥设备spine1~spine4根据VRRP协议执行邻居发现和主设备选举,构成为一个虚拟路由器冗余协议(VRRP)路由器作为VLAN1和VLAN2的网关。路由桥spine1~spine4均处于激活(active)状态,参与转发VLAN1和VLAN2的数据报文。
路由桥spine1~spine4以及接入层的非网关路由桥leaf1~leaf6运行IGMPsnooping(IGMP窥探,简称IGSP)协议。路由桥spine1~spine4还运行IGMP(Internet Group Management Protocol,互联网组管理协议)协议和PIM(Protocol Independent Multicast,协议无关组播)协议。
路由桥spine1是VLAN1内组播组G1的指定路由器,路由桥spine2是VLAN2内组播组G1的指定路由器。
路由桥spine1是VLAN2内组播组G1的备份指定路由器;路由桥spine2是VLAN1内组播组G1的备份指定路由器。
路由桥spine1~spine2之间建立用于PIM协议的BFD(BidirectionalForwarding Detection,双向转发检测)对话。如果,路由桥spine1检测到路由桥spine2故障,路由桥spine1切换为VLAN2内组播组G1的指定路由器。路由桥spine2执行类似的处理。
路由桥leaf1连接的终端client1是VLAN1内组播组G1的接收端。路由桥leaf6连接的终端client5是VLAN2内组播组G1的接收端。组播源(S1,G1)位于数据中心外。
为了方便描述,路由桥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的端口命名方式以此类推。
路由桥leaf1连接终端client1的端口命名为端口leaf1_Pa;将路由桥leaf6连接终端client5的端口命名为端口leaf6_Pa。
路由桥spine1~spine4以及路由桥leaf1~leaf6都知道TRILL网络内VLAN1和VLAN2的网关是路由桥spine1~spine4,VLAN1内组播组G1的指定路由器是spine1,VLAN2内组播组G1的指定路由器是spine2。
路由桥spine1~spine4可通过通知的方式,将网关信息、组播组在各VLAN内的指定路由器信息通告给所有路由桥。譬如:路由桥spine1在TRILL网络内通知VLAN1网关和VLAN2网关的nickname是nickname11(路由桥spine1的nickname)、组播组G1的组播源在数据中心外、VLAN1内组播组G1的指定路由器的nickname是nickname11。路由桥spine2在TRILL网络内通知VLAN1网关和VLAN2网关的nickname是nickname12(路由桥spine2的nickname)、组播组G1的组播源在数据中心外、VLAN2内组播组G1的指定路由器的的nickname是nickname12。路由桥spine3在TRILL网络内通知VLAN1网关和VLAN2网关的的nickname是nickname13(路由桥spine3的nickname)。路由桥spine4在TRILL网络内通知VLAN1网关和VLAN2网关的的nickname是nickname14(路由桥spine4的nickname)。
图3A所示为指定路由器spine1为树根的TRILL组播树;图3B所示为指定路由器spine2为树根的TRILL组播树。
路由桥spine1~spine4以及路由桥leaf1~leaf6根据图3A和3B所示的TRILL组播树,计算朝向DR的路由器端口。
朝向DR的路由器端口:TRILL组播树上的到达指定路由器的TRILL路径上的本地端口。
以路由桥spine1为例,图3A所示的组播树上,路由桥spine1到自身的TRILL路径为直连,即,朝向DR的路由器端口为空(null);在图3B所示的组播树上,路由桥spine1到路由桥spine2的TRILL路径上的本地端口是端口spine1_P1,即朝向DR的路由器端口为端口spine1_P1。
路由桥spine1根据图3A-3B所示的TRILL组播树计算的路由器端口如表1.1所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | null |
V2 | G1 | spine1_P1 |
表1.1
路由桥spine2根据图3A-3B所示的TRILL组播树计算的路由器端口如表1.2所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | spine2_P1 |
V2 | G1 | null |
表1.2
路由桥spine3根据图3A-3B所示的TRILL组播树计算的路由器端口如表1.3所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | spine3_P1 |
V2 | G1 | spine3_P1 |
表1.3
路由桥spine4根据图3A-3B所示的TRILL组播树计算的路由器端口如表1.4所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | spine4_P1 |
V2 | G1 | spine4_P1 |
表1.4
路由桥leaf1根据图3A-3B所示的TRILL组播树计算的路由器端口如表1.5所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | leaf1_P1 |
V2 | G1 | leaf1_P2 |
表1.5
路由桥leaf6根据图3A-3B所示的TRILL组播树计算的路由器端口如表1.6所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | leaf6_P1 |
V2 | G1 | leaf6_P2 |
表1.6
本实施例不限定路由桥计算TRILL组播树的算法。路由桥计算TRILL组播树的算法变化,但路由器端口的计算方法不变化。
图4为图2中数据中心内的组播组的成员加入外部组播源的示意图.
VLAN1内终端client1发送加入组播组G1的IGMP报告报文。
路由桥leaf1收到IGMP报告报文后,未查询到(VLAN1,G1)关联的组播表项,建立组播表项(*,G1,V1),在出接口中添加成员端口leaf1_Pa。
路由桥leaf1为收到的IGMP报告报文封装TRILL头和下一跳头,将该IGMP报告报文封装为TRILL格式。其中,TRILL头的Ingress nickname是路由桥leaf1的nickname1,TRILL头的Egress nickname是spine1的nickname11(路由桥spine1是VLAN1内组播组G1的指定路由器)。路由桥leaf1通过朝向DR的路由器端口leaf1_P1(参见表1.5)发送TRILL封装的IGMP报告报文。路由桥leaf1为成员端口leaf1_Pa设置组播组成员老化定时器。
路由桥spine1收到TRILL封装的IGMP报告报文后,未查询到组播组地址G1关联的组播表项,建立组播表项(*,G1,V1),添加出接口的成员信息(VLAN1,spine1_P1);其中,VLAN1是IGMP报告报文的VLAN ID;端口spine1_P1是收到IGMP报告报文的成员端口。路由桥spine1为收到TRILL封装的IGMP报告报文的成员端口spine1_P1设置组播组成员老化定时器。
作为VLAN1内组播组G1的DR,路由桥spine1发送加入组播组G1的PIM加入报文。数据中心的出口路由器201向RP路由器202方向发送,最后到达RP路由器202。
终端client5加入组播组G1过程
VLAN2内终端client5送加入组播组G1的IGMP报告报文。
路由桥leaf6收到IGMP报告报文后,未查询到(VLAN2,G1)关联的组播表项,建立组播表项(*,G1,V2),添加出接口的成员端口leaf6_Pa(IGMP报告报文的接收端口)。
路由桥leaf6为收到的IGMP报告报文封装TRILL头和下一跳头,将该IGMP报告报文封装为TRILL封装的IGMP报告报文(TRILL格式);其中,TRILL头的Ingress nickname是路由桥leaf6的nickname6,TRILL头的Egressnickname是路由桥spine2的nickname12(路由桥spine2是VLAN2内组播组G1的指定路由器)。路由桥leaf6通过朝向DR的路由器端口leaf6_P2(参见表1.6)发送TRILL封装的IGMP报告报文。路由桥leaf6为成员端口leaf6_Pa设置组播组成员老化定时器。
路由桥spine2通过端口spine2_P6收到TRILL封装的IGMP报告报文后,未查询到组播组地址G1关联的组播表项,建立组播表项(*,G1,V2),添加出接口的成员信息(VLAN2,spine2_P6);其中,VLAN2是IGMP报告报文的VLANID,成员端口spine2_P6是收到IGMP报告报文的端口。路由桥spine2为收到TRILL封装的IGMP报告报文的成员端口spine2_P6设置组播组成员老化定时器。
作为VLAN2内组播组G1的DR,路由桥spine2向RP路由器202发送加入组播组G1的PIM加入报文。数据中心的出口路由器201将PIM加入报文向RP路由器202方向发送,逐跳转发,最后到达RP路由器202。
图5为图2中外部组播源的组播数据报文发送到数据中心内的组播接收端的示意图。
RP路由器202收到数据中心外的组播源(S1,G1)发送的数据报文,RP路由器202在共享树上发送收到的组播数据报文。组播数据报文被逐跳地发送到路由桥spine1(VLAN1内组播组G1的指定路由器)和路由桥spine2(VLAN2内组播组G1的指定路由器)。
路由桥spine1收到组播数据报文,查找组播组地址G1关联的组播表项(*,G1,V1),根据出接口信息的成员信息(VLAN1,spine1_P1)复制和发送组播数据报文。路由桥spine1将带有VLAN1的组播组G1的数据报文发往路由桥leaf1。路由桥leaf1收到组播数据报文后,查找到(VLAN1,G1)关联的组播表项(*,G1,V1),根据出接口中成员端口leaf1_Pa发送组播数据报文到终端client1。
路由桥spine2收到组播数据报文,查找组播组地址G1关联的组播表项(*,G1,V2),根据出接口的成员信息(VLAN2,spine2_P6)复制和发送的组播组G1的数据报文。路由桥spine2将带有VLAN2的组播组G1的数据报文发往路由桥leaf6。路由桥leaf6收到组播数据报文后,查找到(VLAN2,G1)关联的组播表项,根据出接口的成员端口leaf6_Pa转发组播数据报文到终端client5。
IGMP通用组查询报文的处理
路由桥spine1~路由桥spine4基于每个VLAN选举一个IGMP查询器,但是,不同VLAN的IGMP查询器可以是同一个设备。路由桥spine1~spine4选举路由桥spine1和spine4分别为VLAN1和VLAN2的IGMP查询器。
路由桥spine1和spine4分别在VLAN1和VLAN2内定期发送IGMP通用组查询报文。为了减少TRILL域内的网络带宽开销,路由桥spine1和spine4各自选择一个TRILL VLAN裁剪树发送IGMP通用组查询报文,确保路由桥spine1~spine4以及路由桥leaf1~leaf6分别在VLAN1内和VLAN2内收到IGMP通用组查询报文。
路由桥spine1向VLAN1发送的TRILL封装的IGMP通用组查询报文中,Ingress nickname为路由桥spine1的nickname11,Egress nickname为TRILLVLAN裁剪树的树根spine1的nickname11。同样的,路由桥spine4向VLAN2发送的TRILL封装的IGMP通用组查询报文中,Ingress nickname为路由桥spine4的nickname14,Egress nickname为TRILL VLAN裁剪树的树根spine4的nickname14。
路由桥leaf1~leaf6在VLAN1和VLAN2内收到TRILL封装的IGMP通用组查询报文,各自通过VLAN1的本地端口以及VLAN2的本地端口发送IGMP通用组查询报文。
IGMP通用组查询报文的响应处理
VLAN1内的终端client1接收IGMP通用组查询报文后,发送IGMP报告报文。路由桥leaf1通过成员端口leaf1_Pa收到加入组播组G1的IGMP报告报文,重置成员端口leaf1_Pa的定时器,将IGMP报告报文进行TRILL封装,通过朝向DR的路由器端口leaf1_P1发送TRILL封装的IGMP报告报文到路由桥spine1。
路由桥spine1通过成员端口spine3_P4收到的TRILL封装的IGMP报告报文,重置成员端口spine3_P4的定时器。
IGMP离开组播组报文的处理
VLAN2内的终端client5发送IGMP离开组报文。
路由桥leaf6接收来自终端client5的IGMP离开组报文,将其封装为TRILL格式,通过朝向DR的路由器端口leaf6_P2发送。
路由桥spine2通过端口spine2_P6收到TRILL封装的IGMP离开组报文;基于IGMP离开组报文解析的组播组G1及VLAN2生成关于组播组G1及VLAN2的IGMP特定组查询报文,通过收到TRILL封装的IGMP离开组报文的成员端口spine2_P6,发送TRILL封装的IGMP特定组查询报文,重置成员端口spine2_P6的定时器。
路由桥leaf6接收TRILL封装的IGMP特定组查询报文,根据IGMP特定组查询解析出要查询的VLAN2内的组播组G1。路由桥leaf6向组播表项的(*,G1,VLAN2)的成员端口leaf6_Pa发送IGMP特定组查询报文。路由桥leaf6重置成员端口leaf6_Pa的定时器。
路由桥leaf6确定设定时间内成员端口leaf6_Pa未收到加入组播组G1的IGMP报告报文,将成员端口leaf6_Pa从组播表项(*,G1,V2)的出接口中删除。
路由桥leaf6确定组播表项中不包括任何成员端口,则删除(*,G1,V2)组播表项。
路由桥spine2确定设定时间内成员端口spine2_P6未收到加入组播组G1的TRILL封装的IGMP报告报文,将成员端口spine2_P6关联的成员信息(VLAN1,spine2_P6)从组播表项(*,G1,V2)的出接口信息中删除。
路由桥spine2确定组播表项(*,G1,V2)中不包括任何成员端口,则删除该组播表项。
路由桥spine2向RP路由器发送组播组G1的PIM剪枝(prune)报文,以删除数据中心外部的组播组G1的组播源到路由桥spine2的转发路径。
考虑到TRILL域内的Rbridge可能发生异常,为了提高系统可用性,本发明实施例还提供了异常处理机制。
譬如,路由桥spine1的上行PIM链路故障(down)掉后,路由桥spine1将本设备与外网的PIM邻居关系将全部变为关闭状态。路由桥spine1的立即将下行所有下行IGMP功能和PIM组播路由功能关闭(VLAN内的IGSP功能仍保持以满足作为transit节点监听维护其他路由器端口的需要)。这样,路由桥spine2切换到指定路由器状态。
或者,路由桥spine1故障,路由桥spine2通过BFD检测到路由桥spine1故障(down),则作为VLAN1内组播组G1的指定路由器。
路由桥spine2在TRILL网络内通知VLAN1网关和VLAN2网关路由桥spine1故障、组播组G1的组播源在数据中心外、VLAN1内组播组G1的指定路由器的nickname是路由桥spine2的nickname。
正常状态下,路由桥spine1和spine2可周期性发布本设备是VLAN1和VLAN2的网关信息。路由桥spine1故障后,无法发布网关信息,其他路由桥未收到路由桥spine1作为VLAN1和VLAN2网关的消息达到老化时间后,确定路由桥spine1不再作为VLAN1的网关。
路由桥spine2~spine4以及路由桥leaf1~leaf6计算树根是spine2的TRILL组播树。各RBridge根据新TRILL组播树计算的朝向DR的路由器端口。
路由桥spine1故障后,组播组G1在VLAN1和VLAN2的指定路由器是同一个网关路由桥spine2,以路由桥spine2为树根这两个TRILL组播树的拓扑可以相同,也可以不同。组播组G1在VLAN1的备分指定路由器也可以是其它网关路有桥。
通过图2~图5可知,网关路由桥spine1和spine2为组播组G1在VLAN1和VLAN2指定路由器,基于路由桥spine1和spine2为树根的两个TRILL组播树计算朝向指定路由器的路由器端口,从而利用TRILL网络拓扑维护路由器端口。路由桥spine1和spine2分别为其负责的VLAN1和VLAN2内的组播组G1成员向RP路由器201发送加入/离开消息。路由桥spine1和spine2在TRILL网络内转发初始格式的组播组G1的数据报文,不仅负载分担了TRILL网络的不同虚拟局域网内组播组G1的数据报文的转发,还无需将来自组播源(S1,G1)的初始数据报文封装为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协议报文。
图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内组播组G1的指定路由器,路由桥core2是VLAN2内组播组G1的指定路由器。
路由桥core1是VLAN2内组播组G1的备份指定路由器(BDR,BackupDesigned Router);路由桥core2是VLAN1内组播组G1的备份指定路由器。
路由桥core1~core2之间建立用于PIM协议的BFD(BidirectionalForwarding Detection,双向转发检测)对话。如果,路由桥core1检测到路由桥core2故障,路由桥core1作为VLAN2内组播组G1的指定路由器进行工作。路由桥core2执行类似的处理。
路由桥leaf21连接的终端client1’是VLAN1组播组G1的接收端;路由桥leaf26连接的终端client5’是VLAN2内组播组G1的接收端。
为了方便描述,将路由桥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的端口命名方式以此类推。
路由桥leaf21连接终端client1’的端口leaf21_Pa,将路由桥leaf26上连接终端client5’的端口命名为端口leaf26_Pa。
路由桥core1~core2、路由桥transit1~transit4以及路由桥leaf21~leaf26都知道TRILL网络内VLAN1和VLAN2的网关是路由桥路由桥core1~core2,VLAN1内组播组G1的指定路由器是core1,VLAN2内组播组G1的指定路由器是路由桥core2。
路由桥core1~core2可通过通知的方式,将网关信息、组播组在各VLAN内的指定路由器信息在TRILL网络内通告给所有路由桥。
譬如:路由桥core1在TRILL网络内通知VLAN1网关和VLAN2网关的nickname是nickname31(路由桥core1的nickname)、组播组G1的组播源在数据中心外、VLAN1内组播组G1的指定路由器的nickname是nickname31。路由桥core2在TRILL网络内通知VLAN1网关和VLAN2网关的nickname是nickname32(路由桥core2的nickname)、组播组G1的组播源在数据中心内、VLAN2内组播组G1的指定路由器的nickname是nickname32。
路由桥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);在图7B所示的组播树上,路由桥core1到路由桥core2的TRILL路径上的本地端口为端口core1_P1,即,端口core1_P1是朝向DR的路由器端口。
路由桥core1根据图7A-图7B所示的TRILL组播树计算的路由器端口如表3.1所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | Null |
V2 | G1 | core1_P1 |
表3.1
路由桥core2据图7A-图7B所示的TRILL组播树计算的路由器端口如表3.2所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | core2_P1 |
V2 | G1 | null |
表3.2
路由桥transit1根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.1所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | transit1_Pa |
V2 | G1 | transit1_Pb |
表4.1
路由桥transit2根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.2所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | transit2_Pa |
V2 | G1 | transit2_Pb |
表4.2
路由桥transit3根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.3所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | transit3_Pa |
V2 | G1 | transit3_Pb |
表4.3
路由桥transit4根据图7A-图7B所示的TRILL组播树计算的路由器端口如表4.4所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | transit4_Pa |
V2 | G1 | transit4_Pb |
表4.4
路由桥leaf21根据图7A-图7B所示的TRILL组播树计算的路由器端口如表5.1所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | leaf21_P1 |
V2 | G1 | leaf21_P2 |
表5.1
路由桥leaf26根据图7A-图7B所示的TRILL组播树计算的路由器端口如表5.2所示:
VLAN | 组播组 | 朝向DR的路由器端口 |
V1 | G1 | leaf26_P1 |
V2 | G1 | leaf26_P2 |
表5.2
图8示出了图6中数据中心内的组播组的成员加入外部组播源的示意图。
VLAN1内的终端client1’发送加入组播组(*,G1)的IGMP报告报文。
路由桥leaf21通过端口leaf21_Pa收到IGMP报告报文,未查询到(VLAN1,G1)关联的组播表项,建立组播表项(*,G1,V1),添加出接口的成员端口leaf21_Pa。
路由桥leaf21为收到的IGMP报告报文封装TRILL头和下一跳头,将该IGMP报告报文封装为TRILL封装的IGMP报告报文。其中,TRILL头的Ingressnickname是路由桥leaf21的nickname,TRILL头的Egress nickname是路由桥core1(VLAN1内组播组G1的指定路由器)的nickname31。路由桥leaf21通过朝向DR的路由器端口leaf21_P1(参见表5.1)发送TRILL封装的IGMP报告报文。路由桥leaf21为成员端口leaf21_Pa设置组播组成员老化定时器。
路由桥transit1通过端口transit1_P1接收TRILL封装的IGMP报告报文,未查询到(VLAN1,G1)关联的组播表项,则建立组播表项(*,G1,V1),添加出接口的成员端口transit1_P1。路由桥transit1为收到的TRILL封装的IGMP报告报文的成员端口transit1_P1设置组播组成员老化定时器。路由桥transit1通过朝向DR的路由器端口transit1_Pa(见表4.1)发送TRILL封装的IGMP报告报文。
路由桥core1通过端口core1_P1接收TRILL封装的IGMP报告报文后,未查询到组播组地址G1关联的组播表项,则建立组播表项(*,G1,V1),添加出接口的成员信息(VLAN1,core1_P1);其中,VLAN1是TRILL封装的IGMP报告报文的内层VLAN ID;成员端口core1_P1是收到IGMP报告报文的成员端口。路由桥core1为收到TRILL封装的IGMP报告报文的成员端口core1_P1设置组播组成员老化定时器。
作为VLAN1内组播组G1的DR,路由桥core1发送加入组播组G1的PIM加入报文。数据中心的出口路由器501将PIM加入报文发往RP路由器502。
终端client5’请求加入组播组G1的过程
VLAN2内的终端client5’发送加入组播组(*,G1)的IGMP报告报文。
路由桥leaf26接收IGMP报告报文后,未查询到(VLAN2,G1)关联的组播表项,则建立组播表项(*,G1,V2),添加出接口的成员端口leaf26_Pa(IGMP报告报文的接收端口)。
路由桥leaf26为收到的IGMP报告报文封装TRILL头和下一跳头,将该IGMP报告报文封装为TRILL封装的IGMP报告报文。其中,TRILL头的Ingressnickname是路由桥leaf26的nickname,TRILL头的Egress nickname是路由桥core2(VLAN1内组播组G1的指定路由器)的nickname32。路由桥leaf26通过朝向DR的路由器端口leaf26_P2(参见表5.2)发送TRILL封装的IGMP报告报文。路由桥leaf26为成员端口leaf26_Pa设置组播组成员老化定时器。
路由桥transit2通过端口transit2_P6收到TRILL封装的IGMP报告报文,未查询到(VLAN2,G1)关联的组播表项,则建立组播表项(*,G1,V2),添出接口的员端口transit2_P6。
路由桥transit2为收到的TRILL封装的IGMP报告报文的端口transit2_P6设置组播组成员老化定时器。
路由桥transit2通过朝向DR的路由器端口transit2_Pb(参加表4.2)发送TRILL封装的IGMP报告报文。
路由桥core2收到TRILL封装的IGMP报告报文后,未查询到组播组地址G1关联组播表项,则建立组播表项(*,G1,V2),添加出接口的成员信息端口(VLAN2,core2_P2);其中,VLAN2是TRILL封装的IGMP报告报文的内层VLAN ID;成员端口core2_P2到TRILL封装的IGMP报告报文的接收端口。
路由桥core2为收到TRILL封装的IGMP报告报文的成员端口core2_P2设置组播组成员老化定时器。
作为VLAN2内组播组G1的DR,路由桥core2向RP路由器502发送加入组播组G1的PIM加入报文。数据中心的出口路由器501将PIM加入报文发往RP路由器502。
图9为图6中外部组播源的组播数据报文发送到数据中心内的组播接收端的示意图。
RP路由器502收到数据中心外的组播源(S1,G1)发送的数据报文,RP路由器502在共享树上发送收到的组播数据报文。组播数据报文被逐跳地发送到出口路由器501。出口路由器501根据维护的出接口,将组播数据报文分别发往路由桥core1和core2。
路由桥core1收到组播数据报文,根据组播地址G1关联的组播表项(*,G1,V1)的成员信息(VLAN1,core1_P1)复制和发送组播数据报文,这样带有VLAN1的组播组G1的数据报文被发往路由桥transit1。路由桥transit1收到组播数据报文,根据VLAN1和组播组地址G1关联的组播表项(*,G1,V1)的成员端口transit1_P1发送组播数据报文。路由桥leaf21收到组播数据报文,根据VLAN1和组播组地址G1关联的组播表项(*,G1,V1)的成员端口leaf21_Pa发送组播数据报文到终端client1’。
路由桥core2收到组播数据报文,查询到组播地址G1关联的组播表项(*,G1,V2),通过该组播表项的成员信息(VLAN2,core2_P2)复制和发送组播数据报文。这样,带有VLAN2的组播组G1的数据报文被发往路由桥transit2。路由桥transit2收到组播数据报文,查询到(VLAN2,G1)关联的组播表项,根据该组播表项的成员端口transit2_P6发送组播数据报文。路由桥leaf26收到组播数据报文,根据(VLAN2,G1)查询到关联的组播表项,通过该组播表项的成员端口leaf26_Pa发送组播数据报文到终端client5’。
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的nickname31,Egress nickname为TRILLVLAN裁剪树的树根core1的nickname31。同样的,路由桥core2向VLAN2发送的TRILL封装的IGMP通用组查询报文中,Ingress nickname为路由桥core2的nickname32,Egress nickname为TRILL VLAN裁剪树的树根core2的nickname32。
路由桥transit1~transit4收到TRILL封装的IGMP通用组查询报文,根据Egress nickname转发,路由桥leaf21~leaf26在VLAN1和VLAN2内收到TRILL封装的IGMP通用组查询报文,各自通过VLAN1的本地端口以及VLAN2的本地端口发送IGMP通用组查询报文。
IGMP离开组报文的处理
VLAN1内的终端client1’发送IGMP离开组报文。
路由桥leaf21收到来自终端client1’的IGMP离开组报文,封装为TRILL封装的IGMP离开组报文。路由桥leaf21通过朝向DR的路由器端口leaf21_P1发送TRILL封装的IGMP转发离开组报文。
路由桥transit1通过朝向DR的路由器端口transit1_Pa发送TRILL封装的IGMP离开组报文到路由桥core1。
路由桥core1通过端口core1_P1收到TRILL封装的IGMP离开组报文,生成关于组播组G1及VLAN1的IGMP特定组查询报文,通过收到TRILL封装的IGMP离开组报文的成员端口core1_P1发送TRILL封装的IGMP特定组查询报文,重置成员端口core1_P1的定时器。
路由桥transit1收到TRILL封装的IGMP特定组查询报文,根据本地组播表项(*,G1,V1)的成员端口transit1_P1发送TRILL封装的IGMP特定组查询报文。路由桥leaf21重置成员端口transit1_P1的定时器。
路由桥leaf21接收TRILL封装的IGMP特定组查询报文,解析出要查询的VLAN1内的组播组G1。路由桥lea2f1通过本地组播表项(*,G1,V1)的成员端口leaf21_Pa发送IGMP特定组查询报文。路由桥leaf21重置成员端口leaf21_Pa的定时器。
路由桥leaf21确定设定时间内成员端口leaf21_Pa未收到加入组播组G1的IGMP报告报文,将成员端口leaf21_Pa从(*,G1,V1)组播表项的出接口中删除。路由桥leaf21确定组播表项组播表项(*,G1,V1)没有成员端口时,删除组播表项。
路由桥transit1确定设定时间内成员端口transit1_P1未收到加入组播组G1的TRILL封装的IGMP报告报文,将成员端口transit1_P1从(*,G1,V1)组播表项的出接口中删除。同样地,路由桥transit1确定组播表项(*,G1,V1)没有成员端口时,删除组播表项。
路由桥core1确定设定时间内成员端口core1_P1未收到加入组播组G1的TRILL封装的IGMP报告报文,删除组播表项的出接口的成员信息(VLAN1,core1_P1)。路由桥core1确定组播表项的出接口没有成员信息,删除组播表项(*,G1,V1),向RP路由器501方向发送PIM剪枝报文,以裁剪路由桥core1所在的接收分支。
IGMP通用组查询报文的响应处理
终端client5’接收IGMP通用组查询报文后,发送IGMP报告报文。
路由桥leaf26通过成员端口leaf26_Pa收到加入组播组G1的IGMP报告报文,重置成员端口leaf26_Pa的定时器,将IGMP报告报文进行TRILL封装,通过朝向DR的路由器端口leaf26_P2发送。
路由桥transit2通过成员端口transit2_P6收到的TRILL封装的IGMP报告报文,重置成员端口transit2_P6的定时器,通过朝向DR的路由器端口transit2_Pb发送TRILL封装的IGMP报告报文。
路由桥core2通过成员端口core2_P2收到的TRILL封装的IGMP报告报文,重置成员端口core2_P2的定时器。
当路由桥core1的上行PIM链路故障(down)掉后,路由桥core1将本设备与外网的PIM邻居关系将全部变为关闭状态。路由桥core1立即将下行IGMP功能和PIM组播路由功能关闭(VLAN内的IGSP功能仍保持以满足作为transit节点监听维护其他路由器端口的需要)。这样,路由桥core2切换到指定路由器状态。
或者,路由桥core1故障,路由桥core2通过BFD检测到路由桥core1故障(down),作为VLAN1内组播组G1的DR进行工作。
路由桥core2在TRILL网络内通知VLAN1网关和VLAN2网关路由桥spine1故障、组播组G1的组播源在数据中心外、VLAN1内组播组G1的指定路由器的nickname是路由桥core2的nickname2。
路由桥core2、路由桥transit1~tansit4以及路由桥leaf21~leaf26计算树根是core2的TRILL组播树。
在图6所示的TRILL网络架构中,路由桥core1和core2可配置有多个nickname,将不同nickname作为不同VLAN的网关的nickname以及组播组在不同VLAN内指定路由器的nickname。
图10是本发明实施例提供的组播数据转发装置,该装置可应用数据中心的核心层设备。如图10所示,该装置包括:组播协议处理单元1001,用于获取组播组在不同虚拟局域网内的指定路由器;以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;通过树根是本设备的TRILL组播树收到TRILL封装的IGMP报告报文时,发送加入组播组的PIM加入报文且基于TRILL封装的IGMP报告报文的内层虚拟局域网标识以及接收端口记录组播组的地址关联的成员信息。
组播数据处理单元1002,用于接收组播组的组播数据报文,通过组播组的地址关联的成员信息的虚拟局域网标识和成员端口进行复制和发送组播数据报文。
组播协议处理单元1001,还用于选举每个虚拟局域网的IGMP查询器;确定本设备被选举为其中一个IGMP查询器,定期通过TRILL虚拟局域网裁剪树发送TRILL封装的IGMP通用组查询报文。
组播协议处理单元1001,还用于接收TRILL封装IGMP离开组报文;通过收到TRILL封装的IGMP离开组报文的成员端口发送TRILL封装的IGMP特定组查询报文;其中,TRILL封装IGMP离开组报文以及TRILL封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识一致
组播协议处理单元1001还用于将发送了TRILL封装的IGMP特定组查询报文且在预定时间内未收到TRILL封装IGMP报告报文的成员端口所关联的成员信息删除。
图10所示的装置还包括检测单元1003和模式切换单元1004。该检测单元1003,检测指定路由器的状态;将检测到指定路由器的故障状态通知模式切换单元1004;模式切换单元1004,判断本设备是否是故障状态的指定路由器的备份指定路由器;若是,切换到指定路由器。
图10所示的装置可设置在网关路由桥上,并通过网关路由桥的接口单元接收/发送上述组播协议报文和组播数据报文。
图11是本发明实施例提供组播报文转发装置的结构示意图,该装置应用于数据中心的非网关路由桥,譬如接入层路由桥或汇聚层路由桥。如图11所示,该装置包括:
组播协议处理单元1101,用于获取组播组在不同虚拟局域网内的指定路由器;以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;记录IGMP报告报文的接收端口为IGMP报告报文的组播组地址和虚拟局域网标识对应的成员端口;通过IGMP报告报文的组播组地址和虚拟局域网标识对应的朝向指定路由器端口发送TRILL封装的IGMP报告报文;
组播数据处理单元1102,用于通过收到的组播数据报文的虚拟局域网标识和组播组地址的每个成员端口转发收到的组播数据报文。
组播协议处理单元1101,还用于识别对应于收到的TRILL封装的IGMP通用组查询报文的内层虚拟局域网标识的本地端口;通过识别的本地端口发送IGMP通用组查询报文。
组播协议处理单元1101,还用于识别对应于收到的IGMP离开组报文的组播组地址和虚拟局域网标识的朝向指定路由器的路由器端口,通过识别的朝向指定路由器的路由器端口发送TRILL封装的IGMP离开组报文。
组播协议处理单元1101,还用于识别对应于收到的TRILL封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识的每个成员端口;通过识别的每个成员端口发送IGMP特定组查询报文;判断发送了IGMP特定组查询报文的每个成员端口在预定时间内是否收到IGMP报告报文的本地成员端口,将发送了该IGMP离开组报文且在预订时间内未收到IGMP报告报文的成员端口删除。
图11所示的装置可设置在非网关路由桥上,并通过非网关路由桥的接口单元接收/发送上述组播协议报文和组播数据报文。
虽然本发明以TRILL技术构建的数据中心的大二层网络为例,对本发明所提供的组播数据报文转发技术方案进行详细描述,相关原理同样适用于Vxlan(virtual Extended VLAN,虚拟扩展VLAN(Virtual Local Area Network,虚拟局域网),SPB技术其他的大二层协议构建的数据中心内的组播数据报文转发。本发明中,终端既可以是主机、网络设备也可以是虚拟机(virtualmachine)。
需要说明的是,本发明的上述实施例中,是IGMP、IGSP、PIM协议为例描述的,本领域技术人员应该可以理解,将上述协议替换为其它类似协议,依然可以采用本发明实施例的思想,实现本发明实施例所提供的组播转发技术方案,并可以达到相同或相似的技术效果。
本发明中,数据中心的设备根据关联于VLAN和组播组的TRILL的组播树维护关联的路由器端口(router port),不再通过IGMP报文的机制来维护路由器端口。
需要说明的是,本发明的上述实施例中,是IGMP、IGSP、PIM协议为例描述的,本领域技术人员应该可以理解,将上述协议替换为其它类似协议,依然可以采用本发明实施例的思想,实现本发明实施例所提供的组播转发技术方案,并可以达到相同或相似的技术效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (18)
1.一种组播数据转发方法,应用于数据中心的网关路由网桥其特征在于,所述方法包括:
获取组播组在不同虚拟局域网内的指定路由器;
以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;
通过树根是本设备的TRILL组播树收到TRILL封装的IGMP报告报文时,发送加入所述组播组的PIM加入报文且基于所述TRILL封装的IGMP报告报文的内层虚拟局域网标识以及接收端口记录所述组播组的地址关联的成员信息;
接收所述组播组的组播数据报文,通过所述组播组的地址关联的成员信息的虚拟局域网标识和成员端口进行复制和发送所述组播数据报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
选举每个所述虚拟局域网的IGMP查询器;
确定本设备被选举为其中一个所述IGMP查询器,定期通过TRILL虚拟局域网裁剪树发送TRILL封装的IGMP通用组查询报文。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收TRILL封装IGMP离开组报文;
通过收到所述TRILL封装的IGMP离开组报文的成员端口发送所述TRILL封装的IGMP特定组查询报文;其中,所述TRILL封装IGMP离开组报文以及所述TRILL封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识一致。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将发送了所述TRILL封装的IGMP特定组查询报文且在预定时间内未收到TRILL封装IGMP报告报文的成员端口所关联的成员信息删除。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测到指定路由器的状态;
检测到指定路由器的故障状态时,判断本设备是否是故障状态的指定路由器的备份指定路由器;若是,切换到指定路由器。
6.一种组播数据转发装置,应用于网关路由桥,其特征在于,所述装置包括:
组播协议单元,用于获取组播组在不同虚拟局域网内的指定路由器;以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;通过树根是本设备的TRILL组播树收到TRILL封装的IGMP报告报文时,发送加入所述组播组的PIM加入报文且基于所述TRILL封装的IGMP报告报文的内层虚拟局域网标识以及接收端口记录所述组播组的地址关联的成员信息;
组播数据单元,用于接收所述组播组的组播数据报文,通过所述组播组的地址关联的成员信息的虚拟局域网标识和成员端口进行复制和发送所述组播数据报文。
7.根据权利要求5所述的装置,其特征在于,所述组播协议单元,选举每个所述虚拟局域网的IGMP查询器;通过确定本设备被选举为其中一个所述IGMP查询器,定期通过TRILL虚拟局域网裁剪树发送TRILL封装的IGMP通用组查询报文。
8.根据权利要求5所述的方法,其特征在于,所述组播协议单元,还用于接收TRILL封装IGMP离开组报文;通过收到所述TRILL封装的IGMP离开组报文的成员端口发送所述TRILL封装的IGMP特定组查询报文;其中,所述TRILL封装IGMP离开组报文以及所述TRILL封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识一致。
9.根据权利要求5所述的装置,其特征在于,所述组播协议单元,还用于将发送了所述TRILL封装的IGMP特定组查询报文且在预定时间内未收到TRILL封装IGMP报告报文的成员端口所关联的成员信息删除。
10.根据权利要求5所述的装置,其特征在于,所述装置还包括检测单元和模式切换单元;
所述检测单元,检测指定路由器的状态;将检测到指定路由器的故障状态通知所述模式切换单元;
所述模式切换单元,判断本设备是否是故障状态的指定路由器的备份指定路由器;若是,切换到指定路由器。
11.一种组播数据报文转发方法,应用于数据中心内的非网关路由网桥,其特征在于,所述方法包括:
获取组播组在不同虚拟局域网内的指定路由器;
以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;
记录IGMP报告报文的接收端口为所述IGMP报告报文的组播组地址和虚拟局域网标识对应的成员端口;
通过所述IGMP报告报文的组播组地址和虚拟局域网标识对应的朝向指定路由器端口发送TRILL封装的IGMP报告报文;
通过收到的组播数据报文的虚拟局域网标识和组播组地址的每个成员端口转发所述收到的组播数据报文。
12.根据权利要求1所述的方法,其特征在于,
识别对应于收到的TRILL封装的IGMP通用组查询报文的内层虚拟局域网标识的本地端口;通过识别的本地端口发送IGMP通用组查询报文。
13.根据权利要求1所述的方法,其特征在于,
识别对应于收到的IGMP离开组报文的组播组地址和虚拟局域网标识的朝向指定路由器的路由器端口,通过识别的朝向指定路由器的路由器端口发送TRILL封装的IGMP离开组报文。
14.根据权利要求3所述的方法,其特征在于,所述方法还包括:
识别对应于收到的TRILL封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识的每个成员端口;通过识别的每个成员端口发送的IGMP特定组查询报文;
判断发送了IGMP特定组查询报文的每个成员端口在预定时间内是否收到IGMP报告报文的本地成员端口,删除发送了所述IGMP离开组报文且在预订时间内未收到IGMP报告报文的成员端口。
15.一种组播数据报文转发装置,应用于非网关路由桥,其特征在于,所述装置包括:
组播协议处理单元,用于获取组播组在不同虚拟局域网内的指定路由器;以每个指定路由器为树根的TRILL组播树计算朝向指定路由器的路由器端口;记录IGMP报告报文的接收端口为所述IGMP报告报文的组播组地址和虚拟局域网标识对应的成员端口;通过所述IGMP报告报文的组播组地址和虚拟局域网标识对应的朝向指定路由器端口发送TRILL封装的IGMP报告报文;
组播数据处理单元,用于通过收到的组播数据报文的虚拟局域网标识和组播组地址的每个成员端口转发所述收到的组播数据报文。
16.根据权利要求15所述的装置,其特征在于,
所述组播协议处理单元,还用于识别对应于收到的TRILL封装的IGMP通用组查询报文的内层虚拟局域网标识的本地端口;通过识别的本地端口发送IGMP通用组查询报文。
17.根据权利要求15所述的装置,其特征在于,
所述组播协议处理单元,还用于识别对应于收到的IGMP离开组报文的组播组地址和虚拟局域网标识的朝向指定路由器的路由器端口,通过识别的朝向指定路由器的路由器端口发送TRILL封装的IGMP离开组报文。
18.根据权利要求15所述的装置,其特征在于,
所述组播协议处理单元,还用于识别对应于收到的TRILL封装的IGMP特定组查询报文的组播组地址和内层虚拟局域网标识的每个成员端口;通过识别的每个成员端口发送的IGMP特定组查询报文;判断发送了IGMP特定组查询报文的每个成员端口在预定时间内是否收到IGMP报告报文的本地成员端口,将发送了所述IGMP离开组报文且在预订时间内未收到IGMP报告报文的成员端口删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310493750.2A CN104579704B (zh) | 2013-10-18 | 2013-10-18 | 组播数据报文的转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310493750.2A CN104579704B (zh) | 2013-10-18 | 2013-10-18 | 组播数据报文的转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579704A true CN104579704A (zh) | 2015-04-29 |
CN104579704B CN104579704B (zh) | 2018-09-04 |
Family
ID=53094982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310493750.2A Active CN104579704B (zh) | 2013-10-18 | 2013-10-18 | 组播数据报文的转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104579704B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769581A (zh) * | 2020-12-30 | 2021-05-07 | 网神信息技术(北京)股份有限公司 | 数据组播方法、装置、电子设备、介质和程序产品 |
CN113037636A (zh) * | 2019-12-09 | 2021-06-25 | 中兴通讯股份有限公司 | 路由器链路更新方法、路由器及存储介质 |
CN113472656A (zh) * | 2021-06-29 | 2021-10-01 | 新华三信息安全技术有限公司 | 一种二层交换设备及其转发组播数据报文的方法 |
CN115883286A (zh) * | 2022-11-29 | 2023-03-31 | 迈普通信技术股份有限公司 | Igmp报文处理方法、装置、vtep设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863147A (zh) * | 2005-09-07 | 2006-11-15 | 华为技术有限公司 | 在虚拟专用局域网业务中实现组播数据流转发的方法 |
CN102035729A (zh) * | 2010-11-22 | 2011-04-27 | 杭州华三通信技术有限公司 | 一种组播数据转发方法及其装置 |
US20120207160A1 (en) * | 2006-10-24 | 2012-08-16 | Cisco Technology, Inc. | Subnet scoped multicast/broadcast packet distribution mechanism over a routed network |
CN103067286A (zh) * | 2013-01-25 | 2013-04-24 | 杭州华三通信技术有限公司 | 一种组播数据传输方法和设备 |
CN104468139A (zh) * | 2013-09-24 | 2015-03-25 | 杭州华三通信技术有限公司 | 一种组播数据报文转发方法及设备 |
-
2013
- 2013-10-18 CN CN201310493750.2A patent/CN104579704B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863147A (zh) * | 2005-09-07 | 2006-11-15 | 华为技术有限公司 | 在虚拟专用局域网业务中实现组播数据流转发的方法 |
US20120207160A1 (en) * | 2006-10-24 | 2012-08-16 | Cisco Technology, Inc. | Subnet scoped multicast/broadcast packet distribution mechanism over a routed network |
CN102035729A (zh) * | 2010-11-22 | 2011-04-27 | 杭州华三通信技术有限公司 | 一种组播数据转发方法及其装置 |
CN103067286A (zh) * | 2013-01-25 | 2013-04-24 | 杭州华三通信技术有限公司 | 一种组播数据传输方法和设备 |
CN104468139A (zh) * | 2013-09-24 | 2015-03-25 | 杭州华三通信技术有限公司 | 一种组播数据报文转发方法及设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037636A (zh) * | 2019-12-09 | 2021-06-25 | 中兴通讯股份有限公司 | 路由器链路更新方法、路由器及存储介质 |
CN113037636B (zh) * | 2019-12-09 | 2023-09-12 | 中兴通讯股份有限公司 | 路由器链路更新方法、路由器及存储介质 |
CN112769581A (zh) * | 2020-12-30 | 2021-05-07 | 网神信息技术(北京)股份有限公司 | 数据组播方法、装置、电子设备、介质和程序产品 |
CN113472656A (zh) * | 2021-06-29 | 2021-10-01 | 新华三信息安全技术有限公司 | 一种二层交换设备及其转发组播数据报文的方法 |
CN115883286A (zh) * | 2022-11-29 | 2023-03-31 | 迈普通信技术股份有限公司 | Igmp报文处理方法、装置、vtep设备及存储介质 |
CN115883286B (zh) * | 2022-11-29 | 2024-04-09 | 迈普通信技术股份有限公司 | Igmp报文处理方法、装置、vtep设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104579704B (zh) | 2018-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103873373B (zh) | 一种组播数据报文转发方法及设备 | |
US10594512B2 (en) | Access network dual path connectivity | |
US9509522B2 (en) | Forwarding multicast data packets | |
CN107819677B (zh) | 一种报文转发方法及装置 | |
CN104378297B (zh) | 一种报文转发方法及设备 | |
US9036637B2 (en) | Message transmission in virtual private networks | |
JP5334001B2 (ja) | 通信システムおよびノード | |
EP2129049B1 (en) | A protecting method and device for ethernet tree service | |
US10397023B2 (en) | Packet forwarding | |
US20130254356A1 (en) | Systems and methods for recovery from network changes | |
US20140122704A1 (en) | Remote port mirroring | |
CN103117935B (zh) | 应用于多归属组网的组播数据转发方法和装置 | |
CN102035729A (zh) | 一种组播数据转发方法及其装置 | |
WO2014180332A1 (zh) | 通用路由方法及系统 | |
CN104579981B (zh) | 一种组播数据报文转发方法及设备 | |
CN105162704A (zh) | Overlay网络中组播复制的方法及装置 | |
CN104348717A (zh) | 报文转发方法和装置 | |
CN103200100A (zh) | 一种报文转发方法和设备 | |
CN104579704A (zh) | 组播数据报文的转发方法及装置 | |
CN104468139A (zh) | 一种组播数据报文转发方法及设备 | |
CN104539545A (zh) | Trill网络中的组播报文转发方法和设备 | |
CN108833272A (zh) | 一种路由管理方法和装置 | |
CN104009919A (zh) | 报文转发方法及装置 | |
CN104468370A (zh) | 一种组播数据报文转发方法及设备 | |
CN103036761B (zh) | 一种隧道服务器和客户端装置 |
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 |