一种报文处理的方法及装置与流程

文档序号:12492427阅读:134来源:国知局
一种报文处理的方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种报文处理的方法及装置。



背景技术:

根据TRILL(Transparent Interconnection of Lots of Links,多链接透明互联)协议,终端发送的以太网数据帧,在TRILL网络的入口处会被封装为TRILL数据帧,然后以TRILL数据帧的形式在TRILL网络内部转发。执行TRILL数据帧封装的RB(Route Bridge,路由桥)称为该以太帧的“入口RB”。TRILL数据帧在TRILL网络的出口处会被解封装为以太帧,再转发给目的终端,执行TRILL数据帧解封装的RB称为“出口RB”。

目前,RB主要是通过接收目的终端的数据报文来学习目的终端的MAC(Media Access Control,媒体访问控制)地址表。若没有接收过目的终端的数据报文时,或者学习到的MAC地址已老化,这都会导致RB没能有效地学习到目的终端的MAC地址。所以,当RB接收到发往目的终端的数据报文时,RB会将该数据报文在TRILL网络中进行广播,TRILL网络中其他RB都会接收该数据报文,这样会造成网络的拥堵和资源的浪费,影响极大。并且随着接入层RB的数量越大,造成的影响也越大。



技术实现要素:

本发明实施例提供一种报文处理的方法及装置,能够解决RB没有学习到目的终端的MAC地址而在整个网络中广播发送数据报文的问题。

为达到上述目的,本发明实施例采用如下技术方案:

第一方面,本发明提供一种报文处理的方法,应用于多链接透明互联TRILL网络,所述方法包括:

路由桥RB接收第一终端发送的数据报文,所述数据报文包括所述第一终端的媒体访问控制MAC地址、虚拟局域网VLAN标识和目的终端的MAC地址;

所述RB根据所述数据报文中的所述第一终端的MAC地址和所述VLAN标识学习第一MAC地址表,所述第一MAC地址表包括所述第一终端的MAC地址、所述VLAN标识和所述RB接收所述数据报文的端口标识;

所述RB根据所述第一MAC地址表生成第一MAC地址广播帧,所述第一MAC地址广播帧包括所述第一终端的MAC地址、所述VLAN标识和所述RB的标识;

所述RB向至少一个其他RB发送所述第一MAC地址广播帧。

第二方面,本发明提供一种报文处理的装置,应用于多链接透明互联TRILL网络,所述装置包括:

路由桥RB,用于接收第一终端发送的数据报文,所述数据报文包括所述第一终端的媒体访问控制MAC地址、虚拟局域网VLAN标识和目的终端的MAC地址;

所述RB,还用于根据所述数据报文中的所述第一终端的MAC地址和所述VLAN标识学习第一MAC地址表,所述第一MAC地址表包括所述第一终端的MAC地址、所述VLAN标识和所述RB接收所述数据报文的端口标识;

所述RB,还用于根据所述第一MAC地址表生成第一MAC地址广播帧,所述第一MAC地址广播帧包括所述第一终端的MAC地址、所述VLAN标识和所述RB的标识;

所述RB,还用于向至少一个其他RB发送所述第一MAC地址广播帧。

本发明实施例提供的一种报文处理的方法及装置,当接收到第一终端的数据报文时,RB学习第一MAC地址表,并根据第一MAC地址表生成包含第一终端对应的出口RB的第一MAC地址广播帧,然后向至少一个的其他RB发送第一MAC地址广播帧。相比较于现有技术中RB学习到第一MAC地址表后只转发该数据报文,会造成没有学习到第一MAC地址表的其他RB向该RB广播发送数据报文,造成网络拥堵和资源浪费,影响较大。而本发明实施例中,RB通过发送第一MAC地址广播帧让网络中的其他RB都能够学习到第一终端对应的出口RB。这样,当任一个其他RB有数据报文需要发送给第一终端时,都不需要广播,直接向第一终端对应的出口RB转发数据报文,有效的降低了广播的发生机率,避免了网络拥堵和资源浪费。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种TRILL网络架构图;

图2为本发明实施例提供的一种以太网数据帧的帧格式的示意图;

图3为本发明实施例提供的一种TRILL数据帧的帧格式的示意图;

图4为本发明实施例提供的一种报文处理的方法流程图;

图5为本发明实施例提供的另一种报文处理的方法流程图;

图6为本发明实施例提供的一种报文处理装置的结构示意图;

图7为本发明实施例提供的另一种报文处理装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

目前,TRILL技术把三层路由的稳定、可扩展、高性能的优点,引入了适应性强但性能受限、组网范围受限的二层交换网络,建立了一个灵活、可扩展、可升级的高性能的新二层架构。用户可使用采用TRILL技术的二层交换设备,构建大型的具有高性能、可扩展的灵活支持动态迁移的现代数据中心网络。

通常,如图1所示,TRILL网络分为两级拓扑:接入层RB(例如:RB21、RB22和RB23)用于终端(主要是服务器,如Server A、Server B和Server C)的接入,接入层RB的数量依据TRILL网络的大小而定,通常都在几十、上百台,汇聚层RB(例如:RB11和RB12)用于实现接入层RB之间互联。终端发送的以太网数据帧,在TRILL网络的入口处会被封装为TRILL数据帧,然后以TRILL数据帧的形式在TRILL网络内部转发。在TRILL网络的出口处会将TRILL数据帧解封装成以太帧发送给目的终端。

为了更好理解RB对数据报文的封装和解封装过程,图2给出了进行封装前(或者进行解封装后的)的以太网数据帧的帧格式,如图2所示,以太网数据帧中包含了Inner D-MAC(内层目的MAC)、Inner S-MAC(内层源MAC)、Inner VLAN(内层VLAN标识)和Payload(有效载荷)。

图3给出了进行封装后(或者进行解封装前)的TRILL数据帧的帧格式,TRILL数据帧由三部分组成,1)内层以太网数据帧,即RB接收到第一终端发来的数据报文;2)TRILL头部:主要包含Ingress RB(入口RB)和Egress RB(出口RB)标识,一般为RB的Nickname;3)外层以太帧头:包含Outer S-MAC(外层源MAC地址)、Outer D-MAC(外层目的MAC地址)和Outer VLAN(外层VLAN标识),外层以太帧头主要用于在TRILL网络内部实现二层数据转发,所以其Outer S-MAC和Outer D-MAC会在逐跳RB转发过程中被重新设置。

具体地,RB对以太网数据帧进行封装时,是在以太网数据帧外加上TRILL头部和外层以太帧头得到TRILL数据帧,TRILL数据帧包含两种:第一种是单播TRILL数据帧,TRIILL头部中的Egress RB为目的终端对应的出口RB的Nickname;第二种是组播TRILL数据帧,TRIILL头部中的Egress RB为组播树树根Nickname。而RB对TRILL数据帧进行解封装时,去掉外层以太帧头和TRILL头部得到以太网数据帧。

为了解决TRILL网络中由于RB没有学习到终端的MAC地址,而在TRILL网络中广播数据报文,进而产生网络拥堵和资源浪费的问题,本发明实施例提供一种报文处理的方法,运用于如图1的TRILL网络架构中,如图4所示,包括:

101、RB接收第一终端发送的数据报文。

其中,所述数据报文包括所述第一终端的MAC地址、虚拟局域网VLAN标识和目的终端的MAC地址。

作为一种具体实施例,第一终端发送的数据报文为以太网数据帧,如图2所示,以太网数据帧中包含了Inner D-MAC(内层目的MAC,即目的终端的MAC地址)、Inner S-MAC(内层源MAC,即第一终端的MAC地址)、Inner VLAN(内层VLAN标识)和Payload(有效载荷)。

102、所述RB根据所述数据报文的所述第一终端的MAC地址和所述VLAN标识学习第一MAC地址表。

其中,所述第一MAC地址表包括所述第一终端的MAC地址、所述VLAN标识和所述RB接收所述数据报文的端口标识。

作为一种具体实施例,RB接收到第一终端发送的数据报文后,首先根据数据报文中的第一终端的MAC地址、VLAN标识以及接收该数据报文的端口标识生成第一MAC地址表,即学习了第一终端的MAC地址表。该第一MAC地址表可用于该RB向第一终端发送数据报文。

具体地,RB在本地存储的MAC地址表中查找第一MAC地址表,当本地存储的MAC地址表中不包含第一MAC地址表时,保存第一MAC地址表,并执行步骤103。当本地存储的MAC地址表中包含第一MAC地址表时,则更新第一MAC地址表的老化时间,可选的,不必发送第一MAC地址广播帧。

然后,RB会根据在自身存储的TRILL MAC地址表中查找该数据报文的目的终端的MAC地址,需要注意的是普通的MAC地址表的出口是终端的物理端口(如第一MAC地址表),而TRILL地址表的出口是Nickname(昵称,是RB的标识),该Nickname指向远端的一个RB。这里,RB查找TRILL地址表为转发该数据报文找到下一个RB。当TRILL地址表中包含目的终端的MAC地址时,RB将数据报文封装为TRILL单播数据帧,通过TRILL网络发送至该数据报文的出口RB,由该数据报文的出口RB解封装该TRILL单播数据帧为以太网数据帧,学习到第一终端的MAC地址(MAC地址表的出口为第一终端对应的出口RB),并发送解封装后的以太网数据帧给目的终端。当TRILL MAC地址表中不包含目的终端的MAC地址时,RB将数据报文封装为TRILL组播数据帧发,在整个TRILL网络中广播,当该数据报文的出口RB接收到该数据报文时,将该数据报文解封装,学习第一终端的MAC地址并发送解封装后的以太网数据帧给目的终端。

103、所述RB根据所述第一MAC地址表生成第一MAC地址广播帧。

其中,所述第一MAC地址广播帧包括所述第一终端的MAC地址、所述VLAN标识和所述RB的标识。

作为一种具体实施例,第一MAC地址广播帧为TRILL数据帧,内层以太帧可以是免费ARP报文,也可以是其他报文,在此不做限定。其中,以太帧头部的目的MAC地址为广播地址,源MAC为第一终端的MAC地址,VLAN为第一MAC地址表对应的VLAN标识。TRILL头部的入口RB为该RB的Nickname,出口RB为组播树树根的Nickname。外层以太帧头中的源MAC地址和目的MAC地址则会在逐跳RB转发过程中被重新设置。

可选地,在第一MAC地址表有效期间,RB可周期性发送第一MAC地址广播帧。直到当第一MAC地址表老化删除时,RB才停止发送第一MAC地址广播帧。这样,有利于在第一MAC地址表有效的期间内,TRILL网络中的其他RB存储的TRILL地址表能及时更新第一终端对应的出口RB。

104、所述RB向至少一个其他RB发送所述第一MAC地址广播帧。

作为一种具体实施例,RB根据组播树树根Nickname对应的组播转发表出口发送该数据帧,在TRILL网络中的该组播树对应的其他RB均会接收到第一MAC地址广播帧。

当其他RB接收到第一MAC地址广播帧时,将第一MAC地址广播帧进行解封装,得到以太网数据帧。根据以太网数据帧中的Inner S-MAC和VLAN学习并生成TRILL MAC地址表,包括第一终端的MAC地址、VLAN标识和第一终端对应的出口RB。这样,当其他RB连接的终端需要发送数据报文给第一终端时,该RB可根据生成的TRILL MAC地址表,将数据报文封装为TRILL单播数据帧通过第一终端对应的出口RB发送到第一终端。

可选的,在本步骤之前或者之后,该RB向在步骤1中接收到的数据报文的出口RB发送该数据报文。

具体地,RB会根据在自身存储的TRILL MAC地址表中查找目的终端的MAC地址,当TRILL地址表中包含目的终端的MAC地址时,RB将数据报文封装为TRILL单播数据帧,通过TRILL网络发送至该数据报文的出口RB,由该数据报文的出口RB解封装该TRILL单播数据帧为以太网数据帧,学习到第一终端的MAC地址,并发送解封装后的以太网数据帧给目的终端。当TRILL MAC地址表中不包含目的终端的MAC地址时,RB将数据报文封装为TRILL组播数据帧发,在整个TRILL网络中广播,当该数据报文的出口RB接收到该数据报文时,将该数据报文解封装,学习第一终端的MAC地址并发送解封装后的以太网数据帧给目的终端。

本发明实施例提供的一种报文处理的方法,当接收到第一终端的数据报文时,RB学习第一MAC地址表,并根据第一MAC地址表生成包含第一终端对应的出口RB的第一MAC地址广播帧,然后向至少一个的其他RB发送第一MAC地址广播帧。相比较于现有技术中RB学习到第一MAC地址表后只转发该数据报文,会造成没有学习到第一MAC地址表的其他RB向该RB广播发送数据报文,造成网络拥堵和资源浪费,影响较大。而本发明实施例中,RB通过发送第一MAC地址广播帧让网络中的其他RB都能够学习到第一终端对应的出口RB。这样,当任一个其他RB有数据报文需要发送给第一终端时,都不需要广播,直接向第一终端对应的出口RB转发数据报文,有效的降低了广播的发生机率,避免了网络拥堵和资源浪费。

进一步的,在图4所示方法的基础上,为了节省广播流量,需要对需要发送第一MAC地址广播帧的情况进行进一步的筛选,因此,本发明实施例还提供了一种报文处理的方法,如图5所示,所述方法包括:

201、RB接收第一终端发送的数据报文。

其中,所述数据报文包括所述第一终端的MAC地址、虚拟局域网VLAN标识和目的终端的MAC地址。

202、RB根据数据报文中第一终端的MAC地址和VLAN标识学习第一MAC地址表。

其中,所述第一MAC地址表包括所述第一终端的MAC地址、所述VLAN标识和所述RB接收所述数据报文的端口标识。

步骤201和步骤202可以参考步骤101-102,此处不再赘述。

203、RB判断第一终端的MAC地址是否满足预设条件。

作为一种具体的实施例,RB可以实现策略匹配,即为第一终端设置预设条件,该预设条件用于判断第一终端是否需要被其他RB学习到MAC地址。例如:当第一终端是重要的会被频繁访问的服务器,则RB代理发送第一MAC地址广播帧,这样其他RB都学习到第一终端的MAC地址表,有利于其他RB向第一终端发送数据报文时,能确定第一终端对应的出口RB,直接单播转发数据报文即可,避免因没有学习到第一终端对应的出口RB而将数据报文进行广播的情况发生,有利于避免广播发生。而当第一终端是不重要的不会被频繁访问的服务器时,其他RB也不会经常访问第一终端,所以不必学习到第一终端对应的出口RB,RB也不需要发送第一MAC地址广播帧,从而节省了广播流量。对于预设条件的具体设置可根据实际情况进行,在此不做限定。对于预设条件的判断可通过数据报文的源MAC地址,也可以通过数据报文的源IP地址来判断,在此也不做限定。

因此,当第一终端的MAC地址满足预设条件时,执行步骤204,当第一终端的MAC地址不满足预设条件时,执行步骤207。

204、RB根据数据报文的目的终端的MAC地址和VLAN标识来判断数据报文的转发类型。

其中,数据报文的转发类型包括:单播转发和组播转发。单播转发主要用于已知单播报文的转发。组播转发用于组播、广播和未知单播报文的转发。

作为一种具体的实施例,当数据报文为单播转发时,只有该数据报文的出口RB接收到该数据报文,即只有该数据报文的出口RB能学习到第一终端的MAC地址,为了让网络中其他RB也能学习到第一终端的MAC地址,则需要执行步骤205。而当数据报文为组播转发时,其他RB通过接收该数据报文也能学习到第一终端的MAC地址,所以此时直接执行步骤207。

205、RB根据所述第一MAC地址表生成第一MAC地址广播帧。

其中,所述第一MAC地址广播帧包括所述第一终端的MAC地址、所述VLAN标识和所述第一终端对应的出口RB。

206、RB向至少一个其他RB发送所述第一MAC地址广播帧。

207、RB转发数据报文。

步骤205和步骤207可以参考步骤101-104,此处不再赘述。

需要说明的是,本实施例并不限定步骤207与其他步骤之间的顺序关系。

208、RB在接收到第二MAC地址广播帧时,根据第二MAC地址广播帧生成第二MAC地址表。

其中,所述第二MAC地址表包括第二终端的MAC地址、VLAN标识和所述第二终端对应的出口RB。

作为一种具体的实施例,当RB接收到第二MAC地址广播帧时,将第二MAC地址广播帧进行解封装,得到以太网数据帧。根据以太网数据帧中的Inner S-MAC和VLAN学习并生成第二MAC地址表,第二MAC地址表属于TRILL MAC地址表,包括第二终端的MAC地址、VLAN标识和第二终端对应的出口RB。这样,当第一终端需要发送数据报文给第二终端时,RB可根据生成的第二MAC地址表,将数据报文封装为TRILL单播数据帧通过第二终端的出口RB发送到第二终端。

本发明实施例提供的一种报文处理的方法,当第一终端满足预设条件时,且第一终端发送的数据报文为单播转发类型时,在转发数据报文时,发送第一MAC地址广播帧。相比较于现有技术中RB学习到第一MAC地址表后只转发该数据报文,会造成没有学习到第一MAC地址表的其他RB向该RB广播发送数据报文,造成网络拥堵和资源浪费,影响较大。而本发明实施例中,RB通过判断第一终端是否满足预设条件,以及转发的数据报文是否为单播转发类型,进一步筛选需要发送第一MAC地址广播帧的情况,在有效的降低了广播的发生机率的同时,也节省了广播流量,节省了网络资源。

本发明实施例还提供一种报文处理的装置60,如图6所示,所述装置应用于多链接透明互联TRILL网络,所述装置包括:

接收单元61,用于接收第一终端发送的数据报文,所述数据报文包括所述第一终端的媒体访问控制MAC地址、虚拟局域网VLAN标识和目的终端的MAC地址.

学习单元62,用于根据所述接收单元61接收到的所述数据报文中的所述第一终端的MAC地址和所述VLAN标识学习第一MAC地址表,所述第一MAC地址表包括所述第一终端的MAC地址、所述VLAN标识和所述RB接收所述数据报文的端口标识。

生成单元63,用于根据所述学习单元62学习到的所述第一MAC地址表生成第一MAC地址广播帧,所述第一MAC地址广播帧包括所述第一终端的MAC地址、所述VLAN标识和所述RB的标识。

发送单元64,用于向至少一个其他RB发送所述生成单元63生成的所述第一MAC地址广播帧。

本发明实施例提供的一种报文处理的装置,当接收到第一终端的数据报文时,RB学习第一MAC地址表,并根据第一MAC地址表生成包含第一终端对应的出口RB的第一MAC地址广播帧,然后向至少一个的其他RB发送第一MAC地址广播帧。相比较于现有技术中RB学习到第一MAC地址表后只转发该数据报文,会造成没有学习到第一MAC地址表的其他RB向该RB广播发送数据报文,造成网络拥堵和资源浪费,影响较大。而本发明实施例中,RB通过发送第一MAC地址广播帧让网络中的其他RB都能够学习到第一终端对应的出口RB。这样,当任一个其他RB有数据报文需要发送给第一终端时,都不需要广播,直接向第一终端对应的出口RB转发数据报文,有效的降低了广播的发生机率,避免了网络拥堵和资源浪费。

进一步地,如图7所示,所述装置60,还包括存储单元65,所述存储单元用于存储MAC地址表。

所述学习单元62,还用于当所述存储单元65存储的MAC地址表中不包含所述第一MAC地址表时,保存所述第一MAC地址表;当所述存储单元65存储的MAC地址表中包含所述第一MAC地址表时,更新所述第一MAC地址表的老化时间。

所述装置60还包括判断单元66,所述判断单元66用于判断所述学习单元62学习到的所述第一终端的MAC地址是否满足预设条件,所述预设条件用于判断所述第一终端是否需要发送所述第一MAC地址广播帧。

所述发送单元64,还用于在所述第一MAC地址表老化之前,按照预定时间间隔发送所述第一MAC地址广播帧。

所述接收单元61,还用于接收到其他RB发送的第二MAC地址广播帧,所述第二MAC地址广播帧包括第二终端的MAC地址、VLAN标识和所述第二MAC地址广播帧的入口RB的标识。

所述学习单元62,还用于根据所述接收单元61接收到的所述第二MAC地址广播帧学习第二MAC地址表,所述第二MAC地址表包括所述第二终端的MAC地址、所述VLAN标识和所述第二终端对应的出口RB的标识,所述第二终端对应的出口RB为所述第二MAC地址广播帧的入口RB。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1