CN109218178A - 一种报文处理方法及网络设备 - Google Patents
一种报文处理方法及网络设备 Download PDFInfo
- Publication number
- CN109218178A CN109218178A CN201710543069.2A CN201710543069A CN109218178A CN 109218178 A CN109218178 A CN 109218178A CN 201710543069 A CN201710543069 A CN 201710543069A CN 109218178 A CN109218178 A CN 109218178A
- Authority
- CN
- China
- Prior art keywords
- message
- network equipment
- tunnel
- interface
- network
- 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
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/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
-
- 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)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及通信领域,具体涉及一种报文处理方法及网络设备。该方法中,第三网络设备经由第一链路连接到第一网络设备的第一接口;第三网络设备经由第二链路连接到第二网络设备的第二接口,第一链路和第二链路具有相同的链路标识,其中,第一网络设备接收第三网络设备发送的第一报文,第一报文为控制协议报文;第一网络设备根据隧道协议将第一报文封装为第二报文,第二报文中包括链路标识以及第一报文;第一网络设备通过隧道向第二网络设备发送第二报文。本申请通过转发平面的网络处理器来处理控制协议报文,备份控制面协议表项,有效提高了处理效率。
Description
技术领域
本申请涉及通信领域,具体涉及一种报文处理方法及网络设备。
背景技术
在双活设备场景下,即互为双活设备的两台网络设备之间如果要同步控制面表项,如媒体访问控制(Media Access Control,简称MAC)表、组播表以及地址解析协议(Address Resolution Protocol,简称ARP)表等,需要通过一些控制面协议来进行同步,例如通过以太网虚拟专用网络(Ethernet Virtual Private Network,简称EVPN)协议来同步两台网络设备之间的控制面表项,EVPN协议是一种用于二层网络互连的虚拟专用网络(Virtual Private Network,简称VPN)技术。
例如两台网络设备分别是网络设备A和网络设备B,控制面表项是ARP表项,网络设备A通过EVPN协议向网络设备B备份该ARP表项,EVPN协议标准中支持传输ARP路由。具体的备份过程采用软件发包的方式,即网络设备A的通过网络设备A上的控制面通过EVPN协议向网络设备B上的控制面发送支持EVPN协议的报文,该过程中,由于EVPN协议控制面主要采用边界网关协议(Border Gateway Protocol,简称BGP),具体的是BGP-4的多协议扩展(Multiprotocol Extensions for BGP-4,简称MP-BPG)控制面的方式,即通过MP-BPG来承载MAC或者是网络协议(Internet Protocol,简称IP)路由信息。
但是采用EVPN进行控制面表项同步存在两个问题,其一是由于通过控制面,如MP-BGP方式,网络设备A的ARP表项要经过多个中间模块才能使得网络设备B获得该ARP表项,而由于控制面是由网络设备上的中央处理器(Central Processing Unit,简称CPU)来处理,而CPU处理协议的效率较低,从而导致同步ARP表项的性能差,尤其是在双活设备中的一个由于故障恢复要学习另一个设备的所有ARP表项时,同步性能更差;另一方面,由于EVPN协议标准中的报文格式仅能够携带ARP表项,如果要支持多种控制协议报文,则需要对EVPN协议标准中的协议报文进行扩展,扩展难度高且扩展成本高。
发明内容
本申请实施例提供了一种报文处理方法及网络设备来解决双活设备通过控制面协议进行控制表项的备份带来的同步性能差的问题。
本申请实施例的第一方面提供一种报文处理方法,该方法中,第三设备会经由第一链路连接到第一网络设备的第一接口,同时,该第三设备还会经由第二链路连接到第二网络设备的第二接口,并且第一链路和第二链路是具有相同的链路标识,该链路标识用于标识所述第一网络设备以及所述第二网络设备分别通过所述第一接口和所述第二接口连接所述第三网络设备,在进行路由转发时两条链路视为是等同的,在此场景下,第一网络设备会接收到第三网络设备通过第一链路发送的第一报文,且该第一报文是控制协议报文,急着,第一网络设备会根据第一网络设备与第二网络设备之间配置的隧道的隧道协议将该第一报文封装成第二报文,该第二报文中包括该链路标识以及该第一报文;最后,第一网络设备会将该第二报文通过该隧道发送给第二网络设备,以完成该第一报文的备份过程。
可以看出,由于在第一网络设备和第二网络设备之间设置了隧道,第一报文这类控制协议报文的备份过程从将该第一报文发送到第一网络设备的控制面,并通过第一网络设备的控制面将该第一报文发送至第二网络设备的控制面的这种方式变为,首先将该第一报文按照设置的隧道的隧道协议封装为第二报文,然后送到隧道中,第二网络设备接收到给第二报文后会解封装获得其中的第一报文,而后将该第一报文发送到第二网络设备的控制面,可以看出,整个第一报文的传输流程不在通过由CPU处理协议的控制面而是通过转发平面的网络处理器来进行转发处理,处理性能有很大的提高,能通过转发平面的网络处理器来处理控制协议报文,备份控制面协议表项,有效提高了处理效率;此外,由于采用隧道封装技术,可以直接将整个控制协议报文进行封装,从而使得该备份方式的适用范围更广。
在一些实施例中,所述第二报文包括第一类型长度值(Type Length Value,简称TLV)字段和第二TLV字段,所述第一TLV字段用于承载所述链路标识,所述第二TLV字段用于承载所述第一报文。可以看出,在隧道中传输的第二报文实际是通过TLV的方式携带第一报文以及链路标识等,在需要的情况下,还可以有第三TLV等,携带更多的信息内容,从而进一步提高本申请报文处理方法的可实现性。
在一些实施例中,隧道的设置可以有两种方式,一种是该隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,即该方式下,所有发送到第一网络设备的第一报文这类控制协议报文均会通过该预设的缺省隧道的隧道协议封装并发送至第二网络设备;第二种是所述隧道为对应所述链路标识的隧道,这种方式第一网络设备在接收到第一报文这类控制协议报文时,仅会将从该链路标识对应的第一网络设备上的接口接收到的第一报文通过该隧道协议进行封装并发送给第二网络设备。两种方式的应用可根据场景的要求不同而做出相应的调整。
在一些实施例中,该隧道为虚拟可扩展局域网(Virtual eXtensible Local AreaNetwork,简称VxLAN)隧道,在此情形下,第一网络设备根据隧道协议将所述第一报文封装为第二报文具体可以是,第一网络根据VxLAN网络标识(VxLAN Network Identifier,简称VNI)确定以太网虚拟点到点业务实例(Ethernet virtual private line,简称EVPL),该EVPL实际上一个以太网虚拟专线业务,该实例在运行时,会有两个接口,一个是用于对应物理层面网络设备接口的逻辑接口,一个是VxLAN隧道口,该EVPL实例运行逻辑即只要是通过该逻辑接口的数据一律发送到VxLAN隧道口通过该VxLAN隧道传输;接着第一网络设备便可以根据该EVPL获取到该隧道的隧道信息,最后便通过这些隧道信息将第一报文封装成第二报文。
在一些实施例中,可以在第一报文中携带一个第一提示信息,网络设备通过该第一提示信息可以确认出该报文是否是控制类报文;其中,该第一提示信息的携带方式可以有多种,例如可以直接设置在第一报文的报文头中的保留位中,也可以是在该第一报文中添加的一个TVL,在该TLV中承载该第一提示信息,具体的方式并不限定。
在一些实施例中,所述第一报文包括ARP请求报文、因特网组管理协议(InternetGroup Management Protocol,简称IGMP)报文或链路汇聚控制协议(Link AggregationControl Protocol,简称LACP)报文。可以看出,本申请实施例方法实际可以处理多种控制协议报文。
在一些实施例中,第二网络设备的第二接口如果初始连接到第三网络设备上且与第一网络设备构成双活设备,或者是第二网络设备因故障丢失第二接口上的ARP表项时,会通过该隧道向第一网络设备发送第三报文,该第三报文中携带有链路标识以及第二提示信息,该链路标识能够使得第一网络设备知道要进行备份的是第一网络设备上对应该链路标识的第一接口,而第二提示信息,则指示第一网络设备将第一接口上学习到的ARP表项备份给第二网络设备;接着,第一网络设备会根据第一接口上学习到的ARP表项生成第五报文,该第五报文为ARP请求报文,同为ARP请求报文;接下来,第一网络设备会根据隧道协议将第五报文封装为第四报文,该第四报文中包括该链路标识和该第五报文;最后,第一网络设备便可通过隧道将第四报文发送给第二网络设备,以使得第二网络设备完成ARP表项的重生。可以看出,通过此方式还可以使得第一网络设备故障恢复后,由第二网络设备向第一网络设备发送ARP表项。从而能够增强本申请实施例的报文处理方法的可扩展性。
在一些实施例中,第一网络设备在确认备份已完成后,会通过隧道向第二网络设备发送第六报文,该第六报文中携带有第三提示信息,该第三提示信息用于向第二网络设备指示该ARP表项备份结束。该第六报文的意义在使得第二网络设备知晓APR表项的备份已完成,从而该第二网络设备可以根据该ARP表项进行正常的路由转发功能。
在一些实施例中,若第一报文是IGMP报文时,由于针对该IGMP报文并没有对应的响应报文,第一网络设备在处理该IGMP报文时,仅需要按原本的流程将从第一接口接收到的IGMP报文发送到控制面即可,而后由第一网络设备的控制面下发组播信息给第一网络设备的转发平面即可。
在一些实施例中,第一报文为ARP请求报文,第一网络设备会将该ARP请求报文发送至第一网络设备的控制面,之后,控制面会向第一网络设备的转发平面返回响应报文,第一网络设备会将该响应报文通过第一接口发送至第三网络设备。
本申请实施例第二方面还提供一种报文处理方法,在该方法中,第三设备会经由第一链路连接到第一网络设备的第一接口,同时,该第三设备还会经由第二链路连接到第二网络设备的第二接口,并且第一链路和第二链路是具有相同的链路标识,该链路标识用于标识所述第一网络设备以及所述第二网络设备分别通过所述第一接口和所述第二接口连接所述第三网络设备,在进行路由转发时两条链路视为是等同的,在此场景下,第二网络设备通过隧道接收第一网络设备发送的根据隧道协议封装的第二报文,该第二报文中包括第一报文和链路标识,所述第一报文为所述第一网络设备从所述第三网络设备接收的控制协议报文,即是第一网络设备向第二网络设备备份的报文;第二网络设备会根据所述隧道协议解封装所述第二报文,并获取该第一报文和链路标识;接着第二网络设备会根据获取的链路标识确定所述第二网络设备上连接所述第三网络设备的接口为第二接口;第二网络设备将所述第一报文和所述第二接口的接口信息发送至所述第二网络设备的控制面。
可以看出,由于第二网络设备接收的第二报文是第一网络设备通过隧道传输的,在第二网络设备接收到以后,需要对该第二报文按照隧道信息进行解封装,获取其中链路标识和第一报文,其中,链路标识主要用于第二网络设备找到自身上对应第一网络设备的接收第一报文的第一接口的第二接口,该第一接口与第二接口的之间的关系是通过链路标识进行关联的,而后第二网络设备即可模拟从第二接口接收到第一报文,并将该第一报文以及第二接口的信息发送至控制面,能使得控制面完成第一报文的解析以及将解析出的表项下发到第二网络设备的转发平面,完成表项的备份过程。可以看出,能通过转发平面的网络处理器来处理控制协议报文,备份控制面协议表项,有效提高了处理效率;此外,由于采用隧道封装技术,可以直接将整个控制协议报文进行封装,从而使得该备份方式的适用范围更广。
在一些实施例中,所述第二报文包括第一TLV字段和第二TLV字段,所述第一TLV字段用于承载所述链路标识,所述第二TLV字段用于承载所述第一报文。可以看出,在隧道中传输的第二报文实际是通过TLV的方式携带第一报文以及链路标识等,在需要的情况下,还可以有第三TLV等,携带更多的信息内容,从而进一步提高本申请报文处理方法的可实现性。
在一些实施例中,隧道的设置可以有两种方式,一种是该隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,即该方式下,所有发送到第一网络设备的第一报文这类控制协议报文均会通过该预设的缺省隧道的隧道协议封装并发送至第二网络设备;第二种是所述隧道为对应所述链路标识的隧道,这种方式第一网络设备在接收到第一报文这类控制协议报文时,仅会将从该链路标识对应的第一网络设备上的接口接收到的第一报文通过该隧道协议进行封装并发送给第二网络设备。两种方式的应用可根据场景的要求不同而做出相应的调整。
在一些实施例中,该隧道为VxLAN隧道,第二网络设备根据隧道协议解封装所述第二报文,获取所述第一报文和所述链路标识具体过程可以变为,第二网络设备根据VNI确定EVPL;而后第二网络设备根据所述EVPL获取所述隧道的隧道信息;接下来,第二网络设备便可以根据所述隧道的隧道信息解封装所述第二报文,获取所述第一报文和所述链路标识。即,第一网络设备和第二网络设备之间的VxLAN隧道的VNI是与EVPL相关联的,该关联可以在静态配置,从而第一网络设备和第二网络设备均可以通过VNI确定到EVPL实例,从而获取到对应的隧道信息。
在一些实施例中,在所述第二网络设备根据所述隧道的隧道信息解封装所述第二报文,获取所述第一报文之前,会对第二报文的合法性进行验证,具体的,若是第二网络根据所述隧道信息对所述第二报文中携带的隧道信息校验通过时,才会触发所述第二网络设备根据所述隧道的隧道信息解封装所述第二报文的步骤。而若是隧道信息的校验未通过时,第二网络设备会直接丢弃该第二报文。通过添加该验证步骤,能够节省网络处理器的处理资源。
在一些实施例中,所述第一报文为ARP请求报文、IGMP报文或LACP报文。可以看出,本申请实施例方法实际可以处理多种控制协议报文。
在一些实施例中,报文处理方法还可包括:第二网络设备将第一提示信息发送至所述控制面,所述第一提示信息用于指示所述控制面不向所述第三网络设备返回ARP响应报文。该第一提示信息可以在第二网络设备向其上的控制面发送第一报文时一并发送。
在一些实施例中,在所述第二网络设备接收所述第二报文之前,报文处理方法还可包括:当第二网络设备的第二接口初始化连接到所述第三网络设备时,第二网络设备会通过该隧道向所述第一网络设备发送第三报文,该第三报文中携带所述链路标识和第二提示信息,该链路标识能够使得第一网络设备知道要进行备份的是第一网络设备上对应该链路标识的第一接口,而第二提示信息,则指示第一网络设备将第一接口上学习到的ARP表项备份给第二网络设备;通过该链路标识和第二提示信息,便能使得第一网络设备将第二网络设备想要获取的ARP表项通过隧道发送给第二网络设备。接着,在发送出第三报文后,第二网络设备通过所述隧道接收所述第一网络设备发出的第四报文,该第四报文中包括第五报文和所述链路标识,其中,第五报文为所述第一网络设备根据第一接口上学习到的ARP表项而构造的ARP请求报文,所述第五报文为ARP请求报文。可以看出,通过此方式还可以使得第一网络设备故障恢复后,由第二网络设备向第一网络设备发送ARP表项。从而能够增强本申请实施例的报文处理方法的可扩展性。
在一些实施例中,报文处理方法还包括,第二网络设备通过所述隧道接收所述第一网络设备发送的第六报文,所述第六报文中携带有第三提示信息,所述第三提示信息用于向所述第二网络设备指示所述ARP表项备份结束。第一网络设备在确认备份已完成后,会通过隧道向第二网络设备发送第六报文,该第六报文的意义在使得第二网络设备知晓APR表项的备份已完成,从而该第二网络设备可以根据该ARP表项进行正常的路由转发功能。
在一些实施例中,第二网络设备在通过隧道向第一网络设备发出第三报文之后且还未接收到来自第一网络设备发送的用于通知第二网络设备备份已结束的第六报文时,第二网络设备会将需要进行ARP表项同步的第二接口的路由优先级调低,从而使得经过该第二网络设备的数据报文不从第二接口转发。
在一些实施例中,第二网络设备在接收到第六报文之后,便会知晓第二接口的ARP表项同步已完成,从而可以将路由优先级恢复到原本的状态,即通过第三网络设备到第二网络设备的数据报文通过该第二接口进行转发。
在一些实施例中,若第一报文是IGMP报文时,由于针对该IGMP报文并没有对应的响应报文,第二网络设备在处理该IGMP报文时,仅需要将从隧道接收并解封装得到的IGMP报文发送到控制面即可,而后由第二网络设备的控制面下发组播信息给第二网络设备的转发平面即可。
本申请实施例第三方面还提供一种网络设备,该网络设备包括用于执行第一方面或第一方面的任一种实现方式中提供的报文处理方法的至少一个单元。
本申请实施例第四方面还提供一种网络设备,该网络设备包括用于执行第二方面或第二方面的任一种实现方式中提供的报文处理方法的至少一个单元。
本申请又一方面提供了一种计算机可读存储介质,该存储介质中存储了程序代码,该程序代码被终端运行时,使得计算机执行上述各方面所述的方法。该存储介质包括但不限于快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solidstate drive,简称SSD)。
本申请的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
图1是双活设备的场景示意图;
图2是VxLAN报文的结构示意图;
图3是VxLAN头的结构示意图;
图4a是ARP请求报文的发送示意图;
图4b是ARP请求报文的响应报文响应示意图;
图5是本申请实施例的报文处理方法的一个实施例图;
图6a是ARP报文的结构示意图;
图6b是IGMP报文的结构示意图;
图7是本申请实施例的W形组网的双活系统示意图;
图8a是VxLAN头的结构实施例图;
图8b是VxLAN报文的报文头的结构实施例图;
图9是mbuf的结构示意图;
图10是本申请实施例的报文处理方法的一个实施例图;
图11是GRE头的结构示意图;
图12是本申请实施例的网络设备的一个实施例图;
图13是本申请实施例的网络设备的一个实施例图;
图14是本申请实施例的网络设备的一个实施例图。
具体实施方式
本申请实施例提供了一种报文处理方法及网络设备来解决双活设备通过控制面协议进行控制表项的备份带来的同步性能差的问题。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
双活场景是一种主机端和备机端同时在线运行,处于同时提供服务的场景,该场景是基于备机端仅仅用于备份,资源并未充分利用,而由于主机端和备机端同时处于激活状态,可以分别承担一定百分比的业务量,例如主机端承担60%到70%的业务量,备机端承担30%到40%的业务量等;在这种场景中,主机端和备机端会同时连接到同一网络设备,且主机端和备机端连接到网络设备使用的以太网链路在逻辑上是相同的,因此,在路由路径来说,二者是等同的;从而使得一方面主机端出现宕机情况时,能够无缝切换到备机端提供服务,而无需进行任何相关参数的重新设置过程。而为了达到上述效果,在双活场景下,主机和备机端上的数据需要时刻保持同步状态,而实际上网络设备在向主机端发送用户面数据或者控制面数据时,并不会向备机端同时发送,此时便需要合适同步方式使得备机端能够与主机端保持实时同步的状态。
该双活场景可以是在数据中心结构下的主数据库和备份数据库互为双活,或者还可以在网络中两台运营商边缘设备之间互为双活,不论是主数据库和备份数据库互为双活还是运营商边缘设备之间互为双活的情况,均是通过逻辑上相同的链路连接到同一网络设备上。下面以运营商边缘设备与用户边缘设备之间的交互进行说明,请参阅图1,图1是双活设备的场景示意图,其中,该结构包括用户边缘设备(Customer Edge,简称CE)和运营商边缘设备(Provider Edge,简称PE),PE1和PE2分别通过双归口连接到CE1,如图1中所示,PE1和PE2之间可以是点对点方式的逻辑链接,该逻辑链接可以是直连的物理链路,也可以是虚拟网络的逻辑链接。CE1通过以太网链路分别连接到PE1和PE2,两条以太网链路具有相同的以太网链路标识(Ethernet Segment Identifier,简称ESI),该ESI主要用于对应PE1和PE2上连接到CE1的双归口在逻辑上是相同的接口,此外虽然CE1上通过两个物理接口连接到PE1和PE2,但是从逻辑上来看,PE1和PE2连接到的是同一个逻辑接口,因此,从逻辑上看,两条以太网链路是等同的。在该结构中,PE1和PE2之间的控制协议报文是通过控制面的EVPN协议进行传输的。该EVPN协议是基于MP-BGP的方式,其转发扩散方式与BGP类似。
BGP是运行于传输控制协议(Transmission Control Protocol,简称TCP)上的一种自治系统的路由协议:由于可能与不同的自治系统(Autonomous System,简称AS)相连,在一个AS内部可能存在多个运行BGP的边界路由器。同一个AS中的两个或多个对等实体之间运行的BGP被称为IBGP(Internal/Interior BGP)。归属不同的AS的对等实体之间运行的BGP称为EBGP(External/Exterior BGP)。在AS边界上与其他AS交换信息的路由器被称作边界路由器(border/edge router)。BGP是一种自治系统间的动态路由发现协议,它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自治系统号(AS)序列属性的路径可达信息,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的路由策略。可以理解的是的,BGP是一种外部路由协议,与开放式最短路径优先(Open Shortest PathFirst,简称OSPF)和路由信息协议(Routing Information Protocol,简称RIP)等的内部路由协议不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最好的路由。其中,OSPF是一个内部网关协议(Interior Gateway Protocol,简称IGP),RIP是一种基于距离矢量的路由协议,以路由跳数作为计数单位的路由协议。适合用于比较小型的网络环境。
其中,在互联网中,一个AS是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元(例如一所大学,一个企业或者一个公司个体)。一个自治系统有时也被称为是一个路由选择域(routing domain)。一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(Autonomous System Number,简称ASN)。
下面以PE1的双归口接收到CE1发送的ARP请求报文为例,对PE1向PE2备份该ARP请求报文的过程。
首先是PE1的双归口接收到CE1的接口发送的ARP请求报文,PE1将该ARP请求报文上送至PE1上的控制面的ARP模块进行解析,生成ARP表项,并且出接口为指向CE1的接口;
接着,BGP订阅到PE1上本地学习的ARP表项,生成EVPN type2路由,在该Type2路由里携带有ARP的IP/MAC信息,同时会携带学习到ARP接口的ESI信息。BGP订阅即ARP生成表项后,传送给BGP,BGP通过EVPN控制协议将数据扩散到邻居设备。
其中,type2路由定义如下:
路由标识(route distinguisher,简称RD),长度设置为8Octets,一个Octets等于8bit。
以太网标签(Ethernet Tag),长度设为4Octets,且取值为0。
MAC地址长度(MAC Address Length),长度设为1Octets),且取值为48。
MAC地址(MAC Address),长度设为6Octets,取值为主机MAC。
IP地址长度(IP Address Length)长度设为1Octets,且取值为32或128。
IP地址(IP Address),长度设置为4或16Octets,取值为主机IP。
标签Label-1,长度设为3Octets,取值为L2VNI,主机广播域绑定的VNI。
Label-2,长度设为3Octets:取值为L3VNI,租户VPN路由转发表(Virtual RoutingForwarding,简称VRF)对应的VNI。
其中,VRF也称VPN实例(VPN-instance),是PE为直接相连的站点建立并维护的一个专门实体,每个站点在PE上都有自己的VPN-instance,每个VPN-instance包含到一个或多个与该PE直接相连的CE的路由和转发表。
需要说明的是,在通过上述type2路由传递mac路由时,Ethernet tag填写0,MACAddress填写主机的mac,IP地址需要填写主机的ip,Label-1填写主机的L2VNI,Label-2字段填写0。
最后,PE1将根据ARP表项生成的type2路由通过EVPN控制面发送给PE2。PE2上的BGP根据EVPN路由的路由表(Routing Table,简称RT)进行路由交叉,交叉到以太网虚拟专用网络路由转发表(Ethernet Virtual Routing Forwarding,简称EVRF)中,如果发现type2路由中的ESI和PE2本地接入侧接口的ESI相同,则进行ARP重生成的处理,首先根据ESI还原出本地的接入侧接口,然后加上type2路由里的IP/MAC信息,生成ARP表项,下发到PE2的转发平面。
从EVPN协议同步ARP表项的过程来看,PE1需要根据学习的ARP表项,生成BGP EVPN协议type2路由,然后BGP的TCP连接通道发送给双活邻居PE2;PE2收到BGP EVPN协议报文,需要进行协议报文的解析处理,判断满足ARP重生成条件,再把EVPN type2路由转换回ARP表项。即PE1需要控制面发EVPN协议报文给PE2,PE2控制面需要解析EVPN协议报文还原ARP表项。而由于控制面是由控制面是CPU处理,CPU对协议报文处理的速度都不高,性能较差,而这种低效率的学习也直接影响到PE2的ARP表项的学习速度。尤其是在双活设备故障恢复场景,按照PE1和PE2双活组网,如果PE1故障恢复,需要同步PE2上学习的所有的ARP表项,此时就会产生突发ARP报文处理的场景,而这种情况下会使得CPU对协议报文处理的速度劣势更为明显。
另一方面,从EVPN协议同步ARP表项过程看,需要EVPN的协议报文能够携带ARP表项的原始信息,双活邻居收到EVPN协议报文后,能够还原出ARP表项。如果支持IGMP表项的同步,那么EVPN协议报文需要能够携带IGMP表项的原始信息,双活邻居收到EVPN协议报文后,才能还原出IGMP表项。ARP/IGMP等表项具体的信息是不同的,比如ARP主要是IP/MAC信息,IGMP表的话是组播组/组播源信息。EVPN协议需要扩展协议报文支持IGMP等其他协议报文的同步。
为了解决上述问题,本申请中引入隧道协议来实现PE1和PE2之间的控制协议报文备份,具体的,利用覆盖(overlay)网络的特性,即在underlay网络之上构造的虚拟网络,以VxLAN网络为例进行说明,该underlay网络可以是一个屋里网络或者其他的虚拟网络,以该underlay网络是物理网络为例,overlay网络中通过VxLAN隧道协议连接的两个节点之间的通道实际对应到underlay网络上的一条路径,该路径中可能包含多个物理网络节点,并且underlay网络是不会感知到overlay网络,而overlay网络也并不关心VxLAN隧道两端的节点在物理层面上的路径。
下面对VxLAN网络中的Vxlan报文和VxLAN网络中ARP请求报文的处理过程。由于VxLAN网络基于IP网络构建的。且具有无特殊拓扑限制,IP可达即可,承载网络和业务网络分离,以及对现有网络改动较小,保护用户现有投资。1600万的多租户共享,极大扩展了隔离数量的优势。VxLAN隧道协议本质上一种类似于用户数据报协议(User DatagramProtocol,简称UDP)封装的报文,即使用MAC in UDP的方法进行封装。具体的,请参阅图2和图3,图2是VxLAN报文的结构示意图,图3是VxLAN头的结构示意图。如图2所示,该VxLAN报文从外至内依次包括外层MAC头、外层IP头、UDP头,以及内部的VxLAN头和源两层结构帧。源两层数据报文即包括内部以太网头、内部IP头以及净荷。
其中,外层MAC头包括10或14字节,其中包括48bit的目的MAC地址(DestinationMAC Address,图2中简称为Dst MAC Addr)、48bit的源MAC地址(Source MAC Address,图2中简称为Src MAC Addr)、16bit的VLAN(Virtual Local Area Network,简称VLAN)类型、16bit的VLAN ID标签以及16bit的以太类型(Ethertype)。
外层IP头包括20字节,其中包括72bit的IP头的其他数据(IP Header MiscData),8bit协议字段(Protocol,取值为0x11),16bit的头校验和(Header Checksum),32bit的外部源IP(Outer Src IP)和32bit的外部目标IP(Outer Dst IP),该Outer Src IP和Outer Dst IP分别为VxLAN隧道的源VxLAN隧道端点(VxLAN Tunnel End Point,简称VTEP)地址和目的VTEP地址。该层IP头使得VxLAN协议报文能够在underlay网络上传输。
UDP头包括8字节,其中包括16bit的UDP源端口(UDP Src Port),16bit的UDP目的端口(UDP Dst Port),16bit的UDP长度标识(UDP Length)以及校验和(Checksum,其值设置为0x0000)。其中,该UDP Src Port是内部帧的L2/L3/L4报头的哈希值,主要用于等价路由(Equal-CostMultipathRouting,简称ECMP)或者LACP的负载均衡。而UDP Dst Port即为VxLAN端口,具体采用UDP端口4789。
VxLAN头包括8个字节,其中,包括8bit的VxLAN协议标志位(图2中为RRRR1RRR),24bit的保留位(Reserved),24bit的VNI以及最后8bit的保留位(Reserved)。其中由于该VNI能够占用24bit,理论上最多可以扩展到有224即16M个标识。具体的VxLAN头的结构可参见图3,包括两行,第一行为8bit的VxLAN协议标志位(RRRR1RRR)以及24bit的保留位,第二行为24bit的VNI以及最后8bit的保留位(Reserved)。
下面对VxLAN网络中ARP请求报文的处理过程进行说明,请参阅图4a和图4b,图4a是ARP请求报文的发送示意图,图4b是ARP请求报文的响应报文响应示意图。图4a和图4b中,均分别包括两个通过三层网络连接的交换机1和交换机2,设置VTEP1对应到交换机1,设置VTEP2对应到交换机2,VTEP1上连接有虚拟机(Virtual Machine,简称VM)2和VM1,VTEP2上连接有VM4和VM3,VTEP1与VTEP2属于同一VxLAN网段,VTEP1与VTEP2之间的交互的物理路径即交换机1通过三层网络到达交换机2的路径。图4a给出了VxLAN组播学习过程,以多播为例进行说明,首先进行组网,虚拟机加入到同一个VxLAN网络,VxLAN主机加入到多播组。以VM1发出ARP请求报文为例进行说明。其中,该ARP请求的执行过程可以包括:
a1、VM1发出ARP请求报文,该ARP请求报文包含自身MAC地址,以及目的MAC地址(全部置1),该ARP请求报文用于查询VM3的IP地址对应的MAC地址。
b1、VTEP1接收到该ARP请求报文后,对该ARP请求报文进行封装成VxLAN协议报文,并在外部IP头中填写目的IP为多播IP,源IP则为VTEP1的IP,并在VxLAN头中填入VM所述VxLAN网络的VNI。
c1、VxLAN协议报文在VxLAN网络中多播,到达VTEP2所在的本地虚拟网络。依次通过交换机1、三层网络以及交换机2抵达。
d1、VTEP2对该VxLAN协议报文进行解封装,并学习VM1的MAC地址与VTEP1的IP地址之间的映射关系,接着在本地局域网中广播该ARP请求报文。
e1、VM3接收到该ARP请求报文。完成ARP请求报文的发送过程。
其中,该ARP请求报文的回应过程可参见图4b,该响应过程为单播过程,具体可包括:
a2、VM3根据ARP请求报文中的内容准备向VM1发送ARP响应报文,该ARP响应报文中的目的MAC地址为VM1的地址,源MAC地址为VM3的MAC地址。
b2、VTEP2在接收到该ARP响应报文后封装成VxLAN协议报文,具体的,首先将该ARP响应报文封装在IP单播报文中,并根据ARP响应报文中的VM1的MAC地址以及发送过程中步骤d1学习到的VM1的MAC地址与VTEP1的IP地址之间的映射关系解析得到VTEP1的IP地址;该VxLAN协议报文的外层IP头的目的IP地址填入VTEP1的IP地址,源IP地址则填入VTEP2的IP地址,同时在VxLAN头中填入VM1所述的VNI。
c2、该VxLAN协议报文依次通过交换机2、三层网络以及交换机1抵达VTEP1。
d2、VTEP1解封装该VxLAN协议报文并记录VM3的MAC地址与VTEP2的IP地址之间的对应关系,并将解封装得到的ARP响应报文发送给VM1。
e2、VM1接收到该ARP响应报文后,从该ARP响应报文中获取到VM3的MAC地址。从图4a
到图4b即完成一个在VxLAN网络下的ARP请求和应答的过程。
实施例1
上面对VxLAN报文及VxLAN网络的工作过程进行介绍,下面对用于解决上述两方面问题的本申请实施例的报文处理方法进行介绍,请参阅图5,图5是本申请实施例的报文处理方法的一个实施例图,包括第一网络设备、第二网络设备和第三网络设备,第三网络设备经由第一链路连接到第一网络设备的第一接口;所述第三网络设备经由第二链路连接到第二网络设备的第二接口,所述第一链路和所述第二链路具有相同的链路标识,所述链路标识用于标识所述第一网络设备以及所述第二网络设备分别通过所述第一接口和所述第二接口连接所述第三网络设备,该方法可包括:
501、第三网络设备向第一网络设备发送第一报文。
其中,该第一报文是控制协议报文,该第三网络设备通过第一链路向第一网络设备发送该第一报文,该第一链路通过链路标识来确定,通过该链路表示能够确定该第一网络设备上的第一接口。该链路标识根据网络设备之间的连接方式的不同而不同,例如,第三网络设备上的某一接口与第一网络设备的第一接口是通过以太网方式连接的,则该链路标识为以太网链路标识,即ESI,该ESI用于标识一个以太网段。
502、第一网络设备接收第三网络设备发送的第一报文。
其中,第一网络设备接收的第一报文的形式有多种,例如,该第一报文可以是ARP请求报文,IGMP报文或者还可以是LACP报文等类型的控制协议报文。不同的报文会具有不同的特点,例如ARP请求报文会有回应机制,即第一网络设备在通过第一网络设备将从第一接口所接收的第一报文上送到的控制面后,会由控制面的ARP模块对该ARP请求报文解析,并获得ARP表项,接着控制面并将该ARP表项下发给第一网络设备的转发平面。同时第一网络设备该会根据该ARP表项生成ARP响应报文,该ARP响应报文会发送给第三网络设备完成ARP请求的回应。又例如IGMP报文,由于IGMP报文主要控制的是组播组内的成员的加入以及离开的相应成员管理功能,第一网络设备如果接收到的是IGMP报文时,虽然也会将该IGMP报文上送到控制面的组播模块进行相应的处理,生成IGMP表项,并下发给转发平面,但是转发平面学习到该IGMP表项后,第一网络设备并不会再对第三网络设备进行回复。
下面以ARP请求报文和IGMP报文为例对控制协议报文进行说明,请参阅图6a和图6b,图6a是ARP报文的结构示意图,图6b是IGMP报文的结构示意图。
从图6a可以看出,该ARP请求报文包括14个字节的以太网首部(ether_header)和28字节的以太网ARP字段(ether_arp),且该ether_arp中还包括8字节的ARP首部(arphdr),下面对各部分分别进行说明。其中,
ether_header包括:
6字节的以太网目的地址(ether_dhost);
6字节的以太网源地址(ether_shost);
2字节的帧类型(ether_type)。
arphdr包括:
2字节的硬件地址类型(ar_hrd),值为1时表示以太网地址;
2字节的协议类型(ar_pro),表示要映射的协议地址类型。它的值为0x0800即表示IP地址;
1字节的硬件地址长度(ar_hln);
1字节的协议地址长度(ar_pln);
2字节的操作类型(ar_op),1表示ARP请求,2表示ARP应答。
ether_arp中除arphdr的其余部分包括:
6字节的发送者硬件地址(arp_sha),即发送者的MAC地址;
4字节的发送者IP地址(arp_spa),即发送者的IP地址;
6字节的目标硬件地址(arp_tha),即接收方的MAC地址;
6字节的目标IP地址(arp_tpa),即接收方的IP地址。
从图6b可以看出,IGMP报文包括:
4位的IGMP版本;
4位的IGMP类型;
8位的保留位;
16位的校验和;
32位的组地址,即D类IP地址。
其中,D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。D类的IP地址不标识网络,其地址覆盖范围为224.0.0.0~239.255.255.255。
503、第一网络设备根据隧道协议将所述第一报文封装为第二报文。
其中,第二报文中包括所述链路标识以及所述第一报文,第一网络设备在接收到该第一报文后,由于双活设备的备份机制存在,第一网络设备在按照原本的流程处理该第一报文之外,还会通过隧道协议将一份第一报文封装成第二报文。
需要说明的是,第一网络设备与第二网络设备之间的隧道可以有多种方式,以VxLAN隧道为例,在第一网络设备与第二网络设备之间构成双活设备时,会预先对该VxLAN隧道进行配置,下面进行说明。
对第一网络设备与第二网络设备之间的VxLAN隧道的静态配置,第一网络设备对应的VTEP1的IP为1.1.1.1,第二网络设备对应的VTEP2的IP为2.2.2.2,该VTEP1和VTEP2所在的VxLAN网络的VNI为20,则该配置过程首先是将EVPL实例与VxLAN隧道进行关联,而关联的具体方式是将该EVPL实例与VNI进行关联,而后,若是想要对ARP请求报文进行备份,则可以再将该EVPL实例与ARP报文进行绑定。
其中,EVPL又称为以太网虚拟专线,是基于以太网专线(Ethernet private line,简称EPL)之上发展而来,EPL有两个业务接入点,实现对用户以太网MAC帧进行点到点的透明传送。不同用户不需要共享同步数字系列(Synchronous Digital Hierarchy,SDH)带宽,因此具有严格的带宽保障和用户隔离,不需要采用其它的服务质量(Quality of Service,简称QoS)机制和安全机制。由于是点到点传送,不需要MAC地址学习。该QoS体系即将用户或者报文分成不同的类别,对别不同类别设置不同的处理优先级以及在拥塞情况下的丢弃优先级。而与VxLAN隧道关联的EVPL实例同样具有两个业务接入点,一个是逻辑接口,该逻辑接口可以对应到VTEP所对应的物理设备上的接口,而该EVPL实例中,还会包括一个VxLAN隧道口,该VxLAN隧道口与该逻辑接口是相对应的,默认情况下,只要是从逻辑接口进入的报文,均会将该报文通过VxLAN隧道口进行传输,即发送至该VxLAN隧道的对端。其中EVPL与EPL的主要区别是不同的用户需要共享SDH带宽因此需要使用虚拟局域网(Virtual LocalArea Network,简称VLAN)ID或其它机制来区分不同用户的数据。如果需要对不同用户提供不同的服务质量,则需要采用相应的QoS机制。如果配置足够多的带宽资源,则EVPL可以提供类似EPL的业务。
可以看出,EVPL的优点在于不同业务流可以共享逻辑通道(vctrunk),使得同一物理端口可提供多条点到点业务连接,并且,在各个方向上的性能相同,接入带宽可调可管理,业务科收敛实现汇聚,从而节省端口资源。EVPL可以支持多种不同的组网方式,例如纯穿透业务、外部端口共享业务、vctrunk共享业务、多协议标签交换(Multi-Protocol LabelSwitching,简称MPLS)业务以及QinQ业务等。QinQ技术也称Stacked VLAN或Double VLAN技术,标准出自IEEE 802.1ad,其实现将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLAN Tag穿越运营商的公网,可以将VLAN数目扩展为最多4096*4096个。
第一网络设备和第二网络设备之间VxLAN隧道的具体的配置过程如下:
对于第一网络设备:
步骤1
其中,nve即网络可视实体(Network-Visible Entities,简称NVE)。“//”之前的部分为配置代码,“//”之后的部分为对代码功能的解释,本申请实施例中的相关内容均采用此方式。
步骤2
evpl instance 1bind protocol arp[default|esi<esi-id>]//EVPL实例与ARP协议进行绑定,包括两种方式,第一种是绑定与ESI无关的默认情况,第二种是与ESI关联的情况。具体的,默认情况即所有ESI上来的报文,固定都往缺省一条备份隧道备份ARP请求报文;而另一种与ESI有关的情况,则适用于一些可扩展的情况。
对于第二网络设备:
步骤1
步骤2
evpl instance 1bind protocol arp[default|esi]。
举例来说,例如图7所示,图7是本申请实施例的W形组网的双活系统示意图,包括CE1和CE2,CE1通过ESI1标识的链路分别与PE1和PE2的双归口连接,CE2通过ESI2标识的链路分别与PE2和PE3的双归口连接。可以看出,实际上PE上连接了两个双归口,分别对应ESI1和ESI2,而PE1和PE2则分别连接了一个双归口。因此,对于PE1和PE来说,直接采用第一种默认方式即可,即只要是通过ESI1或者ESI2上来的ARP请求报文,均直接往默认的缺省隧道进行ARP请求报文备份即可。而对于PE2来说,由于其实际上通过两个VxLAN隧道分别与PE1与PE3相连接,此情形下,编需要将ESI与用于备份ARP请求报文的隧道进行绑定,例如,指定从ESI1上来的ARP请求报文备份到PE1上,而从ESI2上来的ARP请求报文则备份给PE3。
此外,从图2至图4b可知,在将第一报文封装为第二报文时,还需要在第二报文中封装进一些VxLAN隧道信息,如源VTEP的IP、目的VTEP的IP以及EVPL对应的VNI。通过这些信息,能够使得对端的第二网络设备在接收到该第二报文后,能够对该第二报文进行校验等操作。
具体的对第一报文的封装过程可以是:
首先根据VNI获取到EVPL;接着再根据EVPL获取到VxLAN隧道的隧道信息;最后,则根据此隧道进行将第一报文封装为第二报文。即将链路标识以及隧道信息均封装至第二报文内。
此外,该第二报文中携带链路标识以及第一报文的方式是采用TLV,该TLV可位于图2所示结构中VxLAN头与两层数据报之间,并且,可以根据需求的不同,扩展多个TLV,如第二报文需要携带链路标识以及第一报文,则可以定义两个TLV,即TLV1和TLV2,可以在TLV1中承载链路标识,在TLV2中则承载第一报文,当然,也可以反过来,具体顺序并没有特别的限制。
举例来说,请参阅图8a和图8b,图8a是VxLAN头的结构实施例图;图8b是VxLAN报文的报文头的结构实施例图,从图8a可以看出,相较于图3,图8a将原本VxLAN协议标志位“RRRRIRRR”改为“RRRRIRR1”,即最后一位改为了1,然后,修改VNI后的8bit的保留位,将其修改为“Opt Len”,即可以根据OptLen直接定位到实际的有效载荷(payload),即添加到VxLAN头后的TLV1和TLV2。从图8b中可以看出,TLV1和TLV2均为位于VxLAN头后的扩展部分,其中TLV1中的Type为ESI、Len为10和Value为ESI的值(ESI ID)。而TLV2中的Type为ARP、Len为54和Value为ARP请求报文数据包(ARP pkt)。
可以理解的是,在将第一报文进行封装之前,还可以增加一个检测步骤,即可根据所述第一报文中携带的第一提示信息确定所述第一报文是否为控制协议报文,只有通过第一提示信息确定为控制一些报文时,才会触发所述第一网络设备根据所述隧道协议将所述第一报文封装为第二报文。
需要说明的是,该第一提示信息可以是一个标识或者是具有一定长度的一段信息,第一报文携带第一提示信息的方式有多种,若为标识的情况下,例如可以直接设置在第一报文的报文头中的保留位中,或者一些类型的控制报文的格式中直接就分配有协议类型字段,则该标识对应的类型直接填入相应的协议类型即可;当然,不论是作为标识还是具有一定长度的一段信息,还可以是在该第一报文的报文头与内容之间添加一个TLV,通过在该TLV中携带第一提示信息来实现对第一报文是否为协议报文的检测过程。
504、第一网络设备通过所述隧道向所述第二网络设备发送所述第二报文。
其中,第一网络在完成第二报文的封装后,即可根据EVPL中的VxLAN隧道口将该第二报文通过VxLAN隧道发送至第二网络设备。即,实际上第一网络设备对应的VTEP1将该第二报文通过VxLAN隧道发送至第二网络设备对应的VTEP2。
需要说明的是,第一网络设备除了执行上述步骤502至步骤504,第一网络设备会执行将第一报文上送到第一网络设备的控制画面进行处理,具体的,第一网络设备会将第一报文以及还可以将对应的接收第一报文的第一接口的信息上报给控制面,由控制面的对应第一报文的处理模块对该第一报文进行解析处理,并返回相应的控制协议表项。
其中,第一网络设备向控制面上报第一报文采用的是发送存储缓冲器(memorybuffer,简称mbuf)消息的方式,该mbuf的主要用途在于保存在进程和网络接口间互相传递的用户数据,同时也保存其它的信息,如源地址、插口选项等。本申请实施例中,该mbuf消息中包括该有第一报文。
下面对mbuf的结构进行说明,请参阅图9,图9是mbuf的结构示意图,图中给出了mbuf的四种不同结构,即第一类,图9中为(1);第二类(2),图9中为(2);第三类(3),图9中为(3);和第四类,图9中为(4)。其中,四种结构的m_hdr均为20字节,对于第二类、第三类和第四类还包括8字节的pkthdr,对于第三类和第四类情况,则还包括12字节的m_ext。20字节的m_hdr中依次包括:
mh_next,用于指向下一个mbuf,这些buff存放一次应用的数据。
mh_nextpkt,指向下一个分组的第一个mbuf,可以理解为是所有分组的桥梁。
mh_len,用于指示mbuf的有效数据长度。
mh_data,用于指向有效数据,可以是mbuf中的任意位置。
mh_type,用于指示mbuf的数据类型。
mh_flags,mbuf的标志位,如果为0,则mbuf指包含数据,如果为M_PKTHDR则说明这个mbuf为一个分组的首部。具体的m_flags除了M_PKTHDR之外还有多种表示方式,如标识作为链路层广播发送和接收的M_BCAST;用于作为记录结束标识的M_EOR;用于标识该mbuf带有簇(外部存储)的M_EXT;用于标识作为链路层多播发送和接收的M_MCAST;用于形成一个分组记录的第一个mbuf的标记的M_PKTHDR。
8字节的pkthdr中依次包括:
m_pkthdr.len,用于指示分组的总长度。
m_pkthdr.rcvif,设置规则为在接收时对输入分组有用,否则对于输出分组置为0。
12字节的m_ext中依次包括:
m_ext.ext_buf,用于指向外部存储数据位置。
m_ext.ext_free,用于指示不使用时释放外部存储。
m_ext.ext_size,用于指示外部存储的大小。
其中,
(1)第一类mbuf的mh_flags等于0,mbuf只包含数据,在mbuf中有108字节的数据空间,指针mh_data指向这108字节缓存中的某个位置。
(2)第二类mbuf的mh_flags值是M_PKTHDR,它指示这是一个分组首部,描述一个分组数据的第一个mbuf。数据仍然保存在这个mbuf中,但是由于分组首部占用了8字节,只有100字节的数据可存储在这个mbuf中。
(3)当分组数据超过208字节的数据时,如果采用第一类或者第二类mbuf,需要3个或更多的mbuf,这时就要使用一种称之为簇的mbuf,即第三类或者第四类mbuf。第3类mbuf不包含分组首部(没有设置M_PKTHDR),但包含超过208字节的数据,这时用到一个称之为“簇”的外部缓存(设置M_EXT)。在此mbuf中仍然为分组首部结构分配了空间,但没有用到。在这个mbuf中,指针mh_data指向这个簇中的某个位置。
(4)第四类mbuf包含一个分组首部,包含超过208字节的数据,同时设置了标志M_PKTHDR和M_EXT。
需要说明的是,对于图9中的各种类别的mbuf,还具有以下特点:
1.mbuf结构的大小总是128个字节,这意味着图9中第三类和第四类mbuf在m_ext后面的未用空间为88字节。
2.既然有些协议(如UDP)允许零长记录,m_len可填入0的数据缓存。
3.在每个mbuf中的成员m_data指向相应缓存的开始。这个指正能指向相应缓存的任意位置,不一定是起始。
4.带有簇的mbuf总是包含缓存的起始地址(m_ext.ext_buf)和它的大小(m_ext.ext_size)。成员m_data和m_ext.ext_buf值是不同的,除非m_data也指向缓存的第一个字节。
5.指针m_next把mbuf链接在一起,把一个分组形成一条mbuf链表。
6.指针m_nextpkt把多个多个分组链接成一个mbuf链表队列。在队列中的每个分组可以使一个单独的mbuf,也可以是一个mbuf链表。每个分组的第一个mbuf包含一个分组首部,如果多个mbuf定义一个分组,只有第一个mbuf的成员m_nextpkt被使用,其他的都是空指针。
从上面对于mbuf的说明可以看出,本申请实施例的第一报文或者链路标识均可以被添加在mbuf内,如果第一报文的长度超过了108字节,还可以采用第三类或者第四类的mbuf来携带该第一报文。
对于第一网络设备的控制面来说,在接收到mbuf消息后,便会从该mbuf消息中取出第一报文,并通过相应的协议处理模块进行处理,例如第一报文为ARP请求报文时,由ARP模块对该ARP请求报文进行解析,生成ARP表项;接着将该ARP表项下发到第一网络设备的转发平面,同时还会由第一网络设备根据ARP表项生成响应报文,并发送给第三网络设备,完成ARP请求整个过程。又例如第一报文为IGMP报文,则会进行上述ARP请求过程中除了生成响应报文以及发送给第三网络设备过程之外的所有过程。
505、第二网络设备通过隧道接收第一网络设备发送的根据隧道协议封装的第二报文。
其中,该接受过程实际可以是第二网络设备对应的VTEP2通过VxLAN隧道从VTEP1接受到给第二报文。
可选的,第二网络设备在接收到第二报文之后,在进行步骤506的解封装之前,会对第二报文的合法性进行验证,具体的,若是第二网络根据所述隧道信息对所述第二报文中携带的隧道信息校验通过时,才会触发所述第二网络设备根据所述隧道的隧道信息解封装所述第二报文的步骤。而若是隧道信息的校验未通过时,第二网络设备会直接丢弃该第二报文。通过添加该验证步骤,能够节省网络处理器的处理资源。该校验的具体方式可以是,首先由第二网络设备根据该第二报文的VxLAN头确定出VNI,再通过VNI获取EVPL实例,通过该EVPL实例获取到隧道信息;此外,再提取第二报文中封装的隧道信息,将两者进行对比便可实现隧道信息的校验过程。
此外,本实施例中的隧道的设置方式可以有两种,一种是该隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,即该方式下,所有发送到第一网络设备的第一报文这类控制协议报文均会通过该预设的缺省隧道的隧道协议封装并发送至第二网络设备;第二种是所述隧道为对应所述链路标识的隧道,这种方式第一网络设备在接收到第一报文这类控制协议报文时,仅会将从该链路标识对应的第一网络设备上的接口接收到的第一报文通过该隧道协议进行封装并发送给第二网络设备。两种方式的应用可根据场景的要求不同而做出相应的调整。具体的可参见针对步骤503的说明,此处不再赘述。
506、第二网络设备根据所述隧道协议解封装所述第二报文,获取所述第一报文和所述链路标识。
其中,第二报文包括第一TLV字段和第二TLV字段,所述第一TLV字段用于承载所述链路标识,所述第二TLV字段用于承载所述第一报文。可以看出,在隧道中传输的第二报文实际是通过TLV的方式携带第一报文以及链路标识等,在需要的情况下,还可以有第三TLV等,携带更多的信息内容。
可选的,该隧道为VxLAN隧道,第二网络设备根据隧道协议解封装所述第二报文,获取所述第一报文和所述链路标识具体过程可以变为,第二网络设备根据VNI确定EVPL;而后第二网络设备根据所述EVPL获取所述隧道的隧道信息;接下来,第二网络设备便可以根据所述隧道的隧道信息解封装所述第二报文,获取所述第一报文和所述链路标识。即,第一网络设备和第二网络设备之间的VxLAN隧道的VNI是与EVPL相关联的,该关联可以在静态配置,从而第一网络设备和第二网络设备均可以通过VNI确定到EVPL实例,从而获取到对应的隧道信息。具体的VxLAN隧道的配置过程可参见针对步骤503的说明,此处不再赘述。
此外,对于VxLAN隧道相关的内容均可参见针对步骤503的说明,解封装是步骤503封装的逆过程,两个过程中对于第一报文和第二报文的处理基本遵循相同的原则。
507、第二网络设备根据获取的所述链路标识确定所述第二网络设备上对应所述第一网络设备的第一接口的接口为所述第二接口。
其中,由于第一网络设备和第二网络设备之间是双活的,因此,第一链路和第二链路也具有相同的链路标识,如ESI,该ESI主要作用就是为了通过该链路连接到的第一网络设备的第一接口或者是第二网络设备的第二接口,即该ESI分别与第一接口和第二接口相对应。而从步骤503中对EVPL的说明可知,EVPL实例中的逻辑接口可以对应到物理端的任意可以连接到VTEP的接口,因此第二网络设备根据获取的所述链路标识确定第二网络设备上的接口的方式则可以是,首先根据第二报文中的VNI获取到EVPL实例,然后再根据ESI找到该EVPL实例的逻辑端口对应到第一网络设备的物理接口,即第一接口;再根据ESI与第一接口,ESI与第二接口的关系,确定到第二网络设备上的第二接口是对应第一网络设备上的第一接口的接口。
508、第二网络设备将所述第一报文和所述第二接口的接口信息上送至所述第二网络设备的控制面。
其中,在找到对应的第二接口后,第二网络设备便可以将第一报文和第二接口的接口信息上送至第二网络设备的控制面。上送的方式依旧可以采用mbuf消息,即将该第一报文以及第二接口的接口信息均包含在mbuf消息中。关于mbuf消息的具体结构可参见图9以及针对图9的说明,此处不再赘述。
需要说明的是,关于第二接口的接口信息,可以上传完整的第二接口的接口信息,也可以仅上传一个第二接口的索引,控制面的对应模块根据该第二接口的索引即可查询到第二接口的接口信息。
需要说明的是,为了将该备份的第一报文的上送与其他正常接收的报文的处理分开,该mbuf消息具有专门的上送队列,此外,在该mbuf消息中还会携带主机上送原因,便于控制面进行相应的处理。另外,由于在向第二网络设备的控制面发送mbuf消息时,是采用模拟第二接口接收到第一报文的场景下进行发送的,而实际上并没有第三网络设备通过第二接口发送给第二网络设备第一报文。因此,对于有回应报文的第一报文,如ARP请求报文,在通过mbuf消息上送第一报文和第二接口的接口信息时,还可以携带一个第四提示信息,该第四提示信息用于指示所述控制面不向所述第三网络设备返回ARP响应报文。该第四提示信息可以直接填入mbuf中的相应位置。
需要说明的是,该第四提示信息在mbuf中的携带方式与实施例1中针对图5的步骤503的说明类似,此处不再赘述。
可以看出,由于在第一网络设备和第二网络设备之间设置了隧道,第一报文这类控制协议报文的备份过程从将该第一报文上送到第一网络设备的控制面,并通过第一网络设备的控制面将该第一报文发送至第二网络设备的控制面的这种方式变为,首先将该第一报文按照设置的隧道的隧道协议封装为第二报文,然后送到隧道中,第二网络设备接收到给第二报文后会解封装获得其中的第一报文,而后将该第一报文上送到第二网络设备的控制面,可以看出,整个第一报文的传输流程不在通过由CPU处理协议的控制面而是通过转发平面的网络处理器来进行转发处理,处理性能有很大的提高,从而提高如ARP表项等的同步性能;此外,由于采用隧道封装技术,可以直接将整个控制协议报文进行封装,无需对协议报文本身进行扩展,从而使得该备份方式的适用范围更广。
上述实施例中,第一网络设备可以是图1所示结构中的PE1,第二网络设备可以图1所示结构中的PE2,而第三网络设备则是图1所示结构中的CE1。而上述实施例除了应用在图1所示结构中,还可以用在数据中心中,第一网络设备作为主数据库的网关,第二网络设备可作为备用数据库的网关。
实施例2
上述实施例对第三网络设备向第一网络设备发送第一报文时,第一网络设备向第二网络设备备份该第一报文的过程。除了此情形外,第一网络设备因故障后恢复或者是第二网络设备初始上线(UP)后,均需要从对方获取相应的控制协议表项,来完成本身的相应协议表项的配置。
下面以用户与运营商设备交互场景中第二网络设备初始UP为例,如图1所示,第一网络设备即PE1,第二网络设备即PE2,第三网络设备即CE1,PE1通过第一链路连接CE1,PE2通过第二链路连接PE2,PE1上的第一接口和PE2上的第二接口与ESI相对应,需要备份的表项以ARP表项为例,VTEP1对用到PE1,VTEP2对应到PE2。具体请参阅图10,图10是本申请实施例的报文处理方法的一个实施例图,可包括:
1001、PE2的第二接口在初始UP后通过VxLAN隧道向PE1发送第三报文。
其中,PE2的第二接口初始UP即第二接口初次连接到CE1上,并且PE2和PE1构成双活。此时PE2的第二接口需要获取PE1上对应PE2的第二接口的第一接口的ARP表项。一种方式就是通过VxLAN隧道向PE1发送第三报文,该第三报文中携带有链路标识和第二提示信息,所述链路标识和所述第二提示信息用于指示所述第一网络设备将所述第一接口上学习到的ARP表项备份给所述第二网络设备。具体的,该链路标识能够使得第一网络设备知道要进行备份的是第一网络设备上对应该链路标识的第一接口,而第二提示信息,则指示第一网络设备将第一接口上学习到的ARP表项备份给第二网络设备;通过该链路标识和第二提示信息,便能使得第一网络设备将第二网络设备想要获取的ARP表项通过隧道发送给第二网络设备。
需要说明的是,该第二提示信息在第三报文中的携带方式与实施例1中针对图5的步骤503的说明类似,此处不再赘述。
其中,PE2在向PE1发送了第三报文之后,由于第二接口初始UP,其上未配置任何ARP表项或者ARP表项并不是最新的,因此很可能会无法进行正常路由,在此情况下,PE2还会调低该第二接口的路由优先级,使得通过该而接口的路由都转到第一网络设备的第一接口上。
1002、PE1通过VxLAN隧道接收第三报文。
其中,第三报文是PE1通过VxLAN隧道接收的VxLAN格式的报文,在该第三报文中,携带有第二提示信息和链路标识,如ESI,该第二提示信息和链路标识的携带方式有多种,一种是直接插入作为VxLAN协议报文的第三报文的某层头部的保留位中,或者也可以采用如图5中步骤503的说明中的TLV的方式,即在VxLAN头之后添加一个或者两个TLV来承载该第二提示信息以及链路标识。
1003、PE1根据第三报文指示的接口的ARP表项生成第五报文。
其中,PE1在接收到该第三报文后,首先解封装该第三报文,获取其中的链路标识以及第二提示信息,通过该第二提示信息获知需要将PE1上的某一接口的ARP表项备份给PE2的第二接口,通过链路标识,即ESI与第一接口以及第二接口的关系,确定需要将PE1上的第一接口的ARP表项备份给PE2的第二接口。在PE1获知到这些信息后,便可以将第一接口的ARP表项逆向生成ARP请求报文,即第五报文,该第五报文中携带有这些ARP表项信息。
需要说明的是,该第五报文与图5所示实施例中的第一报文具有相同的报文格式,后续PE2处理该报文的步骤与图5所示实施例中步骤5至步骤508类似,此处不再赘述。
1004、PE1将第五报文通过VxLAN隧道协议封装成第四报文,并发送给PE2。
其中,PE1会将第五报文通过VxLAN隧道协议进行封装,即在第四报文(VxLAN报文)的IP协议头中填入VTEP1的IP作为源IP,填入VTEP2的IP作为目的IP,并在VxLAN头中填入对应VNI。完成封装后,便可将该第四报文通过VxLAN隧道发送给PE2。
具体的封装过程可参见图5所示实施例中的步骤503的相关说明,此处不再赘述。
1005、PE2接收PE1通过VxLAN隧道发送的第四报文。
其中,PE2会接收到由PE1通过VxLAN隧道发送的第四报文,PE2首先会根据该第四报文中的VNI获取到对应的EVPL,通过EVPL获取到的VxLAN隧道信息与第四报文中携带的隧道信息进行对比校验,只有通过校验的的第四报文才会进行后续的解封装的处理。
1006、PE2解封装第四报文,获取第五报文和链路标识。
其中,PE2会解封装第四报文,获取其中的第五报文以及链路标识,该第五报文用于PE2通过ARP请求报文上送控制面获取ARP表项,而链路标识则用于在上报控制面时,确定模拟上送控制面的ARP请求报文的接收口。
1007、PE2针对第二接口更新ARP表项。
其中,PE针对第二接口更新ARP表项的方式是首先通过链路标识确定到第二接口为模拟上送第五报文的接口,接着,在专用队列中通过mbuf消息上送该第二接口的接口信息以及第五报文本身,接着PE2的控制面中的ARP模块会对该第五报文解析,生成ARP表项,控制面接着便会将该ARP表项下发到PE2的转发平面,即对应的第二接口,使得第二接口更新其上的ARP表项,完成一次ARP表项的更新过程。具体的mbuf消息的说明以及如何上送第五报文可参见图5所示实施例中步骤507和步骤508以及对应的说明,此处不再赘述。
1008、PE1向PE2通过VxLAN隧道发送的第六报文。
其中,考虑到PE2在更新第二接口的ARP表项的过程会调低该第二接口的路由优先级,使得该第二接口无法承担路由业务。因此在PE1发送完所有的用于备份第一接口的ARP请求报文后,便会向PE2发送一个用于指示备份结束的第六报文。该第六报文中携带有第三提示信息,第三提示信息用于向PE2指示所述ARP表项备份结束。该第三提示信息的携带方式与步骤1002中第二提示信息以及链路标识的携带方式类似,此处不再赘述。
1009、PE2接收PE1通过VxLAN隧道发送的第六报文。
其中,PE2通过所述隧道接收PE1发送的第六报文,由于该第六报文中携带有第三提示信息,第三提示信息用于向PE2指示所述ARP表项备份结束。即,PE1在确认备份已完成后,会通过VxLAN隧道向PE2发送第六报文,该第六报文的意义在于使得PE2知晓APR表项的备份已完成,从而该PE2可以根据该ARP表项进行正常的路由转发功能。
PE2在接收到该第六报文中,便会获取其中的第六标识,并通过第六标识获知第二接口的ARP表项备份已结束。接着,PE2便会将第二接口的路由优先级进行恢复。以便于PE2的第二接口能够承担一部分路由业务。
需要说明的是,不仅步骤1005中PE2会对接收的第四报文进行校验,PE1或者PE2在任何时候从VxLAN接收到报文时,均会进行相应的校验处理,只要校验不通过就会丢弃这些报文。
需要说明的是,除了上述实施例1和实施例2中采用VxLAN隧道协议的方式,还可以采用通用路由封装(Generic Route Encapsulation,简称GRE)隧道协议实现实施例1和实施例2中描述的内容。请参阅图11,图11是GRE头的结构示意图,其中,
C为表示校验和验证位。如果该位置1,表示GRE头插入了校验和(Checksum)字段。如果该位为0表示GRE头不包含校验和字段。
K为关键字位。如果该位置1,表示GRE头插入了关键字(Key)字段;如果该位为0表示GRE头不包含关键字字段。
递归(Recursion)被用来表示GRE报文被封装的层数。完成一次GRE封装后将该字段加1。其中,如果封装层数大于3,则丢弃该报文。该字段的作用是防止报文被无限次的封装。
标志位(Flags)为预留字段。当前必须设为0。
版本(Version)为版本字段,必须置为0。Version为1是使用在RFC2637的点对点隧道协议(Point to Point Tunneling Protocol,简称PPTP)中。
协议类型(Protocol Type)为乘客协议的协议类型。
校验和(Checksum):对GRE头及其负载的校验和字段。
Key:关键字字段,隧道接收端用于对收到的报文进行验证。
需要说明的是,因为目前实现的GRE头不包含源路由字段,所以Bit 1、Bit3和Bit4都置为0。
可以理解的是,采用GRE隧道协议时,同样是需要对GRE协议报文的GRE头进行扩展,通过在GRE头之后的携带一个控制TLV或者还可以再携带一个数据TLV,来实现对链路标识和第一报文的承载,当然,理论上若需要携带更多的内容,还可以添加更多的TLV来进行承载。此外,若要采用GRE隧道协议实现备份的过程,还需要对GRE头的Protocol Type字段新定义一种“报文备份”类型的乘客协议。该乘客协议的内容为如果双活设备收到的protocol字段为”报文备份”类型,则按照两个tlv的格式去解析GRE头后面的数据。在采用GRE隧道协议的情况下,除了需要重新定义“报文备份”类型的乘客协议之外,其余的执行流程与实施例1和实施例2类似,此处不在赘述。
实施例3
上面对本申请实施例的报文处理方法进行了介绍,下面对本申请实施例的网络设备进行介绍,请参阅图12,图12是本申请实施例的网络设备的一个实施例图,其中该网络设备可应用于双活系统,所述网络设备作为所述双活系统中的第一网络设备,所述双活系统中,第三网络设备经由第一链路连接到所述第一网络设备的第一接口;所述第三网络设备经由第二链路连接到第二网络设备的第二接口,所述第一链路和所述第二链路具有相同的链路标识,所述链路标识用于标识所述第一网络设备以及所述第二网络设备分别通过所述第一接口和所述第二接口连接所述第三网络设备;其中,该第一网络设备包括:
收发模块1201,用于接收所述第三网络设备发送的第一报文,所述第一报文为控制协议报文;
处理模块1202,用于根据隧道协议将所述第一报文封装为第二报文,所述第二报文中包括所述链路标识以及所述第一报文;
所述收发模块还用于通过所述隧道向所述第二网络设备发送所述第二报文。
其中,该收发模块1201能实现图5所示实施例中步骤502和步骤504,以及图10所示实施例中步骤1004中的发送过程、步骤1002和步骤1008。该处理模块1002能实现图5所示实施例中步骤503,以及图10所示实施例中步骤1004的封装过程和步骤1003。
可以看出,由于在第一网络设备和第二网络设备之间设置了隧道,第一报文这类控制协议报文的备份过程从将该第一报文上送到第一网络设备的控制面,并通过第一网络设备的控制面将该第一报文发送至第二网络设备的控制面的这种方式变为,首先由处理模块1202将该第一报文按照设置的隧道的隧道协议封装为第二报文,然后通过收发模块1201送到隧道中,第二网络设备接收到给第二报文后会解封装获得其中的第一报文,而后将该第一报文上送到第二网络设备的控制面,可以看出,整个第一报文的传输流程不在通过由CPU处理协议的控制面而是通过转发平面的网络处理器来进行转发处理,处理性能有很大的提高,从而提高如ARP表项等的同步性能;此外,由于采用隧道封装技术,可以直接将整个控制协议报文进行封装,无需对协议报文本身进行扩展,从而使得该备份方式的适用范围更广。
可选的,所述第二报文包括第一类型长度值TLV字段和第二TLV字段,所述第一TLV字段用于承载所述链路标识,所述第二TLV字段用于承载所述第一报文。在隧道中传输的第二报文实际是通过TLV的方式携带第一报文以及链路标识等,在需要的情况下,还可以有第三TLV等,携带更多的信息内容。关于第一TLV和第二TLV的具体说明可参见实施例1中针对图5中的步骤503的说明,此处不再赘述。
可选的,所述隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,或,所述隧道为对应所述链路标识的隧道。隧道的设置可以有两种方式,一种是该隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,即该方式下,所有发送到第一网络设备的第一报文这类控制协议报文均会通过该预设的缺省隧道的隧道协议封装并发送至第二网络设备;第二种是所述隧道为对应所述链路标识的隧道,这种方式第一网络设备在接收到第一报文这类控制协议报文时,仅会将从该链路标识对应的第一网络设备上的接口接收到的第一报文通过该隧道协议进行封装并发送给第二网络设备。关于两种隧道设置方式的具体说明可参见实施例1中针对图5中的步骤503的说明,此处不再赘述。
可选的,所述隧道为VxLAN隧道,所述处理模块1202具体用于:
根据VxLAN网络标识VNI确定以太网虚拟点到点业务实例EVPL;
根据所述EVPL获取所述隧道的隧道信息;
根据所述隧道的隧道信息将所述第一报文封装为第二报文。
其中,该EVPL实际上一个以太网虚拟专线业务,该实例在运行时,会有两个接口,一个是用于对应物理层面网络设备接口的逻辑接口,一个是VxLAN隧道口,该EVPL实例运行逻辑即只要是通过该逻辑接口的数据一律发送到VxLAN隧道口通过该VxLAN隧道传输。具体的VxLAN隧道的封装过程可参见实施例1中针对图5中的步骤503的说明,此处不再赘述。
可选的,所述处理模块1202还用于:
根据所述第一报文中携带的第一提示信息确定所述第一报文为控制协议报文。
其中,关于第一报文是否为控制协议报文的识别可参见实施例1中针对图5中的步骤501的说明,此处不再赘述。
可选的,所述第一报文包括:地址解析协议ARP请求报文、因特网组管理协议IGMP报文或链路汇聚控制协议LACP报文。
其中,关于第一报文类型可参见实施例1中针对图5中的步骤502的说明,此处不再赘述。
可选的,所述收发模块1201还用于:
接收所述第二网络设备发送的第三报文,所述第三报文中携带所述链路标识以及第二提示信息,所述链路标识和所述第二提示信息用于指示所述第一网络设备将所述第一接口上学习到的ARP表项备份给所述第二网络设备;
所述处理模块1202还用于:
根据所述ARP表项生成第五报文,所述第五报文为ARP请求报文;
根据所述隧道协议将所述第五报文封装为第四报文,所述第四报文中包括所述链路标识和所述第五报文;
所述收发模块1201还用于:
通过所述隧道向所述第二网络设备发送所述第四报文。
其中,关于第二网络设备的第二接口初始UP的情况下,从第一网络设备备份ARP表项的过程具体可参见实施例2中的内容,此处不再赘述。
可选的,所述收发模块1201还用于:
通过所述隧道向所述第二网络设备发送第六报文,所述第六报文中携带有第三提示信息,所述第三提示信息用于向所述第二网络设备指示所述ARP表项备份结束。
其中,关于第二网络设备的第二接口初始UP的情况下,第二网络设备在接收到第六报文后执行的操作具体可参见实施例2中的内容,此处不再赘述。
可选的,若第一报文是IGMP报文时,由于针对该IGMP报文并没有对应的响应报文,处理模块1202在处理该IGMP报文时,仅需要由收发模块1201按原本的流程将从第一接口接收到的IGMP报文上送到控制面即可,而后由第一网络设备的控制面下发组播信息给第一网络设备的转发平面即可。
其中,关于IGMP报文的处理过程可参见实施例1的图5中针对步骤504的说明,此处不再赘述。
在一些实施例中,第一报文为ARP请求报文,收发模块1201会将该ARP请求报文上送至第一网络设备的控制面,之后,控制面会向第一网络设备的转发平面返回响应报文,第一网络设备会将该响应报文通过第一接口发送至第三网络设备。
其中,关于ARP请求报文的处理过程可参见实施例1的图5中针对步骤504的说明,此处不再赘述。
实施例4
上面对本申请实施例的网络设备(第一网络设备)进行了介绍,下面对本申请实施例的网络设备(第二网络设备)进行介绍,请参阅图13,图13是本申请实施例的网络设备的一个实施例图,其中该网络设备可应用于双活系统,所述网络设备作为所述双活系统中的第一网络设备,所述双活系统中,第三网络设备经由第一链路连接到所述第一网络设备的第一接口;所述第三网络设备经由第二链路连接到第二网络设备的第二接口,所述第一链路和所述第二链路具有相同的链路标识,所述链路标识用于标识所述第一网络设备以及所述第二网络设备分别通过所述第一接口和所述第二接口连接所述第三网络设备;其中,该第二网络设备包括:
收发模块1301,用于通过隧道接收第一网络设备发送的根据隧道协议封装的第二报文,所述第二报文中包括第一报文和所述链路标识,所述第一报文为所述第一网络设备从所述第三网络设备接收的控制协议报文;
处理模块1302,用于根据所述隧道协议解封装所述第二报文,获取所述第一报文和所述链路标识;
所述处理模块1302好用于根据获取的所述链路标识确定所述第二网络设备上对应所述第一网络设备的第一接口的接口为所述第二接口;
所述收发模块1301还用于将所述第一报文和所述第二接口的接口信息发送至所述第二网络设备的控制面。
其中,该收发模块1301能实现图5所示实施例中步骤505和步骤508,以及图10所示实施例中步骤1001、步骤1005和步骤1009。该处理模块1302能实现图5所示实施例中步骤506和步骤507,以及图10所示实施例中步骤1006和步骤1007。
可以看出,由于收发模块1301接收的第二报文是第一网络设备通过隧道传输的,在收发模块1301接收到以后,需要由处理模块1302对该第二报文按照隧道信息进行解封装,获取其中链路标识和第一报文,其中,链路标识主要用于第二网络设备找到自身上对应第一网络设备的接收第一报文的第一接口的第二接口,该第一接口与第二接口的之间的关系是通过链路标识进行关联的,而后收发模块1301即可模拟从第二接口接收到第一报文,并将该第一报文以及第二接口的信息上送至控制面,能使得控制面完成第一报文的解析以及将解析出的表项下发到第二网络设备的转发平面,完成表项的备份过程。可以看出,整个第一报文的传输流程不再通过由CPU处理协议的控制面而是通过转发平面的网络处理器来进行转发处理,处理性能有很大的提高,从而提高如ARP表项等的同步性能;此外,由于采用隧道封装技术,可以直接将整个控制协议报文进行封装,无需对协议报文本身进行扩展。
可选的,所述第二报文包括第一类型长度值TLV字段和第二TLV字段,所述第一TLV字段用于承载所述链路标识,所述第二TLV字段用于承载所述第一报文。在隧道中传输的第二报文实际是通过TLV的方式携带第一报文以及链路标识等,在需要的情况下,还可以有第三TLV等,携带更多的信息内容。关于第一TLV和第二TLV的具体说明可参见实施例1中针对图5中的步骤503的说明,此处不再赘述。
可选的,所述隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,或,所述隧道为对应所述链路标识的隧道。隧道的设置可以有两种方式,一种是该隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,即该方式下,所有发送到第一网络设备的第一报文这类控制协议报文均会通过该预设的缺省隧道的隧道协议封装并发送至第二网络设备;第二种是所述隧道为对应所述链路标识的隧道,这种方式第一网络设备在接收到第一报文这类控制协议报文时,仅会将从该链路标识对应的第一网络设备上的接口接收到的第一报文通过该隧道协议进行封装并发送给第二网络设备。关于两种隧道设置方式的具体说明可参见实施例1中针对图5中的步骤503的说明,此处不再赘述。
可选的,所述隧道为VxLAN隧道,所述处理模块1302具体用于:
根据VxLAN网络标识VNI确定以太网虚拟点到点业务实例EVPL;
根据所述EVPL获取所述隧道的隧道信息;
根据所述隧道的隧道信息解封装所述第二报文,获取所述第一报文和所述链路标识。
其中,该EVPL实际上一个以太网虚拟专线业务,该实例在运行时,会有两个接口,一个是用于对应物理层面网络设备接口的逻辑接口,一个是VxLAN隧道口,该EVPL实例运行逻辑即只要是通过该逻辑接口的数据一律发送到VxLAN隧道口通过该VxLAN隧道传输。具体的VxLAN隧道的封装过程可参见实施例1中针对图5中的步骤503的说明,此处不再赘述。
可选的,所述处理模块1302还用于:
根据所述隧道信息对所述第二报文中携带的隧道信息进行校验。
其中,若是第二网络根据所述隧道信息对所述第二报文中携带的隧道信息校验通过时,才会触发所述处理模块1302根据所述隧道的隧道信息解封装所述第二报文的步骤。而若是隧道信息的校验未通过时,处理模块1302会直接丢弃该第二报文。通过添加该验证步骤,能够节省网络处理器的处理资源。其中,该校验过程可参见实施例1中针对图5中的步骤503的说明,此处不再赘述。
可选的,所述第一报文包括:地址解析协议ARP请求报文、因特网组管理协议IGMP报文或链路汇聚控制协议LACP报文。
其中,关于第一报文类型可参见实施例1中针对图5中的步骤502的说明,此处不再赘述。
可选的,所述收发模块1301还用于:
所述第二网络设备将第四提示信息发送至所述控制面,所述第四提示信息用于指示所述控制面不向所述第三网络设备返回ARP响应报文。
其中,该第四提示信息可以在第二网络设备向其上的控制面上送第一报文时一并上送。具体的关于第四提示信息的说明以及使用方式可参见实施例1中针对图5中的步骤508的说明,此处不再赘述。
可选的,所述收发模块1301还用于:
在所述第二网络设备的第二接口初始化连接到所述第三网络设备时,通过所述隧道向所述第一网络设备发送第三报文,所述第三报文中携带所述链路标识和第二提示信息,所述链路标识和所述第二提示信息用于指示所述第一网络设备将所述第一接口上学习到的ARP表项备份给所述第二网络设备;
通过所述隧道接收所述第一网络设备发出的第四报文,所述第四报文中包括第五报文和所述链路标识,所述第五报文为所述第一网络设备根据所述ARP表项而构造的ARP请求报文。
其中,在所述收发模块1301接收所述第二报文之前,当第二网络设备的第二接口初始化连接到所述第三网络设备时,收发模块1301会通过该隧道向所述第一网络设备发送第三报文,该第三报文中携带所述链路标识和第二提示信息,该链路标识能够使得第一网络设备知道要进行备份的是第一网络设备上对应该链路标识的第一接口,而第二提示信息,则指示第一网络设备将第一接口上学习到的ARP表项备份给第二网络设备;通过该链路标识和第二提示信息,便能使得第一网络设备将第二网络设备想要获取的ARP表项通过隧道发送给第二网络设备。接着,在发送出第三报文后,收发模块1301通过所述隧道接收所述第一网络设备发出的第四报文,该第四报文中包括第五报文和所述链路标识,其中,第五报文为所述第一网络设备根据第一接口上学习到的ARP表项而构造的ARP请求报文,同为ARP请求报文。关于第二网络设备的第二接口初始UP的情况下,从第一网络设备备份ARP表项的过程具体可参见实施例2中的内容,此处不再赘述。
可选的,所述收发模块1301还用于:
通过所述隧道接收所述第一网络设备发送的第六报文,所述第六报文中携带有第三提示信息,所述第三提示信息用于向所述第二网络设备指示所述ARP表项备份结束。
其中,关于第二网络设备的第二接口初始UP的情况下,从第一网络设备备份ARP表项的过程具体可参见实施例2中的内容,此处不再赘述。
可选的,在通过隧道向第一网络设备发出第三报文之后且还未接收到来自第一网络设备发送的用于通知第二网络设备备份已结束的第六报文时,处理模块1302会将需要进行ARP表项同步的第二接口的路由优先级调低,从而使得经过该第二网络设备的数据报文不从第二接口转发。
其中,关于第二网络设备的第二接口初始UP的情况下,对第二接口的路由调整过程具体可参见实施例2中的内容,此处不再赘述。
可选的,收发模块1301在接收到第六报文之后,便会知晓第二接口的ARP表项同步已完成,从而可以由处理模块1302将路由优先级恢复到原本的状态,即通过第三网络设备到第二网络设备的数据报文通过该第二接口进行转发。
其中,关于第二网络设备的第二接口初始UP的情况下,对第二接口的路由调整过程具体可参见实施例2中的内容,此处不再赘述。
可选的,若第一报文是IGMP报文时,由于针对该IGMP报文并没有对应的响应报文,处理模块1302在处理该IGMP报文时,仅需要通过收发模块1301将从隧道接收并解封装得到的IGMP报文上送到控制面即可,而后由第二网络设备的控制面下发组播信息给第二网络设备的转发平面即可。
其中,关于IGMP报文的处理过程具体可参见实施例1中针对步骤508的说明,此处不再赘述。
实施例5
上面对本申请实施例的网络设备进行了介绍,下面对本申请实施例中接入网设备的结构进行描述,请参阅图14,图14是本申请实施例的网络设备的一个实施例图,其中,网络设备14可包括相连接的至少一个处理器1402、至少一个收发器1401以及存储器1403,本申请实施例涉及的网络设备可以具有比图14所示出的更多或更少的部件,可以组合两个或更多个部件,或者可以具有不同的部件配置或设置,各个部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件或硬件和软件的组合实现。
具体的,对于图12所示的实施例来说,该处理器1402能实现图12所示实施例中的网络设备的处理模块1202的功能,该收发器1401能实现图12所示实施例中的网络设备的收发模块1201的功能,存储器1403用于程序指令,通过执行该程序指令实现图5所示实施例的报文处理方法。
具体的,对于图13所示的实施例来说,该处理器1402能实现图13所示实施例中的网络设备的处理模块1302的功能,该收发器1401能实现图13所示实施例中的网络设备的收发模块1301的功能,存储器1403用于程序指令,通过执行该程序指令实现图5所示实施例的网络通信方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的和范围。
Claims (35)
1.一种报文处理方法,其特征至于,第三网络设备经由第一链路连接到第一网络设备的第一接口;所述第三网络设备经由第二链路连接到第二网络设备的第二接口,所述第一链路和所述第二链路具有相同的链路标识,所述链路标识用于标识所述第一网络设备以及所述第二网络设备分别通过所述第一接口和所述第二接口连接所述第三网络设备,所述方法包括:
所述第一网络设备接收所述第三网络设备发送的第一报文,所述第一报文为控制协议报文;
所述第一网络设备根据隧道协议将所述第一报文封装为第二报文,所述第二报文中包括所述链路标识以及所述第一报文;
所述第一网络设备通过所述隧道向所述第二网络设备发送所述第二报文。
2.根据权利要求1所述的报文处理方法,其特征在于,所述第二报文包括第一类型长度值TLV字段和第二TLV字段,所述第一TLV字段用于承载所述链路标识,所述第二TLV字段用于承载所述第一报文。
3.根据权利要求1或2所述的报文处理方法,其特征至于,所述隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,或,所述隧道为对应所述链路标识的隧道。
4.根据权利要求1-3任一项所述的报文处理方法,其特征在于,所述隧道为虚拟可扩展局域网VxLAN隧道,所述第一网络设备根据隧道协议将所述第一报文封装为第二报文包括:
所述第一网络设备根据VxLAN网络标识VNI确定以太网虚拟点到点业务实例EVPL;
所述第一网络设备根据所述EVPL获取所述隧道的隧道信息;
所述第一网络设备根据所述隧道的隧道信息将所述第一报文封装为第二报文。
5.根据权利要求1至4中任一项所述的报文处理方法,其特征在于,所述第一网络设备根据隧道协议将所述第一报文封装为第二报文之前,所述方法还包括:
所述第一网络设备根据所述第一报文中携带的第一提示信息确定所述第一报文为控制协议报文。
6.根据权利要求1至5中任一项所述的报文处理方法,其特征在于,所述第一报文包括:地址解析协议ARP请求报文、因特网组管理协议IGMP报文或链路汇聚控制协议LACP报文。
7.根据权利要求6所述的报文处理方法,其特征在于,在所述第一网络设备接收所述第一报文之前,所述方法还包括:
所述第一网络设备接收所述第二网络设备发送的第三报文,所述第三报文中携带所述链路标识以及第二提示信息,所述链路标识和所述第二提示信息用于指示所述第一网络设备将所述第一接口上学习到的ARP表项备份给所述第二网络设备;
所述第一网络设备根据所述ARP表项生成第五报文,所述第五报文为ARP请求报文;
所述第一网络设备根据所述隧道协议将所述第五报文封装为第四报文,所述第四报文中包括所述链路标识和所述第五报文;
所述第一网络设备通过所述隧道向所述第二网络设备发送所述第四报文。
8.根据权利要求7所述的报文处理方法,其特征在于,在所述第一网络设备通过所述隧道向所述第二网络设备发送所述第四报文之后,所述方法还包括:
所述第一网络设备通过所述隧道向所述第二网络设备发送第六报文,所述第六报文中携带有第三提示信息,所述第三提示信息用于向所述第二网络设备指示所述ARP表项备份结束。
9.一种报文处理方法,其特征在于,第三网络设备经由第一链路连接到第一网络设备的第一接口;所述第三网络设备经由第二链路连接到第二网络设备的第二接口,所述第一链路和所述第二链路具有相同的链路标识,所述链路标识用于标识所述第一网络设备以及所述第二网络设备分别通过所述第一接口和所述第二接口连接所述第三网络设备,所述方法包括:
第二网络设备通过隧道接收第一网络设备发送的根据隧道协议封装的第二报文,所述第二报文中包括第一报文和所述链路标识,所述第一报文为所述第一网络设备从所述第三网络设备接收的控制协议报文;
所述第二网络设备根据所述隧道协议解封装所述第二报文,获取所述第一报文和所述链路标识;
所述第二网络设备根据获取的所述链路标识确定所述第二网络设备上对应所述第一网络设备的第一接口的接口为所述第二接口;
所述第二网络设备将所述第一报文和所述第二接口的接口信息发送至所述第二网络设备的控制面。
10.根据权利要求9所述的报文处理方法,其特征在于,所述第二报文包括第一类型长度值TLV和第二TLV,所述第一TLV用于承载所述链路标识,所述第二TLV用于承载所述第一报文。
11.根据权利要求9或10所述的报文处理方法,其特征在于,所述隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,或,所述隧道为对应所述链路标识的隧道。
12.根据权利要求9-11任一项所述的报文处理方法,其特征在于,所述隧道为虚拟可扩展局域网VxLAN隧道,所述第二网络设备根据所述隧道协议解封装所述第二报文,获取所述第一报文和所述链路标识包括:
所述第二网络设备根据VxLAN网络标识VNI确定以太网虚拟点到点业务实例EVPL;
所述第二网络设备根据所述EVPL获取所述隧道的隧道信息;
所述第二网络设备根据所述隧道的隧道信息解封装所述第二报文,获取所述第一报文和所述链路标识。
13.根据权利要求12所述的报文处理方法,其特征在于,在所述第二网络设备根据所述隧道的隧道信息解封装所述第二报文,获取所述第一报文之前,所述方法还包括:
所述第二网络设备根据所述隧道信息对所述第二报文中携带的隧道信息进行校验。
14.根据权利要求9至13中任一项所述的报文处理方法,其特征在于,所述第一报文包括:地址解析协议ARP请求报文、因特网组管理协议IGMP报文或链路汇聚控制协议LACP报文。
15.根据权利要求14所述的报文处理方法,其特征在于,所述方法还包括:
所述第二网络设备将第一提示信息发送至所述控制面,所述第一提示信息用于指示所述控制面不向所述第三网络设备返回ARP响应报文。
16.根据权利要求15所述的报文处理方法,其特征在于,在所述第二网络设备接收所述第二报文之前,所述方法还包括:
在所述第二网络设备的第二接口初始化连接到所述第三网络设备时,所述第二网络设备通过所述隧道向所述第一网络设备发送第三报文,所述第三报文中携带所述链路标识和第二提示信息,所述链路标识和所述第二提示信息用于指示所述第一网络设备将所述第一接口上学习到的ARP表项备份给所述第二网络设备;
所述第二网络设备通过所述隧道接收所述第一网络设备发出的第四报文,所述第四报文中包括第五报文和所述链路标识,所述第五报文为所述第一网络设备根据所述ARP表项而构造的ARP请求报文。
17.根据权利要求16所述的报文处理方法,其特征在于,所述方法还包括:
所述第二网络设备通过所述隧道接收所述第一网络设备发送的第六报文,所述第六报文中携带有第三提示信息,所述第三提示信息用于向所述第二网络设备指示所述ARP表项备份结束。
18.一种网络设备,其特征至于,应用于双活系统,所述网络设备作为所述双活系统中的第一网络设备,所述双活系统中,第三网络设备经由第一链路连接到所述第一网络设备的第一接口;所述第三网络设备经由第二链路连接到第二网络设备的第二接口,所述第一链路和所述第二链路具有相同的链路标识,所述链路标识用于标识所述第一网络设备以及所述第二网络设备分别通过所述第一接口和所述第二接口连接所述第三网络设备;其中,所述第一网络设备包括:
收发模块,用于接收所述第三网络设备发送的第一报文,所述第一报文为控制协议报文;
处理模块,用于根据隧道协议将所述第一报文封装为第二报文,所述第二报文中包括所述链路标识以及所述第一报文;
所述收发模块还用于通过所述隧道向所述第二网络设备发送所述第二报文。
19.根据权利要求18所述的网络设备,其特征在于,所述第二报文包括第一类型长度值TLV字段和第二TLV字段,所述第一TLV字段用于承载所述链路标识,所述第二TLV字段用于承载所述第一报文。
20.根据权利要求18或19所述的网络设备,其特征至于,所述隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,或,所述隧道为对应所述链路标识的隧道。
21.根据权利要求18-20任一项所述的网络设备,其特征在于,所述隧道为虚拟可扩展局域网VxLAN隧道,所述处理模块具体用于:
根据VxLAN网络标识VNI确定以太网虚拟点到点业务实例EVPL;
根据所述EVPL获取所述隧道的隧道信息;
根据所述隧道的隧道信息将所述第一报文封装为第二报文。
22.根据权利要求19至21中任一项所述的网络设备,其特征在于,所述处理模块还用于:
根据所述第一报文中携带的第一提示信息确定所述第一报文为控制协议报文。
23.根据权利要求19至22中任一项所述的网络设备,其特征在于,所述第一报文包括:地址解析协议ARP请求报文、因特网组管理协议IGMP报文或链路汇聚控制协议LACP报文。
24.根据权利要求23所述的网络设备,其特征在于,所述收发模块还用于:
接收所述第二网络设备发送的第三报文,所述第三报文中携带所述链路标识以及第二提示信息,所述链路标识和所述第二提示信息用于指示所述第一网络设备将所述第一接口上学习到的ARP表项备份给所述第二网络设备;
所述处理模块还用于:
根据所述ARP表项生成第五报文,所述第五报文为ARP请求报文;
根据所述隧道协议将所述第五报文封装为第四报文,所述第四报文中包括所述链路标识和所述第五报文;
所述收发模块还用于:
通过所述隧道向所述第二网络设备发送所述第四报文。
25.根据权利要求24所述的网络设备,其特征在于,所述收发模块还用于:
通过所述隧道向所述第二网络设备发送第六报文,所述第六报文中携带有第三提示信息,所述第三提示信息用于向所述第二网络设备指示所述ARP表项备份结束。
26.一种网络设备,其特征在于,应用于双活系统,所述网络设备作为所述双活系统中的第二网络设备,所述双活系统中,第三网络设备经由第一链路连接到所述第一网络设备的第一接口;所述第三网络设备经由第二链路连接到第二网络设备的第二接口,所述第一链路和所述第二链路具有相同的链路标识,所述链路标识用于标识所述第一网络设备以及所述第二网络设备分别通过所述第一接口和所述第二接口连接所述第三网络设备;其中,所述第二网络设备包括:
收发模块,用于通过隧道接收第一网络设备发送的根据隧道协议封装的第二报文,所述第二报文中包括第一报文和所述链路标识,所述第一报文为所述第一网络设备从所述第三网络设备接收的控制协议报文;
处理模块,用于根据所述隧道协议解封装所述第二报文,获取所述第一报文和所述链路标识;
所述处理模块好用于根据获取的所述链路标识确定所述第二网络设备上对应所述第一网络设备的第一接口的接口为所述第二接口;
所述收发模块还用于将所述第一报文和所述第二接口的接口信息发送至所述第二网络设备的控制面。
27.根据权利要求26所述的网络设备,其特征在于,所述第二报文包括第一类型长度值TLV和第二TLV,所述第一TLV用于承载所述链路标识,所述第二TLV用于承载所述第一报文。
28.根据权利要求26或27所述的网络设备,其特征在于,所述隧道为所述第一网络设备和所述第二网络设备之间预设的缺省隧道,或,所述隧道为对应所述链路标识的隧道。
29.根据权利要求26-28任一项所述的网络设备,其特征在于,所述隧道为虚拟可扩展局域网VxLAN隧道,所述处理模块具体用于:
根据VxLAN网络标识VNI确定以太网虚拟点到点业务实例EVPL;
根据所述EVPL获取所述隧道的隧道信息;
根据所述隧道的隧道信息解封装所述第二报文,获取所述第一报文和所述链路标识。
30.根据权利要求29所述的网络设备,其特征在于,所述处理模块还用于:
根据所述隧道信息对所述第二报文中携带的隧道信息进行校验。
31.根据权利要求26-30任一项所述的网络设备,其特征在于,所述第一报文包括:地址解析协议ARP请求报文、因特网组管理协议IGMP报文或链路汇聚控制协议LACP报文。
32.根据权利要求31所述的网络设备,其特征在于,所述收发模块还用于:
所述第二网络设备将第一提示信息发送至所述控制面,所述第一提示信息用于指示所述控制面不向所述第三网络设备返回ARP响应报文。
33.根据权利要求32所述的网络设备,其特征在于,所述收发模块还用于:
在所述第二网络设备的第二接口初始化连接到所述第三网络设备时,通过所述隧道向所述第一网络设备发送第三报文,所述第三报文中携带所述链路标识和第二提示信息,所述链路标识和所述第二提示信息用于指示所述第一网络设备将所述第一接口上学习到的ARP表项备份给所述第二网络设备;
通过所述隧道接收所述第一网络设备发出的第四报文,所述第四报文中包括第五报文和所述链路标识,所述第五报文为所述第一网络设备根据所述ARP表项而构造的ARP请求报文。
34.根据权利要求33所述的网络设备,其特征在于,所述收发模块还用于:
通过所述隧道接收所述第一网络设备发送的第六报文,所述第六报文中携带有第三提示信息,所述第三提示信息用于向所述第二网络设备指示所述ARP表项备份结束。
35.一种计算机可读存储介质,其特征在碍于,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-8中任一项所述的报文处理方法或如权利要求9-17中任一项所述的报文处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710543069.2A CN109218178B (zh) | 2017-07-05 | 2017-07-05 | 一种报文处理方法及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710543069.2A CN109218178B (zh) | 2017-07-05 | 2017-07-05 | 一种报文处理方法及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109218178A true CN109218178A (zh) | 2019-01-15 |
CN109218178B CN109218178B (zh) | 2021-06-22 |
Family
ID=64992706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710543069.2A Active CN109218178B (zh) | 2017-07-05 | 2017-07-05 | 一种报文处理方法及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109218178B (zh) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108574639A (zh) * | 2017-03-14 | 2018-09-25 | 华为技术有限公司 | Evpn报文处理方法、设备及系统 |
CN110391984A (zh) * | 2019-07-26 | 2019-10-29 | 新华三大数据技术有限公司 | 一种报文转发方法及装置 |
CN110519410A (zh) * | 2019-08-29 | 2019-11-29 | 深信服科技股份有限公司 | 一种通信方法、交换机、存储介质、通信设备及通信系统 |
CN110601881A (zh) * | 2019-09-04 | 2019-12-20 | 厦门网宿有限公司 | 一种二层专线网络系统、配置方法及设备 |
CN110908939A (zh) * | 2019-11-27 | 2020-03-24 | 新华三半导体技术有限公司 | 一种报文处理方法、装置及网络芯片 |
CN111277482A (zh) * | 2020-01-13 | 2020-06-12 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
CN111800338A (zh) * | 2020-06-01 | 2020-10-20 | 锐捷网络股份有限公司 | 跨as的evpn路由交互方法及装置 |
CN111884903A (zh) * | 2020-07-15 | 2020-11-03 | 迈普通信技术股份有限公司 | 一种业务隔离方法、装置、sdn网络系统及路由设备 |
CN111935206A (zh) * | 2020-06-23 | 2020-11-13 | 新浪网技术(中国)有限公司 | 报文处理方法、装置及网络设备 |
WO2020244372A1 (zh) * | 2019-06-06 | 2020-12-10 | 华为技术有限公司 | 一种实现组播的方法和装置 |
CN112152900A (zh) * | 2020-09-24 | 2020-12-29 | 盛科网络(苏州)有限公司 | VxLAN场景中的报文转发方法和装置 |
CN112152920A (zh) * | 2019-06-28 | 2020-12-29 | 华为技术有限公司 | 一种实现表项备份的方法和装置 |
CN112235199A (zh) * | 2020-10-14 | 2021-01-15 | 盛科网络(苏州)有限公司 | 基于srv6协议的evpn水平分割方法和装置 |
CN112395132A (zh) * | 2020-11-13 | 2021-02-23 | 苏州元核云技术有限公司 | 文件备份的方法、系统及计算机存储介质 |
CN112422436A (zh) * | 2020-11-18 | 2021-02-26 | 盛科网络(苏州)有限公司 | 基于mpls的evpn bum报文本地优先转发方法和系统 |
CN112822097A (zh) * | 2019-11-15 | 2021-05-18 | 华为技术有限公司 | 报文转发的方法、第一网络设备以及第一设备组 |
CN112929921A (zh) * | 2019-12-05 | 2021-06-08 | 维沃移动通信有限公司 | 波束失败恢复方法、终端及网络侧设备 |
CN112929193A (zh) * | 2019-12-06 | 2021-06-08 | 华为技术有限公司 | 用于配置介质访问控制地址老化时间的方法和装置 |
CN113206791A (zh) * | 2021-03-31 | 2021-08-03 | 新华三信息安全技术有限公司 | 一种报文转发方法及装置 |
CN113497752A (zh) * | 2020-03-19 | 2021-10-12 | 华为技术有限公司 | 一种报文发送方法、第一网络设备及网络系统 |
CN113630322A (zh) * | 2021-08-02 | 2021-11-09 | 迈普通信技术股份有限公司 | 网络割接方法、装置、网络设备及计算机可读存储介质 |
WO2022042547A1 (zh) * | 2020-08-28 | 2022-03-03 | 华为技术有限公司 | 流量转发处理方法及设备 |
CN114189564A (zh) * | 2020-08-28 | 2022-03-15 | 华为技术有限公司 | 一种报文传输方法、装置及系统 |
CN114205282A (zh) * | 2021-12-08 | 2022-03-18 | 中国电信股份有限公司 | SRv6 Policy的调度方法、系统、路由器和控制器 |
CN114499935A (zh) * | 2021-12-17 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 云平台的访问方法、装置、设备及存储介质 |
CN114615352A (zh) * | 2020-12-09 | 2022-06-10 | 中国移动通信有限公司研究院 | 业务数据报文的传输方法及网络设备 |
CN115426217A (zh) * | 2022-09-30 | 2022-12-02 | 上海地面通信息网络股份有限公司 | 一种基于vxlan的互联网接入控制系统及方法 |
WO2023134416A1 (zh) * | 2022-01-14 | 2023-07-20 | 华为技术有限公司 | 一种报文发送方法、确定链路状态的方法、设备及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904818A (zh) * | 2012-09-27 | 2013-01-30 | 北京星网锐捷网络技术有限公司 | 一种arp信息表项更新方法及装置 |
CN103166858A (zh) * | 2013-03-26 | 2013-06-19 | 杭州华三通信技术有限公司 | 一种报文传输方法和设备 |
CN104410570A (zh) * | 2014-12-16 | 2015-03-11 | 北京东土科技股份有限公司 | 一种基于vrrp的数据传输方法及装置 |
US20160014241A1 (en) * | 2013-03-07 | 2016-01-14 | Nec Corporation | Packet rewriting apparatus, control apparatus, communication system, packet transmission method and program |
CN105790996A (zh) * | 2014-12-26 | 2016-07-20 | 北京华为朗新科技有限公司 | 分布式网关备份处理方法及网络设备 |
US20160344628A1 (en) * | 2015-05-19 | 2016-11-24 | Cisco Technology, Inc. | Virtual network functions with high availability in public clouds |
CN106789618A (zh) * | 2015-11-23 | 2017-05-31 | 四零四科技股份有限公司 | 基于虚拟路由器备份协议的备份系统及其方法 |
-
2017
- 2017-07-05 CN CN201710543069.2A patent/CN109218178B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904818A (zh) * | 2012-09-27 | 2013-01-30 | 北京星网锐捷网络技术有限公司 | 一种arp信息表项更新方法及装置 |
US20160014241A1 (en) * | 2013-03-07 | 2016-01-14 | Nec Corporation | Packet rewriting apparatus, control apparatus, communication system, packet transmission method and program |
CN103166858A (zh) * | 2013-03-26 | 2013-06-19 | 杭州华三通信技术有限公司 | 一种报文传输方法和设备 |
CN104410570A (zh) * | 2014-12-16 | 2015-03-11 | 北京东土科技股份有限公司 | 一种基于vrrp的数据传输方法及装置 |
CN105790996A (zh) * | 2014-12-26 | 2016-07-20 | 北京华为朗新科技有限公司 | 分布式网关备份处理方法及网络设备 |
US20160344628A1 (en) * | 2015-05-19 | 2016-11-24 | Cisco Technology, Inc. | Virtual network functions with high availability in public clouds |
CN106789618A (zh) * | 2015-11-23 | 2017-05-31 | 四零四科技股份有限公司 | 基于虚拟路由器备份协议的备份系统及其方法 |
Cited By (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108574639B (zh) * | 2017-03-14 | 2020-04-03 | 华为技术有限公司 | Evpn报文处理方法、设备及系统 |
US11677587B2 (en) | 2017-03-14 | 2023-06-13 | Huawei Technologies Co., Ltd. | EVPN packet processing method, device, and system for mac learning via MAC/IP advertisement route |
US11310079B2 (en) | 2017-03-14 | 2022-04-19 | Huawei Technologies Co., Ltd. | EVPN packet processing method, device, and system for MAC learning via MAC/IP advertisement route |
CN108574639A (zh) * | 2017-03-14 | 2018-09-25 | 华为技术有限公司 | Evpn报文处理方法、设备及系统 |
WO2020244372A1 (zh) * | 2019-06-06 | 2020-12-10 | 华为技术有限公司 | 一种实现组播的方法和装置 |
JP2022539110A (ja) * | 2019-06-28 | 2022-09-07 | 華為技術有限公司 | エントリのバックアップを実現するための方法及び装置の確立 |
CN112152920B (zh) * | 2019-06-28 | 2021-12-28 | 华为技术有限公司 | 一种实现表项备份的方法和装置 |
WO2020258969A1 (zh) * | 2019-06-28 | 2020-12-30 | 华为技术有限公司 | 建立一种实现表项备份的方法和装置 |
JP7375053B2 (ja) | 2019-06-28 | 2023-11-07 | 華為技術有限公司 | エントリのバックアップを実現するための方法及び装置の確立 |
CN112152920A (zh) * | 2019-06-28 | 2020-12-29 | 华为技术有限公司 | 一种实现表项备份的方法和装置 |
CN110391984A (zh) * | 2019-07-26 | 2019-10-29 | 新华三大数据技术有限公司 | 一种报文转发方法及装置 |
CN110519410A (zh) * | 2019-08-29 | 2019-11-29 | 深信服科技股份有限公司 | 一种通信方法、交换机、存储介质、通信设备及通信系统 |
CN110601881B (zh) * | 2019-09-04 | 2021-10-22 | 厦门网宿有限公司 | 一种二层专线网络系统、配置方法及设备 |
CN110601881A (zh) * | 2019-09-04 | 2019-12-20 | 厦门网宿有限公司 | 一种二层专线网络系统、配置方法及设备 |
CN112822097A (zh) * | 2019-11-15 | 2021-05-18 | 华为技术有限公司 | 报文转发的方法、第一网络设备以及第一设备组 |
CN110908939B (zh) * | 2019-11-27 | 2020-10-09 | 新华三半导体技术有限公司 | 一种报文处理方法、装置及网络芯片 |
CN110908939A (zh) * | 2019-11-27 | 2020-03-24 | 新华三半导体技术有限公司 | 一种报文处理方法、装置及网络芯片 |
CN112929921A (zh) * | 2019-12-05 | 2021-06-08 | 维沃移动通信有限公司 | 波束失败恢复方法、终端及网络侧设备 |
CN112929193B (zh) * | 2019-12-06 | 2023-02-03 | 华为技术有限公司 | 用于配置介质访问控制地址老化时间的方法和装置 |
CN112929193A (zh) * | 2019-12-06 | 2021-06-08 | 华为技术有限公司 | 用于配置介质访问控制地址老化时间的方法和装置 |
CN111277482B (zh) * | 2020-01-13 | 2022-01-18 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
CN111277482A (zh) * | 2020-01-13 | 2020-06-12 | 新华三大数据技术有限公司 | 一种报文处理方法及装置 |
CN113497752B (zh) * | 2020-03-19 | 2022-05-10 | 华为技术有限公司 | 一种报文发送方法、第一网络设备及网络系统 |
CN113497752A (zh) * | 2020-03-19 | 2021-10-12 | 华为技术有限公司 | 一种报文发送方法、第一网络设备及网络系统 |
CN111800338B (zh) * | 2020-06-01 | 2022-09-16 | 锐捷网络股份有限公司 | 跨as的evpn路由交互方法及装置 |
CN111800338A (zh) * | 2020-06-01 | 2020-10-20 | 锐捷网络股份有限公司 | 跨as的evpn路由交互方法及装置 |
CN111935206A (zh) * | 2020-06-23 | 2020-11-13 | 新浪网技术(中国)有限公司 | 报文处理方法、装置及网络设备 |
CN111884903A (zh) * | 2020-07-15 | 2020-11-03 | 迈普通信技术股份有限公司 | 一种业务隔离方法、装置、sdn网络系统及路由设备 |
CN114205297B (zh) * | 2020-08-28 | 2024-05-17 | 华为技术有限公司 | 流量转发处理方法及设备 |
CN114205297A (zh) * | 2020-08-28 | 2022-03-18 | 华为技术有限公司 | 流量转发处理方法及设备 |
CN114189564A (zh) * | 2020-08-28 | 2022-03-15 | 华为技术有限公司 | 一种报文传输方法、装置及系统 |
WO2022042547A1 (zh) * | 2020-08-28 | 2022-03-03 | 华为技术有限公司 | 流量转发处理方法及设备 |
CN112152900A (zh) * | 2020-09-24 | 2020-12-29 | 盛科网络(苏州)有限公司 | VxLAN场景中的报文转发方法和装置 |
CN112235199B (zh) * | 2020-10-14 | 2022-04-22 | 苏州盛科通信股份有限公司 | 基于srv6协议的evpn水平分割方法和装置 |
CN112235199A (zh) * | 2020-10-14 | 2021-01-15 | 盛科网络(苏州)有限公司 | 基于srv6协议的evpn水平分割方法和装置 |
CN112395132A (zh) * | 2020-11-13 | 2021-02-23 | 苏州元核云技术有限公司 | 文件备份的方法、系统及计算机存储介质 |
CN112395132B (zh) * | 2020-11-13 | 2024-06-11 | 苏州元核云技术有限公司 | 文件备份的方法、系统及计算机存储介质 |
CN112422436B (zh) * | 2020-11-18 | 2022-04-01 | 苏州盛科通信股份有限公司 | 基于mpls的evpn bum报文本地优先转发方法和系统 |
CN112422436A (zh) * | 2020-11-18 | 2021-02-26 | 盛科网络(苏州)有限公司 | 基于mpls的evpn bum报文本地优先转发方法和系统 |
CN114615352A (zh) * | 2020-12-09 | 2022-06-10 | 中国移动通信有限公司研究院 | 业务数据报文的传输方法及网络设备 |
CN113206791A (zh) * | 2021-03-31 | 2021-08-03 | 新华三信息安全技术有限公司 | 一种报文转发方法及装置 |
CN113206791B (zh) * | 2021-03-31 | 2022-04-01 | 新华三信息安全技术有限公司 | 一种报文转发方法及装置 |
CN113630322A (zh) * | 2021-08-02 | 2021-11-09 | 迈普通信技术股份有限公司 | 网络割接方法、装置、网络设备及计算机可读存储介质 |
CN114205282A (zh) * | 2021-12-08 | 2022-03-18 | 中国电信股份有限公司 | SRv6 Policy的调度方法、系统、路由器和控制器 |
CN114499935B (zh) * | 2021-12-17 | 2023-08-29 | 阿里巴巴(中国)有限公司 | 云平台的访问方法、装置、设备及存储介质 |
CN114499935A (zh) * | 2021-12-17 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 云平台的访问方法、装置、设备及存储介质 |
WO2023134416A1 (zh) * | 2022-01-14 | 2023-07-20 | 华为技术有限公司 | 一种报文发送方法、确定链路状态的方法、设备及系统 |
CN115426217A (zh) * | 2022-09-30 | 2022-12-02 | 上海地面通信息网络股份有限公司 | 一种基于vxlan的互联网接入控制系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109218178B (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218178A (zh) | 一种报文处理方法及网络设备 | |
CN108476160B (zh) | 基于分层覆叠穿隧的交换机互连 | |
CN105379197B (zh) | 建立隧道的方法、分配标签的方法、设备及网络系统 | |
EP2690820B1 (en) | Method, apparatus and system for mapping service instance | |
CN110086714A (zh) | 在以太网vpn中通过多归属设备处理多播连接消息 | |
US9184935B2 (en) | Network communication method and network node device | |
WO2022100554A1 (zh) | Bier报文转发的方法、设备以及系统 | |
US20150043348A1 (en) | Traffic Flow Redirection between Border Routers using Routing Encapsulation | |
CN108574616A (zh) | 一种处理路由的方法、设备及系统 | |
CN107566263A (zh) | 用于evpn链路故障的层3会聚的方法及网络设备 | |
CN108574639A (zh) | Evpn报文处理方法、设备及系统 | |
JP2021530912A (ja) | ネットワークスライス制御方法及び装置、コンピュータ読み取り可能な記憶媒体 | |
CN108574630A (zh) | Evpn报文处理方法、设备及系统 | |
US20160043941A1 (en) | Method and system for controlling an underlying physical network by a software defined network | |
US8705403B2 (en) | Load balancing multicast traffic | |
WO2015165311A1 (zh) | 传输数据报文的方法和供应商边缘设备 | |
EP3069471B1 (en) | Optimized multicast routing in a clos-like network | |
CN105099848A (zh) | 网络扩展群组 | |
CN102739501B (zh) | 二三层虚拟私有网络中的报文转发方法和系统 | |
CN104378297A (zh) | 一种报文转发方法及设备 | |
CN114465946B (zh) | 获取转发表项的方法、装置以及系统 | |
WO2016124049A1 (zh) | 用于获取端口路径的方法及装置 | |
WO2021093463A1 (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
CN105933235B (zh) | 数据通信方法及装置 | |
CN113328937B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |