CN114827027A - 一种报文处理方法及相关装置 - Google Patents
一种报文处理方法及相关装置 Download PDFInfo
- Publication number
- CN114827027A CN114827027A CN202110071068.9A CN202110071068A CN114827027A CN 114827027 A CN114827027 A CN 114827027A CN 202110071068 A CN202110071068 A CN 202110071068A CN 114827027 A CN114827027 A CN 114827027A
- Authority
- CN
- China
- Prior art keywords
- network device
- address
- mac address
- network
- physical
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/20—Hop count for routing purposes, e.g. TTL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种报文处理方法及网络设备,该方法应用于网络***中,网络***包括第一网络设备、第二网络设备和第三网络设备,第三网络设备多归接入到第一网络设备和第二网络设备,第一网络设备配置有第一物理MAC地址和虚拟MAC地址,第二网络设备配置有第二物理MAC地址和虚拟MAC地址,虚拟MAC地址用于向网络侧转发用户数据报文。该方法包括:第一网络设备接收来自于第三网络设备的协议报文,该协议报文包括第二物理MAC地址;第一网络设备根据第二物理MAC地址向第二网络设备转发协议报文。基于本申请的方案,不需要对服务器进行特殊配置即可实现协议报文的正常转发,避免了繁琐的配置过程。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种报文处理方法及相关装置。
背景技术
在数据中心组网中,服务器通常会采用双活(active-active)接入方式双归接入到两台交换机,由这两台交换机实现服务器的负载分担。对于这种组网方式,通常称为跨设备链路聚合组(Multi-chassis Link Aggregation Group,M-LAG)。M-LAG是一种实现跨设备链路聚合的组网方式,能够实现多台设备间的链路聚合,从而提高链路的可靠性。
在M-LAG这种组网方式下,服务器所连接的两台交换机配置相同的媒体接入控制(Media Access Control,MAC)地址(通常称为虚拟MAC地址),服务器所发送的报文会随机哈希选路并发送至任意一个交换机上。在这种情况下,假如服务器需要向交换机1发送协议报文,例如用于建立邻居关系的边界网关协议(Border Gateway Protocol,BGP)报文,且该协议报文被哈希选路并发送至交换机2,由于协议报文中的生存时间(time to live,TTL)为1,且交换机的转发芯片通常不支持转发TTL为1的报文,因此该协议报文无法正确地转发给交换机1。
基于此,相关技术中通过对服务器进行配置,使得服务器在发送协议报文时,将TTL调整为大于1的数值,从而保证后续协议报文能够被转发至对应的交换机上。然而,由于数据中心中通常包括有大量的服务器,因此相关技术中需要对数据中心中的服务器逐个进行配置,配置过程繁琐。
发明内容
本申请提供了一种报文处理方法,通过在向M-LAG中的网络设备所发送的协议中添加目的网络设备唯一对应的物理MAC地址,而不再使用虚拟MAC地址,使得M-LAG中的网络设备接收到包括M-LAG中其他网络设备的物理MAC地址的协议报文时,基于MAC地址进行协议报文的二层转发,不会校验协议报文中的TTL是否大于1,从而能够将协议报文转发到目的网络设备上。该方案不需要对服务器进行特殊配置,避免了繁琐的配置过程。
本申请第一方面提供一种报文处理方法,所述方法应用于网络***中,所述网络***包括第一网络设备、第二网络设备和第三网络设备,所述第三网络设备多归接入到所述第一网络设备和所述第二网络设备。其中,第三网络设备可以是与第一网络设备上的网关接口以及第二网络设备上的网关接口连接。示例性地,第一网络设备、第二网络设备和第三网络设备之间的组网方式可以为上述的M-LAG。所述第一网络设备配置有第一物理MAC地址和虚拟MAC地址,所述第二网络设备配置有第二物理MAC地址和所述虚拟MAC地址,所述虚拟MAC地址用于向网络侧转发用户数据报文。该物理MAC地址也可称为真实MAC地址。
此外,第三网络设备中可以包括有第一网络设备所配置的第一物理MAC地址,第二网络设备所配置的第二物理MAC地址和所述虚拟MAC地址。
所述报文处理方法包括:所述第一网络设备接收来自于所述第三网络设备的协议报文,所述协议报文包括所述第二物理MAC地址。所述第一网络设备根据所述第二物理MAC地址向所述第二网络设备转发所述协议报文。简单来说,在第一网络设备和第二网络设备用于对第三网络设备发送的报文进行负载分担的情况下,第三网络设备发出的协议报文会随机哈希选路至第一网络设备和第二网络设备中的任意一个网络设备上。在不对协议报文和用户数据报文进行区别的情况下,第三网络设备向第二网络设备发送的协议报文,会依据第一网络设备和第二网络设备之间的负载分担模式被随机哈希选路至第一网络设备,即第一网络设备接收到了来自于第三网络设备的协议报文,且该协议报文的目的方为第二网络设备。上述情形下,第三网络设备可以通过在协议报文中携带第二物理MAC地址,指示接收该协议报文的第一网络设备根据该协议报文中所包括的第二物理MAC地址并非是自身的物理MAC地址,而向第二网络设备转发协议报文。此外,当第三网络设备转发的报文类型为用户数据报文时,则可以在该用户数据报文中携带第二网络设备的虚拟MAC地址。第二网络设备在接收到该用户数据报文后执行转发面的二层终结,并通过控制面的路由信息向网络侧设备转发该用户数据报文。
可选的,所述第一网络设备从所述第三网络设备接收的协议报文包括TTL,且所述第一网络设备向所述第二网络设备转发的协议报文中的TTL不减1,即第一网络设备所转发的协议报文中的TTL仍为1。
本申请中,通过在第三网络设备所发送的协议报文中携带目的网络设备的物理MAC地址,能够使得目的网络设备之外的且与第三网络设备连接的网络设备能够基于物理MAC地址将协议报文转发给目的网络设备,且转发过程中TTL不减1。通过本申请的方案,不需要对服务器进行特殊配置,避免了繁琐的配置过程。
可选的,所述方法还包括:所述第一网络设备接收来自于所述第三网络设备的请求消息,所述请求消息包括所述第一物理互联网协议IP地址。所述第一网络设备向所述第三网络设备发送响应消息,所述响应消息包括所述第一物理MAC地址,所述第一物理MAC地址与所述第一网络设备的物理IP地址具有对应关系。也就是说,第三网络设备中配置有第一网络设备上的第一物理IP地址和第二网络设备上的第二物理IP地址,第三网络设备可以通过向第一网络设备和第二网络设备发送请求消息,来获得第一网络设备中与第一物理IP地址对应的第一虚拟MAC地址以及第二网络设备中与第二物理IP地址对应的第二物理MAC地址。
本申请中,第三网络设备通过向第一网络设备发送包括物理IP地址的请求消息,以获得与物理IP地址对应的物理MAC地址,使得第三网络设备后续在向第一网络设备发送协议报文时能够在协议报文中添加物理MAC地址,实现协议报文的正常转发并避免繁琐的配置。
可选的,在第一网络设备以及第三网络设备所处的网络运行第4版互联网协议(Internet Protocol version,IPv4)的情况下,第三网络设备所发送的第一请求消息可以为地址解析协议(Address Resolution Protocol,ARP)请求消息。在第一网络设备以及第三网络设备所处的网络运行第6版互联网协议(Internet Protocol version,IPv6)的情况下,第三网络设备所发送的第一请求消息可以为邻居发现(neighbor discovery,ND)请求消息。第三网络设备通过ARP请求消息或ND请求消息来实现请求获得物理MAC地址。
可选的,第一网络设备向第二网络设备转发协议报文的方式有多种。
在一种可能的实现方式中,在第一网络设备中保存有MAC转发表项,第一网络设备根据MAC转发表项,向第二网络设备转发协议报文。具体地,第一网络设备根据协议报文中的第二物理MAC地址查找MAC转发表项,并获得协议报文对应的第一出接口,该第一出接口即为第一网络设备与第二网络设备所连接的接口。然后,第一网络设备根据第一出接口,向第二网络设备转发协议报文。
在另一种可能的实现方式中,第一网络设备根据所述第二物理MAC地址,通过广播的方式向第二网络设备转发协议报文。
本申请中,第一网络设备通过多种方式来实现向第二网络设备转发协议报文,能够提高方案的灵活性。
可选的,第一网络设备接收到的协议报文可以为边界网关协议(Border GatewayProtocol,BGP)报文、双向转发检测(Bidirectional Forwarding Detection,BFD)协议报文、开放式最短路径优先(Open Shortest Path First,OSPF)协议报文或中间***到中间***(Intermediate System to Intermediate System,IS-IS)协议报文。也就是说,在第一网络设备与第三网络设备之间可以运行上述的BGP、BFD协议、OSPF协议和IS-IS协议中的一个或多个。
可选的,在第一网络设备向第三网络设备发布的路由的下一跳地址为第一网络设备的虚拟IP地址。
在一种可能的实现方式中,第一网络设备作为路由发布者向第三网络设备发布路由时,第一网络设备生成目标路由。示例性地,第一网络设备在需要向网络中的其他发布路由时,第一网络设备可以根据虚拟IP地址生成目标路由,所述目标路由的下一跳地址为第一网络设备的虚拟IP地址,所述目标路由的目的地址可以为第一网络设备的环回(loopback)地址。
在另一种可能的实现方式中,所述第一网络设备从邻居设备获取第一路由,所述第一路由包括下一跳地址。所述第一网络设备将所述第一路由中的下一跳地址更新为所述第一网络设备的虚拟IP地址,得到第二路由。所述第一网络设备向所述第三网络设备发送所述第二路由。
可选的,所述方法还包括:所述第一网络设备接收来自于所述第三网络设备的用户数据报文。所述第一网络设备根据所述用户数据报文包括所述虚拟MAC地址,查找路由表项以获得第二出接口。所述第一网络设备通过第二出接口转发所述用户数据报文。
可选的,所述第一网络设备根据所述用户数据报文包括所述虚拟MAC地址,查找路由表项以获得第二出接口,包括:所述第一网络设备根据所述用户数据报文包括所述虚拟MAC地址,在转发面终结所述用户数据报文。所述第一网络设备查找控制面的所述路由表项以获取所述第二出接口,并通过所述第二出接口转发所述用户数据报文。具体地,第一网络设备在转发面终结所述用户数据报文是指第一网络设备剥掉用户数据报文中的以太网报头,并将用户数据报文上送至控制面,以实现用户数据报文的转发。其中,第一网络设备中的所述路由表项可以是第一网络设备在获取到上述的路由时生成的。示例性地,第一网络设备在接收到邻居设备发送的所述第一路由之后,可以根据第一路由中的下一跳地址(即第一网络设备的邻居设备的loopback地址)查找路由表,得到第一路由对应的出接口(即上述的第二出接口)。然后,第一网络设备根据第一路由的目的地址(即上述的用户的目的地址)和第二出接口,生成路由表项,该路由表项包括用户的目的地址和第二出接口。
本申请第二方面提供一种报文处理方法,所述方法应用于网络***,所述网络***包括第一网络设备、第二网络设备和第三网络设备,所述第三网络设备多归接入到所述第一网络设备和所述第二网络设备。所述报文处理方法包括:第三网络设备发送请求消息,所述请求消息包括第一网络设备的物理IP地址;所述第三网络设备接收响应消息,所述响应消息包括所述第一网络设备的物理MAC地址,所述第一网络设备的物理IP地址与所述第一网络设备的物理MAC地址具有对应关系;所述第三网络设备发送协议报文,所述协议报文中包括所述物理MAC地址,所述物理MAC地址用于指示所述第一网络设备向第二网络设备转发所述协议报文。
可选的,所述方法还包括:所述第三网络设备接收第一网络设备发送的路由,所述路由包括用户的目的地址和下一跳地址,所述下一跳地址为所述第一网络设备的虚拟IP地址。
可选的,所述方法还包括:所述第三网络设备生成用户数据报文,所述用户数据报文包括所述用户的目的地址;所述第三网络设备根据所述用户的目的地址查找路由表项,确定所述用户数据报文的下一跳地址为所述第一网络设备的虚拟IP地址;所述第三网络设备获取所述第一网络设备的虚拟IP地址对应的虚拟MAC地址;所述第三网络设备根据所述虚拟MAC地址更新所述用户数据报文,以得到更新后的用户数据报文,所述更新后的用户数据报文包括所述虚拟MAC地址。
可选的,所述请求信息为地址解析协议ARP请求信息或邻居发现信息。
可选的,所述协议报文包括BGP报文、BFD协议报文、OSPF协议报文或IS-IS协议报文。
本申请第三方面提供一种网络设备,所述网络设备为网络***中的第一网络设备。所述网络***包括第一网络设备、第二网络设备和第三网络设备,所述第三网络设备多归接入到所述第一网络设备和所述第二网络设备。所述网络设备包括收发单元、获取单元和处理单元;所述收发单元用于接收来自于所述第三网络设备的协议报文,所述协议报文包括所述第二物理MAC地址;所述收发单元还用于根据所述第二物理MAC地址向所述第二网络设备转发所述协议报文。
可选的,所述收发单元还用于接收来自于所述第三网络设备的请求消息,所述请求消息包括所述第一物理互联网协议IP地址;所述收发单元还用于向所述第三网络设备发送响应消息,所述响应消息包括所述第一物理MAC地址,所述第一物理MAC地址与所述第一网络设备的物理IP地址具有对应关系。
可选的,所述请求消息为地址解析协议ARP请求消息或邻居发现消息。
可选的,所述网络设备从所述第三网络设备接收的协议报文包括生存时间TTL,所述网络设备向所述第二网络设备转发的协议报文中的TTL不减1。
可选的,所述处理单元用于根据所述第二物理MAC地址查找MAC转发表项,获得所述协议报文对应的第一出接口;所述收发单元还用于所述第一网络设备根据所述第一出接口,向所述第二网络设备转发所述协议报文。
可选的,所述收发单元还用于根据所述第二物理MAC地址,通过广播的方式向所述第二网络设备转发所述协议报文。
可选的,所述协议报文包括BGP报文、BFD协议报文、OSPF协议报文或IS-IS协议报文。
可选的,所述获取单元用于获取第一路由,所述第一路由包括下一跳地址;所述处理单元还用于将所述第一路由中的下一跳地址更新为所述第一网络设备的虚拟IP地址,得到第二路由;所述收发单元还用于向所述第三网络设备发送所述第二路由。
可选的,所述收发单元还用于接收来自于所述第三网络设备的用户数据报文;所述处理单元还用于根据所述用户数据报文包括所述虚拟MAC地址,查找路由表项以获得第二出接口;所述收发单元还用于通过第二出接口转发所述用户数据报文。
可选的,所述处理单元还用于根据所述用户数据报文包括所述虚拟MAC地址,在转发面终结所述用户数据报文。所述处理单元还用于查找控制面的所述路由表项以获取所述第二出接口,并由所述收发单元通过所述第二出接口转发所述用户数据报文。
本申请第四方面提供一种网络设备,所述网络设备为网络***中的第三网络设备。所述网络***包括第一网络设备、第二网络设备和第三网络设备,所述第三网络设备多归接入到所述第一网络设备和所述第二网络设备。所述网络设备包括收发单元、获取单元和处理单元。所述收发单元用于发送请求消息,所述请求消息包括第一网络设备的物理IP地址;所述收发单元还用于接收响应消息,所述响应消息包括所述第一网络设备的物理MAC地址,所述第一网络设备的物理IP地址与所述第一网络设备的物理MAC地址具有对应关系;所述收发单元还用于发送协议报文,所述协议报文中包括所述物理MAC地址,所述物理MAC地址用于指示所述第一网络设备向第二网络设备转发所述协议报文。
可选的,所述收发单元还用于接收第一网络设备发送的路由,所述路由包括用户的目的地址和下一跳地址,所述下一跳地址为所述第一网络设备的虚拟IP地址。
可选的,所述处理单元用于生成用户数据报文,所述用户数据报文包括所述用户的目的地址;所述处理单元还用于根据所述用户的目的地址查找路由表项,确定所述用户数据报文的下一跳地址为所述第一网络设备的虚拟IP地址;所述获取单元用于获取所述第一网络设备的虚拟IP地址对应的虚拟MAC地址;所述处理单元还用于根据所述虚拟MAC地址更新所述用户数据报文,以得到更新后的用户数据报文,所述更新后的用户数据报文包括所述虚拟MAC地址。
可选的,所述请求信息为地址解析协议ARP请求信息或邻居发现信息。
可选的,所述协议报文包括BGP报文、BFD协议报文、OSPF协议报文或IS-IS协议报文。
本申请第五方面提供一种网络设备,该网络设备包括:处理器,用于使得网络设备实现如前述第一方面或第二方面的任一可能的实现方式中描述的方法。该设备还可以包括存储器,存储器与处理器耦合,处理器执行存储器中存储的指令时,可以使得网络设备实现前述第一方面或第二方面任一种可能的实现方式描述的方法。该设备还可以包括通信接口,通信接口用于该装置与其它设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
本申请中存储器中的指令可以预先存储也可以使用该网络设备时从互联网下载后存储,本申请对于存储器中指令的来源不进行具体限定。本申请中的耦合是装置、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。
本申请第六方面提供一种计算机存储介质,该计算机存储介质可以是非易失性的;该计算机存储介质中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现第一方面或第二方面的任一可能的实现方式中描述的方法。
本申请第七方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面或第二方面任一可能的实现方式中描述的方法。
本申请第八方面提供一种网络***,该网络***包括如前述第一方面任一实现方式中所述的网络设备以及与前述第一方面或第二方面任一实现方式中所述的网络设备连接的多个网络设备。
上述第二方面至第六方面提供的方案,用于实现或配合实现上述第一方面提供的方法,因此可以与第一方面达到相同或相应的有益效果,此处不再进行赘述。
附图说明
图1为数据中心中的一种M-LAG组网示意图;
图2为本申请实施例提供的一种报文处理方法的流程示意图;
图3a为本申请实施例提供的一种协议报文的格式示意图;
图3b为本申请实施例提供的一种IP报头的格式示意图;
图3c为本申请实施例提供的一种以太网报头的格式示意图;
图4为本申请实施例提供的一种报文处理方法的流程示意图;
图5为本申请实施例提供的一种用户数据报文处理方法的流程示意图;
图6a为本申请实施例提供的一种服务器与leaf交换机建立协议连接的流程示意图;
图6b为本申请实施例提供的一种路由发布以及用户数据报文转发的流程示意图;
图7为本申请实施例提供的一种网络***的架构示意图;
图8为本申请实施例提供的一种网络设备800的结构示意图;
图9为本申请实施例提供的一种网络设备900的结构示意图;
图10为本申请实施例提供的一种网络设备1000的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的单元的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个***中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分布到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本申请方案的目的。
在数据中心组网中,服务器通常会采用双活(active-active)接入方式双归接入到两台交换机,由这两台交换机实现服务器的负载分担。对于这种组网方式,通常称为跨设备链路聚合组(Multi-chassis Link Aggregation Group,M-LAG)或MC-LAG。M-LAG技术的基本思想是,让两台交换机以同一个状态和被接入的设备进行链路聚合协商,在被接入的设备看来,就如同和一台设备建立了链路聚合关系。这种实现跨设备链路聚合的机制,能够实现多台设备间的链路聚合。M-LAG作为一个逻辑的链路聚合组,对等设备两端(即上述的两台交换机)的表项需要保持一致。因此,一般需要通过对等设备之间的peerlink链路在M-LAG两端同步表项。简单来说,M-LAG是一种实现跨设备链路聚合的组网方式,能够实现多台设备间的链路聚合,从而提高链路的可靠性。
可以参阅图1,图1为数据中心中的一种M-LAG组网示意图。如图1所示,对于服务器1-服务器4来说,任意一个服务器均双归接入到两台叶(leaf)交换机上。例如,服务器1双归接入到leaf交换机1和leaf交换机2上,服务器1上发往外部的数据报文由leaf交换机1和leaf交换机2实现负载分担。
在M-LAG这种组网方式下,服务器1所连接的两台leaf交换机配置相同的媒体接入控制(Media Access Control,MAC)地址(通常称为虚拟MAC地址),服务器所发送的报文会随机哈希选路并发送至任意一个交换机上。在这种情况下,假如服务器需要向leaf交换机1发送协议报文,例如服务器需要向leaf交换机1发送边界网关协议(Border GatewayProtocol,BGP)建联报文,且该协议报文被哈希选路并发送至leaf交换机2。由于服务器1是直接与leaf交换机1连接的,因此服务器1所发送的协议报文中的生存时间(time to live,TTL)为1。但是,由于交换机的转发芯片通常都不支持转发TTL为1的报文,因此该协议报文无法正确地转发给leaf交换机1。
基于此,相关技术中通过对服务器进行配置,使得服务器在发送协议报文时,能够将TTL调整为大于1的数值,从而保证后续协议报文能够被转发至对应的交换机上。然而,由于数据中心中通常包括有大量的服务器,因此相关技术中需要对数据中心中的服务器逐个进行配置,配置过程繁琐。
有鉴于此,本申请实施例提供了一种报文处理方法,通过在向M-LAG中的网络设备所发送的协议中添加目的网络设备唯一对应的物理MAC地址,使得M-LAG中的网络设备接收到包括M-LAG中其他网络设备的物理MAC地址的协议报文时,基于MAC地址进行协议报文的二层转发,不会校验协议报文中的TTL是否大于1,从而能够将协议报文转发到目的网络设备上。该方案不需要对服务器进行特殊配置,避免了繁琐的配置过程。
以上介绍虽然是以M-LAG组网场景为例,对本申请实施例提供的报文处理方法所应用的场景进行了说明。可以理解地,本申请实施例提供的报文处理方法还可以应用于其他具有双归接入或多归接入的业务场景,在此并不对本申请实施例所应用的业务场景做唯一限定。
可以参阅图2,图2为本申请实施例提供的一种报文处理方法的流程示意图。本申请实施例提供的报文处理方法应用于网络***中,所述网络***包括第一网络设备、第二网络设备和第三网络设备,所述第三网络设备多归接入到所述第一网络设备和所述第二网络设备。其中,第三网络设备可以是与第一网络设备上的网关接口以及第二网络设备上的网关接口连接。示例性地,第一网络设备、第二网络设备和第三网络设备之间的组网方式可以为上述的M-LAG。
所述第一网络设备配置有第一物理MAC地址和虚拟MAC地址,所述第二网络设备配置有第二物理MAC地址和所述虚拟MAC地址,所述虚拟MAC地址用于向网络侧转发用户数据报文。也就是说,第一网络设备和第二网络设备配置有不同的物理MAC地址,且第一网络设备和第二网络设备配置有相同的虚拟MAC地址,所述虚拟MAC地址用于第一网络设备和第二网络设备向网络侧转发用户数据报文。
其中,第一网络设备所配置的第一物理MAC地址可以是指第一网络设备上与第三网络设备连接的网关接口的MAC地址,该第一物理MAC地址能够用于唯一标识第一网络设备上与第三网络设备所连接的网关接口。类似地,第二网络设备所配置的第二物理MAC地址可以是指第二网络网络设备上与第三网络设备连接的网关接口的MAC地址,该第二物理MAC地址能够用于唯一标识第二网络设备上与第三网络设备所连接的网关接口。作为网络设备中的网关接口的唯一标识,第一物理MAC地址和第二物理MAC地址可以是在第一网络设备以及第二网络设备出厂前分别配置于第一网络设备和第二网络设备中。以上以第一物理MAC地址和第二物理MAC地址为网关接口的地址为例,在其他可能的应用场景中也可以是指向其他对象的第一物理MAC地址和第二物理MAC地址。
此外,上述的虚拟MAC地址可以是通过多种方式配置于第一网络设备和第二网络设备上的。例如,网络管理员可以通过手动配置的方式,在第一网络设备和第二网络设备上静态配置相同的虚拟MAC地址。又例如,控制器可以给网络***中的网络设备动态分配虚拟MAC地址,控制器在为第一网络设备和第二网络设备分配相同的虚拟MAC地址之后,向第一网络设备和第二网络设备下发所分配的虚拟MAC地址,从而使得第一网络设备和第二网络设备实现配置虚拟MAC地址。再例如,第一网络设备动态分配虚拟MAC地址,并且将所分配的虚拟MAC地址发送给第二网络设备,使得第一网络设备和第二网络设备配置相同的虚拟MAC地址。
本实施例中,所述第三网络设备多归接入到所述第一网络设备和所述第二网络设备可以包括:第三网络设备双归接入到第一网络设备和第二网络设备,或者第三网络设备多归接入到第一网络设备、第二网络设备以及其他的网络设备,例如第三网络设备三归接入到第一网络设备、第二网络设备以及第四网络设备。为了便于介绍,以下将以第三网络设备双归接入到第一网络设备和第二网络设备为例,对本申请实施例提供的报文处理方法进行介绍。
本实施例中,该网络***中的第一网络设备以及第二网络设备例如可以为路由器、交换机或网关等物理设备,也可以是支持报文转发的虚拟设备等。本实施例对第一网络设备和第二网络设备的具体类型不做限定。第三网络设备例如可以为服务器或其他用户侧设备。
如图2所示,报文处理方法至少包括以下的步骤201-202。
步骤201,所述第一网络设备接收来自于所述第三网络设备的协议报文,所述协议报文包括所述第二物理MAC地址。
由于第三网络设备多归接入第一网络设备和第二网络设备,在第一网络设备和第二网络设备用于对第三网络设备发送的报文进行负载分担的情况下,第三网络设备发出的协议报文会随机哈希选路至第一网络设备和第二网络设备中的任意一个网络设备上。本实施例中,第三网络设备向第二网络设备发送的协议报文,被随机哈希选路至第一网络设备,即第一网络设备接收到了来自于第三网络设备的协议报文,且该协议报文的目的方为第二网络设备。
其中,第三网络设备中可以保存第二物理MAC地址(即第二网络设备的物理MAC地址)以及第二物理IP地址(即第二网络设备的物理IP地址),且第三网络设备中建立有第二物理MAC地址和第二物理IP地址之间的对应关系,第三网络设备能够根据第二物理IP地址查找到对应的第二物理MAC地址。这样,第三网络设备在需要向第二网络设备发送协议报文时,第三网络设备可以根据第二网络设备的第二物理IP地址查找到对应的第二物理MAC地址,并且在报文中携带第二物理MAC地址。
可选的,第三网络设备可以是通过多种方式来获取第二物理MAC地址和第二物理IP地址。例如,网络管理员可以通过手动配置的方式,在第三网络设备上静态配置第二网络设备对应的第二物理MAC地址和第二物理IP地址;或者,控制器向第三网络设备下发第二物理MAC地址和第二物理IP地址,从而使得第三网络设备实现第二物理MAC地址和第二物理IP地址的配置。又例如,第三网络设备通过网络管理员手动配置或控制器下发的方式获取第二网络设备对应的第二物理IP地址,然后第三网络设备根据第二物理IP地址向第二网络设备发送请求消息,以接收到第二网络设备返回的包括有第二物理MAC地址的响应消息,从而获取得到第二物理MAC地址和第二物理IP地址。类似地,第三网络设备可以通过上述的方式获取第一网络设备的物理IP地址(即第一物理IP地址)和物理MAC地址(即第一物理MAC地址),在此不再赘述。
可选的,第一网络设备接收到的协议报文可以为边界网关协议(Border GatewayProtocol,BGP)报文、双向转发检测(Bidirectional Forwarding Detection,BFD)协议报文、开放式最短路径优先(Open Shortest Path First,OSPF)协议报文或中间***到中间***(Intermediate System to Intermediate System,IS-IS)协议报文。也就是说,在第一网络设备与第三网络设备之间可以运行上述的BGP、BFD协议、OSPF协议和IS-IS协议中的一个或多个。例如,第一网络设备与第三网络设备之间运行有BGP,或者第一网络设备与第三网络设备之间同时运行有BGP和BFD协议,BFD协议用于在链路故障的时候提高路由的收敛速度。示例性地,在第一网络设备与第三网络设备之间运行BGP时,第一网络设备所接收到的协议报文可以为请求建立BGP连接的报文,即该协议报文时第三网络设备用于请求与第二网络设备建立BGP连接的报文。
步骤202,所述第一网络设备根据所述第二物理MAC地址向所述第二网络设备转发所述协议报文。
本实施例中,在第一网络设备接收到协议报文之后,由于协议报文中所包括的第二物理MAC地址并非是第一网络设备对应的物理MAC地址,因此第一网络设备向第二网络设备转发协议报文。
其中,第一网络设备向第二网络设备转发协议报文的方式有多种。
在一种可能的实现方式中,在第一网络设备中保存有MAC转发表项,第一网络设备根据MAC转发表项,向第二网络设备转发协议报文。具体地,第一网络设备根据协议报文中的第二物理MAC地址查找MAC转发表项,并获得协议报文对应的第一出接口,该第一出接口即为第一网络设备与第二网络设备所连接的接口。然后,第一网络设备根据第一出接口,向第二网络设备转发协议报文。
可选的,第一网络设备与第二网络设备之间可以建立有邻居连接(peer link)链路,该peer link链路可以为物理链路或通过隧道(tunnel)模拟的逻辑链路,用于实现第一网络设备与第二网络设备之间的报文通信。第一网络设备可以是通过peer link链路向第二网络设备发送协议报文。
其中,第一网络设备中的MAC转发表项可以是网络管理员手动配置于第一网络设备中的;该MAC转发表项也可以是由控制器下发至第一网络设备中的;该MAC转发表项还可以是第一网络设备在接收到第二网络设备所发送的第二物理MAC地址后生成的。
在另一种可能的实现方式中,第一网络设备根据所述第二物理MAC地址,通过广播的方式向第二网络设备转发协议报文。简单来说,第一网络设备可以是根据第二物理MAC地址,向与第一网络设备共同实现负载分担的其他网络设备转发协议报文。例如,在第三网络设备三归接入第一网络设备、第二网络设备和第四网络设备的情况下,第一网络设备与第二网络设备之间建立peer link链路,第一网络设备与第四网络设备也建立有peer link链路。第一网络设备可以通过与第二网络设备之间的peer link链路以及与第四网络设备之间的peer link链路向第二网络设备以及第四网络设备广播协议报文。
在一种可能的情形中,所述第一网络设备从所述第三网络设备接收的协议报文中包括TTL,且该TTL为1。所述第一网络设备向所述第二网络设备转发的协议报文中的TTL不减1,即第一网络设备所转发的协议报文中的TTL仍为1。
可以理解的是,在数据的通信过程中,发起报文的设备可以根据所遵循的每层协议分别在数据载荷的基础上,封装一层报头;在数据到达目的网络设备后,目的网络设备再根据所遵循的对应的每层协议剥掉相应的报头。可以参阅图3a,图3a为本申请实施例提供的一种协议报文的格式示意图。如图3a所示,在第三网络设备所发送的协议报文中,包括数据载荷、IP报头和以太网报头。其中,数据载荷中包括第三网络设备请求建立连接的数据内容。可以参阅图3b,图3b为本申请实施例提供的一种IP报头的格式示意图。如图3b所示,IP报头中包括生存时间(TTL)、源IP地址、目的IP地址等内容,IP报文中的TTL为1。可以参阅图3c,图3c为本申请实施例提供的一种以太网报头的格式示意图。如图3c所示,以太网报头中包括目的地址、源地址和类型等内容。具体地,以太网报头中的目的地址可以为上述的第二物理MAC地址。第一网络设备在接收到协议报文之后,第一网络设备根据以太网报头中的第二物理MAC地址转发协议报文。第一网络设备不剥掉协议报文中的以太网报头,即第一网络设备不进行二层终结,协议报文中并不会上传到三层进行处理,因此第一网络设备并不会校验IP报头中的TTL,从而使得协议报文能够被转发至第二网络设备。由于第一网络设备不进行二层终结,因此第一网络设备不会对IP报头进行修改,即IP报头中的TTL不减1,第一网络设备所转发的协议报文中的TTL仍为1。
可选的,第一网络设备向第二网络设备转发协议报文时,第一网络设备可以是向第二网络设备透传所述协议报文,即第一网络设备不修改协议报文中的任何内容。第一网络设备还可以是对协议报文进行一定的更新后,再向第二网络设备转发更新后的协议报文。例如,第一网络设备修改了协议报文的报头中的某个或某几个字段的信息后,再向第二网络设备转发修改后的协议报文。在实际应用中,第一网络设备可以根据协议报文的类型,选择向第二网络设备透传协议报文或者是发送更新后的协议报文。
在第二网络设备接收到第一网络设备转发的协议报文后,第二网络设备确定协议报文中包括第二物理MAC地址,因此第二网络设备执行二层终结,具体例如剥掉协议报文中的以太网报头,并校验IP报头。由于IP报头中的目的IP地址为第二网络设备的物理IP地址,且IP报头中的TTL为1,因此第二网络设备可以根据协议报文向第三网络设备执行响应操作。例如,在协议报文为请求建立BGP连接的报文时,第二网络设备向第三网络设备发送建立BGP连接的响应报文,以实现BGP连接的建立。
因此,在本申请实施例中,通过在第三网络设备所发送的协议报文中携带目的网络设备的物理MAC地址,能够使得目的网络设备之外的且与第三网络设备连接的网络设备能够基于物理MAC地址将协议报文转发给目的网络设备,且转发过程中TTL不减1。通过本申请实施例的方案,不需要对服务器进行特殊配置,避免了繁琐的配置过程。
可以参阅图4,图4为本申请实施例提供的一种报文处理方法的流程示意图。如图4所示,该报文处理方法包括步骤401-408。
401、第三网络设备向第一网络设备发送第一请求消息,所述第一请求消息包括第一物理IP地址。
本实施例中,第三网络设备中配置有第一网络设备上的第一物理IP地址和第二网络设备上的第二物理IP地址,第三网络设备可以通过向第一网络设备和第二网络设备发送请求消息,来获得第一网络设备中与第一物理IP地址对应的第一物理MAC地址以及第二网络设备中与第二物理IP地址对应的第二物理MAC地址。
可选的,在第一网络设备以及第三网络设备所处的网络运行第4版互联网协议(Internet Protocol version,IPv4)的情况下,第三网络设备所发送的第一请求消息可以为地址解析协议(Address Resolution Protocol,ARP)请求消息。在第一网络设备以及第三网络设备所处的网络运行第6版互联网协议(Internet Protocol version,IPv6)的情况下,第三网络设备所发送的第一请求消息可以为邻居发现(neighbor discovery,ND)请求消息。
402、第一网络设备向所述第三网络设备发送第一响应消息,所述第一响应消息包括所述第一物理MAC地址,所述第一物理MAC地址与所述第一网络设备的物理IP地址具有对应关系。
由于在第一网络设备中建立有第一物理MAC地址与第一物理IP地址的对应关系,即第一物理MAC地址与第一物理IP地址关联,因此第一网络设备可以根据第一请求消息中的第一物理IP地址,向第三网络设备发送包括有第一物理MAC地址的第一响应消息。
可选的,在第一网络设备以及第三网络设备所处的网络运行IPv4的情况下,第一网络设备所发送的第一响应消息可以为ARP响应消息。在第一网络设备以及第三网络设备所处的网络运行IPv6的情况下,第一网络设备所发送的第一响应消息可以为ND响应消息。
403、第三网络设备向第二网络设备发送第二请求消息,所述第二请求消息包括第二物理IP地址。
404、第二网络设备向所述第三网络设备发送第二响应消息,所述第二响应消息包括所述第二物理MAC地址,所述第二物理MAC地址与所述第二网络设备的物理IP地址具有对应关系。
本实施例中,步骤403-404与上述的步骤401-402类似,具体可以参考步骤401-402,在此不再赘述。
值得注意的是,步骤401-402与步骤403-404之间没有顺序限定,可以是先执行步骤401-402,也可以是先执行步骤403-404,或者同步执行。
405、第三网络设备根据第一响应消息建立第一物理IP地址与第一物理MAC地址之间的对应关系,以及根据第二响应消息建立第二物理IP地址与第二物理MAC地址之间的对应关系。
在第三网络设备接收到第一响应消息之后,第三网络设备可以根据第一响应消息中的第一物理MAC地址,建立第一物理IP地址与第一物理MAC地址之间的对应关系。类似地,在第三网络设备接收到第二响应消息之后,第三网络设备可以根据第二响应消息中的第二物理MAC地址,建立第二物理IP地址与第二物理MAC地址之间的对应关系。
示例性地,第三网络设备可以建立关联表(例如ARP表),该关联表中记录有相关联的IP地址和MAC地址,即上述的第一物理IP地址与第一物理MAC地址,以及第二物理IP地址与第二物理MAC地址。
406、第三网络设备向第一网络设备发送协议报文,所述协议报文中包括第二物理MAC地址。
在第三网络获得与第二网络设备的第二物理IP地址对应的第二物理MAC地址之后,当第三网络设备需要向第二网络设备发送协议报文时,第三网络设备可以根据第二网络设备的第二物理IP地址查找上述的关联表,确定第二物理MAC地址。然后,第三网络设备可以在协议报文中封装第二物理IP地址以及第二物理MAC地址,并发送协议报文。其中,第三网络设备发送的协议报文,被随机哈希选路至第一网络设备,即第一网络设备接收到了来自于第三网络设备的协议报文,且该协议报文的目的方为第二网络设备。
407、第一网络设备根据第二物理MAC地址,向第二网络设备转发所述协议报文。
408、第二网络设备根据所述协议报文,向第三网络设备发送响应报文。
本实施例中,步骤407-408与上述步骤202类似,具体可以参考上述对步骤202的介绍,在此不再赘述。
以上介绍了第三网络设备向第二网络设备发送协议报文的过程,以下将介绍第三网络设备发送用户数据报文的过程。在第三网络设备分别与第一网络设备及第二网络设备通过协议报文,例如BGP报文建立起BGP会话后,第一网络设备和第二网络设备可以用于转发第三网络设备发送的用户数据报文。可以参阅图5,图5为本申请实施例提供的一种用户数据报文处理方法的流程示意图。如图5所示,用户数据报文处理方法包括步骤501-507。
步骤501、第一网络设备获取目标路由,所述目标路由的下一跳地址为第一网络设备的虚拟IP地址。
本实施例中,第一网络设备获取目标路由的方式有多种。
在一种可能的实现方式中,第一网络设备从邻居设备获取到路由,通过修改该路由的下一跳地址,以获得目标路由。示例性地,在网络中其他网络设备发布路由的情况下,所述第一网络设备从邻居设备获取第一路由,所述第一路由包括下一跳地址,第一路由中的下一跳地址为第一网络设备的邻居设备的IP地址。在获得第一路由后,所述第一网络设备将所述第一路由中的下一跳地址更新为所述第一网络设备的虚拟IP地址,得到第二路由。该虚拟IP地址例如可以为第一网络设备的网关IP地址。其中,第二路由的下一跳地址为第一网络设备的虚拟IP地址,第一网络设备的虚拟IP地址与第二网络设备的虚拟IP地址相同;第二路由的目的地址可以为路由发布者的环回(loopback)地址,第二路由即为上述的目标路由。
在另一种可能的实现方式中,第一网络设备作为路由发布者向网络中的其他网络设备发布路由时,第一网络设备生成目标路由。示例性地,第一网络设备在需要向网络中的其他发布路由时,第一网络设备可以根据虚拟IP地址生成目标路由,所述目标路由的下一跳地址为第一网络设备的虚拟IP地址,所述目标路由的目的地址可以为第一网络设备的loopback地址。
步骤502、第一网络设备向第三网络设备发送所述目标路由。
在获得目标路由后,第一网络设备可以向作为第一网络设备的邻居设备的第三网络设备发送目标路由,以实现目标路由在网络中的传播。
步骤503、第三网络设备根据目标路由生成路由表项,所述路由表项包括目标路由的目的地址和第一网络设备的虚拟IP地址。
第三网络设备在获得目标路由之后,可以根据目标路由中的目的地址以及下一跳地址生成路由表项,以实现后续与目标路由相关的用户数据报文的发送。其中,在第三网络设备所生成的路由表项中包括目标路由的目的地址以及第一网络设备的虚拟IP地址。
步骤504、第三网络设备生成用户数据报文,所述用户数据报文包括所述用户的目的地址和所述虚拟MAC地址。
本实施例中,第三网络设备可以为上述的服务器,第三网络设备可以根据业务需求,与用户设备或其他的服务器执行数据的交互。具体地,第三网络设备确定需要向某一目的网络设备发送用户数据报文时,第三网络设备生成用户数据报文,该用户数据报文包括该目的网络设备对应的目的地址,即上述的用户的目的地址,该用户的目的地址可以是位于用户数据报文的IP报头中。然后,所述第三网络设备根据所述用户的目的地址查找第三网络设备中的所述路由表项,确定所述用户数据报文的下一跳地址为所述第一网络设备的虚拟IP地址。由于第三网络设备中保存有第一网络设备的虚拟IP地址与第一网络设备设备的虚拟MAC地址之间的对应关系,因此所述第三网络设备可以获取所述第一网络设备的虚拟IP地址对应的虚拟MAC地址。最后,所述第三网络设备根据所述虚拟MAC地址更新所述用户数据报文,以得到更新后的用户数据报文,更新后的用户数据报文包括所述用户的目的地址和所述虚拟MAC地址,所述虚拟MAC地址可以是位于更新后的用户数据报文的以太网报头中。
需要说明的是,第三网络设备中保存有第一网络设备的虚拟IP地址与第一网络设备设备的虚拟MAC地址之间的对应关系。第一网络设备的虚拟IP地址与第一网络设备的虚拟MAC地址之间的对应关系可以是静态配置于第三网络设备中,也可以是第三网络设备根据获取到的虚拟IP地址和虚拟MAC地址生成的。具体地,第三网络设备获取虚拟IP地址和虚拟MAC地址的方式与上述的步骤401-404类似,具体可以参考上述的步骤401-404,此处不再赘述。
步骤505、第三网络设备向第一网络设备发送所述用户数据报文。
在生成包括所述用户的目的地址和所述虚拟MAC地址的用户数据报文后,第三网络设备向第一网络设备发送所述用户数据报文,以使得第一网络设备进一步转发用户数据报文,从而实现将用户数据报文转发至目的网络设备。
本实施例中,第一网络设备和第二网络设备可以用于对第三网络设备发送的报文进行负载分担,第三网络设备所发送的用户数据报文可以是在第一网络设备和第二网络设备之间随机哈希选路。由于第一网络设备和第二网络设备中包括有相同的虚拟MAC地址以及虚拟IP地址,因此第一网络设备和第二网络设备均能够实现第三网络设备所发送的用户数据报文的转发。为便于介绍,以下将以第三网络设备所发送的用户数据报文哈希选路至第一网络设备为例,对用户数据报文的转发过程进行介绍。
步骤506、第一网络设备根据所述用户数据报文包括所述虚拟MAC地址,查找路由表项以获得第二出接口。
本实施例中,第一网络设备在接收到用户数据报文后,所述第一网络设备根据所述用户数据报文包括所述虚拟MAC地址,即所述第一网络设备根据用户数据报文中的虚拟MAC地址与自身的虚拟MAC地址相同,在转发面终结所述用户数据报文。具体地,第一网络设备在转发面终结所述用户数据报文是指第一网络设备剥掉用户数据报文中的以太网报头,并将用户数据报文上送至控制面,以实现用户数据报文的转发。在第一网络设备剥掉用户数据报文中的以太网报头后,所述第一网络设备根据用户数据报文包括的所述用户的目的地址,查找控制面的所述路由表项以获取所述第二出接口,并通过所述第二出接口转发所述用户数据报文。
具体地,第一网络设备中的所述路由表项可以是第一网络设备在获取到上述的目标路由时生成的。示例性地,第一网络设备在接收到邻居设备发送的所述第一路由之后,可以根据第一路由中的下一跳地址(例如第一网络设备的邻居设备的loopback地址),查找路由表,得到第一路由对应的出接口(即上述的第二出接口)。然后,第一网络设备根据第一路由的目的地址(即上述的用户的目的地址)和第二出接口,生成路由表项,该路由表项包括用户的目的地址和第二出接口。
步骤507、所述第一网络设备通过第二出接口转发所述用户数据报文。
在查找得到第二出接口之后,第一网络设备通过第二出接口转发所述用户数据报文,从而将用户数据报文转发至第一网络设备的网络侧邻居设备,由第一网络设备的网络侧邻居设备执行用户数据报文的下一步转发,最终实现将用户数据报文转发至目的网络设备。
以上介绍了第一网络设备执行路由发布以及用户数据报文转发的过程,为便于理解,以下将结合具体场景介绍路由发布以及用户数据报文转发的过程。
可以参阅图6a,图6a为本申请实施例提供的一种服务器与leaf交换机建立协议连接的流程示意图。如图6a所示,服务器与leaf交换机建立协议连接的过程包括步骤S1-S6。
S1、服务器向leaf交换机1发送请求消息。
其中,服务器中配置有leaf交换机1的物理IP地址,服务器可以通过向leaf交换机1发送请求消息,来获得leaf交换机1中与物理IP地址对应的物理MAC地址。
具体地,服务器中所配置的leaf交换机1的物理IP地址例如为2.1.1.4,在服务器向leaf交换机1所发送请求消息中携带有物理IP地址2.1.1.4。该请求消息可以为ARP请求消息或ND请求消息。
S2、leaf交换机1向服务器发送响应消息。
在leaf交换机1接收到服务器发送的请求消息之后,leaf交换机1确定请求消息所包括的MAC地址为自身的物理MAC地址。因此,leaf交换机1向服务器根据与物理MAC地址对应的物理MAC地址,向服务器发送响应消息,该响应消息中包括leaf交换机1的物理MAC地址。例如,响应消息中所包括的物理MAC地址可以为acb3-b586-a370。
可以理解的是,服务器中还可以配置有leaf交换机2的物理IP地址,服务器通过leaf交换机2发送请求消息,来获得leaf交换机2的物理MAC地址。例如,服务器中所配置的leaf交换机2的物理IP地址为2.1.1.5,服务器通过接收leaf交换机2返回响应消息,所获得的leaf交换机2的物理MAC地址为acb3-b586-a371。
S3、服务器建立IP地址与MAC地址的对应关系。
在服务器接收到leaf交换机1发送的响应消息之后,服务器可以根据响应消息中的物理MAC地址,建立物理IP地址2.1.1.4与物理MAC地址acb3-b586-a370之间的对应关系。
S4、服务器向leaf交换机2发送协议报文。
当服务器需要向leaf交换机1发送协议报文时,服务器可以根据leaf交换机1的物理IP地址查找关联表,以确定leaf交换机1的MAC地址。然后,服务器可以在协议报文中封装leaf交换机1的物理IP地址2.1.1.4以及物理MAC地址acb3-b586-a370,并发送协议报文。其中,服务器发送的协议报文,被随机哈希选路至leaf交换机2,即leaf交换机2接收到了来自于服务器的协议报文,且该协议报文的目的方为leaf交换机1。
示例性地,服务器向leaf交换机2所发送的协议报文例如为BGP建联报文,用于请求与leaf交换机2建立BGP连接。
S5、leaf交换机2向leaf交换机1转发协议报文。
在leaf交换机2在接收到服务器发送的协议报文之后,leaf交换机2可以确定协议报文中的MAC地址并非为自身的物理MAC地址,因此leaf交换机2根据协议报文中的物理MAC地址acb3-b586-a370,向leaf交换机1转发协议报文。
S6、leaf交换机1向服务器发送响应报文。
在leaf交换机1接收到leaf交换机2所转发的协议报文后,由于协议报文中包括自身的物理MAC地址以及物理IP地址,因此leaf交换机1可以确定协议报文的目的方为自身,从而向服务器发送响应报文。
例如,在协议报文为请求建立BGP连接的报文时,leaf交换机1向服务器发送建立BGP连接的响应报文,以实现BGP连接的建立。
可以理解的是,服务器可以基于类似的方式向leaf交换机2发送协议报文,以建立与leaf交换机2之间的BGP连接,具体可以参考上述的步骤S1-S6,在此不再赘述。
可以参阅图6b,图6b为本申请实施例提供的一种路由发布以及用户数据报文转发的流程示意图。如图6b所示,路由发布以及用户数据报文转发的过程包括步骤S7-S13。
S7、spine交换机向leaf交换机1和leaf交换机2发送路由。
本实施例中,spine交换机从其他的leaf交换机获取到路由发布者所发布的路由,且spine交换机将获取到的路由的下一跳地址修改为自身的接口地址后,将下一跳地址修改后的路由分别发送给leaf交换机1和leaf交换机2。示例性地,假设spine交换机获取到的路由的目的地址为1.1.1.1,spine交换机向leaf交换机1发送的路由的下一跳地址为192.168.1.1(即spine交换机与leaf交换机1连接的接口的地址),spine交换机向leaf交换机2发送的路由的下一跳地址为192.168.1.2(即spine交换机与leaf交换机2连接的接口的地址)。
S8、leaf交换机1根据接收到的路由生成路由表项,并修改路由的下一跳地址为虚拟IP地址。
基于从spine交换机接收到的路由,leaf交换机1查找路由表,以获得该路由中的下一跳地址对应的出接口(假设出接口为接口1)。然后,leaf交换机1根据接收到的路由生成路由表项,该路由表项包括目的地址(1.1.1.1)、下一跳地址(192.168.1.1)以及出接口(接口2)。此外,leaf交换机1还将接收到的路由的下一跳地址修改为leaf交换机1的虚拟IP地址,以便于向服务器发送修改下一跳地址后的路由。例如,leaf交换机1路由的下一跳地址修改为2.1.1.1。
类似地,leaf交换机2在接收到spine交换机发送的路由后,也可以是根据路由生成路由表项并且将路由的下一跳地址修改为leaf交换机2的虚拟IP地址。
S9、leaf交换机1向服务器发送修改下一跳地址后的路由。
S10、服务器生成包括虚拟MAC地址的用户数据报文A和用户数据报文B。
服务器在接收到leaf交换机1发送的路由之后,可以根据路由中的目的地址以及下一跳地址生成路由表项,以实现后续与路由相关的用户数据报文的发送。其中,在服务器所生成的路由表项中包括目的地址(1.1.1.1)、第一网络设备的虚拟IP地址(2.1.1.1)。
在服务器需要向地址为1.1.1.1的网络设备发送用户数据时,服务器生成目的地址均为1.1.1.1的用户数据报文A和用户数据报文B,其中用户数据报文A和用户数据报文B属于同一用户流量。然后,服务器根据目的地址1.1.1.1查找第三网络设备中的路由表项,确定用户数据报文A和用户数据报文B的下一跳地址为虚拟IP地址2.1.1.1。基于虚拟IP地址2.1.1.1,服务器获取虚拟IP地址2.1.1.1对应的虚拟MAC地址0000-5e00-0100。最后,服务器根据该虚拟MAC地址更新用户数据报文A和用户数据报文B,以得到更新后的用户数据报文A和用户数据报文B,更新后的用户数据报文A和用户数据报文B均包括目的地址1.1.1.1和虚拟MAC地址0000-5e00-0100。
S11、服务器分别向leaf交换机1和leaf交换机2发送属于同一用户流量的用户数据报文A和用户数据报文B。
在得到目的地址1.1.1.1和虚拟MAC地址0000-5e00-0100的用户数据报文A和用户数据报文B后,服务器发送该用户数据报文A和用户数据报文B。在leaf交换机1和leaf交换机2对服务器发送的报文进行负载分担的情况下,服务器所发送的用户数据报文A被哈希选路至leaf交换机1,且用户数据报文B被哈希选路至leaf交换机2。也就是说,服务器向leaf交换机1发送该用户数据报文A,以及向leaf交换机2发送用户数据报文B。
S12、leaf交换机1向spine交换机发送用户数据报文A。
在leaf交换机1接收到服务器发送的用户数据报文A之后,leaf交换机1根据用户数据报文A的目的地址,查找出接口即leaf交换机1与spine交换机所连接的接口。
在查找得到用户数据报文A对应的出接口之后,leaf交换机1可以根据查找得到的出接口向spine交换机发送用户数据报文A,以使得spine交换机继续执行用户数据报文的转发。
S13、leaf交换机2向spine交换机发送用户数据报文B。
类似,leaf交换机2在接收到用户数据报文B之后,也可以是通过查找出接口,以向spine交换机发送用户数据报文B。
以上介绍了第三网络设备基于物理MAC地址以及虚拟MAC地址发送协议报文以及用户数据报文的过程,以下将介绍第三网络设备获取物理MAC地址以及虚拟MAC地址的过程。
可以参阅图7,图7为本申请实施例提供的一种网络***的架构示意图。如图7所示,上述的第一网络设备可以为图7中的leaf交换机1,上述的第二网络设备可以为图7中的leaf交换机2,上述的第三网络设备可以为图7中的服务器。其中,leaf交换机1以及leaf交换机2均保存有物理IP地址、虚拟IP地址、真实MAC地址以及虚拟MAC地址。
在leaf交换机1中,物理IP地址为2.1.1.4,虚拟IP地址为2.1.1.1,真实MAC地址为acb3-b586-a370,虚拟MAC地址为0000-5e00-0100,且物理IP地址与真实MAC地址具有对应关系,虚拟IP地址与虚拟MAC地址具有对应关系。
在leaf交换机2中,物理IP地址为2.1.1.5,虚拟IP地址为2.1.1.1,真实MAC地址为acb3-b586-a371,虚拟MAC地址为0000-5e00-0100,且物理IP地址与真实MAC地址具有对应关系,虚拟IP地址与虚拟MAC地址具有对应关系。leaf交换机1和leaf交换机2中的虚拟IP地址以及虚拟MAC地址相同。
在服务器中,配置有leaf交换机1的物理IP地址、leaf交换机2的物理IP地址以及leaf交换机1和leaf交换机2共同的虚拟IP地址。服务器可以通过向leaf交换机1发送包括有leaf交换机1的物理IP地址的请求消息,来获得leaf交换机1的物理MAC地址。服务器可以通过向leaf交换机2发送包括有leaf交换机2的物理IP地址的请求消息,来获得leaf交换机2的物理MAC地址。此外,服务器还可以通过向leaf交换机1或leaf交换机2发送包括虚拟IP地址的请求消息,以获得leaf交换机1和leaf交换机2对应的虚拟MAC地址。这样,服务器在获得相应的MAC地址之后,可以建立起IP地址与MAC地址之间的对应关系,即物理IP地址2.1.1.4与物理MAC地址acb3-b586-a370对应,物理IP地址2.1.1.5与物理MAC地址acb3-b586-a371对应,虚拟IP地址2.1.1.1与虚拟MAC地址0000-5e00-0100对应。
为了实现上述实施例,本申请还提供了一种网络设备。可以参阅图8,图8为本申请实施例提供的一种网络设备800的结构示意图。如图8所示,网络设备800例如可以为上述的第一网络设备或第二网络设备。
作为一种可能的示例,在网络设备800的控制面中,可以包括BGP处理模块、ARP处理模块、网关接口配置模块、桥域(bridge domain)以及M-LAG模块。其中,BGP处理模块用于通过网关接口的物理IP地址和服务器建立BGP会话,配置路由策略,以及将发往服务器的路由的下一跳地址填写为虚拟IP地址。ARP处理模块用于处理ARP请求,例如获取到包括物理IP地址的ARP请求消息时,回应包括虚拟MAC地址的ARP响应消息。网关接口配置模块用于配置网关接口对应的IP地址和MAC地址,包括物理IP地址、虚拟IP地址、物理MAC地址和虚拟MAC地址的配置。M-LAG模块用于负责M-LAG相关的配置和协议处理,以使得leaf交换机的接入端口之间能够形成跨设备的LAG捆绑关系。桥域用于将M-LAG成员端口接入对应的bridgedomain,以及配置peerlink链路加入M-LAG成员端口所在bridge domain。通过所配置的peerlink链路可以实现M-LAG成员leaf交换机1和leaf交换机2之间的二层互通。此外,桥域还可以用于配置peerlink链路和M-LAG本地接入端口之间实现报文的水平分割,避免leaf交换机从peerlink链路收到的报文又转发到M-LAG本地端口而形成报文环路。
在网络设备800的转发面中,可以包括协议报文上送模块、二层报文转发模块和三层报文转发模块。协议报文上送模块用于将协议报文上送到控制面,例如当网络设备800从物理端口收到报文之后,协议报文上送模块识别报文为ARP报文或BGP报文等协议报文后,将报文上送到控制面。二层报文转发模块用于实现报文的二层转发,例如当网络设备800从物理端口收到报文之后,如果报文中的MAC地址为广播&未知单播&组播(broadcast&unknown-unicast&multicast,BUM)地址,即报文的MAC地址未知,则二层报文转发模块在对应的bridge domain内进行二层广播处理;如果报文的MAC地址已知,则查找MAC转发表项进行报文的转发。三层报文转发模块用于实现报文的二层转发,例如当网络设备800从物理端口收到用户数据报文之后,如果用户数据报文的MAC地址为网关接口的虚拟MAC地址,则进行二层终结,并由三层报文转发模块查找路由表,进行三层转发,即将用户数据报文通过上行接口送往上行网络。
可以参阅图9,图9为本申请实施例提供的一种网络设备900的结构示意图。图9所示的网络设备900尽管示出了某些特定特征,但是本领域的技术人员将从本申请实施例中意识到,为了简洁起见,图9未示出各种其他特征,以免混淆本申请实施例所公开的实施方式的更多相关方面。为此,作为示例,在一些实现方式中,网络设备900包括一个或多个处理单元(cpu)901、网络接口902、编程接口903、存储器904和一个或多个通信总线905,用于将各种组件互连。在另一些实现方式中,网络设备900也可以在上述示例基础上省略或增加部分功能部件或单元。
在一些实现方式中,网络接口902除其他用途外,用于在网络***中和一个或多个其他的网络设备/服务器连接。在一些实现方式中,通信总线905包括互连和控制***组件之间的通信的电路。存储器904可以包括非易失性存储器,例如,只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器904也可以包括易失性存储器,易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。
在一些实现中,存储器904或存储器904的非暂时性计算机可读存储介质存储以下程序、模块和数据结构,或其子集,例如包括收发单元(图中未示出)、获取单元9041和处理单元9042。
在一个可能的实施例中,该网络设备900可以具有上述各方法实施例中的第一网络设备、第二网络设备或第三网络设备所实现的任意功能。
应理解,网络设备900对应于上述方法实施例中的第一网络设备、第二网络设备或第三网络设备,网络设备900中的各模块和上述其他操作和/或功能分别为了实现上述方法实施例中的各网络设备所实施的各种步骤和方法,具体细节可参见上述描述各方法实施例,为了简洁,在此不再赘述。
应理解,以上的收发单元的功能可以是由处理器调用存储器中的程序代码来实现,并在需要时配合网络接口902;也可以是由网络设备900上的网络接口902来完成数据的收发操作。
在各种实现中,网络设备900用于执行本申请各实施例提供的报文处理方法,例如是执行上述图2所示的实施例所对应的报文处理方法。
与本申请提供的方法实施例以及虚拟装置实施例相对应,本申请实施例还提供了一种网络设备,下面对网络设备的硬件结构进行介绍。
可以参阅图10,图10为本申请实施例提供的一种网络设备1000的结构示意图,该网络设备1000可以配置为上述方法实施例中的第一网络设备、第二网络设备或第三网络设备。
例如,网络设备1000可以对应于上述方法实施例中的第一网络设备,网络设备1000中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中的第一网络设备所实施的各种步骤和方法,关于网络设备1000如何转发报文的详细流程,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。其中,上述各方法实施例的各步骤通过网络设备1000处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
网络设备1000也可以对应于上述虚拟装置实施例中的网络设备900,网络设备900中的每个功能模块采用网络设备1000的软硬件实现。作为可能的实现方式,网络设备900包括的功能模块为网络设备1000的处理器读取存储器中存储的程序代码后生成的,或者为网络设备1000的处理器读取存储器中存储的程序代码,以及配合通信接口共同实现的。
网络设备1000包括:主控板1010和接口板1030。
主控板1010也称为主处理单元(main processing unit,MPU)或路由处理卡(route processor card),主控板1010对网络设备1000中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板1010包括:中央处理器1011和存储器1012。
接口板1030也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板1030用于提供各种业务接口并实现数据包的转发。业务接口包括但不限于以太网接口、POS(Packet over SONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(Flexible Ethernet Clients,FlexE Clients)。接口板1030包括:中央处理器1031、网络处理器1032、转发表项存储器1034和物理接口卡(ph10sical interface card,PIC)1033。
接口板1030上的中央处理器1031用于对接口板1030进行控制管理并与主控板1010上的中央处理器1011进行通信。
网络处理器1032用于实现报文的转发处理。网络处理器1032的形态可以是转发芯片。具体而言,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
物理接口卡1033用于实现物理层的对接功能,原始的流量由此进入接口板1030,以及处理后的报文从该物理接口卡1033发出。物理接口卡1033包括至少一个物理接口,物理接口也称物理口,物理接口卡1033对应于***架构中的FlexE物理接口。物理接口卡1033也称为子卡,可安装在接口板1030上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器1032处理。在一些实施例中,接口板1003的中央处理器1031也可执行网络处理器1032的功能,比如基于通用CPU实现软件转发,从而物理接口卡1033中不需要网络处理器1032。
可选的,网络设备1000包括多个接口板,例如网络设备1000还包括接口板1040,接口板1040包括:中央处理器1041、网络处理器1042、转发表项存储器1044和物理接口卡1043。
可选的,网络设备1000还包括交换网板1020。交换网板1020也可以称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板1030的情况下,交换网板1020用于完成各接口板之间的数据交换。例如,接口板1030和接口板1040之间可以通过交换网板1020通信。
主控板1010和接口板1030耦合。例如,主控板1010、接口板1030和接口板1040,以及交换网板1020之间通过***总线与***背板相连实现互通。在一种可能的实现方式中,主控板1010和接口板1030之间建立进程间通信协议(inter-process communication,IPC)通道,主控板1010和接口板1030之间通过IPC通道进行通信。
在逻辑上,网络设备1000包括控制面和转发面,控制面包括主控板1010和中央处理器1031,转发面包括执行转发的各个组件,比如转发表项存储器1034、物理接口卡1033和网络处理器1032。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器1032基于控制面下发的转发表对物理接口卡1033收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器1034中。在有些实施例中,控制面和转发面可以完全分离,不在同一设备上。
应理解,网络设备900中的收发单元可以相当于网络设备1000中的物理接口卡1033或物理接口卡1043;网络设备900中的获取单元11041和处理单元11042可以相当于网络设备1000中的中央处理器1011或中央处理器1031。
应理解,本申请实施例中接口板1040上的操作与接口板1030的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备1000可对应于上述各个方法实施例中的第一网络设备,该网络设备1000中的主控板1010、接口板1030和/或接口板1040可以实现上述各个方法实施例中的第一网络设备、第二网络设备或第三网络设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个***的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选的,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做唯一限定。
在一些可能的实施例中,上述各网络设备可以实现为虚拟化设备。例如,虚拟化设备可以是运行有用于发送报文功能的程序的虚拟机(英文:Virtual Machine,VM),虚拟机部署在硬件设备上(例如,物理服务器)。虚拟机指通过软件模拟的具有完整硬件***功能的、运行在一个完全隔离环境中的完整计算机***。可以将虚拟机配置为第一网络设备。例如,可以基于通用的物理服务器结合网络功能虚拟化(Network FunctionsVirtualization,NFV)技术来实现第一网络设备。第一网络设备为虚拟主机、虚拟路由器或虚拟交换机。本领域技术人员通过阅读本申请即可结合NFV技术在通用物理服务器上虚拟出具有上述功能的第一网络设备。此处不再赘述。
应理解,上述各种产品形态的网络设备,分别具有上述方法实施例中各网络设备实现的任意功能,此处不再赘述。
本申请实施例提供了一种计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行上述图2对应的方法实施例中第一网络设备执行的方法。
本申请实施例还提供了一种芯片,包括处理器和接口电路,接口电路,用于接收指令并传输至处理器。其中,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片***实现上述任一方法实施例中的方法。
可选的,该芯片***中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选的,该芯片***中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
示例性的,该芯片***可以是现场可编程门阵列(field programmable gatearray,FPGA),可以是专用集成芯片(application specific integrated circuit,ASIC),还可以是***芯片(system on chip,SoC),还可以是中央处理器(central processorunit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。
以上对本申请实施例进行了详细介绍,本申请实施例方法中的步骤可以根据实际需要进行顺序调度、合并或删减;本申请实施例装置中的模块可以根据实际需要进行划分、合并或删减。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备/服务器等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (19)
1.一种报文处理方法,其特征在于,所述方法应用于网络***,所述网络***包括第一网络设备、第二网络设备和第三网络设备,所述第三网络设备多归接入到所述第一网络设备和所述第二网络设备,所述第一网络设备配置有第一物理MAC地址和虚拟MAC地址,所述第二网络设备配置有第二物理MAC地址和所述虚拟MAC地址,所述虚拟MAC地址用于向网络侧转发用户数据报文;
所述方法包括:
所述第一网络设备接收来自于所述第三网络设备的协议报文,所述协议报文包括所述第二物理MAC地址;
所述第一网络设备根据所述第二物理MAC地址向所述第二网络设备转发所述协议报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一网络设备接收来自于所述第三网络设备的请求消息,所述请求消息包括所述第一物理互联网协议IP地址;
所述第一网络设备向所述第三网络设备发送响应消息,所述响应消息包括所述第一物理MAC地址,所述第一物理MAC地址与所述第一网络设备的物理IP地址具有对应关系。
3.根据权利要求2所述的方法,其特征在于,所述请求消息为地址解析协议ARP请求消息或邻居发现消息。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述第一网络设备从所述第三网络设备接收的协议报文包括生存时间TTL,所述第一网络设备向所述第二网络设备转发的协议报文中的TTL不减1。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述第一网络设备根据所述第二物理MAC地址向所述第二网络设备转发所述协议报文,包括:
所述第一网络设备根据所述第二物理MAC地址查找MAC转发表项,获得所述协议报文对应的第一出接口;
所述第一网络设备根据所述第一出接口,向所述第二网络设备转发所述协议报文。
6.根据权利要求1-4任意一项所述的方法,其特征在于,所述第一网络设备根据所述第二物理MAC地址向所述第二网络设备转发所述协议报文,包括:
所述第一网络设备根据所述第二物理MAC地址,通过广播的方式向所述第二网络设备转发所述协议报文。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述协议报文包括边界网关协议BGP报文、双向转发检测BFD协议报文、开放式最短路径优先OSPF协议报文或中间***到中间***IS-IS协议报文。
8.根据权利要求1-7任意一项所述的方法,其特征在于,所述方法还包括:
所述第一网络设备接收来自于所述第三网络设备的用户数据报文;
所述第一网络设备根据所述用户数据报文包括所述虚拟MAC地址,查找路由表项以获得第二出接口;
所述第一网络设备通过第二出接口转发所述用户数据报文。
9.根据权利要求8所述的方法,其特征在于,所述第一网络设备根据所述用户数据报文包括所述虚拟MAC地址,查找路由表项以获得第二出接口,包括:
所述第一网络设备根据所述用户数据报文包括所述虚拟MAC地址,在转发面终结所述用户数据报文;
所述第一网络设备查找控制面的所述路由表项以获取所述第二出接口,并通过所述第二出接口转发所述用户数据报文。
10.一种报文处理方法,其特征在于,所述方法应用于网络***,所述网络***包括第一网络设备、第二网络设备和第三网络设备,所述第三网络设备多归接入到所述第一网络设备和所述第二网络设备,包括:
第三网络设备发送请求消息,所述请求消息包括第一网络设备的物理IP地址;
所述第三网络设备接收响应消息,所述响应消息包括所述第一网络设备的物理MAC地址,所述第一网络设备的物理IP地址与所述第一网络设备的物理MAC地址具有对应关系;
所述第三网络设备发送协议报文,所述协议报文中包括所述物理MAC地址,所述物理MAC地址用于指示所述第一网络设备向第二网络设备转发所述协议报文。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述第三网络设备接收第一网络设备发送的路由,所述路由包括用户的目的地址和下一跳地址,所述下一跳地址为所述第一网络设备的虚拟IP地址。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述第三网络设备生成用户数据报文,所述用户数据报文包括所述用户的目的地址;
所述第三网络设备根据所述用户的目的地址查找路由表项,确定所述用户数据报文的下一跳地址为所述第一网络设备的虚拟IP地址;
所述第三网络设备获取所述第一网络设备的虚拟IP地址对应的虚拟MAC地址;
所述第三网络设备根据所述虚拟MAC地址更新所述用户数据报文,以得到更新后的用户数据报文,所述更新后的用户数据报文包括所述虚拟MAC地址。
13.根据权利要求10-12任意一项所述的方法,其特征在于,所述请求信息为地址解析协议ARP请求信息或邻居发现信息。
14.根据权利要求10-13任意一项所述的方法,其特征在于,所述协议报文包括BGP报文、BFD协议报文、OSPF协议报文或IS-IS协议报文。
15.一种网络设备,其特征在于,包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得所述网络设备执行如权利要求1至9任意一项所述的方法。
16.一种网络设备,其特征在于,包括:处理器、存储器;存储器用于存储指令;处理器用于执行存储器中的指令,使得所述网络设备执行如权利要求10至14任意一项所述的方法。
17.一种网络***,其特征在于,包括:如权利要求15所述的网络设备以及如权利要求16所述的网络设备。
18.一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现如权利要求1至14任意一项所述的方法。
19.一种计算机程序产品,其特征在于,所述计算机程序产品中存储有计算机可读指令,当该计算机可读指令被处理器执行时实现如权利要求1至14任意一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110071068.9A CN114827027A (zh) | 2021-01-19 | 2021-01-19 | 一种报文处理方法及相关装置 |
EP22150907.8A EP4030730A1 (en) | 2021-01-19 | 2022-01-11 | Packet processing method and related apparatus |
US17/577,579 US20220231942A1 (en) | 2021-01-19 | 2022-01-18 | Packet processing method and related apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110071068.9A CN114827027A (zh) | 2021-01-19 | 2021-01-19 | 一种报文处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114827027A true CN114827027A (zh) | 2022-07-29 |
Family
ID=80119666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110071068.9A Pending CN114827027A (zh) | 2021-01-19 | 2021-01-19 | 一种报文处理方法及相关装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220231942A1 (zh) |
EP (1) | EP4030730A1 (zh) |
CN (1) | CN114827027A (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8953590B1 (en) * | 2011-03-23 | 2015-02-10 | Juniper Networks, Inc. | Layer two virtual private network having control plane address learning supporting multi-homed customer networks |
WO2014107905A1 (zh) * | 2013-01-14 | 2014-07-17 | 华为技术有限公司 | 集群以及转发方法 |
US9178816B1 (en) * | 2013-09-27 | 2015-11-03 | Juniper Networks, Inc. | Control plane messaging in all-active multi-homed ethernet virtual private networks |
US10079711B1 (en) * | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US20190182202A1 (en) * | 2017-12-12 | 2019-06-13 | Nokia Solutions And Networks Oy | System and method for route optimization in a multichasiss link aggregation configuration |
US11757759B2 (en) * | 2020-08-31 | 2023-09-12 | Ciena Corporation | Hop limit/TTL propagation mode aware relayed MPLS/SRv6 traceroute |
-
2021
- 2021-01-19 CN CN202110071068.9A patent/CN114827027A/zh active Pending
-
2022
- 2022-01-11 EP EP22150907.8A patent/EP4030730A1/en active Pending
- 2022-01-18 US US17/577,579 patent/US20220231942A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220231942A1 (en) | 2022-07-21 |
EP4030730A1 (en) | 2022-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108574616B (zh) | 一种处理路由的方法、设备及*** | |
CN108574639B (zh) | Evpn报文处理方法、设备及*** | |
US9882741B2 (en) | Communication apparatus and communication method | |
US11038834B2 (en) | Selecting an external link of a plurality of external links | |
EP3694145B1 (en) | Method and device for sending messages | |
US11310080B2 (en) | VXLAN configuration method, device, and system | |
CN107094110B (zh) | 一种dhcp报文转发方法及装置 | |
EP3989512A1 (en) | Method for controlling traffic forwarding, device, and system | |
CN113973082A (zh) | 一种报文处理方法及网络设备 | |
US9438475B1 (en) | Supporting relay functionality with a distributed layer 3 gateway | |
CN113660164A (zh) | 一种报文转发方法及网络设备 | |
CN113542111A (zh) | 一种报文转发方法及网络设备 | |
WO2022007702A1 (zh) | 一种报文处理方法及网络设备 | |
CN112822097A (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
WO2022017099A1 (zh) | 通信方法、cp设备及nat设备 | |
US20230344751A1 (en) | Route Processing Method, Related Apparatus, and Network System | |
WO2022166465A1 (zh) | 一种报文处理方法及相关装置 | |
WO2022188530A1 (zh) | 一种路由处理方法及网络设备 | |
CN114827027A (zh) | 一种报文处理方法及相关装置 | |
US8732335B2 (en) | Device communications over unnumbered interfaces | |
CN114760244A (zh) | 一种传输绑定段标识bsid的方法、装置和网络设备 | |
CN114338518A (zh) | 一种路由处理方法及网络设备 | |
WO2022143572A1 (zh) | 一种报文处理方法及相关设备 | |
CN114697220A (zh) | 一种报文处理方法及相关装置 | |
CN117097818A (zh) | 一种报文处理的方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |