一种trill网络mac地址学习的方法及装置的制造方法

文档序号:9581627阅读:302来源:国知局
一种trill网络mac地址学习的方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种TRILL网络MAC地址学习的方法及装置。
【背景技术】
[0002]为了解决生成树协议的带宽浪费、收敛慢等问题,互联网工程任务组(IETF,Internet Engineering Task Force)制定多链路透明互联(TRILL, TRansparentInterconnect1n of Lots of Links)协议将三层路由技术中间系统到中间系统(IS-1S,Intermediate System-to-1ntermediate System)的设计思路引入二层网络,并对其进行了必要的改造,从而将二层的简单、灵活性与三层的稳定、可扩展和高性能有机融合起来。
[0003]运行TRILL协议的设备称为路由网桥(RB,RBridge)。在TRILL网络的出入口,RBridge需要对端系统(ES,End System)提供服务,因此需要对ES的MAC (Media AccessControl,媒体介入控制)地址信息有一定了解。目前,RBridge获取MAC信息的方式主要有:1)自学习方式:通过TRILL数据帧的封装/解封装学习MAC地址信息;2)启用ESADI协议,相互通告和学习MAC信息;3)通过端系统注册的方式学习MAC信息。其中,启用ESADI的RBr i dge主动发布本地的MAC信息,能及时了解其他RBr i dge上的MAC信息变化,是RBr i dge之间交互MAC信息的主要方式之一。
[0004]但是,在现有技术中,TRILL协议本身使用了 IS-1S (IntermediateSystem-to-1ntermediate System,中间系统到中间系统)的机制来发布信息,而ESADI作为TRILL协议的附属协议,也借用了 IS-1S的机制来发布MAC信息,这就形成了很大程度的代码冗余,也带来系统资源的浪费。

【发明内容】

[0005]鉴于上述问题,本申请记载了一种TRILL网络MAC地址学习的方法,所述方法包括步骤:
[0006]与端系统相连的路由网桥学习所述端系统的MAC地址;
[0007]将所述MAC地址封装在链路状态包中,向邻居路由网桥发送;
[0008]当邻居路由网桥接收到所述链路状态包后,判断本地是否存在所述链路状态包中的MAC地址;
[0009]若不存在,学习所述链路状态包中的MAC地址,设置本地的置信值为所述链路状态包中的MAC地址的置信值;
[0010]若存在,将本地MAC地址的置信值更新为所述链路状态包中的MAC地址的置信值;
[0011]将所述链路状态包中的MAC地址的置信值增加1,然后向除接收端外的所有邻居路由网桥发送所述链路状态数据包。
[0012]较佳的,将所述端系统的所述MAC地址以TLV的形式封装在所述链路状态包中。
[0013]较佳的,所述链路状态包的ID为0000.0000.0000.00-00。
[0014]较佳的,将所述本地MAC地址的置信值更新为所述链路状态包中的MAC地址的置信值的过程包括步骤:
[0015]判断本地MAC地址的置信值是否大于接收到的所述链路状态包中的MAC地址的置
?目值;
[0016]若是,将所述本地MAC地址的置信值更新为所述链路状态包中的MAC地址的置信值,然后执行步骤将所述链路状态包中的MAC地址的置信值增加1,并向除接收端外的所有邻居路由网桥发送所述链路状态数据包;
[0017]若不是,不更新所述本地MAC地址的置信值。
[0018]较佳的,在步骤不更新所述本地MAC地址的置信值之后还包括步骤:
[0019]当更新周期到期时,本地路由网桥将所述链路状态包中MAC地址的置信值加1,再往除接收端外所有邻居发送更新后的所述链路状态包。
[0020]较佳的,将所述链路状态包洪泛到所述TRILL网络中的所有路由网桥,所述路由网桥接收到所述链路状态包后执行步骤判断本地是否存在所述链路状态包中的MAC地址。
[0021]较佳的,当所述链路状态数据包中的置信值达到255后,不再向外发送所述链路状态数据包。
[0022]本发明还提供了一种TRILL网络MAC地址学习的装置,所述装置包括:
[0023]学习封装模块,用以学习端系统的MAC地址并将所述MAC地址封装在链路状态包中;
[0024]判断模块,与所述学习封装模块相连,用以判断本地是否存在所述链路状态包中的MAC地址;
[0025]第一设置模块,与所述判断模块相连,用以设置本地的置信值为所述链路状态包中的MAC地址的置信值;
[0026]第二设置模块,与所述判断模块相连,用以将本地MAC地址的置信值更新为所述链路状态包中的MAC地址的置信值;
[0027]增加模块,分别与所述第一设置模块以及所述第二设置模块相连,用以将所述链路状态包中的MAC地址的置信值增加1。
[0028]较佳的,所述第二设置模块包括:
[0029]判断单元,与所述判断模块相连,用以判断所述本地MAC地址的置信值是否大于接收到的所述链路数据包中的MAC地址的置信值;
[0030]更新单元,分别与所述判断单元以及所述增加模块相连,用以将所述本地MAC地址的置信值更新为所述链路状态包中的MAC地址的置信值。
[0031]较佳的,所述第二设置单元还包括:
[0032]周期单元,与所述判断单元相连,用以当更新周期到期时将所述链路状态包中MAC地址的置信值加1,再往除接收端外所有邻居发送更新后的所述链路状态包。
[0033]上述技术方案具有如下优点或有益效果:本发明利用IS-1S的洪泛机制来发布MAC地址,通过逐个路由网桥增加置信值的机制,防止了链路状态包的无限循环。该方法不影响原有的TRILL链路状态数据库同步,不依赖TRILL路由,实现方式简单,节省了系统资源。
【附图说明】
[0034]参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。
[0035]图1为本发明一种TRILL网络MAC地址学习的方法的流程示意图一;
[0036]图2为本发明一种TRILL网络MAC地址学习的方法的流程示意图二 ;
[0037]图3为本发明一种TRILL网络MAC地址学习的装置的结构示意图一;
[0038]图4为本发明一种TRILL网络MAC地址学习的装置的结构示意图二。
【具体实施方式】
[0039]下面结合附图和具体实施例对本发明一种TRILL网络MAC地址学习的方法及装置进行详细说明。
[0040]实施例一
[0041]在TRILL网络中,路由网桥学习MAC地址并洪泛到邻居路由网桥的过程中,由于端系统相连的路由网桥学习端系统的MAC地址,然后由该路由网桥向除了接收端外的邻居路由网桥发送携带有MAC地址的链路状态包。简单来说,即路由网桥学习端系统的MAC地址,把所学到的MAC地址封装在特殊的链路状态包中,洪泛到邻居路由网桥中。邻居路由网桥收到该链路状态包,进行一些检查并继续往邻居洪泛。
[0042]具体来说,如图1所示,一种TRILL网络MAC地址学习的方法,包括步骤:
[0043]与ES(End System,端系统)相连的RB (RBridge,路由网桥)学习所述端系统的MAC地址,并将所述MAC地址以TLV(具体为MAC-Reachability TLV)形式封装在ID为
0000.0000.0000.00-00的LSP(Link-state Packet,链路状态包)中,周期性的向邻居路由网桥发送;
[0044]当邻居路由网桥接收到LSP后,判断本地是否存在链路状态包中的MAC地址;
[0045]若不存在,学习该MAC地址,设置该网桥的置信值为接收到的MAC地址的置信值;
[0046]若存在,更新本地MAC地址的置信值为接收到的值;
[0047]将链路状态包中MAC地址的置信值加1,并向除接收端外的所有邻居发送。
[0048]具体来说,在TRILL网络MAC地址学习方法中,首先要与端系统相连的路由网桥学习端系统的MAC地址,并将该MAC地址封装在链路状态包中,周期性的向邻居路由网桥发送。在该过程中,路由网桥学习到端系统的MAC地址后,将该MAC地址以MAC-ReachabilityTLV形式封装在ID为0000.0000.0000.00-00的链路状态包中。当邻居路由网桥接收到该链路状态包后,判断本地是否存在链路状态包中的MAC地址,如果存在,更新本地MAC地址的置信值为接收到的值;若不存在,学习该MAC地址,设置本地的置信值为接收到的MAC地址的置信值。之后,将链路状态包中MAC地址的置信值加1,并向除接收端外的所有邻居发送。
[0049]其中,如图2所示,更新本地MAC地址的置信值为接收到的值的过程包括步骤:
[0050]判断本地MAC地址的置信值(Confidence)是否大于接收到的MAC地址的置信值;[0051 ] 若是,更新本地的MAC地址的置信值为接收到的MAC地址的置信值,然后执行步骤将链路状态包中MAC地址的置信值加1,并向除接收端外的所有邻居发送;
[0052]若不是,不更新本地MAC地址的置信值,但是当更新周期到期时,将链路状态包中MAC地址的置信值加1,再往除接收端外所有邻居发送更新后的MAC地址。
[0053]具体来说,当本地存在数据链路包中的MAC地址时,将本地MAC地址的Confidence (置信值)与接收MAC地址的Confidence进行比较,比本地小则更新本地MAC地址的Confidence为接收到的值,比
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1