CN103152265A - 一种spb网络中的报文转发方法和设备 - Google Patents
一种spb网络中的报文转发方法和设备 Download PDFInfo
- Publication number
- CN103152265A CN103152265A CN2013100951036A CN201310095103A CN103152265A CN 103152265 A CN103152265 A CN 103152265A CN 2013100951036 A CN2013100951036 A CN 2013100951036A CN 201310095103 A CN201310095103 A CN 201310095103A CN 103152265 A CN103152265 A CN 103152265A
- Authority
- CN
- China
- Prior art keywords
- equipment
- mac address
- opposite end
- data message
- access equipment
- 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
Images
Abstract
本发明公开了一种SPB网络中的报文转发方法,应用于用户接入设备,该方法包括:本地用户接入设备以自身为根节点通过最短路径优先SPF算法获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;本地用户接入设备对从用户侧接收到的数据报文进行MAC-in-MAC封装,将对端用户接入设备的MAC地址封装为骨干网目的MAC地址B-DA,将本地用户接入设备的MAC地址封装为骨干网源MAC地址B-SA,通过所述最短路径将封装后的数据报文转发到对端用户接入设备。本发明还公开了一种SPB网络中的报文转发方法及设备。采用本发明能够减轻运营商的压力。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种SPB网络中的报文转发方法和设备。
背景技术
最短路径桥MAC-in-MAC(SPBM)技术可以运用于运营商骨干网络。运营商骨干网络由运营商骨干网桥(PBB,Provider Backbone Bridge)类型的设备以及设备之间的骨干链路组成,设备可划分为骨干网边缘网桥(BEB,BackboneEgdge Bridge)、骨干网核心网桥(BCB,Backbone Core Bridge)等类型。SPBM技术在运营商骨干网络中的应用最终体现在转发上:BEB设备将来自用户网络的报文进行MAC-in-MAC封装,并将经过MAC-in-MAC封装的报文简称为M-in-M报文转发到骨干网络中;BCB设备根据骨干网媒体接入控制地址(B-MAC)和骨干网VLAN(B-VLAN)转发M-in-M报文;最后报文到达目的侧的BEB设备,BEB设备将来自骨干网络的M-in-M报文进行解封装,并转发到目的侧用户网络中。
现有SPBM组网示意图如图1所示。用户网络中的用户接入设备(MU)将用户(PC)的数据报文转发给BEB设备。MU是二层交换设备,只用于转发用户数据报文。现有BEB设备学习用户的MAC地址,在BEB设备上查找MAC表项,如果没有查找到对应MAC表项,需要在实例内广播。所以现有技术的报文转发过程,用户MAC数量庞大,对BEB设备MAC表容量要求很高,同时报文复制也会对核心设备的转发形成压力,容易出现丢包,例如新增的未知单播报文复制占用了链路带宽,导致拥塞。而且现有技术不能支持等价转发,等价转发会造成MAC表频繁变化。例如,MU1从BEB1设备接收到源MAC是BEB1的报文,学习MU1连接BEB1的接口;如果MU1从BEB2设备接收到目的MAC是BEB1的报文,则从MU1连接BEB1的接口将报文转发出去;但是如果MU1从BEB2设备接收到源MAC是BEB1的报文,又学习MU1连接BEB2的接口,这样就会造成MAC表项不断被修改,造成网络的震荡。
发明内容
本发明的目的在于提供一种SPB网络中的报文转发方法和设备,能够减少运营商的压力。
为实现上述发明目的,本发明提供了一种SPB网络中的报文转发方法,应用于用户接入设备,该方法包括:
本地用户接入设备以自身为根节点通过最短路径优先SPF算法获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
本地用户接入设备对从用户侧接收到的数据报文进行最短路径桥MAC-in-MAC封装,将对端用户接入设备的MAC地址封装为骨干网目的MAC地址B-DA,将本地用户接入设备的MAC地址封装为骨干网源MAC地址B-SA,通过所述最短路径将封装后的数据报文转发到对端用户接入设备。
进一步地,本地用户接入设备未找到用户目的MAC表项时,根据实例内用户接入设备的数量复制数据报文,数据报文的B-DA分别封装为实例内不同用户接入设备的MAC地址,向实例内所有用户接入设备单播发送数据报文。
进一步地,获取到对端用户接入设备的最短路径的方法包括:
A、将所述本地MU加入优选集合;
B、将与本地MU直连的所有BEB设备加入到待选集合,并计算所述直连骨干网边缘网桥BEB设备到本地MU的距离;
C、从待选集合中选择离本地MU最近的BEB设备加入优选集合;
D、将步骤C中加入优选集合的BEB设备的直连邻居BEB设备加入到待选集合,并计算所述邻居BEB设备到本地MU的距离;如果所述邻居BEB设备已经加入待选集合,则更新此邻居BEB设备到本地MU的距离;
E、重复步骤C至D,直到本地MU直连的BEB设备都加入了优选集合;
F、将待选集合中距离本地MU最近的BEB设备依次加入优选集合,重复此步骤,直到待选集合为空;
G、根据优选集合获取本地MU到每个BEB设备的最短路径树,从而获取与BEB设备连接的对端MU的最短路径。
进一步地,所述将步骤C中加入优选集合的BEB设备的直连邻居BEB设备加入到待选集合的方法为:
本地用户接入设备根据实例内链路状态数据包LSP报文的链路类型判断是否将步骤C中加入优选集合的BEB设备的直连设备加入待选集合,当链路类型为骨干隧道时,将步骤C中加入优选集合的BEB设备的直连邻居BEB设备加入到待选集合;所述链路类型携带在LSP报文的类型长度值TLV结构中。
进一步地,本地用户接入设备收到从对端用户接入设备发送的数据报文时,学习数据报文中作为B-SA的对端用户接入设备MAC地址和数据报文中的用户源MAC地址,形成用户目的MAC表项;
本地用户接入设备收到所连接用户发送的数据报文时,学习数据报文中的用户源MAC地址,根据数据报文中的用户目的MAC地址查找用户目的MAC表项,确定本地用户接入设备上所封装的B-DA为对端用户接入设备MAC地址,并查找到对端用户接入设备的MAC表项后,根据所述到对端用户接入设备的MAC表项将所连接用户发送的数据报文转发出去。
进一步地,本地用户接入设备收到从对端用户接入设备发送的数据报文时,该方法进一步包括:本地用户接入设备对从对端用户接入设备接收到的数据报文进行解封装,根据数据报文中的目的MAC地址和所属VLAN,查用户MAC表项,将解封后的数据报文发送给对应的用户。
为实现上述发明目的,本发明还提供了一种SPB网络中的报文转发方法,应用于骨干网边缘网桥BEB设备,该方法包括:
BEB设备计算到对端用户接入设备的最短距离,获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
BEB设备收到数据报文后,查找到对端用户接入设备的MAC表项,根据到对端用户接入设备的MAC表项将数据报文转发出去。
进一步地,如果对应的出接口为公网隧道,则修改B-DA为隧道对端的BEB设备的MAC地址后根据到对端用户接入设备的MAC表项中的下一跳转发出去。
进一步地,如果对应的出接口为接入链路,则根据到对端用户接入设备的MAC表项中的下一跳将数据报文转发出去;或者修改B-DA为对端用户接入设备的MAC地址后根据到对端用户接入设备的MAC表项中的下一跳转发出去。
为实现上述发明目的,本发明还提供了一种用户接入设备,应用于最短路径桥SPB网络中,该设备包括:
第一最短路径获取单元,用于以自身为根节点通过SPF算法获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
封装单元,对从用户侧接收到的数据报文进行最短路径桥MAC-in-MAC SPBM封装,将对端用户接入设备的MAC地址封装为骨干网目的MAC地址B-DA,将本地用户接入设备的MAC地址封装为骨干网源MAC地址B-SA;
第一转发单元,用于通过所述最短路径将封装后的数据报文转发到对端用户接入设备。
进一步地,所述第一最短路径获取单元未获取到用户目的MAC表项时,所述封装单元,还用于根据实例内用户接入设备的数量复制数据报文,数据报文的B-DA分别封装为实例内不同用户接入设备的MAC地址,通过第一转发单元向实例内所有用户接入设备单播发送数据报文。
进一步地,所述用户接入设备还包括MAC学习单元,用于收到从对端用户接入设备发送的数据报文时,学习数据报文中作为B-SA的对端用户接入设备MAC地址和数据报文中的用户源MAC地址,形成用户目的MAC表项;
封装单元,还用于收到所连接用户发送的数据报文时,根据数据报文中的用户目的MAC地址查找用户目的MAC表项确定本地用户接入设备上所封装的B-DA为对端用户接入设备MAC地址。
进一步地,所述用户接入设备还包括解封装单元,用于对从对端用户接入设备接收到的数据报文进行解封装;
所述第一转发单元,还用于根据数据报文中的目的MAC地址和所属VLAN,查用户MAC表项,将解封后的数据报文发送给对应的用户。
为实现上述发明目的,本发明还提供了一种骨干网边缘网桥设备,应用于最短路径桥SPB网络中,该设备包括:
第二最短路径获取单元,计算到对端用户接入设备的最短距离,获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
第二转发单元,用于查找到对端用户接入设备的MAC表项,根据到对端用户接入设备的MAC表项将数据报文转发出去。
综上所述,本发明实施例中,MU设备学习用户的MAC地址,并且在MU设备上进行M-in-M封装,将骨干网目的MAC地址(B-DA)填写为对端用户接入设备的MAC地址,将骨干网源MAC地址(B-SA)填写为本地用户接入设备的MAC地址,通过计算出的最短路径将封装后的数据报文转发到对端用户接入设备。BEB设备不需要学习用户的MAC地址,只需要计算到对端MU的最短路径,所以减少了BEB设备上的MAC表项规模;避免了报文在BEB设备上的广播复制,从而减轻了运营商的压力,达到本发明的目的。由于本发明实施例采用SPF方法,计算最短路径,所以支持等价转发,不会像现有技术那样出现MAC被频繁修改,网络震荡的问题。
附图说明
图1为现有SPBM组网示意图。
图2为本发明实施例中MAC-in-MAC报文封装格式示意图。
图3为本发明实施例提供报文转发方法的流程示意图。
图4为本发明实施例中用户接入设备的结构示意图。
图5为本发明实施例中骨干网边缘网桥设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中提出一种SPB网络中的报文转发方法,本地MU学习到数据报文中的用户目的MAC地址所连接的MU,即本地MU确定数据报文要发送到对端MU,则本地MU对所述数据报文进行MAC-in-MAC封装,直接将数据报文封装后经最短路径转发给对端MU。
MAC-in-MAC报文封装格式如图2所示。其中,B-DA是骨干网目的MAC地址,也是MAC-in-MAC封装的外层目的MAC地址;B-SA是骨干网源MAC地址,也是MAC-in-MAC封装的外层源MAC地址;C-DA是数据报文的原始目的MAC地址;C-SA是数据报文的原始源MAC地址;B-Tag是骨干网标签,B-Tag中的B-VLAN用于标识报文在骨干网中的VLAN;C-Tag是用户标签,用于标识报文在用户网络中的VLAN。
参见图3,图3为本发明实施例中报文转发方法的流程示意图,其包括以下步骤:
步骤31、本地用户接入设备以自身为根节点通过最短路径优先(SPF)算法获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
步骤32、本地用户接入设备对从用户侧接收到的数据报文进行最短路径桥MAC-in-MAC封装,将对端用户接入设备的MAC地址封装为骨干网目的MAC地址B-DA,将本地用户接入设备的MAC地址封装为骨干网源MAC地址B-SA,通过所述最短路径将封装后的数据报文转发到对端用户接入设备。
其中,本地用户接入设备确定作为B-DA的对端用户接入设备的MAC地址,是通过MAC学习得到的:本地用户接入设备收到从对端用户接入设备发送的数据报文时,学习数据报文中作为B-SA的对端用户接入设备MAC地址和数据报文中的用户源MAC地址,形成用户目的MAC表项;
本地用户接入设备收到所连接用户发送的数据报文时,学习数据报文中的用户源MAC地址,根据数据报文中的用户目的MAC地址查找用户目的MAC表项,确定本地用户接入设备上所封装的B-DA为对端用户接入设备MAC地址,并查找到对端用户接入设备的MAC表项后,根据所述到对端用户接入设备的MAC表项将所连接用户发送的数据报文转发出去。
下面列举实施例对本发明进行详细说明。
实施例一:MU1到MU2的最短路径:MU1-BEB2-MU2
仍然以图1的组网为例,MU1连接的用户PC1,向MU1发送的数据报文中,目的MAC是MU2连接的用户PC2,源MAC是PC1;
首先,MU1通过MAC学习得到自身进行MAC-in-MAC封装时所填写的B-DA:MU2经过BEB2或者BEB1转发给MU1的数据报文,其内层源MAC是PC2,内层目的MAC是PC1,经过MU2的封装其外层源MAC是MU2,外层目的MAC是MU1,所以MU1学习外层源MAC地址MU2,及内层源MAC地址PC2,形成用户目的MAC表项:
MAC地址 出接口 下一跳
PC2 MU1连接BEB2的接口 MU2
或者MU1连接BEB1的接口
通过用户PC2的MAC表项,MU1就可以确定源MAC是PC1,目的MAC是PC2的数据报文可以直接经过MU1的封装发送给MU2,即MU1进行MAC-in-MAC封装,将MU2的MAC地址封装为B-DA,将MU1的MAC地址封装为B-SA,将PC2的MAC地址封装为C-DA,将PC1的MAC地址封装为C-SA。
数据报文经过MU1的封装之后,经过哪条路径发送给MU2,本发明在步骤31中,MU1以自身为根节点通过SPF算法获取到MU2的最短路径是:MU1-BEB2-MU2;则
MU1生成到MU2的MAC表项为:
MAC地址 出接口 下一跳
MU2 MU1连接BEB2的接口 BEB2
本发明实施例将用户目的MAC表项和到MU2的MAC表项关联起来,用户目的MAC表项直接指向到MU2的MAC表项,所以MU1查找到MU2的MAC表项,在MU1连接BEB2的接口将数据报文发送给下一跳BEB2。
BEB2计算到对端MU2的最短距离,获取到对端MU2的最短路径BEB2-MU2;BEB2根据上述最短路径生成的到MU2的MAC表项为:
MAC地址 出接口 下一跳
MU2 MU2连接BEB2的接口 MU2
这样BEB2查找到MU2的MAC表项,在MU2连接BEB2的接口将数据报文发送给下一跳MU2,即对端MU。
其中,BEB2并不进行MAC-in-MAC封装,如果必要的话,BEB2只是对MU1的封装形式进行修改。该实施例中,由于下一跳是MU2,即接入链路,所以数据报文经过BEB2时,B-DA仍然为MU2,B-SA仍然为MU1,C-DA仍然是PC2,C-SA仍然是PC1。
如果,MU1没有找到用户目的MAC表项时,根据实例内用户接入设备的数量复制数据报文,每份数据报文的B-DA分别封装为实例内不同用户接入设备的MAC,向实例内所有用户接入设备单播发送数据报文。假设实例内MU的数量为2,MU2和MU3,则复制2份数据报文,一份数据报文的B-DA封装为MU2的MAC地址,一份数据报文的B-DA封装为MU3的MAC地址,其中,每份数据报文的B-SA都封装为MU1的MAC,C-SA为PC1,C-DA为PC2,这样MU2就可以接收到数据报文,继而进行数据报文的转发。
数据报文到达MU2,MU2对接收到的数据报文解封装,去掉封装格式,根据数据报文中的目的MAC地址PC2和所属VLAN,查用户MAC表项,将解封后的数据报文发送给对应的用户PC2。如果MU2没有学习PC2的MAC地址,形成PC2的MAC表项,则MU2在所属VLAN的接口上向用户广播所述解封后的数据报文,使PC2能够接收此数据报文。
实施例二:MU1到MU2的最短路径:MU1-BEB1-BEB2-MU2
仍然以图1的组网为例,MU1连接的用户PC1,向MU1发送的数据报文中,目的MAC是MU2连接的用户PC2,源MAC是PC1;
首先,MU1通过MAC学习得到自身进行MAC-in-MAC封装时所填写的B-DA:MU2经过BEB2或者BEB1转发给MU1的数据报文,其内层源MAC是PC2,内层目的MAC是PC1,经过MU2的封装其外层源MAC是MU2,外层目的MAC是MU1,所以MU1学习外层源MAC MU2,及内层源MAC PC2,形成用户目的MAC表项:
MAC地址 出接口 下一跳
PC2 MU1连接BEB2的接口 MU2
或者MU1连接BEB1的接口
通过用户PC2的MAC表项,MU1就可以确定源MAC是PC1,目的MAC是PC2的数据报文可以直接经过MU1的封装发送给MU2,即MU1进行MAC-in-MAC封装,将MU2的MAC地址封装为B-DA,将MU1的MAC地址封装为B-SA,将PC2的MAC地址封装为C-DA,将PC1的MAC地址封装为C-SA。
数据报文经过MU1的封装之后,经过哪条路径发送给MU2,本发明在步骤31中,MU1以自身为根节点通过SPF算法获取到MU2的最短路径是:MU1-BEB1-BEB2-MU2;则
MU1生成到MU2的MAC表项为:
MAC地址 出接口 下一跳
MU2 MU1连接BEB1的接口 BEB1
本发明实施例将用户目的MAC表项和到MU2的MAC表项关联起来,用户目的MAC表项直接指向到MU2的MAC表项,所以MU1查找到MU2的MAC表项,在MU1连接BEB1的接口将数据报文发送给下一跳BEB1。
BEB1计算到对端MU2的最短距离(cost),获取到对端MU2的最短路径:BEB1-BEB2-MU2;BEB1根据上述最短路径生成的到MU2的MAC表项为:
MAC地址 出接口 下一跳
MU2 BEB1和BEB2之间的PW BEB2
这样BEB1查找到MU2的MAC表项,通过BEB1和BEB2之间的PW将数据报文发送给下一跳BEB2,即BEB1对应的出接口为公网隧道。
其中,BEB1并不进行MAC-in-MAC封装,如果必要的话,BEB1只是对MU1的封装形式进行修改。该实施例中,由于下一跳是BEB2,即公网隧道,所以数据报文经过BEB1时,B-DA由MU2修改为BEB2,B-SA仍然为MU1,C-DA仍然是PC2,C-SA仍然是PC1。
BEB2计算到对端MU2的最短距离,获取到对端MU2的最短路径BEB2-MU2;BEB2根据上述最短路径生成的到MU2的MAC表项为:
MAC地址 出接口 下一跳
MU2 MU2连接BEB2的接口 MU2
这样,由于BEB2学习到的来自MU2的内层源MAC是PC2,所以BEB2根据从BEB1接收到的数据报文的C-DA为PC2,确定查找上述到MU2的MAC表项,在MU2连接BEB2的接口将数据报文发送给下一跳MU2,即对端MU。
该实施例中,由于下一跳是MU2,即接入链路,所以数据报文经过BEB2时,B-DA由BEB2修改为MU2,B-SA仍然为MU1,C-DA仍然是PC2,C-SA仍然是PC1。
如果,MU1未找到用户目的MAC表项时,即没有找到用户PC2的MAC表项时,根据实例内用户接入设备的数量复制数据报文,数据报文的B-DA分别封装为实例内不同用户接入设备,分别向实例内所有用户接入设备单播发送数据报文。假设实例内MU的数量为2,MU2和MU3,则复制2份数据报文,一份数据报文的B-DA封装为MU2的MAC地址,一份数据报文的B-DA封装为MU3的MAC地址,其中,每份数据报文的B-SA都封装为MU1的MAC,C-SA为PC1,C-DA为PC2,这样MU2就可以接收到数据报文,继而进行数据报文的转发。
数据报文到达MU2,MU2对接收到的数据报文解封装,去掉封装格式,根据数据报文中的目的MAC地址PC2和所属VLAN,查用户MAC表项,将解封后的数据报文发送给对应的用户PC2。如果MU2没有学习PC2的MAC地址,形成PC2的MAC表项,则MU2在所属VLAN的接口上向用户广播所述解封后的数据报文,使PC2能够接收此数据报文。
通过上述两个实施例可以看出,SPF算法获取的到达对端MU的最短路径是哪条,本地MU就会按照哪条路径进行报文的转发。下面以实施例二为例对本发明的SPF算法进行具体说明。
本地MU获取到对端MU的最短路径的方法包括:
A、将本地MU加入优选集合;其中,本地MU与本地MU的距离为0;
B、将与本地MU直连的所有BEB设备加入到待选集合,并计算所述直连BEB设备到本地MU的距离;其中,直连BEB设备与本地MU的距离为本地MU与直连BEB设备之间链路的开销(cost);
C、从待选集合中选择离本地MU最近的BEB设备加入优选集合;
D、将步骤C中加入优选集合的BEB设备的直连邻居BEB设备加入到待选集合,并计算所述邻居BEB设备到本地MU的距离;如果所述邻居BEB设备已经加入待选集合,则更新此邻居BEB设备到本地MU的距离;
E、重复步骤C至D,直到本地MU直连的BEB设备都加入了优选集合;
F、将待选集合中距离本地MU最近的BEB设备依次加入优选集合,重复此步骤,直到待选集合为空;
G、根据优选集合获取本地MU到每个BEB设备的最短路径树,从而获取与BEB设备连接的对端MU的最短路径。
上述计算过程中使用到两个集合:待选集合和优选集合。优选集合中存放的是加入最短路径树的设备信息;待选集合中存放的是未加入最短路径树的设备信息。需要说明的是,加入待选集合或者优选集合中的设备,除根节点本地MU外,其他都为BEB设备,若其直连邻居通过接入链路连接,即直连邻居为MU设备,则此直连邻居不加入待选集合。
具体地,假设最短路径为MU1-BEB1-BEB2-MU2,在网络拓扑中,首先将根节点MU1加入优选集合;
接着,将与MU1直连的所有BEB设备BEB1和BEB2加入到待选集合,并计算BEB1到MU1的距离,以及BEB2到MU1的距离;
当BEB1到MU1的距离小于BEB2到MU1的距离时,从上述待选集合中选择离MU1最近的BEB1加入到优选集合;
将BEB1的直连邻居BEB3和BEB4加入到待选集合(BEB1的直连邻居BEB2已经在待选集合中,所以不用再次加入),BEB2已经加入待选集合,所以BEB2到MU1的距离信息已经存在,如果BEB2到BEB1的距离+BEB1到MU1的距离小于BEB2到MU1的距离,则更新BEB2到MU1的距离信息为BEB2到BEB1的距离+BEB1到MU1的距离;
从待选集合中选择离MU1最近的BEB2设备加入优选集合;
至此,与MU1直连的所有BEB设备BEB1和BEB2都加入到待选集合中,然后将待选集合中的BEB3和BEB4依次加入优选集合,直至待选集合为空;
根据优选集合获取MU1到每个BEB设备的最短路径树,其中MU1到BEB2的最短路径树为MU1-BEB1-BEB2;
MU2与BEB2连接,计算BEB2到MU2的距离,从而获取MU1到MU2的距离为BEB2到MU2的距离+BEB2到MU1的距离。
因此,MU1到MU2的最短路径为MU1-BEB1-BEB2-MU2;
MU1根据上述最短路径生成的到MU2的MAC表项为:
MAC地址 出接口 下一跳
MU2 MU1连接BEB1的接口 BEB1
BEB1计算到对端MU2的最短距离(cost),获取到对端MU2的最短路径:BEB1-BEB2-MU2;BEB1根据上述最短路径生成的到MU2的MAC表项为:
MAC地址 出接口 下一跳
MU2 BEB1连接BEB2的接口 BEB2
BEB2计算到对端MU2的最短距离,获取到对端MU2的最短路径BEB2-MU2;BEB2根据上述最短路径生成的到MU2的MAC表项为:
MAC地址 出接口 下一跳
MU2 MU2连接BEB2的接口 MU2
为清楚说明本发明的SPF算法,下面另举例说明:假设最短路径为MU1-BEB1-BEB3-MU3,在网络拓扑中,首先将根节点MU1加入优选集合;
接着,将与MU1直连的所有BEB设备BEB1和BEB2加入到待选集合,并计算BEB1到MU1的距离,以及BEB2到MU1的距离;
当BEB1到MU1的距离小于BEB2到MU1的距离时,从上述待选集合中选择离MU1最近的BEB1加入到优选集合;
将BEB1的直连邻居BEB3和BEB4加入到待选集合(BEB1的直连邻居BEB2已经在待选集合中,所以不用再次加入),BEB2已经加入待选集合,所以BEB2到MU1的距离信息已经存在,如果BEB2到BEB1的距离+BEB1到MU1的距离小于BEB2到MU1的距离,则更新BEB2到MU1的距离信息为BEB2到BEB1的距离+BEB1到MU1的距离;
从待选集合中选择离MU1最近的BEB3设备加入优选集合;由于BEB3设备不与MU1直连,所以接下来不需要将BEB3的直连邻居加入待选集合;
然后将待选集合中的BEB2和BEB4依次加入优选集合,直至待选集合为空;
根据优选集合获取MU1到每个BEB设备的最短路径树,其中MU1到BEB3的最短路径树为MU1-BEB1-BEB3;
MU3与BEB3连接,计算BEB3到MU3的距离,从而获取MU1到MU3的距离为BEB3到MU3的距离+BEB3到MU1的距离。
因此,MU1到MU3的最短路径为MU1-BEB1-BEB3-MU3;
MU1根据上述最短路径生成的到MU3的MAC表项为:
MAC地址 出接口 下一跳
MU3 MU1连接BEB1的接口 BEB1
由于本发明实施例用户接入设备采用SPF算法计算最短路径,若有多个BEB连接到同一个MU,则选取距离小的路径;若本地MU通过多个直连BEB到达同一个MU,且距离相同,则本地MU可以选取多个直连BEB作为下一跳,即包含多个下一跳信息,所以如果计算出多条距离相同的最短路径,报文支持等价转发,即报文可以在两条转发路径上实现负载分担。
而且,本发明的SPF算法可以与现有技术相同,也可以进一步优化最短路径,即使到达对端MU设备的路径最短,但这条链路中如果包含了其他接入链路,报文也不会选择在这条最短路径上转发,例如报文转发不会出现这样的路径:MU1-BEB1-MU4-BEB1-BEB2-MU2。具体实现如下:
本发明实施例,BEB设备之间通过骨干网隧道连接,在公网上,BEB设备之间仍然使用现有的SPB-ISIS协议,也就是说,BEB设备之间建立虚链路(PW)隧道仍然采用SPB-ISIS协议,但是,在同一SPB实例内,BEB设备之间通过骨干网隧道建立私网邻居,即BEB设备之间全连接,因此,用户接入设备与BEB设备,BEB设备与BEB设备之间维护实例邻居和拓扑信息。各个设备实例间协议使用简化的中间系统到中间系统(IS-IS)路由协议,这里称为S-ISIS。在MU与BEB之间运行S-ISIS,在BEB设备之间运行S-ISIS协议,S-ISIS产生的链路状态数据包(LSP),其类型长度值(TLV)结构含如下信息,如表1所示:
表1
S-ISIS:表示S-ISIS产生的LSP。Length:表示TLV长度。该TLV中,LinkID,Link Attribute和Link Neighbor共同描述一条链路信息。Link ID:描述对应的链路编号;Link Neighbor:描述链路上的邻居;Link Attribute:描述链路的属性,包含链路类型(Link Type)和链路距离(Link Cost)信息,具体如表2所示:
表2
其中,链路类型分为两种,接入链路和骨干隧道,接入链路指MU与BEB之间的链路,骨干隧道指BEB与BEB之间的隧道。链路距离,对应为接入链路或者骨干隧道的距离,可以根据带宽自动生成,也可以用户配置。
根据上述描述,BEB1发送给MU1的LSP报文,其携带的TLV中,一个邻居为MU4,这条链路为接入链路;一个邻居为BEB3,这条链路为骨干隧道;当MU1接收到此TLV,就可以确定不会将MU4加入到待选集合,而将BEB3加入到待选集合。也就是说,MU1可以根据实例内链路状态数据包LSP报文的链路类型,判断是否将步骤C中加入优选集合的BEB设备的直连设备加入待选集合,当链路类型为骨干隧道时,将步骤C中加入优选集合的BEB设备的直连邻居BEB设备加入到待选集合。正是由于加入待选集合或者优选集合中的设备,除根节点本地MU外,其他都为BEB设备,这样就不会把其他接入链路计算到最短路径中,也就不会出现上述经过多个设备的复杂链路。而且,如果出现例如MU1-BEB1-MU4-BEB1-BEB2-MU2的路径,流量两次经过BEB1,会造成运营商多次计费,而本发明的方法恰好解决了此问题。
基于同样的发明构思,本发明还提出一种用户接入设备,应用于SPB网络,参见图4,图4为本发明具体实施例中应用于上述方法的用户接入设备的结构示意图。该用户接入设备包括:
第一最短路径获取单元401,用于以自身为根节点通过SPF算法获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
封装单元402,对从用户侧接收到的数据报文进行MAC-in-MAC封装,将对端用户接入设备的MAC地址封装为骨干网目的MAC地址B-DA,将本地用户接入设备的MAC地址封装为骨干网源MAC地址B-SA;
第一转发单元403,用于通过所述最短路径将封装后的数据报文转发到对端用户接入设备。
所述第一最短路径获取单元401未获取到用户目的MAC表项时,所述封装单元402,还用于根据实例内用户接入设备的数量复制数据报文,数据报文的B-DA分别封装为实例内不同用户接入设备的MAC地址,通过第一转发单元403向实例内所有用户接入设备单播发送数据报文。
所述用户接入设备还包括MAC学习单元404,用于收到从对端用户接入设备发送的数据报文时,学习数据报文中作为B-SA的对端用户接入设备MAC地址和数据报文中的用户源MAC地址,形成用户目的MAC表项;
封装单元402,还用于收到所连接用户发送的数据报文时,根据数据报文中的用户目的MAC地址查找用户目的MAC表项确定本地用户接入设备上所封装的B-DA为对端用户接入设备MAC地址。
所述用户接入设备还包括解封装单元405,用于对从对端用户接入设备接收到的数据报文进行解封装;
所述第一转发单元403,还用于根据数据报文中的目的MAC地址和所属VLAN,查用户MAC表项,将解封后的数据报文发送给对应的用户。
本发明还提出一种骨干网边缘网桥设备,应用于SPB网络,参见图5,图5为本发明具体实施例中应用于上述方法的骨干网边缘网桥设备的结构示意图。该骨干网边缘网桥设备包括:
第二最短路径获取单元501,用于计算到对端用户接入设备的最短距离,获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
第二转发单元502,用于查找到对端用户接入设备的MAC表项,根据到对端用户接入设备的MAC表项将数据报文转发出去。
上述模块单元是基于逻辑功能划分的,在实际应用中,一个模块单元的功能也可以由多个模块单元来实现,或者多个模块单元的功能由一个模块单元实现。
综上所述,本发明具体实施例中本地MU通过SPF算法计算到对端MU的最短路径,直接将对端MU的MAC地址封装为骨干网的B-DA,按照最短路径发送给对端MU。与现有技术相比,本发明的方法BEB设备不需要学习用户的MAC地址,只需要计算到对端MU的最短路径,所以减少了BEB设备上的MAC表项规模;避免了报文在BEB设备上的广播复制,从而减轻了运营商的压力。本发明通过SPF算法计算到对端MU的最短路径,支持等价转发,实现了路径的负载分担。而且,在本发明的SPF算法中,并没有把接入链路上的MU设备加入到候选节点集合中,所以即使到达对端MU设备的路径最短,但这条链路中包含了其他接入链路,报文也不会选择在这条最短路径上转发,从而避免了运营商重复计费的现象发生。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种最短路径桥SPB网络中的报文转发方法,应用于用户接入设备,该方法包括:
本地用户接入设备以自身为根节点通过最短路径优先SPF算法获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
本地用户接入设备对从用户侧接收到的数据报文进行最短路径桥MAC-in-MAC封装,将对端用户接入设备的MAC地址封装为骨干网目的MAC地址B-DA,将本地用户接入设备的MAC地址封装为骨干网源MAC地址B-SA,通过所述最短路径将封装后的数据报文转发到对端用户接入设备。
2.如权利要求1所述的方法,其特征在于,本地用户接入设备未找到用户目的MAC表项时,根据实例内用户接入设备的数量复制数据报文,数据报文的B-DA分别封装为实例内不同用户接入设备的MAC地址,向实例内所有用户接入设备单播发送数据报文。
3.如权利要求1所述的方法,其特征在于,获取到对端用户接入设备的最短路径的方法包括:
A、将所述本地MU加入优选集合;
B、将与本地MU直连的所有BEB设备加入到待选集合,并计算所述直连骨干网边缘网桥BEB设备到本地MU的距离;
C、从待选集合中选择离本地MU最近的BEB设备加入优选集合;
D、将步骤C中加入优选集合的BEB设备的直连邻居BEB设备加入到待选集合,并计算所述邻居BEB设备到本地MU的距离;如果所述邻居BEB设备已经加入待选集合,则更新此邻居BEB设备到本地MU的距离;
E、重复步骤C至D,直到本地MU直连的BEB设备都加入了优选集合;
F、将待选集合中距离本地MU最近的BEB设备依次加入优选集合,重复此步骤,直到待选集合为空;
G、根据优选集合获取本地MU到每个BEB设备的最短路径树,从而获取与BEB设备连接的对端MU的最短路径。
4.如权利要求3所述的方法,其特征在于,所述将步骤C中加入优选集合的BEB设备的直连邻居BEB设备加入到待选集合的方法为:
本地用户接入设备根据实例内链路状态数据包LSP报文的链路类型判断是否将步骤C中加入优选集合的BEB设备的直连设备加入待选集合,当链路类型为骨干隧道时,将步骤C中加入优选集合的BEB设备的直连邻居BEB设备加入到待选集合;所述链路类型携带在LSP报文的类型长度值TLV结构中。
5.如权利要求1所述的方法,其特征在于,本地用户接入设备收到从对端用户接入设备发送的数据报文时,学习数据报文中作为B-SA的对端用户接入设备MAC地址和数据报文中的用户源MAC地址,形成用户目的MAC表项;
本地用户接入设备收到所连接用户发送的数据报文时,学习数据报文中的用户源MAC地址,根据数据报文中的用户目的MAC地址查找用户目的MAC表项,确定本地用户接入设备上所封装的B-DA为对端用户接入设备MAC地址,并查找到对端用户接入设备的MAC表项后,根据所述到对端用户接入设备的MAC表项将所连接用户发送的数据报文转发出去。
6.如权利要求5所述的方法,其特征在于,本地用户接入设备收到从对端用户接入设备发送的数据报文时,该方法进一步包括:本地用户接入设备对从对端用户接入设备接收到的数据报文进行解封装,根据数据报文中的目的MAC地址和所属VLAN,查用户MAC表项,将解封后的数据报文发送给对应的用户。
7.一种最短路径桥SPB网络中的报文转发方法,应用于骨干网边缘网桥BEB设备,该方法包括:
BEB设备计算到对端用户接入设备的最短距离,获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
BEB设备收到数据报文后,查找到对端用户接入设备的MAC表项,根据到对端用户接入设备的MAC表项将数据报文转发出去。
8.如权利要求7所述的方法,其特征在于,如果对应的出接口为公网隧道,则修改B-DA为隧道对端的BEB设备的MAC地址后根据到对端用户接入设备的MAC表项中的下一跳转发出去。
9.如权利要求7所述的方法,其特征在于,如果对应的出接口为接入链路,则根据到对端用户接入设备的MAC表项中的下一跳将数据报文转发出去;或者修改B-DA为对端用户接入设备的MAC地址后根据到对端用户接入设备的MAC表项中的下一跳转发出去。
10.一种用户接入设备,应用于最短路径桥SPB网络中,该设备包括:
第一最短路径获取单元,用于以自身为根节点通过SPF算法获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
封装单元,对从用户侧接收到的数据报文进行最短路径桥MAC-in-MAC SPBM封装,将对端用户接入设备的MAC地址封装为骨干网目的MAC地址B-DA,将本地用户接入设备的MAC地址封装为骨干网源MAC地址B-SA;
第一转发单元,用于通过所述最短路径将封装后的数据报文转发到对端用户接入设备。
11.如权利要求10所述的设备,其特征在于,所述第一最短路径获取单元未获取到用户目的MAC表项时,所述封装单元,还用于根据实例内用户接入设备的数量复制数据报文,数据报文的B-DA分别封装为实例内不同用户接入设备的MAC地址,通过第一转发单元向实例内所有用户接入设备单播发送数据报文。
12.如权利要求10所述的设备,其特征在于,所述用户接入设备还包括MAC学习单元,用于收到从对端用户接入设备发送的数据报文时,学习数据报文中作为B-SA的对端用户接入设备MAC地址和数据报文中的用户源MAC地址,形成用户目的MAC表项;
封装单元,还用于收到所连接用户发送的数据报文时,根据数据报文中的用户目的MAC地址查找用户目的MAC表项确定本地用户接入设备上所封装的B-DA为对端用户接入设备MAC地址。
13.如权利要求12所述的设备,其特征在于,所述用户接入设备还包括解封装单元,用于对从对端用户接入设备接收到的数据报文进行解封装;
所述第一转发单元,还用于根据数据报文中的目的MAC地址和所属VLAN,查用户MAC表项,将解封后的数据报文发送给对应的用户。
14.一种骨干网边缘网桥设备,应用于最短路径桥SPB网络中,该设备包括:
第二最短路径获取单元,计算到对端用户接入设备的最短距离,获取到对端用户接入设备的最短路径,生成到对端用户接入设备的MAC表项;
第二转发单元,用于查找到对端用户接入设备的MAC表项,根据到对端用户接入设备的MAC表项将数据报文转发出去。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310095103.6A CN103152265B (zh) | 2013-03-22 | 2013-03-22 | 一种spb网络中的报文转发方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310095103.6A CN103152265B (zh) | 2013-03-22 | 2013-03-22 | 一种spb网络中的报文转发方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103152265A true CN103152265A (zh) | 2013-06-12 |
CN103152265B CN103152265B (zh) | 2017-02-15 |
Family
ID=48550137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310095103.6A Active CN103152265B (zh) | 2013-03-22 | 2013-03-22 | 一种spb网络中的报文转发方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103152265B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414578A (zh) * | 2013-08-12 | 2013-11-27 | 杭州华三通信技术有限公司 | 一种MAC-in-MAC网络中的报文传输方法和设备 |
CN103973575A (zh) * | 2014-05-30 | 2014-08-06 | 杭州华三通信技术有限公司 | 一种生成转发表项方法和装置 |
CN104579997A (zh) * | 2013-10-28 | 2015-04-29 | 杭州华三通信技术有限公司 | 最短路径桥接网络中的转发路径确定方法及设备 |
CN109861900A (zh) * | 2017-11-30 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 实时通信的数据处理方法、装置、计算机设备及存储介质 |
CN111418192A (zh) * | 2019-02-21 | 2020-07-14 | 北京大学深圳研究生院 | 一种基于坐标映射的多模标识网络寻址方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070058622A1 (en) * | 2005-09-13 | 2007-03-15 | Alcatel | Low latency working VPLS |
CN101047644A (zh) * | 2007-04-28 | 2007-10-03 | 华为技术有限公司 | 网络系统、最短路径建立及广播报文传送方法 |
CN101170478A (zh) * | 2006-10-26 | 2008-04-30 | 爱立信公司 | Mac(媒体存取控制)穿隧和控制以及方法 |
CN101663859A (zh) * | 2006-12-14 | 2010-03-03 | 北方电讯网络有限公司 | 用于交换路由信息并跨越多个网络区域建立连接的方法和设备 |
-
2013
- 2013-03-22 CN CN201310095103.6A patent/CN103152265B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070058622A1 (en) * | 2005-09-13 | 2007-03-15 | Alcatel | Low latency working VPLS |
CN101170478A (zh) * | 2006-10-26 | 2008-04-30 | 爱立信公司 | Mac(媒体存取控制)穿隧和控制以及方法 |
CN101663859A (zh) * | 2006-12-14 | 2010-03-03 | 北方电讯网络有限公司 | 用于交换路由信息并跨越多个网络区域建立连接的方法和设备 |
CN101047644A (zh) * | 2007-04-28 | 2007-10-03 | 华为技术有限公司 | 网络系统、最短路径建立及广播报文传送方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414578A (zh) * | 2013-08-12 | 2013-11-27 | 杭州华三通信技术有限公司 | 一种MAC-in-MAC网络中的报文传输方法和设备 |
CN103414578B (zh) * | 2013-08-12 | 2017-05-17 | 杭州华三通信技术有限公司 | 一种MAC‑in‑MAC网络中的报文传输方法和设备 |
CN104579997A (zh) * | 2013-10-28 | 2015-04-29 | 杭州华三通信技术有限公司 | 最短路径桥接网络中的转发路径确定方法及设备 |
CN104579997B (zh) * | 2013-10-28 | 2017-11-24 | 新华三技术有限公司 | 最短路径桥接网络中的转发路径确定方法及设备 |
CN103973575A (zh) * | 2014-05-30 | 2014-08-06 | 杭州华三通信技术有限公司 | 一种生成转发表项方法和装置 |
CN103973575B (zh) * | 2014-05-30 | 2017-05-10 | 新华三技术有限公司 | 一种生成转发表项方法和装置 |
CN109861900A (zh) * | 2017-11-30 | 2019-06-07 | 腾讯科技(深圳)有限公司 | 实时通信的数据处理方法、装置、计算机设备及存储介质 |
CN111418192A (zh) * | 2019-02-21 | 2020-07-14 | 北京大学深圳研究生院 | 一种基于坐标映射的多模标识网络寻址方法及系统 |
CN111418192B (zh) * | 2019-02-21 | 2022-03-29 | 北京大学深圳研究生院 | 一种基于坐标映射的多模标识网络寻址方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103152265B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103269299B (zh) | Spbm网络中的报文转发方法及装置 | |
CN102368727B (zh) | 跨ip网络的trill网络通信方法、系统和设备 | |
CN104660508B (zh) | 一种报文转发方法及装置 | |
CN102804693B (zh) | 用于在ip网络上实现l2 vpn的方法和设备 | |
CN101160902B (zh) | 数据转发方法及交换设备 | |
CN102273177B (zh) | 用于邻居发现协议调解的方法 | |
CN104378296A (zh) | 一种报文转发方法及设备 | |
CN104378297A (zh) | 一种报文转发方法及设备 | |
CN101552727B (zh) | 一种报文发送和接收方法及运营商边缘路由器 | |
CN103139075B (zh) | 一种报文传输方法和设备 | |
CN103166858A (zh) | 一种报文传输方法和设备 | |
CN103259721B (zh) | Spbm网络中的报文转发方法及装置 | |
CN102882784A (zh) | Spbm中的lsp信息泛洪方法及设备 | |
CN103152265A (zh) | 一种spb网络中的报文转发方法和设备 | |
CN103326918A (zh) | 一种报文转发方法和设备 | |
CN103067278B (zh) | 一种数据帧的传输处理方法、设备及系统 | |
CN103023773A (zh) | 多拓扑网络中转发报文的方法、装置和系统 | |
CN105227464A (zh) | Vcf系统中的报文转发方法及装置 | |
CN104219149B (zh) | 一种基于虚连接的报文传输方法和设备 | |
CN103200107B (zh) | 一种报文的传输方法和设备 | |
CN103685029B (zh) | 一种快速环网保护协议组网中报文转发方法和设备 | |
CN103200095A (zh) | 一种跨spb网络访问实现方法和设备 | |
CN102238040B (zh) | 一种对ce进行监控的方法和路由设备 | |
CN102857417A (zh) | Trill网络中数据的传输方法及系统 | |
CN104219073A (zh) | Spbm网络中的报文转发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee 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 Patentee before: Huasan Communication Technology Co., Ltd. |