CN102684892B - 一种端口扩展中实现源端口过滤的方法和装置 - Google Patents
一种端口扩展中实现源端口过滤的方法和装置 Download PDFInfo
- Publication number
- CN102684892B CN102684892B CN201110061143.XA CN201110061143A CN102684892B CN 102684892 B CN102684892 B CN 102684892B CN 201110061143 A CN201110061143 A CN 201110061143A CN 102684892 B CN102684892 B CN 102684892B
- Authority
- CN
- China
- Prior art keywords
- port
- sent
- port information
- information
- module
- 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.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种端口扩展中实现源端口过滤的方法,桥接转发模块接收组播数据,确定所述组播数据的输出端口信息;端口扩展模块将所述组播数据的输入端口信息发送给桥接转发模块;桥接转发模块将所述输出端口信息和输入端口信息发送给端口扩展模块;端口扩展模块将所述输入端口信息携带在组播数据中发送出去,与外部终端连接的端口根据输入端口信息进行源端口过滤。本发明还公开了一种端口扩展中实现源端口过滤的方法和两种装置,通过上述方法和装置,使桥接转发模块可以感知输入数据的源端口,进而实现源端口过滤,避免了组播数据陷入循环,提高了以太网交换机的稳定性。
Description
技术领域
本发明涉及组播数据使用以太网交换机的远端复制技术,特别是指一种端口扩展中实现源端口过滤的方法和装置。
背景技术
随着数据通信网络的发展,网络带宽越来越大,终端设备越来越多,为了降低成本,融合网络,数据中心的概念被提出来,并且得到运营商和设备厂商的支持,具有良好的发展前景。数据中心网桥(Data Center Bridging,DCB)作为支持下一代数据中心以太网的设备,需满足下一代数据中心网络要求,包括对大量激增的终端服务器设备的支持。
为此,IEEE802.1DCB任务组创建了两个标准项目IEEE 802.1Qbh和IEEE802.1Qbg来解决该问题。Qbh标准定义了扩展端口的以太网交换机,以适应不断增加的终端设备接口的需求。该标准中定义了以太网交换机端口扩展模块,和用于组播的远端复制技术。Qbg标准定义了边缘虚拟桥接(EVB)技术,规范了使用虚拟化技术的终端和与其相连的交换机之间的自动发现和配置流程。支持EVB技术的终端可以包含一组虚拟机(VM),VM通过虚拟边缘交换机(VEB)或虚拟边缘端口聚合器(VEPA)与边缘以太网交换机相连。VEPA技术需要交换机支持反射中继(Reflective Relay)功能,即从收到数据的端口将数据转发出去。
图1为以太网交换机采用端口扩展的示意图,如图1所示,图中粗线概括的部分就是扩展端口的以太网交换机11(Extended Bridge)。以太网交换机11中包括:一个桥接转发模块12(VLAN-aware Bridge Component),和一个或多个端口扩展模块(Port Extender),组成了控制桥(Controlling Bridge)13,在Controlling Bridge13之外至少有一个,或多个Port Extender。Controlling Bridge13中的Port Extender与桥接转发模块12,通常称为内部Port Extender14,其它与外部终端相连,通常称为外部Port Extender15。图1所示为一个ControllingBridge13和2个外部Port Extender15的情况,两个外部PortExtender15分别为Port Extender2和Port Extender3。图1从左往右的方向为网桥到终端的输出方向。内部Port Extender14与下级级联的外部Port Extender15连接的端口为级联接口(Cascade Port)16。外部Port Extender15与上级内部Port Extender14的CascadePort16相连的端口称为上行接口(Upstream Port)17。内部Port Extender14与VLAN-aware Bridge Component12相连的端口,以及外部Port Extender15与终端18连接的端口为扩展端口(Extended Port)19。外部Port Extender15可以多层级联,以实现更多的扩展端口19,更多的扩展网桥外接端口。
对于与某个Controlling Bridge13相连,并受其控制的所有外部PortExtender15,在VLAN-aware Bridge Component12发现这些外部Port Extender15时,VLAN-aware Bridge Component12上都会实例化与它们的Extended Port19相对应的端口。在Extended Bridge11内部,还需要在内部Port Extender14和外部Port Extender15的Extended Port19之间建立虚拟通道(E-channel)。这些E-channel的扩展通道标识(E-channel Identifier,E-CID)由Controlling Bridge 13分配,图1中与VLAN-aware BridgeComponent12实例化端口2至5对应的E-Component实例化端口使用的E-CID分别为34,96,12,78。与这些实例化端口相对应的外部Port Extender15的Extended Port19维护端口扩展通道标识(Port E-channel Identifier,PCID)参数,该参数的值等于E-CID。
图2为使用Extended Bridge11转发单播数据帧的数据流向示意图,当终端设备的数据帧经过边缘Port Extender时,Port Extender3会给其添加一个电子标签(E-tag),该E-tag中的E-CID为该端口的PCID,如图2所示E-CID为96。数据帧向交换机方向转发时经过的中间Port Extender,如图2所示为PortExtender 2,Port Extender 2对该帧不再做处理,直接向上一级Port Extender1透传。该数据帧到达Port Extender1后在与VLAN-awareBridge Component12相连的Extended Port19去掉E-tag,并将其转发给相应的VLAN-awareBridgeComponent12实例化端口。所述VLAN-aware Bridge Component12实例化端口3与该数据帧进入Extended Bridge的Extended Port相对应。
VLAN-aware Bridge Component 12收到该数据帧后,根据目的地址和VLAN标识(VLAN Identifier,VID)判定应该从Extended Port78输出。此时,VLAN-aware BridgeComponent12根据实例化端口与Extended Port的对应关系,判定与Extended Port78相对应的VLAN-aware Bridge Component12的实例化端口为5,于是VLAN-aware BridgeComponent12将该数据帧从实例化端口5发送给内部Port Extender 1。Port Extender 1根据进入的Extended Port78给该数据帧添加E-tag,E-tag中的E-CID等于输出ExtendedPort的PCID,即78。数据帧经过的每个Port Extender根据E-tag中的E-CID值,将数据帧从相应的E-channel转发到相应的Cascade Port或Extended Port。在边缘Port Extender上去掉E-tag,将数据帧发送给终端。
但是如果Extended Bridge转发非单播数据帧,则有可能出现数据输入时进入外部Port Extender的Extended Port,即源端口,与数据输出时的Extended Port相同,使组播数据陷入循环。
发明内容
有鉴于此,本发明的主要目的在于提供一种端口扩展中实现源端口过滤的方法和装置,能够使VLAN-aware Bridge Component感知输入端口的信息,进而在输出端口实现了源端口过滤,避免组播数据陷入循环。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种端口扩展中实现源端口过滤的方法,所述方法包括:
桥接转发模块接收组播数据,确定所述组播数据的输出端口信息(E-CID);
端口扩展模块将所述组播数据的输入端口信息(Ingress E-CID)传递给桥接转发模块;
桥接转发模块将所述输出端口信息和输入端口信息发送给端口扩展模块;
端口扩展模块将所述输入端口信息携带在组播数据中发送出去,与外部终端连接的端口根据输入端口信息进行源端口过滤。
其中,所述桥接转发模块将所述输出端口信息和输入端口信息发送给端口扩展模块之前,包括:
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组(Replication Group),如果是,则将输出端口信息和输入端口信息发送给内部端口扩展模块;否则将输出端口信息发送给端口扩展模块;或
桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继(Reflective Relay)功能,则将输出端口信息和输入端口信息发送给端口扩展模块,否则将输出端口信息发送给端口扩展模块;或
当输出端口与输入端口属于同一个复制组时,判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给端口扩展模块,否则将输出端口信息发送给端口扩展模块。
本发明还提供了一种端口扩展中实现源端口过滤的方法,所述方法包括:
桥接转发模块接收组播数据,确定所述组播数据的输出端口信息;
桥接转发模块查询映射表,获得所述组播数据的输入端口信息,所述映射表中包含桥接转发模块实例化端口对应输入端口信息的映射关系;
桥接转发模块将所述输出端口信息和输入端口信息发送给端口扩展模块;
端口扩展模块将所述输入端口信息携带在组播数据中发送出去,与外部终端连接的端口根据输入端口信息进行源端口过滤。
其中,所述桥接转发模块将所述输出端口信息和输入端口信息发送给端口扩展模块之前,包括:
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果是,则将输出端口信息和输入端口信息发送给端口扩展模块;否则将输出端口信息发送给端口扩展模块;或
桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给端口扩展模块,否则将输出端口信息发送给端口扩展模块;或
当输出端口与输入端口属于同一个复制组时,判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给端口扩展模块。
本发明还提供了一种端口扩展中实现源端口过滤的装置,所述装置包括:桥接转发模块、内部端口扩展模块和外部端口扩展模块,其中,
所述桥接转发模块,用于接收组播数据,确定所述组播数据的输出端口信息,将所述输出端口信息和输入端口信息发送给内部端口扩展模块;
所述内部端口扩展模块,用于将所述组播数据的输入端口信息传递给桥接转发模块,将所述输入端口信息携带在组播数据发送给外部端口扩展模块;
所述外部端口扩展模块,用于根据输入端口信息进行源端口过滤。
其中,所述桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块,包括:
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果是,则将输出端口信息和输入端口信息发送给内部端口扩展模块;否则将输出端口信息发送给内部端口扩展模块;或
桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;或
当输出端口与输入端口属于同一个复制组时,判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。
本发明还提供了一种端口扩展中实现源端口过滤的装置,所述装置包括:桥接转发模块、内部端口扩展模块和外部端口扩展模块,其中,
所述桥接转发模块,用于接收组播数据,确定所述组播数据的输出端口信息,查询映射表,获得所述组播数据的输入端口信息,将所述输出端口信息和输入端口信息发送给内部端口扩展模块;其中,所述映射表中包含桥接转发模块实例化端口对应输入端口信息的映射关系;
所述内部端口扩展模块,用于将所述输入端口信息携带在组播数据发送给外部端口扩展模块;
所述外部端口扩展模块,用于根据输入端口信息进行源端口过滤。
其中,所述桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块,包括:
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果是,则将输出端口信息和输入端口信息发送给内部端口扩展模块;否则将输出端口信息发送给内部端口扩展模块;或
桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;或
当输出端口与输入端口属于同一个复制组时,判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。
本发明所提供的端口扩展中实现源端口过滤的方法和装置,桥接转发模块接收组播数据,确定所述组播数据的输出端口信息;端口扩展模块将所述组播数据的输入端口信息传递给桥接转发模块;桥接转发模块将所述输出端口信息和输入端口信息发送给端口扩展模块;端口扩展模块将所述输入端口信息携带在组播数据中发送出去,与外部终端连接的端口根据输入端口信息进行源端口过滤。其中,桥接转发模块可以获得输入端口信息,即感知输入数据的源端口,使得在发送给内部端口扩展模块的数据中携带上源端口信息,进而实现在外部端口扩展模块的Extended Port对数据进行源端口过滤,避免了组播数据陷入循环,使以太网交换机能够在组播数据时正常的收发数据,进一步提高了以太网交换机的稳定性。
附图说明
图1为以太网交换机采用端口扩展的示意图;
图2为使用Extended Bridge11转发单播数据帧的数据流向示意图;
图3为本发明一种端口扩展中实现源端口过滤的方法流程示意图;
图4为本发明另一种端口扩展中实现源端口过滤的方法流程示意图;
图5为本发明建立桥接转发模块实例化端口对应输入端口的映射表的流程示意图;
图6为本发明端口扩展中实现源端口过滤的一个实施例的数据流向示意图;
图7为本发明端口扩展中实现源端口过滤的装置结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
图3为本发明一种端口扩展中实现源端口过滤的方法流程示意图,如图3所示,所述方法包括以下步骤:
步骤301,桥接转发模块接收组播数据,确定所述组播数据的输出端口信息;
具体的,所述输出端口信息为输出端口的扩展通道标识(E-CID)。所述桥接转发模块,即VLAN-aware Bridge Component接收内部端口扩展模块,即内部Port Extender发送来的去掉E-tag的数据,进一步具体包括:内部Port Extender从Cascade Port收到从外部Port Extender发送来的数据;内部Port Extender根据E-tag中的E-CID值,将数据转发到相应的与VLAN-aware Bridge Component连接的Extended Port;在Extended Port处去掉E-tag将数据发送给VLAN-awareBridge Component。所述VLAN-aware Bridge Component确定输出端口是根据目的地址和VID查询过滤数据库(Filtering Database,FDB)转发表来确定输出端口。
步骤302,端口扩展模块将所述组播数据的输入端口信息传递给桥接转发模块;
具体的,所述端口扩展模块是指与桥接转发模块相连的内部端口扩展模块。所述输入端口信息具体是输入端口的扩展通道标识(Ingress E-CID)。所述内部端口扩展模块将所述组播数据的输入端口信息发送给桥接转发模块,具体为:内部Port Extender将组播数据输入端口的Ingress E-CID携带在M_UNITDATA.indications原语的connection_identifier参数中,传递给VLAN-aware Bridge Component。
步骤303,桥接转发模块将所述输出端口信息和输入端口信息发送给端口扩展模块;
具体的,所述端口扩展模块是指与桥接转发模块相连的内部端口扩展模块。所述步骤303中具体包括以下步骤:
步骤303a,VLAN-aware Bridge Component根据输出端口生成目的E-CID,判断输出端口与输入端口是否属于同一个复制组(Replication Group),如果是,则执行步骤303b,如果不是,则执行步骤303c;
具体的,所述输出端口或所述输入端口均为外部Port Extender连接终端的端口。
步骤303b,将输入端口作为输入扩展通道标识(Ingress_E-CID)的值与目的E-CID一起携带在M_UNITDATA.request中,发送给内部Port Extender;
具体的,所述发送给内部Port Extender是通过对应输出端口的实例化端口发送给Controlling Bridge的Port Extender。
步骤303c,将目的E-CID携带在M_UNITDATA.request中,发送给内部PortExtender。
具体的,所述发送给内部Port Extender是通过对应输出端口的实例化端口发送给Controlling Bridge的Port Extender。
进一步的,步骤303a至步骤303c的方案还可以替换为:桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继(Reflective Relay)功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;或者
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果不是,则将输出端口信息发送给内部端口扩展模块,如果是,则判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。
步骤304,端口扩展模块将所述输入端口信息携带在组播数据中发送出去,与外部终端连接的端口根据输入端口信息进行源端口过滤。
具体的,所述端口扩展模块是指与桥接转发模块相连的内部端口扩展模块,即内部Port Extender。内部Port Extender生成输出数据的E-tag,将数据发送给外部PortExtender,外部Port Extender根据携带在E-tag中的输入端口信息对输出数据进行过滤。其中,所述内部Port Extender生成输出数据的E-tag具体为:内部Port Extender根据M_UNITDATA.request携带的Ingress_E-CID和目的E-CID生成输出数据的E-tag。所述外部Port Extender根据携带在E-tag中的输入端口信息对输出数据进行过滤具体为:外部PortExtender在输出Extended Port判断Ingress_E-CID的值是否与本端口的PCID相同,如相同,则进行源端口过滤,否则不进行过滤。
进一步的,在步骤301之后,所述方法还包括:VLAN-aware BridgeComponent判断输出端口数量是否为1,如果是,则将数据通过内部Port Extender和外部Port Extender直接输出,否则执行步骤302。
图4为本发明另一种端口扩展中实现源端口过滤的方法流程示意图,如图4所示,所述方法包括以下步骤:
步骤401,桥接转发模块接收组播数据,确定所述组播数据的输出端口信息;
具体的,所述输出端口信息为输出端口的扩展通道标识(E-CID)。所述桥接转发模块,即VLAN-aware Bridge Component接收内部端口扩展模块,即内部Port Extender发送来的去掉E-tag的数据,进一步具体包括:内部Port Extender从Cascade Port收到从外部Port Extender发送来的数据;内部Port Extender根据E-tag中的E-CID值,将数据转发到相应的与VLAN-aware Bridge Component连接的Extended Port;在Extended Port处去掉E-tag将数据发送给VLAN-awareBridge Component。所述VLAN-aware Bridge Component确定输出端口是根据目的地址和VID查询过滤数据库(Filtering Database,FDB)转发表来确定输出端口。
步骤402,桥接转发模块查询映射表,获得所述组播数据的输入端口信息;
具体的,所述映射表中包含桥接转发模块实例化端口对应输入端口信息的映射关系。所述输入端口信息具体是输入端口的Ingress E-CID。所述查询其自身实例化端口对应输入端口信息的映射表,获得所述组播数据的输入端口信息,具体为:所述VLAN-awareBridge Component可以通过接收数据的自身的实例化端口通过所述映射表,查找出对应的所述组播数据的输入端口的E-CID。其中,所述输入端口为外部端口扩展模块连接终端的端口。
进一步的,所述查询桥接转发模块实例化端口对应输入端口信息的映射表之前,所述方法还包括:当桥接转发模块检测到有外部端口扩展模块与其直接相连时,实例化一个内部端口扩展模块;所述外部端口扩展模块向桥接转发模块发送虚拟通道建立请求,其中携带了外部端口扩展模块与终端连接的端口信息,桥接转发模块实例化一个与该虚拟通道相对应的端口,并发送虚拟通道建立响应消息;同时将所述实例化端口,与所述外部端口扩展模块的端口信息的映射关系保存到所述映射表。具体的所述映射表建立方式在图5对应的实施例中详述。
步骤403,桥接转发模块将所述输出端口信息和输入端口信息发送给端口扩展模块;
具体的,所述端口扩展模块是指与桥接转发模块相连的内部端口扩展模块,即内部Port Extender。所述步骤403中具体包括以下步骤:
步骤403a,VLAN-aware Bridge Component根据输出端口生成目的E-CID,判断输出端口与输入端口是否属于同一个复制组,如果是,则执行步骤403b,如果不是,则执行步骤403c;
具体的,所述输出端口或所述输入端口均为外部Port Extender连接终端的端口。
步骤403b,将输入端口作为Ingress_E-CID的值与目的E-CID一起携带在M_UNITDATA.request中,发送给内部Port Extender;
具体的,所述发送给内部Port Extender是通过对应输出端口的实例化端口发送给Controlling Bridge的Port Extender。
步骤403c,将目的E-CID携带在M_UNITDATA.request中,发送给内部PortExtender。
具体的,所述发送给内部Port Extender是通过对应输出端口的实例化端口发送给Controlling Bridge的Port Extender。
进一步的,步骤403a至步骤403c的方案还可以替换为:桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继(Reflective Relay)功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;或者
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果不是,则将输出端口信息发送给内部端口扩展模块,如果是,则判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。
步骤404,端口扩展模块将所述输入端口信息携带在组播数据中发送出去,与外部终端连接的端口根据输入端口信息进行源端口过滤。
具体的,所述端口扩展模块是指与桥接转发模块相连的内部端口扩展模块,即内部Port Extender。内部Port Extender生成输出数据的E-tag,将数据发送给外部PortExtender,外部Port Extender根据携带在E-tag中的输入端口信息对输出数据进行过滤。其中,所述内部Port Extender生成输出数据的E-tag具体为:内部Port Extender根据M_UNITDATA.request携带的Ingress_E-CID和目的E-CID生成输出数据的E-tag。所述外部Port Extender根据携带在E-tag中的输入端口信息对输出数据进行过滤具体为:外部PortExtender在输出Extended Port判断Ingress_E-CID的值是否与本端口的PCID相同,如相同,则进行源端口过滤,否则不进行过滤。
进一步的,在步骤401之后,所述方法还包括:VLAN-aware BridgeComponent判断输出端口数量是否为1,如果是,则将数据通过内部Port Extender和外部Port Extender直接输出,否则执行步骤402。
图5为本发明建立桥接转发模块实例化端口对应输入端口信息的映射表的流程示意图,如图5所示,包括以下步骤:
步骤501,VLAN-aware Bridge component检测到连接了Port Extender;
具体的,当有新的一个或多个外部Port Extender连入时,VLAN-awareBridgeComponent可以检测到有Port Extender与其直接相连。
步骤502,实例化内部Port Extender,形成Controlling Bridge;
具体的,VLAN-aware Bridge Component会实例化一个内部Port Extender。该内部Port Extender连接在VLAN-aware Bridge Component和外部Port Extender之间,它和VLAN-aware Bridge Component共同组成了Controlling Bridge。
步骤503,Port Extender向Controlling Bridge发送虚拟通道建立(E-channelcreate)请求;
具体的,所述新接入的Port Extender向Controlling Bridge发起E-channelcreate请求。
步骤504,VLAN-aware Bridge component实例化与Extended Port对应的端口,发送虚拟通道建立响应,分配与该Extended Port绑定的E-channel的E-CID;
具体的,VLAN-aware Bridge Component实例化一个与该E-channel相对应的端口,并发送E-channel create响应消息,包含分配的E-CID值。
步骤505,VLAN-aware Bridge component保存该实例化端口与对应的E-channel的E-CID的映射表。
具体的,VLAN-aware Bridge Component保存该实例化端口与该E-channel的E-CID的映射表。表1为所述VLAN-aware Bridge Component实例化端口对应Extended Port的E-CID的映射表的一个实例,如表1所示,VLAN-aware BridgeComponent实例化端口与E-CID一一对应,其中对应关系可以参见图1。
VLAN-aware Bridge Component上的实例化端口 | E-CID |
1 | 1 |
2 | 34 |
3 | 96 |
4 | 12 |
5 | 78 |
表1
图6为本发明端口扩展中实现源端口过滤的一个实施例的数据流向示意图,如图6所示,对于组播转发,当终端设备的数据帧经过边缘Port Extender,即Port Extender3时,Port Extender3会给其添加一个E-tag,该E-tag中携带的E-CID为该端口的PCID,本图中E-CID为67。数据帧向交换机方向转发时经过的中间Port Extender,本图中为Port Extender2,对该帧不再做处理,直接透传给Port Extender1。
该数据帧到达Port Extender1后,在Extended Port去掉了E-tag,并转发给相应的VLAN-aware Bridge Component实例化端口。该VLAN-aware BridgeComponent实例化端口与该数据帧进入Extended Bridge的Extended Port相对应。
VLAN-aware Bridge Component的处理过程如前述图3中步骤302和303所述,本图中VLAN-aware Bridge Component判定该组播数据应从实例化端口3、4、5发送给内部PortExtender,同时VLAN-aware Bridge Component通过M_UNITDATA.request原语中的connection_identifier参数将目的E-CID和Ingress_E-CID的值传递给ControllingBridge的Port Extender。
在Port Extender上的端口,都有属于某个E-channel的member/untag set的属性。对于收到的数据帧,Port Extender的端口会根据数据帧里携带的E-CID来进行转发过滤。对于E-CID大于4096的E-channel,内部Port Extender与VLAN-aware BridgeComponent连接的Extended Port上只有一个端口属于该E-channel的member set。
在本实施例中Port Extender1与VLAN-aware Bridge Component上只有一个端口56属于该E-CID标识的E-channel组。所以,虽然有多份组播数据通过VLAN-aware BridgeComponent和Port Extender1之间的内部LAN发送了出去,只有一份数据被Port Extender1上属于该E-channel的端口56接收,到达PortExtender的转发单元。
然后,Port Extender1将根据M_UNITDATA.request原语中的connection_identifier参数生成E-tag。将connection_identifier中携带的目的E-CID的值,填入E-tag的E-CID字段,将Ingress_E-CID的值填入E-tag的Ingress_E-CID字段,如果无Ingress_E-CID的值,则向Ingress_E-CID字段填入0。Port Extender1添加E-tag后,将该组播数据通过Cascade Port发送出去。在Port Extender2处根据E-tag里的E-CID值将数据发送到该E-CID标识的E-channel的所有member set端口上,本图例中为端口56和35。在PortExtender3处同样根据E-tag里的E-CID值将数据发送到该E-CID标识的E-channel的所有member set端口上,本图例中为端口74和67。
在边缘Port Extender的Extended Port上需要根据源E-CID进行源端口过滤,以防止组播数据的循环loop。检查Ingress_E-CID字段,如果该字段的值与本端口的PCID一致,则将该数据过滤;如果该字段的值为0,则不进行源端口过滤。在Extended Port本例中,端口67检查E-tag中携带的源E-CID的值,发现与本端口的PCID一致,则将该数据过滤掉。
图7为本发明端口扩展中实现源端口过滤的装置结构示意图,如图7所示,所述装置包括:桥接转发模块71、内部端口扩展模块72和外部端口扩展模块73,其中,
所述桥接转发模块71,用于接收组播数据,确定所述组播数据的输出端口信息,将所述输出端口信息和输入端口信息发送给内部端口扩展模块72;
具体的,所述桥接转发模块71接收组播数据,具体包括:内部端口扩展模块72从Cascade Port收到从外部端口扩展模块73发送来的数据;内部端口扩展模块72根据E-tag中的E-CID值,将数据转发到相应的与桥接转发模块71连接的Extended Port;在ExtendedPort处去掉E-tag将数据发送给桥接转发模块71。所述桥接转发模块71确定输出端口是根据目的地址和VID查询FDB转发表来确定输出端口。
进一步的,所述桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块,包括:桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果是,则将输出端口信息和输入端口信息发送给内部端口扩展模块;否则将输出端口信息发送给内部端口扩展模块;或者桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;或者桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果不是,则将输出端口信息发送给内部端口扩展模块,如果是,则判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。在具体实施中,桥接转发模块71根据输出端口生成目的E-CID,判断输出端口与输入端口是否属于同一个Replication Group,如果是,则将输入端口作为Ingress_E-CID的值与目的E-CID一起携带在M_UNITDATA.request中,发送给内部端口扩展模块72;否则将目的E-CID携带在M_UNITDATA.request中,发送给内部端口扩展模块72。
所述内部端口扩展模块72,用于将所述组播数据的输入端口信息发送给桥接转发模块71,将携带了所述输入端口信息的组播数据,发送到输出端口所在的外部端口扩展模块73;
具体的,所述输入端口信息具体是输入端口的E-CID。所述内部端口扩展模块72将所述组播数据的输入端口信息发送给桥接转发模块71,具体为:内部端口扩展模块72将组播数据输入端口的E-CID携带在M_UNITDATA.indications原语的connection_identifier参数中,传递给桥接转发模块71。
内部端口扩展模块72将携带了所述输入端口信息的组播数据,发送到输出端口所在的外部端口扩展模块73,具体为:内部端口扩展模块72生成输出数据的E-tag,将数据发送给外部端口扩展模块73。其中,所述内部端口扩展模块72生成输出数据的E-tag具体为:内部端口扩展模块72根据M_UNITDATA.request携带的Ingress_E-CID和目的E-CID生成输出数据的E-tag。
所述外部端口扩展模块73,用于根据输入端口信息进行源端口过滤。
具体的,所述根据输入端口信息进行源端口过滤,具体为:外部端口扩展模块73根据携带在E-tag中的输入端口信息对输出数据进行过滤。在具体实施方式中,外部端口扩展模块73在输出Extended Port判断Ingress_E-CID的值是否与本端口的PCID相同,如相同,则进行源端口过滤,否则不进行过滤。
进一步的,所述桥接转发模块71,还用于将获取的输入端口和所述输出端口的信息发送给内部端口扩展模块72之前,判断输出端口数量是否为1,如果是,则将数据通过内部端口扩展模块72和外部端口扩展模块73直接输出,否则将主动获取或被动接收到的输入端口信息,以及所述输出端口的信息发送给内部端口扩展模块72。
本发明还公开了一种装置,其结构与图7的装置结构相同,不同的是其中各模块的功能,本装置中:
桥接转发模块71,用于接收组播数据,确定所述组播数据的输出端口信息,查询映射表,获得所述组播数据的输入端口信息,将所述输出端口信息和输入端口信息发送给内部端口扩展模块72;
其中,所述映射表中包含桥接转发模块实例化端口对应输入端口信息的映射关系;
具体的,所述桥接转发模块71接收组播数据,具体包括:内部端口扩展模块72从Cascade Port收到从外部端口扩展模块73发送来的数据;内部端口扩展模块72根据E-tag中的E-CID值,将数据转发到相应的与桥接转发模块71连接的Extended Port;在ExtendedPort处去掉E-tag将数据发送给桥接转发模块71。所述桥接转发模块71确定输出端口是根据目的地址和VID查询FDB转发表来确定输出端口。
进一步的,所述桥接转发模块71,还用于检测到有外部端口扩展模块73与其直接相连时,实例化一个内部端口扩展模块72,接收到虚拟通道建立请求后,实例化一个与该虚拟通道相对应的端口,并发送虚拟通道建立响应消息;同时将所述实例化端口,与所述外部端口扩展模块73的端口信息的映射关系保存到所述映射表;
所述新接入的外部端口扩展模块73,用于向桥接转发模块发起虚拟通道建立请求。
进一步的,所述桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块,包括:桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果是,则将输出端口信息和输入端口信息发送给内部端口扩展模块;否则将输出端口信息发送给内部端口扩展模块;或者,桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;或者,桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果不是,则将输出端口信息发送给内部端口扩展模块,如果是,则判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。在具体实施中,桥接转发模块71根据输出端口生成目的E-CID,判断输出端口与输入端口是否属于同一个Replication Group,如果是,则将输入端口作为Ingress_E-CID的值与目的E-CID一起携带在M_UNITDATA.request中,发送给内部端口扩展模块72;否则将目的E-CID携带在M_UNITDATA.request中,发送给内部端口扩展模块72。
内部端口扩展模块72,用于将所述输入端口信息携带在组播数据发送给外部端口扩展模块73;
具体的,内部端口扩展模块72将携带了所述输入端口信息的组播数据,发送到输出端口所在的外部端口扩展模块73,具体为:内部端口扩展模块72生成输出数据的E-tag,将数据发送给外部端口扩展模块73。其中,所述内部端口扩展模块72生成输出数据的E-tag具体为:内部端口扩展模块72根据M_UNITDATA.request携带的Ingress_E-CID和目的E-CID生成输出数据的E-tag。
所述外部端口扩展模块73,用于根据输入端口信息进行源端口过滤。
具体的,所述根据输入端口信息进行源端口过滤,具体为:外部端口扩展模块73根据携带在E-tag中的输入端口信息对输出数据进行过滤。在具体实施方式中,外部端口扩展模块73在输出Extended Port判断Ingress_E-CID的值是否与本端口的PCID相同,如相同,则进行源端口过滤,否则不进行过滤。
进一步的,所述桥接转发模块71,还用于将获取的输入端口和所述输出端口的信息发送给内部端口扩展模块72之前,判断输出端口数量是否为1,如果是,则将数据通过内部端口扩展模块72和外部端口扩展模块73直接输出,否则将主动获取或被动接收到的输入端口信息,以及所述输出端口的信息发送给内部端口扩展模块72。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (8)
1.一种端口扩展中实现源端口过滤的方法,其特征在于,所述方法包括:
桥接转发模块接收组播数据,确定所述组播数据的输出端口信息E-CID;
内部端口扩展模块将所述组播数据的输入端口信息Ingress E-CID传递给桥接转发模块;
桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块;其中,桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继Reflective Relay功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;
内部端口扩展模块将所述输入端口信息携带在组播数据中发送出去,与外部终端连接的端口根据输入端口信息进行源端口过滤。
2.根据权利要求1所述的方法,其特征在于,所述桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块之前,包括:
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组ReplicationGroup,如果是,则将输出端口信息和输入端口信息发送给内部端口扩展模块;否则将输出端口信息发送给内部端口扩展模块;或
当输出端口与输入端口属于同一个复制组时,判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。
3.一种端口扩展中实现源端口过滤的方法,其特征在于,所述方法包括:
桥接转发模块接收组播数据,确定所述组播数据的输出端口信息;
桥接转发模块查询映射表,获得所述组播数据的输入端口信息,所述映射表中包含桥接转发模块实例化端口对应输入端口信息的映射关系;
桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块;其中,桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;
内部端口扩展模块将所述输入端口信息携带在组播数据中发送出去,与外部终端连接的端口根据输入端口信息进行源端口过滤。
4.根据权利要求3所述的方法,其特征在于,所述桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块之前,包括:
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果是,则将输出端口信息和输入端口信息发送给内部端口扩展模块;否则将输出端口信息发送给内部端口扩展模块;或
当输出端口与输入端口属于同一个复制组时,判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。
5.一种端口扩展中实现源端口过滤的装置,其特征在于,所述装置包括:桥接转发模块、内部端口扩展模块和外部端口扩展模块,其中,
所述桥接转发模块,用于接收组播数据,确定所述组播数据的输出端口信息,将所述输出端口信息和输入端口信息发送给内部端口扩展模块;其中,桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;
所述内部端口扩展模块,用于将所述组播数据的输入端口信息传递给桥接转发模块,将所述输入端口信息携带在组播数据发送给外部端口扩展模块;
所述外部端口扩展模块,用于根据输入端口信息进行源端口过滤。
6.根据权利要求5所述的装置,其特征在于,所述桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块,包括:
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果是,则将输出端口信息和输入端口信息发送给内部端口扩展模块;否则将输出端口信息发送给内部端口扩展模块;或
当输出端口与输入端口属于同一个复制组时,判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。
7.一种端口扩展中实现源端口过滤的装置,其特征在于,所述装置包括:桥接转发模块、内部端口扩展模块和外部端口扩展模块,其中,
所述桥接转发模块,用于接收组播数据,确定所述组播数据的输出端口信息,查询映射表,获得所述组播数据的输入端口信息,将所述输出端口信息和输入端口信息发送给内部端口扩展模块;其中,所述映射表中包含桥接转发模块实例化端口对应输入端口信息的映射关系;桥接转发模块判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块;
所述内部端口扩展模块,用于将所述输入端口信息携带在组播数据发送给外部端口扩展模块;
所述外部端口扩展模块,用于根据输入端口信息进行源端口过滤。
8.根据权利要求7所述的装置,其特征在于,所述桥接转发模块将所述输出端口信息和输入端口信息发送给内部端口扩展模块,包括:
桥接转发模块判断所述输出端口与输入端口是否属于同一个复制组,如果是,则将输出端口信息和输入端口信息发送给内部端口扩展模块;否则将输出端口信息发送给内部端口扩展模块;或
当输出端口与输入端口属于同一个复制组时,判断输出端口与输入端口是否一致,如果是,且该端口禁止使能反射中继功能,则将输出端口信息和输入端口信息发送给内部端口扩展模块,否则将输出端口信息发送给内部端口扩展模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110061143.XA CN102684892B (zh) | 2011-03-14 | 2011-03-14 | 一种端口扩展中实现源端口过滤的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110061143.XA CN102684892B (zh) | 2011-03-14 | 2011-03-14 | 一种端口扩展中实现源端口过滤的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102684892A CN102684892A (zh) | 2012-09-19 |
CN102684892B true CN102684892B (zh) | 2018-01-16 |
Family
ID=46816295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110061143.XA Expired - Fee Related CN102684892B (zh) | 2011-03-14 | 2011-03-14 | 一种端口扩展中实现源端口过滤的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102684892B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791170A (zh) * | 2016-03-08 | 2016-07-20 | 盛科网络(苏州)有限公司 | 基于逻辑端口实现端口扩展的方法及装置 |
CN108923966B (zh) * | 2018-06-27 | 2021-06-29 | 新华三技术有限公司 | 1br网络pvst协议的vlan使能方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561045A (zh) * | 2004-03-10 | 2005-01-05 | 中兴通讯股份有限公司 | 一种无线局域网网桥透明桥接的实现方法 |
CN1852240A (zh) * | 2005-10-19 | 2006-10-25 | 华为技术有限公司 | 一种桥接转发方法 |
-
2011
- 2011-03-14 CN CN201110061143.XA patent/CN102684892B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561045A (zh) * | 2004-03-10 | 2005-01-05 | 中兴通讯股份有限公司 | 一种无线局域网网桥透明桥接的实现方法 |
CN1852240A (zh) * | 2005-10-19 | 2006-10-25 | 华为技术有限公司 | 一种桥接转发方法 |
Non-Patent Citations (1)
Title |
---|
IEEE 802.1Qbh/D1.0 Draft Standard for Local and Metropolitan Area Networks-Virtual Btidged Local Area Networks-Amendment: Bridge Port Extension;Data Center Bridging and Interworking Task Groups of IEEE 802.1;《IEEE P802.1Qbh/D1.0》;20101223;第46页第1行至第47页第42行,附图45-1 * |
Also Published As
Publication number | Publication date |
---|---|
CN102684892A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102684979B (zh) | 一种支持虚拟终端的组播数据转发方法及装置 | |
US20240179022A1 (en) | Replicating broadcast, unknown-unicast, and multicast traffic in overlay logical networks bridged with physical networks | |
CN103947160B (zh) | 通过基于trill的网络承载fcoe帧的方法 | |
US7385973B1 (en) | Method and apparatus for VLAN ID discovery | |
EP2696538B1 (en) | Method, system and controlling bridge for obtaining port extension topology information | |
CN101160850B (zh) | 一种转发报文的方法及装置 | |
EP1638252B1 (en) | System and method for securing a VLAN using ethernet connectivity fault management (CFM) functionality | |
US8645567B2 (en) | Method and system for packet filtering for local host-management controller pass-through communication via network controller | |
EP1768335A1 (en) | A virtual private network and the method for the control and transmit of the route | |
CN103795631B (zh) | 部署了以太网虚拟连接的网络中的流量转发方法及设备 | |
US20110255536A1 (en) | Method, system, and apparatus for extranet networking of multicast virtual private network | |
WO2017157206A1 (zh) | 云数据中心互联方法及装置 | |
CN106059881B (zh) | 一种sdn网络及其流量导入导出方法 | |
EP2897328B1 (en) | Method, system and apparatus for establishing communication link | |
CN110351135A (zh) | 多dc中的网络设备配置方法及装置 | |
US20110058559A1 (en) | Vlan data framing and transmission | |
US20030210696A1 (en) | System and method for routing across segments of a network switch | |
CN102684892B (zh) | 一种端口扩展中实现源端口过滤的方法和装置 | |
CN102752182B (zh) | 通过提供商骨干网桥进行的控制帧处理 | |
CN117811875A (zh) | 一种家庭互通网络访问方法和装置 | |
CN103428067B (zh) | 一种基于二层虚拟专用网络的报文转发方法和设备 | |
AU750300B2 (en) | Virtual local area networks with trunk stations | |
WO2014040422A1 (zh) | 介质访问控制地址学习控制方法、装置和路由桥 | |
Cisco | Configuring 802.1Q and Layer 2 Protocol Tunneling | |
CN113014559A (zh) | 一种报文处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180116 Termination date: 20210314 |