报文转发方法和装置制造方法

文档序号:8003471阅读:262来源:国知局
报文转发方法和装置制造方法
【专利摘要】本发明提供了一种报文转发装置和方法,其中该方法包括:从到达网关的多个TRILL路径中选择等价多路径;将收到的目的MAC地址是网关的MAC地址的以太网报文的源MAC地址替换为本地MAC地址;从等价多路径中选择一个路径发送替换了源MAC地址的以太网报文。本发明能够利用到达网关的多个TRIIL路径中的等价多路径分担发往网关的报文,而且无需将发往网关的报文封装为TRILL报文。
【专利说明】报文转发方法和装置

【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种报文转发方法和装置。

【背景技术】
[0002]多链接透明互连(TRILL,Transparent Interconnect1n of Lots of Links)协议是IETF制定的一种二层网络技术。TRILL协议将三层路由技术ISIS (IntermediateSystem-to-1ntermediate System,中间系统到中间系统)的设计思路引入二层网络,将二层网络的简单、灵活性与三层网络的稳定、可扩展和高性能有机融合起来,可用于构建数据中心的二层网络。


【发明内容】

[0003]本发明的目的在于,提供了一种报文转发方法,能够通过到达网关的多个TRIIL路径中的等价多路径分担发往网关的报文。
[0004]为实现上述目的,本发明提供了一种报文的转发方法,该方法包括:从到达网关的多个TRILL路径中选择等价多路径;将收到的目的MAC地址是网关的MAC地址的以太网报文的源MAC地址替换为本地MAC地址;从等价多路径中选择一个路径发送替换为源MAC地址的以太网报文。
[0005]为实现上述目的,本发明还提供了一种报文的转发装置,该装置包括:路径选择单元,用于从到达网关的多个TRILL路径中选择等价多路径;报文转发单元,用于将收到的目的MAC地址是网关的MAC地址的以太网报文的源MAC地址替换为本地MAC地址;从等价多路径中选择一个路径发送替换为源MAC地址的以太网报文。
[0006]综上所述,本发明所采用的报文转发方法,能够利用到达网关的多个TRIIL路径中的等价多路径分担发往网关的报文,而且无需将发往网关的报文封装为TRILL报文。

【专利附图】

【附图说明】
[0007]图1为本发明实施例中报文转发流程图;
[0008]图2为本发明实施例提供的数据中心的二层网络的示意图;
[0009]图3为本发明实施例提供的另一数据中心的二层网络的示意图;
[0010]图4本发明实施例提供的报文转发装置的示意图。

【具体实施方式】
[0011]为使本发明的技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
[0012]图1所示的本发明实施例提供的报文转发流程包括:
[0013]步骤101,从到达网关的多个TRILL路径中选择等价多路径;
[0014]步骤102,将收到的目的MAC地址是网关的MAC地址的以太网报文的源MAC地址替换为本地MAC地址;
[0015]步骤103,从等价多路径中选择一个路径发送替换为源MAC地址的以太网报文。
[0016]由图1所示的报文转发流程可知,本发明能够通过到达网关的多个TRIIL路径中的等价多路径分担发往网关的报文。
[0017]图2所示本发明实施例提供的数据中心内Trill网络示意图。
[0018]图2中,trill网络200包括网关路由桥(RB,Routing fcidge) 231?234以及非网关路由桥221?226。网关路由桥231?234具有三层转发能力。
[0019]路由桥231 — 234构成的虚拟路由器230。针对Trill网络200内的VLAN1,为该虚拟路由器230分配虚拟IPl和虚拟MACl作为VLANl网关的IP地址和MAC地址,针对TRILL网络200内的VLAN2为虚拟路由器230分配虚拟IP2和虚拟MAC2作为VLAN2网关的IP地址和MAC地址。路由桥231 — 234可通过HSRP协议或VRRP协议构成虚拟路由器230。路由桥231被选举为虚拟路由器230主设备,为请求VLANl网关IP地址或请求VLAN2网关IP地址的ARP (地址解析协议,Address Resolut1n Protocol)请求报文回复ARP响应报文。
[0020]路由桥RB231?234均保持转发(active)状态,作为VLANl和VLAN2的网关。
[0021]属于VLANl的终端(end — stat1n)的网关IP地址被设置为虚拟IP1,属于VLAN2的终端的网关IP地址被设置为虚拟IP2。
[0022]路由桥231 - 234各自在Trill网络内通知VLANl的网关信息以及VLAN2的网关信息。路由桥231 - 234通知的网关信息至少包括:指示网关MAC地址的信息以及指示本设备作为网关的信息。这样,TRILL网络内所有路由桥可以获知VLANl网关的MAC地址是虚拟MACl、VLAN2网关的MAC地址是虚拟MAC2,路由桥231 — 234是VLANl网关和VLAN2网关。本发明不限定路由桥231 — 234通知网关信息的具体实现方式。譬如,路由桥231 —234将网关信息携带于已有协议报文的未定义字段,然后通过一个Trill组播树在Trill网络内发送。或者,路由桥231 — 234将网关信息携带于自定义的网关通知消息,通过一个Trill组播树在trill网络内发送,但是需要确保自定义的网关通知消息的协议类型能够被Trill网络200的所有路由桥识别。
[0023]路由桥221根据TRILL网络200的拓扑,计算本设备与VLANl的网关(B卩,RB231、RB232、RB233以及RB234)之间的Trill路径,然后选择跳数最少的TRILL路径作为到达VLANl网关的等价多路径。
[0024]图2中,路由桥221选择的到达VLANl网关的等价多路径包括:路由桥221_>路由桥231,路由桥221->路由桥232,路由桥221_>路由桥233,路由桥221_>路由桥234。路由桥221选择的到达VLAN2网关的等价多路径与到达VLANl网关的等级多路径相同。
[0025]路由桥222 - 226以相同的方式选择到达VLANl网关的等价多路径和到达VLAN2网关的等价多路径。
[0026]属于VLANl的终端152连接于路由桥222,属于VLAN2的终端153连接于路由桥223。
[0027]终端152未查找到虚拟IPl对应的MAC地址,则生成请求虚拟IPl的ARP请求报文,其中,目标端IP (Target IP)地址为虚拟IPl ;发送端IP (Sender IP)地址为IP152 ;发送端 MAC (Sender MAC)地址为 MAC152 ;源嫩(:(501^^ MAC)地址和目的 MAC (Destinat1nMAC)地址分别设备为MAC152和全F的MAC地址。终端152发送请求虚拟IPl的ARP请求报文。
[0028]路由桥222接收ARP请求报文,根据VLANl、MAC152 (源MAC地址)以及APR请求报文的接收端口学习MAC地址表项。路由桥222将ARP请求报文封装为TRILL封装的ARP请求报文;其中,Trill头的Ingress nickname (接入设备昵称)和Egress nickname(出口设备昵称)分别是nickname222 (路由桥222的nickname)和分发树(distribut1ntree)的树根的nickname (指定了发送ARP报文的分发树);外层以太网头的源MAC地址和目的MAC分别是路由桥22的TRILL接口的MAC地址和Trill组播MAC地址(All-RBridgesmulticast address)。
[0029]路由桥221、路由桥223?226收到Trill报文封装的ARP请求报文,根据nickname222、VLANl以及MAC152学习MAC地址表项。路由桥221、路由桥223?226移除外层以太网头和Trill头,在VLANl关联的端口广播ARP报文。
[0030]路由桥231?234收到Trill封装的ARP报文,根据nickname222、VLANl以及MAC152学习MAC地址表项,根据TRILL封装的ARP报文的接收端口、MAC152 (发送端MAC地址)以及VLANl (内层VLAN ID)以及IP152 (发送端MAC地址)学习IP152的ARP信息。
[0031]路由桥231生成响应虚拟IPl的ARP响应报文,其中,目标端IP地址为IP152 ;目标端MAC地址为MAC152 ;发送端IP地址为虚拟IPl ;发送端MAC地址为虚拟MACl ;源嫩(:地址为MAC2312 ;目的MAC地址为MAC152。路由桥231没有将虚拟MACl设置为ARP响应报文的源MAC地址,而是将本设备的VLANl的虚拟交换接口(VSI, virtual switching interface)的第二 MAC地址2312设置为ARP响应报文的源MAC地址,避免其他路由桥根据收到ARP响应报文学习虚拟MACl表项,即VLANl网关的MAC地址表项。
[0032]路由桥231根据学习的MAC152的表项将ARP响应报文封装为Trill封装的ARP口向应报文,其中,Ingress nickname 为 nickname231, Egress nickname 为 nickname222 ;夕卜层以太网头的外层源MAC地址和外层目的MAC地址分别是路由桥231的TRILL接口 MAC地址和下一跳路由桥的TRILL接口的MAC地址。Trill网络中,单播Trill报文的外层源MAC地址和外层目的MAC是逐跳修改的,分别表示发送单播trill报文的每跳路由桥以及到达Egress nickname的下一跳路由桥。图2中,路由桥231将Trill封装的ARP响应报文发送到路由桥222。
[0033]路由桥222收到Trill封装的ARP请求报文,确定外层目的MAC地址和Egressnickname是本设备的TRILL接口 MAC地址和本设备的nickname,移除外层以太网头和Trill头,在MAC表中查找到目的MAC地址MAC152的匹配表项,发送ARP响应报文到终端152。
[0034]终端152接收ARP响应报文,学习虚拟IPl的ARP信息,根据虚拟IPl的ARP信息封装和发送目的IP地址为IP153的IP报文。这样,终端152将目的IP地址是IP153的以太网报文封装为目的MAC地址是虚拟MACl的以太网报文;8卩,终端152发送的以太网报文中,目的MAC地址为虚拟MACI,源MAC地址为MAC152。
[0035]路由桥222收到目的MAC地址是虚拟MACl的以太网报文,将源MAC地址替换为MAC222,在到达VLANl网关的等价多路径中选择一个路径,譬如路由桥222? > 路由桥233之间的路径,发送替换了源MAC地址的以太网报文。这样,可以利用计算到达到VLANl网关的等价多路径负载分担发往VLANl网关的以太网报文。路由桥222的VLANl的VSI的MAC地址是MAC222,是分配给路由桥222的本地MAC地址。
[0036]图2中路由桥222以及其他非网关路由桥的VLANl的虚拟交换接口和VLAN2的虚拟交换接口的IP地址不同,但是这两个虚拟交换接口的MAC地址既可以相同,也可以不同。
[0037]路由桥222可以根据以太网报文的五元组参数计算HASH值,在等价多路径中选择一个对应于该HASH值的一个路径。路由桥222修改源MAC地址是为了避免收到路由桥231?233修改已学习的MAC152的表项中的出端口 nickname222。
[0038]路由桥233接收目的MAC地址是虚拟MACl的以太网报文,学习源MAC地址MAC222的表项。
[0039]路由桥233移除目的MAC地址是虚拟MACl的以太网头,根据目的IP地址IP153确定执行下行的三层转发。路由桥233未查找到目的IP地址IP153对应的ARP信息,缓存目的IP地址是IP153的IP报文,生成请求IP153的ARP请求报文,其中,发送端IP地址是IP2332 ;发送端MAC地址是MAC2331 ;目标端IP地址是IP152 ;源MAC地址是MAC2331、目的MAC地址是全F的MAC地址,VLAN ID是VLAN2。
[0040]图2中网关路由桥233的VLANl的虚拟交换接口和VLAN2的虚拟交换接口的IP地址分别是IP2331和IP2332,但是这两个虚拟交换接口具有相同的第一 MAC地址和相同的第二 MAC地址,即MAC2331和MAC2332。可选的,网关路由桥233以及其他网关路由桥的两个虚拟交换接口具有不同第一 MAC地址和不同的第二 MAC地址。
[0041]路由桥233将本设备的VLAN2的虚拟交换接口(VSI, virtual switchinginterface)的第一 MAC地址2311设置为ARP请求报文的源MAC地址和请求端MAC地址,将本设备的VLAN2的虚拟交换接口的IP地址设置为ARP请求报文的请求端IP地址,避免其他路由桥根据收到ARP请求报文的源MAC地址学习虚拟MAC2表项,避免终端根据ARP请求报文的请求端IP地址和MAC地址学习网关的ARP信息。因此,路由桥233没有将虚拟MAC2设置为ARP请求报文的源MAC地址和请求端MAC地址,也没有将虚拟IP2设置为ARP请求报文的目标端IP地址。只有路由桥231为请求网关IP地址的APR报文响应网关MAC地址。
[0042]路由桥233将ARP请求报文封装为Tr i 11封装的ARP报文,其中,Ingressnickname和Egress nickname分别是nickname233和分发树的树根的nickname ;外层源MAC地址和外层目的MAC分别是路由桥233的TRILL接口的MAC地址和Trill组播MAC地址。
[0043]路由桥221?226收到Trill报文封装的ARP请求报文,根据nickname233、VLAN2以及MAC2331学习MAC地址表项。路由桥221?226移除外层以太网头和Trill头,在VLAN2关联的端口广播ARP报文。
[0044]终端153收到ARP请求报文,学习IP2332的ARP信息,为请求IP153的ARP请求报文生成ARP响应报文;根据IP2332的ARP信息发送生成的ARP响应报文。终端153生成的ARP响应报文中,发送端IP地址和发送端MAC地址分别是IP153和MAC153 ;目标端IP地址和目标端MAC地址分别是IP2332和MAC2331 ;源MAC地址和目的MAC地址分别为MAC153和 MAC2331。
[0045]路由桥223接收ARP响应报文,根据VLAN2、源MAC地址MAC153以及ARP响应报文的接收端口学习MAC地址表项。
[0046]路由桥223查找到目的MAC地址MAC2331匹配的MAC地址表项,将ARP响应报文封装为 Trill 封装的 ARP 请求报文;其中,Trill 头的 Ingress nickname 和 Egress nickname分别是nickname223和nickname233 ;外层源MAC地址和外层目的MAC分别是路由桥223的TRILL接口的MAC地址和路由桥233的TRILL接口的MAC地址。
[0047]这样,ARP响应报文的以太网头的目的MAC、源MAC以及VLAN ID是Trill封装的ARP响应报文的内层目的MAC、内层源MAC地址和内层VLAN ID。路由桥223发送Trill封装的ARP响应报文到路由桥333。
[0048]路由桥223根据外层目的MAC地址将TRILL封装的ARP响应报文发到路由桥233。
[0049]路由桥233接收TRILL封装的ARP响应报文,根据nickname223、内层源MAC地址以及内层VLAN ID学习MAC地址表项;根据Trill封装的ARP报文的接收端口、内层VLANID、发送端IP地址IP153以及发送端MAC地址MAC153,学习IP153的ARP信息。
[0050]路由桥233根据MAC2331以及目的IP地址IP153的ARP信息中的MAC153和VLAN2将目的IP地址是IP153的IP报文封装为以太网报文,然后通过目的IP地址IP153的ARP信息中的出端口发送。路由桥233执行下行三层转发时,将IP报文封装为以太网报文发出。
[0051]由于路由桥223通过TRILL网络的单播路径将Trill封装的ARP请求报文发到路由桥233。因此,路由桥233收到Trill封装的ARP请求报文的端口的Trill路径是最短路径。
[0052]路由桥223接收目的MAC地址是MAC153的以太网报文,查找到MAC153的匹配表项,发送以太网报文到终端153。
[0053]当路由桥231 - 234收到来自数据中心外部网络的以太网报文/IP报文时,根据目的IP确定需要执行下行三层转发时,以相同的方式将IP报文封装为以太网报文发出。
[0054]异常处理
[0055]路由桥221?226检测上行链路。路由桥223检测到故障上行链路,且该故障上行链路在路由桥223与路由桥233之间路径,属于路由桥221到VLANl网关和VLAN2网关的等价多路径中的一个路径。路由桥223从到达VLANl网关的等价多路径和到达VLAN2网关的等价多路径中删除故障上行链路所在的路径。
[0056]路由桥231?234检测上行链路和下行链路。路由桥233检测到故障下行链路,将故障下行链路链路的物理端口关联的ARP信息删除。本实施例中,路由桥233至少删除了关于IP153的ARP信息。
[0057]当路由桥233收到的以太网报文的目的IP地址是IP153时,路由桥233生成请求IP153的ARP请求报文,将ARP请求报文封装为Trill封装的ARP报文。
[0058]路由桥221 - 226收到Trill报文封装的ARP请求报文,移除外层以太网头和Trill头,在VLAN2关联的端口广播ARP报文。
[0059]终端153收到ARP请求报文,查找到IP2332的ARP信息,为请求IP153的ARP请求报文生成ARP响应报文,为请求IP153的ARP请求报文生成ARP响应报文;根据IP2332的ARP信息发送生成的ARP响应报文。
[0060]路由桥223接收ARP响应报文,查找到目的MAC地址MAC2331匹配的MAC地址表项,将ARP响应报文封装为Trill封装的ARP请求报文;其中,Trill头的Ingress nickname和Egress nickname分别是nickname223和nickname233 ;外层以太网头的源MAC地址和目的MAC分别是路由桥223的TRILL接口的MAC地址和路由桥232的TRILL接口的MAC地址。
[0061]路由桥223将Trill封装的ARP响应报文发往下一跳路由桥232。路由桥232收到Trill封装的ARP响应报文,根据nickname223、内层VLAN ID和内层源MAC地址学习关联于MAC153的MAC地址表项,根据nickname233修改外层源MAC地址和外层目的MAC地址,将Trill封装的ARP响应报文发往下一跳路由桥222。
[0062]路由桥222收到Trill封装的ARP响应报文,根据nickname223、内层VLANID和内层源MAC地址学习关联于MAC153的表项,根据nickname233修改外层源MAC地址和外层目的MAC地址,将Trill封装的ARP响应报文发往路由桥233。
[0063]路由桥233接收TRILL封装的ARP响应报文,根据nickname223、内层源MAC地址以及内层VLAN ID学习MAC153的表项;根据Trill封装的ARP报文的接收端口、内层VLANID、发送端IP地址IP153以及发送端MAC地址MAC153,学习IP153的ARP信息。
[0064]路由桥233根据MAC2331以及目的IP地址IP153的ARP信息构建一个以太网头,其中,源MAC地址是2331、目的MAC地址是MAC153、VLAN ID是VLAN2。路由桥233将以太网头添加到目的IP地址是IP153的IP报文,然后通过目的IP地址IP153的ARP信息中的出端口发送。
[0065]这样,路由桥223将目的MAC地址是MAC153的以太网报文发送到路由桥222。这样,路由桥223执行下行三层转发时,发出的时以太网报文而非TRILL报文。
[0066]路由桥222接收目的MAC地址是MAC153的以太网报文根据MAC153在MAC表中查找到的匹配表项将以太网报文封装为Trill封装的以太网报文,其中,Till头的IngressNickname 和 Egress nickname 分别 nickname222、nickname223 ;外层源 MAC 地址和目的 MAC地址分别是路由桥222的TRILL接口的MAC地址和路由桥232的TRILL接口的MAC地址。路由桥222将TRILL封装的以太网报文发到下一跳路由桥232。
[0067]路由桥232接收TRILL封装的以太网报文,将外层源MAC地址和外层目的MAC地址修改为路由桥232的TRILL接口的MAC地址和路由桥223的TRILL接口的MAC地址,将TRILL封装的以太网报文发到下一跳路由桥223。
[0068]路由桥223接收TRILL封装的以太网报文,移除外层的以太网头和TRILL头,在MAC表中查找到MAC153的匹配表项,发送以太网报文到终端153。
[0069]路由桥222和223收到的以太网报文的目的MAC地址不是网关的MAC地址,则执行常规的二层转发处理。
[0070]终端153请求虚拟IP2对应的虚拟MAC2的过程与终端152请求虚拟IPl对应的虚拟MAC2的过程相同。
[0071]路由桥231为请求虚拟IP2的ARP请求报文生成ARP响应报文,将虚拟MAC2和MAC2312设置为发送端MAC地址和源MAC地址是MAC2312。
[0072]终端153根据学习虚拟IP2的ARP信息,封装和发送需要执行三层转发的IP报文。路由桥223接收目的MAC地址是虚拟MAC2的以太网报文,将源MAC地址替换为本设备VLAN2的虚拟交换接口的MAC地址MAC223,选择路由桥222? > 路由桥232之间的路径转发替换了源MAC地址且目的MAC地址是VLAN2网关的MAC地址的以太网报文。仍见,可以利用等价多路径担发往VLAN2网关的以太网报文。
[0073]当路由桥233检测本设备所有上行链路故障时,在TRILL网络内通知本设备的所有上行链路故障。路由桥221将路由桥221与路由桥233之间的路径从到达VLANl网关的等价多路径和到达VLAN2网关的等价多路径中删除。路由桥222 — 226也执行同样的处理,将各自与路由桥233之间属于等价多路径的每个路径删除。
[0074]本实施例中,网关路由桥执行下行三层转发而发出的初始报文始终是以太网报文。非网关路由桥收到以太网报文的目的MAC地址不是网关的MAC地址时,按照通常的二层转发方式处理。
[0075]图3所示本发明实施例提供的数据中心内Trill网络示意图。
[0076]如图3所示,trill网络300包括网关路由桥341和342、非网关路由桥331?334以及非网关路由桥321?326。网关路由桥341和342具有三层转发能力。
[0077]路由桥341和342构成虚拟路由器340,针对Trill网络300内的VLANlO为该虚拟路由器340分配虚拟IP3和虚拟MAC3作为VLANlO网关的IP地址和MAC地址;针对TRILL网络内的VLAN20,为虚拟路由器340分配虚拟IP4和虚拟MAC4作为VLAN20网关的IP地址和MAC地址。
[0078]路由桥341和342可通过HSRP协议或VRRP协议构成虚拟路由器340,路由桥341被选举主设备,为请求虚拟IP3或请求虚拟IP4的ARP请求报文回复ARP响应报文。路由桥341和342均保持转发(active)状态,作为VLANlO和VLAN20内终端的网关,。
[0079]属于VLANlO的终端(end — stat1n)的网关IP地址被设置为虚拟IP3,属于VLAN20的终端的网关IP地址被设置为虚拟IP4。
[0080]Trill网络内所有路由桥都知道VLANlO和VLAN20的网关的MAC地址分别是虚拟MAC3和虚拟MAC4,VLANlO和VLAN20的网关是路由桥341和342。
[0081]路由桥341和342各自在Trill网络内通知VLANlO的网关信息以及VLAN20的网关信息。路由桥341和342通知的网关信息至少包括:指示网关MAC地址的信息以及指示本设备作为网关的信息。这样,TRILL网络内所有路由桥可以获知VLANlO网关的MAC地址是虚拟MAC3、VLAN20网关的MAC地址是虚拟MAC4,路由桥341和342是VLANlO网关和VLAN20 网关。
[0082]本发明不限定路由桥341和342通知网关信息的具体实现方式。譬如,路由桥341和342将网关信息携带于已有协议报文的未定义字段,然后通过一个Trill组播树在Trill网络内发送。或者,路由桥341和342将网关信息携带于自定义的网关通知消息,通过一个Trill组播树在trill网络内发送,但是需要确保自定义的网关通知消息的协议类型能够被Trill网络300的所有路由桥识别。
[0083]路由桥321根据TRILL网络200的拓扑,计算本设备与VLANlO的网关(B卩,路由桥341和342)之间的Trill路径,然后选择跳数最少的TRILL路径作为到达VLANlO网关的等价多路径。
[0084]路由桥321根据TRILL网络300的拓扑,计算本设备与VLANlO的网关、VLAN20网关之间的多个Trill路径,然后选择跳数最少的TRILL路径作为到达VLANlO的等价多路径和VLAN20等价多路径。
[0085]图3中,路由桥321选择的到达VLANlO网关的等价多路径包括:路由桥321与路由桥341之间的四个等价的路径,每个路径上的传输路由桥分别是路由桥331?334 ;以及路由桥321与路由桥342之间的四个等价的路径,每个路径上的传输路由桥分别是路由桥331?334。路由桥321选择的到达VLAN20网关的等价多路径与到达VLANlO网关的等级多路径相同。
[0086]路由桥322 - 326以相同的方式选择到达VLANlO的网关的等价多路径和到达VLAN20网关的等价多路径。
[0087]图3中,路由桥331选择的到达VLANlO网关的等价多路径和到达VLAN20网关的等价多路径包括:路由桥331与路由桥341之间路径以及路由桥331与路由桥342之间的路径。属于VLANlO的终端352连接于路由桥322,属于VLAN20的终端353连接于路由桥323
[0088]终端352未查找到虚拟IP3对应的MAC地址,则生成请求虚拟IP3的ARP请求报文,其中,目标端(Target)IP地址为虚拟IP3 ;发送端(sender)IP地址为IP352 ;发送端MAC地址为MAC352 ;ARP请求报文的以太网头的源MAC地址和目的MAC地址分别设备为MAC352和全F的MAC地址。终端352发送请求虚拟IP3的ARP请求报文。
[0089]路由桥322接收ARP请求报文,根据VLAN10、ARP请求报文的源MAC地址以及APR请求报文的接收端口学习MAC352的表项。路由桥322将ARP报文封装为TRILL封装的ARP请求报文,在TRILL网络内广播。
[0090]路由桥321、路由桥323?326收到Trill报文封装的ARP请求报文,根据nickname322、VLANl以及MAC352学习MAC地址表项。路由桥321、路由桥323?326移除外层以太网头和Trill头,在VLANlO关联的端口广播ARP报文。
[0091]路由桥331?334作为转发路由桥(Transiting路由桥),根据Ingressnickname、内层目的MAC和内层VLAN ID学习MAC352的MAC地址表项,根据Egressnickname在Trill网络内转发。
[0092]路由桥341和342收到Trill封装的ARP报文,根据nickname322、VLANlO以及MAC352学习MAC地址表项,根据TRILL封装的ARP报文的接收端口、MAC352 (发送端MAC地址)以及VLANlO (内层VLAN ID)以及IP352 (发送端MAC地址)学习IP352的ARP信息。
[0093]路由桥341生成响应虚拟IPl的ARP响应报文,其中,目标端IP地址为IP352 ;目标端MAC地址为MAC352 ;发送端IP地址为虚拟IP3 ;发送端MAC地址为虚拟MAC3。路由桥341将ARP响应报文的以太网头的源MAC地址和目的MAC地址分别设置为本设备的VLANlO的虚拟交换接口(VSI, virtual switching interface)的第二 MAC 地址 3412 和 MAC352。路由桥341将ARP响应报文封装为Trill封装的ARP响应报文。
[0094]图3中网关路由桥341的VLANlO的虚拟交换接口和VLAN20的虚拟交换接口的IP地址分别是IP3411和IP3412,但是这两个虚拟交换接口具有相同的第一 MAC地址和相同的第二 MAC地址,即MAC3411和MAC3412。可选的,网关路由桥341的两个虚拟交换接口具有不同第一 MAC地址和不同的第二 MAC地址。网关路由桥342的VLANlO和VLAN2的虚拟交换接口的IP地址不同,但是这两个虚拟交换接口的第一 MAC地址和第二 MAC地址既可以相同,也可以不同。
[0095]路由桥341 将 Trill 头的 Ingress nickname 设置为 nickname341,根据学习的 MAC地址表项将Trill头的Egress nickname设置为nickname322 ;将外层源MAC地址和外层目的MAC地址分别设置为路由桥341的TRILL接口的MAC地址和下一跳路由桥332的TRILL接口的MAC地址。图3中,路由桥341将Trill封装的ARP响应报文发送到路由桥332。
[0096]路由桥332收到Trill封装的ARP请求报文,根据Ingress nickname、内层目的MAC和内层VLAN ID学习MAC3412的MAC地址表项,修改外层源MAC地址和外层目的MAC地址,将Trill封装ARP响应报文发送给路由桥322。
[0097]路由桥322收到Trill封装的ARP请求报文,确定外层目的MAC地址和Egressnickname是本设备的TRILL接口 MAC地址和nickname,移除外层以太网头和Trill头,在MAC表中查找到目的MAC地址MAC3412的匹配表项,发送ARP响应报文到终端352。
[0098]终端352接收ARP响应报文,学习虚拟IP3的ARP信息,根据虚拟IP3的ARP信息封装和发送目的IP地址为IP353的IP报文。这样,终端352将目的IP地址是IP353的以太网报文封装为目的MAC地址是虚拟MAC3的以太网报文;8卩,终端352发送的以太网报文中,目的MAC地址为虚拟MAC3,源MAC地址为MA352。
[0099]路由桥322收到目的MAC地址是虚拟MAC3的以太网报文,将源MAC地址替换为MAC322,在到达VLANlO网关的等价多路径中选择一个路径,譬如路由桥322->路由桥332->路由桥341之间的路径,发送替换了源MAC地址的以太网报文。路由桥322修改源MAC地址是为了避免下一跳路由桥或者网关修改已学习的MAC352表项的出端口,即nickname322。
[0100]路由桥332收到目的MAC地址是虚拟MAC3的以太网报文,将源MAC地址替换为MAC332,在到达VLANlO网关的等价多路径中选择一个路径,譬如路由桥332与路由桥341之间的路径,发送替换了源MAC地址的以太网报文。路由桥332修改源MAC地址是为了避免网关修改已学习的MAC352表项的出端口。
[0101]图3中,非网关路由桥321 - 326以及路由桥331?334的VLANl的虚拟交换接口和VLAN2的虚拟交换接口的IP地址不同,但是这两个虚拟交换接口的MAC地址既可以相同,也可以不同。
[0102]这样,路由桥322和332利用到达VLANlO网关的等价多路径分担发往VLANlO网关的以太网报文,同时路由桥322和333无需将发往VLANlO网关的以太网报文封装为TRILL报文。相应地,VLANlO网关无需对TRILL报文进行解封装以后再执行三层转发。
[0103]路由桥322和332可以根据以太网报文的五元组参数计算HASH值,在等价多路径中选择一个对应的路径。路由桥341接收目的MAC地址是虚拟MAC3的以太网报文,学习源MAC地址MAC332的MAC地址表项。
[0104]路由桥341移除目的MAC地址是虚拟MAC3的以太网报文的以太网头,根据目的IP地址IP353确定执行下行的三层转发。
[0105]路由桥341未查找到目的IP地址IP353对应的ARP信息,缓存目的IP地址是IP353的IP报文,生成请求IP353的ARP请求报文,其中,发送端IP地址是路由桥341的VLAN20的虚拟交换接口的IP地址IP3412 ;发送端MAC地址是路由桥341的VLAN20的虚拟交换接口的第一 MAC地址MAC3411 ;目标端IP地址是IP352。该ARP请求报文的以太网头的VLANID、源MAC地址和目的MAC地址分别是VLAN20、MAC3411和全F的MAC地址。
[0106]路由桥341将ARP请求报文封装为Trill封装的ARP报文,在TRILL网络内广播。
[0107]路由桥331?334收到Trill报文封装的ARP请求报文,根据Ingress nickname、VLAN20以及MAC3411学习MAC地址表项。路由桥331?334根据Egress nickname转发。
[0108]路由桥321?226收到Trill报文封装的ARP请求报文,根据Ingress nickname、VLAN20以及MAC3411学习MAC地址表项。路由桥321?326移除外层以太网头和Tr i 11头,在VLAN20关联的端口广播ARP报文。
[0109]终端353收到ARP请求报文,学习IP3412的ARP信息,为请求IP353的ARP请求报文生成ARP响应报文;根据IP3412的ARP信息发送ARP响应报文。终端353生成的ARP响应报文中,发送端IP地址和发送端MAC地址分别是IP353和MAC353 ;目标端IP地址和目标端MAC地址分别是IP3412和MAC3411;源MAC地址和目的MAC地址分别设置为MA353和 MAC3411。
[0110]路由桥323接收ARP响应报文,根据VLAN20、源MAC地址MAC153以及ARP响应报文的接收端口学习MAC地址表项。
[0111]路由桥323查找MAC3411匹配的表项,将ARP响应报文封装为Tri 11封装的ARP请求?艮文;其中,Trill 头的 Ingress nickname 和 Egress nickname 分别是 nickname323 和nickname341 ;外层以太网头的源MAC和目的MAC分别是路由桥323的TRILL接口的MAC地址和下一跳路由桥332的TRILL接口的MAC地址。路由桥323根据外层目的MAC地址发送Trill封装的ARP响应报文到下一跳路由桥332。
[0112]路由桥332接收Trill封装的ARP响应报文,根据nickname323、MAC353以及VLAN20学习MAC地址表项,修改外层源MAC地址和外层目的MAC地址,将Trill封装的ARP响应报文发送到路由桥341。
[0113]路由桥341接收TRILL封装的ARP响应报文,根据nickname323、MAC353以及VLAN20学习MAC地址表项;根据Trill封装的ARP报文的接收端口、VLAN20、IP353以及MAC353,学习 IP353 的 ARP 信息。
[0114]路由桥341根据MAC3411、MAC353和VLAN20构建以太网头,将以太网头田间到目的IP地址是IP353的IP报文,通过IP353的ARP信息中的出端口发送。这样,路由桥341执行下行三层转发时发出的是以太网报文。
[0115]路由桥332收到以太网报文,查找到MAC353的匹配表项,将收到的以太网报文封装为TRILL报文,将TRILL报文发到路由桥323。
[0116]路由桥323收到TRILL报文,移除外层以太网头和TRILL头,查找目的MAC353的匹配表项,将以太网报文发送到终端353。
[0117]异常处理
[0118]路由桥321326、路由桥331?334检测上行链路。
[0119]路由桥321检测到故障上行链路,且该故障上行链路位于路由桥321->路由器332 - >路由桥341以及路由桥321->路由器332 — >路由桥342的这两个路径上,。路由桥321从到达VLANlO网关的等价多路径和到达VLAN20网关的等价多路径中删除故障上行链路所在的这两个路径。
[0120]路由桥321?326、路由桥331?334可以通过到达路由桥341的等价多路径发送目的MAC地址是VLANlO网关MAC地址或VLAN20网关MAC地址的报文。
[0121]因此,在图3所示的TRILL网络里,即使一台网关路由桥作为TRILL网络内的各VLAN的网关,路由桥321?326仍通过到达各VLAN网关的等价多路径分担发往各VLAN的以太网报文,且不需要收到的以太网报文封装为TRILL报文。路由桥331?334仍不需要收到的以太网报文封装为TRILL报文。路由桥332检测到故障上行链路,且该故障上行链路在路由桥332与路由桥341之间路径,属于路由桥3321到VLANlO网关和VLAN20网关的等价多路径中的一个路径。路由桥332从到达VLANlO网关的等价多路径和到达VLAN20网关的等价多路径中删除故障上行链路所在的这个路径。
[0122]当路由桥341和342各自检测自身的上行链路和下行链路。路由桥341检测到连接路由桥332的下行链路故障,删除故障下行链路的物理端口关联的IP353的ARP信息。
[0123]路由桥341收到的报文的目的IP地址是IP353时,重新发送请求IP353的ARP请求信息,根据收到的TRILL封装的ARP报文重新学习IP353的ARP信息,根据重新学习的ARP信息将目的IP地址是IP353的IP报文封装为以太网报文并发送。
[0124]终端353请求VLAN20网关的MAC地址过程与终端352请求VLANlO网关的MAC地址过程大致相同。
[0125]当路由桥341检测本设备所有上行链路故障时,在TRILL网络内通知本设备的所有上行链路故障。路由桥321?326将自身与路由桥341之间的路径从到达VLANlO网关的等价多路径和到达VLAN20网关的等价多路径中删除。路由桥331?334也执行同样的处理,将各自与路由桥341之间属于等价多路径的每个路径删除。
[0126]通过图2和图3揭示的例子可知,数据中心内的非网关路由桥收到目的MAC地址是网关MAC地址的以太网报文时,将源MAC地址替换为本地MAC地址,将替换了源MAC地址且目的MAC为网关MAC地址的以太网报文通过到达网关的等价多路径执行转发。这样,非网关路由桥无需将需要执行三层转发的以太网报文封装为TRILL报文后,发往作为网关。
[0127]图4所示的本发明实施例中报文转发装置示意图,该报文转发装置400包括:
[0128]路径选择单元401,用于从到达网关的多个TRILL路径中选择等价多路径;
[0129]报文转发单元402,用于将收到的目的MAC地址是网关的MAC地址的以太网报文的源MAC地址替换为本地MAC地址;从等价多路径中选择一个路径发送替换为源MAC地址的以太网报文。
[0130]路径检测单元403,检测上行链路,将上行链路的状态发送给路径选择单元,
[0131]路径选择单元401,还用于确定故障上行链路在等价多路径的任一路径,将故障上行链路所在的路径从等价多路径中删除。
[0132]报文转发单元402,还用于获取网关的MAC地址以及作为网关的两个以上网关路由桥。
[0133]路径选择单元401,还用于计算到达每个网关路由桥的多个TRILL路径;从到达每个网关路由桥的多个TRILL路径中选择跳数最少的两个以上的路径为等价多路径。
[0134]路径选择单元401,还用于获取上行链路故障的网关路由桥,判断等价多路径是否包含到达上行链路故障的网关路由桥的路径;若是,从等价多路径中删除到达上行链路故障的通知录的路径的。
[0135]本发明实施例提供的报文转发装置能够利用到达网关的多个TRIIL路径中的等价多路径分担发往网关的报文,而且无需将发往网关的报文封装为TRILL报文。
[0136]本实施例不再赘述。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种报文的转发方法,其特征在于,所述方法包括: 从到达网关的多个TRILL路径中选择等价多路径; 将收到的目的MAC地址是所述网关的MAC地址的以太网报文的源MAC地址替换为本地MAC地址; 从所述等价多路径中选择一个路径发送替换了源MAC地址的以太网报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 检测上行链路; 如果检测到故障的上行链路在所述等价多路径的任一路径,将故障的上行链路所在的路径从所述等价多路径中删除。
3.根据权利要求1所述的方法,其特征在于, 获取作为所述网关的两个以上网关路由桥; 计算到达每个所述网关路由桥的多个TRILL路径; 从到达每个所述网关路由桥的多个TRILL路径中选择跳数最少的两个以上的路径为所述等价多路径。
4.根据权利要求3所述的方法,其特征在于, 获取上行链路故障的网关路由桥; 判断所述等价多路径是否包含到达上行链路故障的网关路由桥的路径; 若是,从所述等价多路径中删除到达上行链路故障的通知录的路径的。
5.一种报文的转发装置,其特征在于,所述装置包括: 路径选择单元,用于从到达网关的多个TRILL路径中选择等价多路径; 报文转发单元,用于将收到的目的MAC地址是网关的MAC地址的以太网报文的源MAC地址替换为本地MAC地址;从所述等价多路径中选择一个路径发送替换为源MAC地址的以太网报文。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括: 路径检测单元,检测上行链路,将上行链路的状态发送给所述路径选择单元, 所述路径选择单元,还用于确定故障上行链路在所述等价多路径的任一路径,将故障上行链路所在的路径从所述等价多路径中删除。
7.根据权利要求5所述的装置,其特征在于, 所述报文转发单元,还用于获取所述网关的MAC地址以及作为所述网关的两个以上网关路由桥,计算到达每个所述网关路由桥的多个TRILL路径;从到达每个所述网关路由桥的多个TRILL路径中选择跳数最少的两个以上的路径为所述等价多路径。
8.根据权利要求7所述的装置,其特征在于, 所述路径选择单元,还用于获取上行链路故障的网关路由桥,判断所述等价多路径是否包含到达上行链路故障的网关路由桥的路径;若是,从所述等价多路径中删除到达上行链路故障的通知录的路径的。
【文档编号】H04L12/46GK104348717SQ201310334013
【公开日】2015年2月11日 申请日期:2013年8月2日 优先权日:2013年8月2日
【发明者】杨小朋, 宋玉兵, 高瑞昌, 张世林 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1