背景技术
BPDU Tunnel(隧道)技术允许来自用户网络的、二层管理协议的BPDU(Bridge Protocol Data Unit,桥协议数据单元)以隧道的形式通过二层交换网络(比如,运营商网络),从而对位于不同地域的用户网络而言,其BPDU报文能够实现透明传输。
如图1所示,显示了在二层交换网络中透传BPDU报文的工作情况:用户网络A包括通过运营商网络连接的A1和A2,通过在运营商网络两端的输入/输出设备上配置BPDU Tunnel功能,来实现用户网络A的BPDU报文在运营商网络中的透明传输,而不同用户网络的BPDU报文在运营商网络中相互隔离。
具体的,进行BPDU报文透传的方案一般包括:
在入隧道方向,如图2A所示,输入/输出设备对于用户网络发送的BPDU报文,识别该用户网络相应的VLAN,相应添加VLAN的TAG标记(Ttag)并将其作为负载进行封装,以及,修改BPDU报文原始目的MAC地址(DMAC,需要指出的是,本文中涉及的DMAC均表示BPDU报文原始目的MAC地址)为相应VLAN的隧道目的MAC地址(TMAC,需要指出的是,本文中涉及的TMAC均表示隧道目的MAC地址),并将修改后的报文发送给出隧道方向的输入/输出设备;例如,输入端的输入/输出设备将来自用户网络的BPDU报文的DMAC(如:0x0180-C200-0000)修改为特殊的组播MAC地址即TMAC(如:0x010F-E200-0003);
在二层交换网络中,封装后的BPDU报文作为数据报文在用户网络所属的VLAN中转发;
在出隧道方向,如图2B所示,输入/输出设备对接收到的BPDU报文进行解封装,执行负载检查,如果是携带Ttag的BPDU报文,则去除VLAN的Ttag,恢复TMAC为DMAC;例如,输出端的输入/输出设备根据该特殊的组播MAC地址即TMAC(如:0x010F-E200-0003)识别出BPDU报文,将其还原为DMAC(如:0x0180-C200-0000),并根据该DMAC将BPDU报文送到指定的用户网络。
上述进行BPDU报文透传的方案可参见公开号为CN1863148的发明专利申请。
但是,在上述技术方案中,限于隧道目的MAC地址的数目限制,而且考虑到识别的复杂性,一般对于一个VLAN,仅赋予一个隧道目的MAC地址,且BPDU报文将被复制转发给VLAN中的全部输入/输出设备;由于在一个VLAN中,往往具有多个输入/输出设备,而其中可能仅有部分是BPDU报文真正的目的输入/输出设备。在这种情况下,输入/输出设备由于无法通过TMAC对真正的目的输入/输出设备加以区分,因此必须对BPDU内容中的协议类型字段进行识别,根据报文的具体类型确定相应的原始目的MAC。
这就意味着,出隧道方向的输入/输出设备必须预先配置报文具体类型与原始目的MAC地址的对应关系,并对接收到的每一个BPDU报文都进行解封装,这无疑增加了输入/输出设备的资源开销,同时实现也相对复杂。具体来说,所有接收到BPDU报文的输入/输出设备都要执行解封装-协议类型字段识别的步骤,如果与本设备配置的报文具体类型匹配,则按照原始目的MAC地址进行报文转发;如果不匹配,说明本输入/输出设备不具备相应的原始目的MAC地址,抛弃该BPDU报文,则前面所作的解封装和字段识别等处理工作都成为了毫无意义的资源浪费。
同时,由于出隧道方向的输入/输出设备必须预先配置报文具体类型与原始目的MAC地址的对应关系,这也就意味着输入/输出设备仅对其能够识别的二层管理协议加以支持,扩展性和灵活性都很差,这也造成了现有BPDU隧道技术只能解决有限且固定的几个二层管理协议,如STP(Spanning TreeProtocol,生成树协议)、802.1x协议、IGMP(Internet Group ManagementProtocol,Internet组管理协议)等。
可以看出,现有技术中在二层交换网络中透传BPDU报文的技术方案存在着处理资源浪费、扩展性及灵活性差的缺陷,目前尚无妥善的解决方案。
发明内容
本发明的实施例旨在提供能够在二层交换网络中透传BPDU报文的技术方案,使二层管理协议的BPDU报文能够简单有效的实现在二层交换网络中的透传,且无需受限于二层管理协议的具体类型。
为实现上述目的,本发明的实施例提供了一种在二层交换网络中透传BPDU报文的方法,适用于经二层交换网络中BPDU隧道连接的、处于不同地域的用户网络,且该用户网络通过BPDU隧道透传BPDU报文来实现统一的网络管理;包括以下步骤:
S1、在入BPDU隧道端,封装BPDU报文,将该BPDU报文的原始目的MAC地址添加到封装后的报文中;
S2、通过BPDU隧道发送封装后的报文;
S3、在出BPDU隧道端,通过获取并识别所接收到报文的原始目的MAC地址,执行到相应用户网络的报文转发。
为实现上述目的,本发明的实施例还提供了一种在二层交换网络中透传BPDU报文的***,适用于经二层交换网络中BPDU隧道连接的、处于不同地域的用户网络,且该用户网络通过相应的BPDU隧道透传BPDU报文来实现统一的网络管理;包括:
封装单元,设置在入BPDU隧道端,用于封装BPDU报文,将该BPDU报文的原始目的MAC地址添加到封装后的报文中;
发送单元,设置在入BPDU隧道端并与该封装单元连接,用于通过BPDU隧道发送封装后的报文;
地址获取单元,分别设置在出BPDU隧道端,用于获取所接收到报文的原始目的MAC地址;
转发单元,分别设置在出BPDU隧道端并与该地址获取单元连接,用于识别该原始目的MAC地址并执行到相应用户网络的报文转发。
为实现上述目的,本发明的实施例还提供了一种输入/输出设备,用于连接二层交换网络和用户网络,作为该二层交换网络中BPDU隧道的入BPDU隧道端或者出BPDU隧道端,通过相应的BPDU隧道透传BPDU报文来实现所连接用户网络与处于其它地域的用户网络的统一管理;包括:
封装单元,用于在该输入/输出设备作为入BPDU隧道端的情况下,封装BPDU报文,将该BPDU报文的原始目的MAC地址添加到封装后的报文中;
发送单元,与该封装单元连接,用于通过BPDU隧道发送封装后的报文;
地址获取单元,用于在该输入/输出设备作为出BPDU隧道端的情况下,用于获取所接收到报文的原始目的MAC地址;
转发单元,与该地址获取单元连接,用于识别该原始目的MAC地址并执行到相应用户网络的报文转发。
由上述技术方案可知,本发明的实施例通过将BPDU报文的原始目的MAC地址添加到封装后的报文中,并在出BPDU隧道端加以识别,具有以下有益效果:
1、避免了全部出BPDU隧道端的解封装识别操作,简单有效地实现了二层管理协议的BPDU报文在二层交换网络中的透传;
2、无需关注具体的二层管理协议类型,具有良好的扩展性和灵活性。
通过以下参照附图对优选实施例的说明,本发明的上述以及其它目的、特征和优点将更加明显。
具体实施方式
下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。
首先必须说明的是,本发明实施例提供的在二层交换网络中透传BPDU报文的技术方案,适用于经二层交换网络(如运营商网络)中BPDU隧道连接的、处于不同地域的用户网络,且该用户网络通过相应的BPDU隧道透传BPDU报文来实现统一的网络管理;由于BPDU隧道技术已经比较成熟,因此本发明不就BPDU隧道透传的具体细节加以说明,仅就本发明的改进之处加以描述。
请结合附图3,提供了本发明在二层交换网络中透传BPDU报文的方法一实施例的流程图,包括以下步骤:
S1、在入BPDU隧道端,封装BPDU报文,将该BPDU报文的DMAC添加到封装后的报文中;
目前,一般是在出BPDU隧道端,通过报文的协议类型字段来匹配确定原始目的MAC地址。由于这种方式不但限制了所能够透传的协议类型,而且存在较大的***开销,甚至可能在识别出协议类型字段后发现并不适用于本出BPDU隧道端,因此造成了处理资源的浪费,因此本发明的技术方案从报文封装着手,通过步骤S1的处理,使封装后的BPDU报文直接携带其DMAC,以达致出BPDU隧道端快速识别的目的。
S2、通过BPDU隧道发送封装后的报文;
在本步骤S2中,是根据二层交换网络的VLAN TAG进行报文的复制发送,因此该用户网络在该二层交换网络中的全部隧道端口都能够收到该报文的副本。
S3、在出BPDU隧道端,通过获取并识别所接收到报文的DMAC,执行到相应用户网络的报文转发。
但在本发明的实施例中,由于报文携带有DMAC,因此本步骤S3无需进行协议类型字段的识别,而是直接获取DMAC,避免了现有技术中先要进行解封装再识别的繁琐步骤。
具体的,请参见图4,步骤S3包括:
S31、出BPDU隧道端识别所接收到报文的DMAC;
S32、如果该DMAC与该出BPDU隧道端所指定的用户网络MAC地址匹配,则将该接收到的报文解封装为BPDU报文,并根据该DMAC向用户网络转发该BPDU报文。
可以看出,在本步骤S32中提供了可能出现的一种情况,也是基于本发明报文封装改进的相应处理方案,针对性的由需要进行BPDU报文转发的出BPDU隧道端进行解封装和后续处理,这是本发明的一个优势所在。
举例来说,如果在用户网络所对应的二层交换网络VLAN中,多个端口彼此形成BPDU隧道,且部分端口由用户配置为支持STP协议,部分端口由用户配置为支持IGMP协议;当入BPDU隧道端口封装发送STP协议报文时,由于硬件层次无法区分所封装的具体是何种协议,则按照传统方式,所有接收到该报文的端口都需要进行解封装和报文类型识别,在识别出STP协议时,才能确定最终需要进行报文转发的端口。而在本发明所提供的实施例中,通过对DMAC的识别,直接就可以确定需要进行报文转发的端口。
本发明的另一个优势在于,不需要关注协议的具体类型,甚至可以是本设备不支持的协议:通过在BPDU隧道端指定MAC地址的方式实现对透传协议的配置,即用户可以通过配置界面,指定对任意的协议报文进行透传,从而支持最广泛的二层协议,包括隧道端不能识别的二层管理协议。
S33、如果DMAC与出BPDU隧道端所指定的用户网络MAC地址不匹配,则丢弃接收到的报文,即相应的出BPDU隧道端口无需进行后续的处理。
可以看出,在本步骤S33中提供了可能出现的另一种情况,避免了全部端口都进行解封装所存在的资源损耗问题。
通过上述两个实施例,避免了全部出BPDU隧道端的解封装识别操作,简单有效地实现了二层管理协议的BPDU报文在二层交换网络中的透传;无需关注具体的二层管理协议类型,因此本方法所适用的二层管理协议具有良好的扩展性和灵活性。
具体的,在入BPDU隧道端,上述步骤S1可采取以下步骤实现,如图5A所示:
S11、识别发送该BPDU报文的用户网络相应的VLAN以获得二层交换网络内的转发对象,并从所述BPDU报文中提取DMAC以供报文封装之用;
S12、在该BPDU报文中相应添加VLAN的TAG标记,并将该DMAC替换为VLAN对应的隧道目的MAC地址(TMAC);
S13、封装该BPDU报文;
其中,步骤S12~S13与现有技术的处理相同,不再赘述;
S14、将提取的DMAC地址添加到封装后的报文中;具体的,可以将该DMAC作为报文的后缀,加在封装后报文的末尾;需要指出,该DMAC可以添加到封装报文的任何部分,但作为报文后缀有利于后续处理,属于较佳的实施方案。
其中,步骤S1处理前后,BPDU报文结构示意图如图5B所示。可以看出,经过上述步骤S1的处理后,步骤S2中是根据该TMAC发送封装后的报文。
相应的,在出BPDU隧道端,上述步骤S32可采取以下步骤实现,如图6A所示:
S321、将接收到的报文解封装为BPDU报文;
S322、去除BPDU报文中VLAN的TAG标记;
S323、将TMAC替换为DMAC;
S324、按照DMAC将BPDU报文发送给相应的用户网络。
其中,步骤S32处理前后,BPDU报文结构示意图如图6B所示。
下面通过一个具体实施例,对本发明所提供的在二层交换网络中透传BPDU报文的方法加以描述,参见图7。
在本实施例中,user1和user3指定对DMAC为000f-e200-0004的报文进行隧道透传。那么,根据本发明,便在两个用户间形成了一个该报文的二层隧道。则报文从user1端口进入后,DMAC替换为TMAC并打上隧道的TAG,报文经过中间几个交换设备的转发,到达user3相连的端口,由于该端口为报文保存的DMAC地址的Tunne1出口,因而进行出隧道处理,从报文的末尾取出DMAC地址,将采用该DMAC置换TMAC,同时去除隧道的TAG,报文便恢复成了原始格式。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:
S1、在入BPDU隧道端,封装BPDU报文,将所述BPDU报文的原始目的MAC地址添加到封装后的报文中;
S2、通过BPDU隧道发送所述封装后的报文;
S3、在出BPDU隧道端,通过获取并识别所接收到报文的原始目的MAC地址,执行到相应用户网络的报文转发。
所述的存储介质包括:ROM/RAM(Read Only Memory/Random-AccessMemory,只读存储器/随机访问内存)、磁碟或者光盘等。
本发明的实施例还提供了在二层交换网络中透传BPDU报文的***100,同样适用于经二层交换网络中BPDU隧道连接的、处于不同地域的用户网络,且该用户网络通过相应的BPDU隧道透传BPDU报文来实现统一的网络管理。
如图8所示,所提供的在二层交换网络中透传BPDU报文的***100的一个实施例包括:
封装单元101,设置在入BPDU隧道端,用于封装BPDU报文,将BPDU报文的DMAC地址添加到封装后的报文中;
发送单元102,设置在入BPDU隧道端并与封装单元101连接,用于通过BPDU隧道发送封装后的报文;
地址获取单元103,分别设置在出BPDU隧道端,用于获取所接收到报文的DMAC;
转发单元104,分别设置在出BPDU隧道端并与地址获取单元103连接,用于识别DMAC并执行到相应用户网络的报文转发。
可以看出,通过上述在二层交换网络中透传BPDU报文的***100的处理,可以直接识别DMAC,简单有效地实现二层管理协议的BPDU报文在二层交换网络中的透传;同时无需关注具体的二层管理协议类型,仅仅通过指定原始目的MAC地址即可实现对最广泛二层管理协议的支持,因此本***的应用对于二层管理协议而言,具有良好的扩展性和灵活性。
由于本发明所提供的在二层交换网络中透传BPDU报文的***100直接进行DMAC的识别,因此无需对全部接收到的报文都进行解封装处理,这是本发明的一个优点所在。因此,转发单元104可相应包括:
地址识别模块1041,用于识别所接收到报文的DMAC是否与所在出BPDU隧道端所指定的用户网络MAC地址匹配;
解封装发送模块1042,用于接受地址识别模块1041的匹配触发,将接收到的报文解封装为BPDU报文,并根据DMAC地址向用户网络转发BPDU报文;
报文丢弃模块1043,用于接受地址识别模块1041的不匹配触发,丢弃接收到的报文。
具体的,封装单元101可以包括:
报文识别模块1011,用于识别发送BPDU报文的用户网络相应的VLAN并从所述BPDU报文中提取DMAC;
报文标记模块1012,与报文识别模块1011连接,用于在BPDU报文中相应添加VLAN的TAG标记,并将DMAC替换为VLAN对应的TMAC;
报文封装模块1013,与报文标记模块1013连接,用于封装报文标记模块1012处理后的BPDU报文;
原始目的MAC地址添加模块1014,与报文识别模块1011和报文封装模块1013连接,用于将提取的DMAC添加到封装后的报文中。
相应的,转发单元104中的解封装发送模块1042可以包括:
解封装子模块(图中未示),用于将接收到的报文解封装为BPDU报文;
反标记子模块(图中未示),用于去除解封装处理后BPDU报文中VLAN的TAG标记,并将VLAN的TMAC替换为DMAC;
报文转发子模块(图中未示),用于按照DMAC将反标记处理后的BPDU报文发送给相应的用户网络。
参见图9,显示了在二层交换网络中透传BPDU报文的***100的另一个实施例。
本发明的实施例还提供了一种输入/输出设备200,用于连接二层交换网络和用户网络,作为该二层交换网络中BPDU隧道的入BPDU隧道端或者出BPDU隧道端,通过相应的BPDU隧道透传BPDU报文来实现所连接用户网络与处于其它地域的用户网络的统一管理。
如图10所示,该输入/输出设备200包括:
封装单元201,用于在输入/输出设备200作为入BPDU隧道端的情况下,封装BPDU报文,将该BPDU报文的DMAC添加到封装后的报文中;
发送单元202,与封装单元201连接,用于通过BPDU隧道发送封装后的报文;
地址获取单元203,用于在输入/输出设备200作为出BPDU隧道端的情况下,用于获取所接收到报文的DMAC;
转发单元204,与地址获取单元203连接,用于识别DMAC地址并执行到相应用户网络的报文转发。
具体的,该转发单元204可以与本发明所提供的在二层交换网络中透传BPDU报文的***100中的转发单元104采用同样的结构,在此不再赘述。
可以看出,通过本发明提供的输入/输出设备200,当其作为BPDU隧道端连接用户网络和二层交换网络时,能够主动将DMAC封装在报文中,并能够通过识别接收到报文的DMAC地址来确定是否进行解封装和转发的操作。从而,当二层交换网络中设此输入/输出设备作为BPDU隧道端时,能够简单有效地实现二层管理协议的BPDU报文在二层交换网络中的透传;且无需关注具体的二层管理协议类型。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。