CN108718269B - 报文处理方法及装置 - Google Patents

报文处理方法及装置 Download PDF

Info

Publication number
CN108718269B
CN108718269B CN201810483265.XA CN201810483265A CN108718269B CN 108718269 B CN108718269 B CN 108718269B CN 201810483265 A CN201810483265 A CN 201810483265A CN 108718269 B CN108718269 B CN 108718269B
Authority
CN
China
Prior art keywords
message
vxlan
link
field
link state
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.)
Active
Application number
CN201810483265.XA
Other languages
English (en)
Other versions
CN108718269A (zh
Inventor
雷磊
黄李伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201810483265.XA priority Critical patent/CN108718269B/zh
Publication of CN108718269A publication Critical patent/CN108718269A/zh
Application granted granted Critical
Publication of CN108718269B publication Critical patent/CN108718269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing

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

本发明涉及一种报文处理方法及装置。该报文处理方法包括:在检测到第一ED与第一ED处于相同DC内的第一网络设备之间的通信链路为不可用Down状态时,获取第一ED和第二ED之间建立的第一VXLAN隧道的标识,并根据第一VXLAN隧道的标识,更新第一ED已存储的转发表中的出端口信息,该出端口信息用于在接收到携带目的IP地址为VM的IP地址的报文时,通过该出端口信息表示的第一VXLAN隧道,向第二ED转发该报文,其中,该VM接入第一网络设备。由此,能够实现从远端ED进入第一ED的流量能够通过第一VXLAN隧道转发至第二ED,由第二ED对流量进行正常转发处理,实现流量不中断且通信数据包不丢失,从而提高组网的持续性和可靠性。

Description

报文处理方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种报文处理方法及装置。
背景技术
随着互联网、移动互联网和云计算的快速发展,通过在多个地点来部署多个数据中心(英文:Data Center,简称:DC)来提高业务健壮性、降低网络时延、网络抖动对业务的影响逐步成为业内普遍认可的有效解决方案。这些数据中心所处的位置可能不同,但是却可以通过数据中心互联(英文:Data Center Inter-Connect,简称:DCI)技术构成DCI组网,共同完成相应的业务部署。
在DCI组网中,控制面可以采用以太网虚拟专用网络(英文:Ethernet VirtualPrivate Network,简称:EVPN)协议,数据面可以采用虚似扩展局域网(英文:VirtualExtensible Local Area Network,简称:VXLAN)封装。多个数据中心之间可以通过边缘设备(英文:Edge Device,简称:ED)组进行互联。ED组可以包括能够进行负载分担的多个ED。如果一个ED出现故障,则可以通过其它ED进行通信,从而提高DCI组网的可靠性。
目前,在ED组包括的多个ED中,如果一个ED和数据中心内部之间的通信链路出现故障,将会导致通过该ED进入该数据中心的流量出现流量中断的问题。
发明内容
有鉴于此,本发明提出了一种报文处理方法及装置,以解决相关技术中ED组包括的一个ED和数据中心内部之间的通信链路出现故障导致通过该ED进入该数据中心的流量出现流量中断的问题。
在第一方面,本发明提出了一种报文处理方法,第一边缘设备ED组处于第一数据中心DC网络边缘,第一ED组包括第一ED和第二ED,所述方法应用于所述第一ED,所述方法包括:
在检测到所述第一ED与所述第一ED处于相同DC内的第一网络设备之间的通信链路为不可用Down状态时,获取所述第一ED和所述第二ED之间建立的第一VXLAN隧道的标识;
根据所述第一VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息,所述出端口信息用于在接收到携带目的IP地址为虚拟机VM的IP地址的报文时,通过所述出端口信息表示的所述第一VXLAN隧道,向所述第二ED转发所述报文;其中,所述VM接入所述第一网络设备。
结合第一方面,在第一种实现方式中,在所述根据所述第一VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息之后,所述方法还包括:
接收处于第二DC网络边缘的远端ED发送的第一VXLAN报文,所述第一VXLAN报文携带单播报文,所述单播报文包括所述VM的IP地址;
根据所述VM的IP地址,从所述第一ED已存储的转发表中确定用于与所述VM进行通信交互的出端口信息;
在所述出端口信息为所述第一VXLAN隧道的标识时,通过所述第一VXLAN隧道向所述第二ED发送第二VXLAN报文,用于使所述第二ED获取所述第二VXLAN报文携带的所述单播报文,并根据所述单播报文包括的所述VM的IP地址,对所述单播报文进行转发。
结合第一方面,在第二种实现方式中,所述方法还包括:
接收第二网络设备发送的第三VXLAN报文,所述第三VXLAN报文携带广播报文;
确定所述第二网络设备所处的DC,并确定与所述第一ED连接的全部通信链路的状态;
根据所述第二网络设备所处的DC以及与所述第一ED连接的全部通信链路的状态,生成第四VXLAN报文,所述第四VXLAN报文携带所述广播报文,且所述第四VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;
通过除接收到所述第三VXLAN报文的端口以外的其它端口发送所述第四VXLAN报文,用于使在通过所述第一VXLAN隧道向所述第二ED发送所述第四VXLAN报文时,所述第二ED获取所述第四VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发;
其中,所述第二网络设备处于第一DC,且不为所述第二ED,或者,所述网络设备处于第二DC;
其中,所述第一ED连接的全部通信链路的状态包括:所述第一ED与处于第二DC网络边缘的远端ED之间的第一链路的通信链路状态、以及所述第一ED与处于相同DC内的第一网络设备之间的第二链路的通信链路状态。
结合第一方面的第二种实现方式,在第三种实现方式中,
如果所述第二网络设备处于第一DC,且不为所述第二ED,则所述报文来源字段置位为0;或者,如果所述第二网络设备处于第二DC,则所述报文来源字段置位为1;
如果所述第一链路为可用UP状态,则所述第一链路状态字段置位为0;或者,如果所述第一链路为不可用Down状态,则所述第一链路状态字段置位为1;
如果所述第二链路为可用UP状态,则所述第二链路状态字段置位为0;或者,如果所述第二链路为不可用Down状态,则所述第二链路状态字段置位为1。
结合第一方面,在第四种实现方式中,所述方法还包括:
接收所述第二ED发送的第五VXLAN报文,所述第五VXLAN报文携带广播报文,且所述第五VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;
获取所述第五VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发。
结合第一方面的第四种实现方式,在第五种实现方式中,所述根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发,包括:
如果所述报文来源字段置位为0,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为0,所述第一链路状态字段置位为1,且所述第二链路状态字段置位为0,则对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为1,则对所述广播报文进行转发。
结合第一方面,在第六种实现方式中,所述方法还包括:
在检测到所述第一ED与所述第一网络设备之间的通信链路恢复为可用UP状态,且接收到所述第一网络设备通过第二VXLAN隧道发送的所述VM的EVPN路由信息时,获取所述第二VXLAN隧道的标识;
根据所述第二VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息。
在第二方面,本发明提供了一种报文处理装置,第一边缘设备ED组处于第一数据中心DC网络边缘,第一ED组包括第一ED和第二ED,所述装置应用于所述第一ED,所述装置包括:
隧道标识获取模块,用于在检测到所述第一ED与所述第一ED处于相同DC内的第一网络设备之间的通信链路为不可用Down状态时,获取所述第一ED和所述第二ED之间建立的第一VXLAN隧道的标识;
出端口信息更新模块,用于根据所述第一VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息,所述出端口信息用于在接收到携带目的IP地址为虚拟机VM的IP地址的报文时,通过所述出端口信息表示的所述第一VXLAN隧道,向所述第二ED转发所述报文;其中,所述VM接入所述第一网络设备。
结合第二方面,在第一种实现方式中,所述装置还包括:
报文接收模块,用于接收处于第二DC网络边缘的远端ED发送的第一VXLAN报文,所述第一VXLAN报文携带单播报文,所述单播报文包括所述VM的IP地址;
出端口信息确定模块,用于根据所述VM的IP地址,从所述第一ED已存储的转发表中确定用于与所述VM进行通信交互的出端口信息;
报文发送模块,用于在所述出端口信息为所述第一VXLAN隧道的标识时,通过所述第一VXLAN隧道向所述第二ED发送第二VXLAN报文,用于使所述第二ED获取所述第二VXLAN报文携带的所述单播报文,并根据所述单播报文包括的所述VM的IP地址,对所述单播报文进行转发。
结合第二方面,在第二种实现方式中,所述装置还包括:
所述报文接收模块,还用于接收第二网络设备发送的第三VXLAN报文,所述第三VXLAN报文携带广播报文;
信息确定模块,用于确定所述第二网络设备所处的DC,并确定与所述第一ED连接的全部通信链路的状态;
报文生成模块,用于根据所述第二网络设备所处的DC以及与所述第一ED连接的全部通信链路的状态,生成第四VXLAN报文,所述第四VXLAN报文携带所述广播报文,且所述第四VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;
所述报文发送模块,还用于通过除接收到所述第三VXLAN报文的端口以外的其它端口发送所述第四VXLAN报文,用于使在通过所述第一VXLAN隧道向所述第二ED发送所述第四VXLAN报文时,所述第二ED获取所述第四VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发;
其中,所述第二网络设备处于第一DC,且不为所述第二ED,或者,所述网络设备处于第二DC;
其中,所述第一ED连接的全部通信链路的状态包括:所述第一ED与处于第二DC网络边缘的远端ED之间的第一链路的通信链路状态、以及所述第一ED与处于相同DC内的第一网络设备之间的第二链路的通信链路状态。
结合第二方面的第二种实现方式,在第三种实现方式中,
如果所述第二网络设备处于第一DC,且不为所述第二ED,则所述报文来源字段置位为0;或者,如果所述第二网络设备处于第二DC,则所述报文来源字段置位为1;
如果所述第一链路为可用UP状态,则所述第一链路状态字段置位为0;或者,如果所述第一链路为不可用Down状态,则所述第一链路状态字段置位为1;
如果所述第二链路为可用UP状态,则所述第二链路状态字段置位为0;或者,如果所述第二链路为不可用Down状态,则所述第二链路状态字段置位为1。
结合第二方面,在第四种实现方式中,所述装置还包括:
所述报文接收模块,还用于接收所述第二ED发送的第五VXLAN报文,所述第五VXLAN报文携带广播报文,且所述第五VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;
所述报文发送模块,还用于获取所述第五VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发。
结合第二方面的第四种实现方式,在第五种实现方式中,所述报文发送模块,还用于:
如果所述报文来源字段置位为0,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为0,所述第一链路状态字段置位为1,且所述第二链路状态字段置位为0,则对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为1,则对所述广播报文进行转发。
结合第二方面,在第六种实现方式中,所述装置还包括:
所述隧道标识获取模块,还用于在检测到所述第一ED与所述第一网络设备之间的通信链路恢复为可用UP状态,且接收到所述第一网络设备通过第二VXLAN隧道发送的所述VM的EVPN路由信息时,获取所述第二VXLAN隧道的标识;
所述出端口信息更新模块,还用于根据所述第二VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息。
在第三方面,本发明提供了一种报文处理装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述方法。
在第四方面,本发明提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
本发明实施例的报文处理方法及装置,在处于相同ED组的第一ED和第二ED之间建立VXLAN隧道,并在检测到第一ED与处于相同DC内的第一网络设备之间的通信链路为不可用Down状态时,根据第一VXLAN隧道的标识,更新第一ED已存储的转发表中的出端口信息。由此,能够实现从远端ED进入第一ED的流量能够通过第一VXLAN隧道转发至第二ED,由第二ED对流量进行正常转发处理,实现流量不中断且通信数据包不丢失,从而提高组网的持续性和可靠性。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出相关技术中DCI组网的示意图;
图2a示出相关技术中DCI组网的示意图;
图2b示出相关技术中DCI组网的示意图;
图2c示出相关技术中DCI组网的示意图;
图3a示出根据本发明一实施例的DCI组网的示意图;
图3b示出根据本发明一实施例的DCI组网的示意图;
图3c示出根据本发明一实施例的DCI组网的示意图;
图3d示出根据本发明一实施例的DCI组网的示意图;
图3e示出根据本发明一实施例的DCI组网的示意图;
图3f示出根据本发明一实施例的DCI组网的示意图;
图3g示出根据本发明一实施例的DCI组网的示意图;
图4示出根据本发明一实施例的报文处理方法的流程图;
图5示出根据本发明一实施例的报文处理方法的流程图;
图6示出根据本发明一实施例的VXLAN报文头的格式示意图;
图7示出根据本发明一实施例的报文处理方法的流程图;
图8示出根据本发明一实施例的报文处理装置的框图;
图9示出根据本发明一实施例的报文处理装置的框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,下面先对本发明实施例中涉及的部分技术术语进行简单说明。
EVPN:是一种二层虚拟专用网络(英文:Virtual Private Network,简称:VPN)技术,控制平面采用多协议边界网关协议(英文:Multi-Protocol Border GatewayProtocol,简称:MP-BGP)通告EVPN路由信息,数据平面采用VXLAN封装转发报文。
VXLAN:是基于网络协议(英文:Internet Protocol,简称:IP)网络、采用介质访问控制封装用户数据报协议(英文:Media Access Control in User Datagram Protocol,简称:MAC in UDP)封装形式的二层VPN技术。
虚拟机(英文:Virtual Machine,简称:VM):在一台服务器上可以创建一台或多台VM,不同的VM可以属于不同的VXLAN。属于相同VXLAN的VM处于同一个逻辑二层网络,彼此之间二层通信交互;属于不同VXLAN的VM之间二层隔离。
VXLAN隧道的端点(英文:VXLAN Tunnel End Point,简称:VTEP):VXLAN的边缘设备。VXLAN的相关处理都在VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等。VTEP可以是一台独立的物理设备,也可以是VM所在的服务器。
VXLAN隧道:两个VTEP之间的点到点逻辑隧道。VTEP为数据帧封装VXLAN头、UDP头和IP头后,通过VXLAN隧道将封装后的报文处理给远端VTEP,远端VTEP对其进行解封装。
路由反射器(英文:Route Reflector,简称:RR):是被配置为允许把通过内部边界网关协议(英文:Internal Border Gateway Protocol,简称:IBGP)所学到的路由通告(或反射)到其它IBGP对等体的路由器。RR需要发布或接收EVPN路由信息,但不需要封装或解封装VXLAN报文。
ED:是数据中心的边缘设备,其部署在数据中心的出口。可以在数据中心的出口部署包括能够进行负载分担的多个ED,构成ED组。如果一个ED出现故障,则可以通过其它ED进行通信,从而提高DCI组网的可靠性。
图1示出相关技术中DCI组网的示意图。如图1所示,ED和数据中心内部的VTEP之间建立VXLAN隧道。VXLAN隧道可以用于数据中心内部,实现数据中心内部VM的互联。数据中心之间建立VXLAN-DCI隧道。VXLAN-DCI隧道可以用于实现数据中心之间的互联。VXLAN-DCI隧道采用VXLAN封装。VXLAN-DCI隧道的端点为ED。
如图1所示,ED从VXLAN隧道或VXLAN-DCI隧道上接收到报文后,解除VXLAN封装,根据目的网络重新对报文进行VXLAN封装,并将其转发到VXLAN-DCI隧道或VXLAN隧道,从而实现多个数据中心之间的通信交互。其中,VTEP根据MAC地址表项对流量进行二层转发。ED根据地址解析协议(英文:Address Resolution Protocol,简称:ARP)表项对流量进行三层转发。ARP表项通过ARP协议动态学习。
图2a至图2c示出相关技术中DCI组网的示意图。如图2a至图2c所示,DC1包括VTEP1、RR1和ED1组,ED1组包括ED11和ED12。RR1分别和VTEP1、ED11、ED12连接,VTEP1和VM1连接。DC2包括VTEP2、RR2和ED2组,ED2组包括ED21和ED22。RR2分别和VTEP2、ED21、ED22连接,VTEP2和VM2连接。ED11分别和ED21、ED22连接,ED12分别和ED21、ED22连接。
其中,VTEP1和ED1组之间建立VXLAN隧道Tunnel10。VTEP2和ED2组之间建立VXLAN隧道Tunnel20。ED1组和ED2组之间建立VXLAN-DCI隧道Tunnel30,DC1和DC2之间通过ED1组和ED2组之间建立的VXLAN-DCI隧道Tunnel30进行互联。Tunnel10、Tunnel20和Tunnel30未在图2a至图2c中示出。
如图2a所示,在VM2上线时,则VM2向VTEP2上报VM2的ARP信息(即IP/MAC信息)。VTEP2将VM2的ARP信息同步给RR2,RR2将VM2的ARP信息同步给ED2组。ED2组将VM2的ARP信息同步给ED1组。ED1组将VM2的ARP信息同步给RR1,RR1将VM2的ARP信息同步给VTEP1。在VM1上线时,VM1同步ARP信息的过程与VM2类似,在此不再赘述。
由此,在VTEP1已存储的转发表中,去往VM2的出端口信息为Tunnel10的标识。在ED1组已存储的转发表中,去往VM2的出端口信息为Tunnel30的标识。在ED2组已存储的转发表中,去往VM2的出端口信息为Tunnel20的标识。在VTEP2已存储的转发表中,去往VM1的出端口信息为Tunnel20的标识。在ED1组已存储的转发表中,去往VM1的出端口信息为Tunnel10的标识。在ED2组已存储的转发表中,去往VM1的出端口信息为Tunnel30的标识。
如图2b所示,如果ED11和RR1之间的通信链路出现故障,则VM2访问VM1的流量,如果从ED2组通过ED11进入DC1,将会出现流量中断的问题。相关技术中,将ED11和RR1之间的通信链路和ED11和ED2组的通信链路进行联动。如果ED11和RR1之间的通信链路出现故障,则直接将ED11和DC1外部之间的通信链路全部断掉,即将ED11和ED2组中的ED21、ED22之间的通信链路全部断掉。在上述情况中,将会导致ED2组在ED11和ED12之间切换时出现通信数据包丢失的问题。
如图2c所示,如果ED12和RR1之间的通信链路出现故障,则VM2访问VM1的流量,如果从ED2组通过ED12进入DC1,将会出现流量中断的问题。相关技术中,将ED12和RR1之间的通信链路和ED12和ED2组的通信链路进行联动。如果ED12和RR1之间的通信链路出现故障,则直接将ED12和DC1外部之间的通信链路全部断掉,即将ED12和ED2组中的ED21、ED22之间的通信链路全部断掉。在上述情况中,将会导致ED2组在ED11和ED12之间切换时出现通信数据包丢失的问题。图3a至图3g示出根据本发明一实施例的DCI组网的示意图。如图3a至图3g所示,DC1包括VTEP1、RR1和ED1组,ED1组包括ED11和ED12。RR1分别和VTEP1、ED11、ED12连接,ED11和ED12连接,VTEP1和VM1连接。DC2包括VTEP2、RR2和ED2组,ED2组包括ED21和ED22。RR2分别和VTEP2、ED21、ED22连接,ED21和ED22连接,VTEP2和VM2连接。ED11分别和ED21、ED22连接,ED12分别和ED21、ED22连接。
如图3a至图3g所示,VTEP1的IP地址为1.1.1.1,ED1组的IP地址为2.2.2.2,ED11的IP地址为2.2.3.1,ED12的IP地址为2.2.3.2,VM1的IP地址为11.1.1.2。VTEP2的IP地址为4.4.4.4,ED2组的IP地址为3.3.3.3,ED21的IP地址为2.2.3.3,ED22的IP地址为2.2.3.4,VM2的IP地址为10.1.1.2。
如图3a至图3g所示,VTEP1和ED1组之间建立VXLAN隧道Tunnel1。VTEP2和ED2组之间建立VXLAN隧道Tunnel2。ED1组和ED2组之间建立VXLAN-DCI隧道Tunnel3,DC1和DC2之间通过ED1组和ED2组之间建立的VXLAN-DCI隧道Tunnel3进行互联。此外,在ED11和ED12之间建立VXLAN隧道Tunnel4。
其中,ED组的IP地址可以用于ED组与VTEP之间建立VXLAN隧道和用于同步EVPN路由信息。例如,VTEP1中的Tunnel1的源IP地址为1.1.1.1,目的IP地址为2.2.2.2;ED1组中的Tunnel1的源IP地址为2.2.2.2,目的IP地址为1.1.1.1。
其中,ED的IP地址可以用于处于同组的ED之间建立VXLAN隧道。例如,ED11中的Tunnel4的源IP地址为2.2.3.1,目的IP地址为2.2.3.2;ED12中的Tunnel4的源IP地址为2.2.3.2,目的IP地址为2.2.3.1。
以下通过具体的实施例详细描述本发明实施例提供的方法。通过本发明实施例提供的方法,能够实现从远端ED进入第一ED的流量能够通过第一VXLAN隧道转发至第二ED,由第二ED对流量进行正常转发处理,实现流量不中断且通信数据包不丢失,从而提高组网的持续性和可靠性。
图4示出根据本发明一实施例的报文处理方法的流程图。第一ED组处于第一DC网络边缘,第一ED组包括第一ED和第二ED,该方法用于第一ED。如图4所示,该方法包括步骤S41和步骤S42。
在步骤S41中,在检测到第一ED与第一ED处于相同DC内的第一网络设备之间的通信链路为不可用Down状态时,获取第一ED和第二ED之间建立的第一VXLAN隧道的标识。
其中,DC内的网络设备可以为RR或VTEP等,本发明实施例对此不作限制。例如,如图3c所示,ED11和RR1处于相同的DC1内。在ED11和RR1之间的通信链路出现故障时,ED11可以通过边界网关协议(英文:Border Gateway Protocol,简称:BGP)路由不可达,检测到ED11和RR1之间的通信链路为不可用Down状态。
其中,VXLAN隧道的标识可以指能够唯一确定VXLAN隧道的信息。例如,VXLAN隧道的标识可以为VXLAN隧道的编号(英文:Identification,简称:ID)。
在步骤S42中,根据第一VXLAN隧道的标识,更新第一ED已存储的转发表中的出端口信息,该出端口信息用于在接收到携带目的IP地址为VM的IP地址的报文时,通过该出端口信息表示的第一VXLAN隧道,向第二ED转发该报文;其中,VM接入第一网络设备。
作为一个示例,以ED11作为第一ED为例。如图3c所示,ED11和RR1处于相同的DC1内。ED11与RR1之间的通信链路出现故障。ED11检测到与RR1之间的通信链路为不可用Down状态,则ED11获取ED11和ED12之间建立的VXLAN隧道的标识,即为Tunnel4。ED11根据Tunnel4更新ED11已存储的转发表中的出端口信息,即ED11将出端口信息中的Tunnel1更新为Tunnel4。该出端口信息用于在ED11接收到携带目的IP地址为VM1的IP地址的报文时,通过该出端口信息表示的Tunnel4,向ED12转发该报文。
本发明实施例的报文处理方法,在处于相同ED组的第一ED和第二ED之间建立VXLAN隧道,并在检测到第一ED与处于相同DC内的第一网络设备之间的通信链路为不可用Down状态时,根据第一VXLAN隧道的标识,更新第一ED已存储的转发表中的出端口信息。由此,能够实现从远端ED进入第一ED的流量能够通过第一VXLAN隧道转发至第二ED,由第二ED对流量进行正常转发处理,实现流量不中断且通信数据包不丢失,从而提高组网的持续性和可靠性。
可选地,在一种实现方式中,在根据第一VXLAN隧道的标识,更新第一ED已存储的转发表中的出端口信息之后,该方法还包括第一ED对远端ED发送的VXLAN报文进行转发的过程。
具体地,第一ED接收处于第二DC网络边缘的远端ED发送的第一VXLAN报文,第一VXLAN报文携带单播报文,单播报文包括VM的IP地址;第一ED根据VM的IP地址,从已存储的转发表中确定用于与VM进行通信交互的出端口信息;在出端口信息为第一VXLAN隧道的标识时,第一ED通过第一VXLAN隧道向第二ED发送第二VXLAN报文,用于使第二ED获取第二VXLAN报文携带的单播报文,并根据单播报文包括的VM的IP地址,对单播报文进行转发。
作为一个示例,如图3b所示,在VTEP2已存储的转发表中,去往VM1的出端口信息为Tunnel2的标识。在ED2组(即ED21和ED22)已存储的转发表中,去往VM1的出端口信息为Tunnel3的标识。ED11与处于相同DC1的RR1之间的通信链路为可用UP状态。由此,在ED1组(即ED11和ED12)已存储的转发表中,去往VM1的出端口信息为Tunnel1的标识。如图3b所示,VM2去往VM1的报文1(源IP地址为10.1.1.2,目的IP地址为11.1.1.2,为单播报文)转发流程如下:
VM2向VTEP2发送报文1。VTEP2对报文1进行封装得到VXLAN报文1,并通过Tunnel2向ED2组发送VXLAN报文1。ED2组中的ED(例如ED21)接收到VXLAN报文1,ED21对VXLAN报文1进行解封装得到报文1。ED21对报文1进行封装得到VXLAN报文2,并通过Tunnel3向ED1组发送VXLAN报文2。ED1组中的ED(例如ED11)接收到VXLAN报文2,ED11对VXLAN报文2进行解封装得到报文1。ED11对报文1进行封装得到VXLAN报文3,并通过Tunnel1向VTEP1发送VXLAN报文3。VTEP1对VXLAN报文3进行解封装得到报文1,并向VM1发送报文1。
可以理解的是,上述各ED对VXLAN报文进行解封装后,获取到报文1,各ED根据报文1的目的IP地址查找自身存储的转发表,在确定出端口信息指示的隧道标识后,各ED对报文再次进行VXLAN封装,并通过对应的隧道转发。其中,对VXLAN报文进行VXLAN解封装、对报文进行VXLAN封装、通过隧道转发VXLAN报文的过程为现有技术,在此不再复述。
作为一个示例,以ED11作为第一ED为例。如图3c所示,ED11和RR1处于相同的DC1内。ED11与RR1之间的通信链路出现故障。ED11检测到与RR1之间的通信链路为不可用Down状态,则ED11获取ED11和ED12之间建立的VXLAN隧道的标识,即为Tunnel4。ED11根据Tunnel4更新ED11已存储的转发表中的出端口信息,即ED11将出端口信息中的Tunnel1更新为Tunnel4。该出端口信息用于在ED11接收到携带目的IP地址为VM1的IP地址的报文时,通过该出端口信息表示的Tunnel4,向ED12转发该报文。
如图3c所示,VM2去往VM1的报文1(源IP地址为10.1.1.2,目的IP地址为11.1.1.2,为单播报文)转发流程如下:
VM2向VTEP2发送报文1。VTEP2对报文1进行封装得到VXLAN报文1,并通过Tunnel2向ED2组发送VXLAN报文1。ED2组中的ED(例如ED21)接收到VXLAN报文1,ED21对VXLAN报文1进行解封装得到报文1。ED21对报文1进行封装得到VXLAN报文2,并通过Tunnel3向ED1组发送VXLAN报文2。ED1组中的ED(例如ED11)接收到VXLAN报文2,ED11对VXLAN报文2进行解封装得到报文1。ED11对报文1进行封装得到VXLAN报文3,并通过Tunnel4向ED12发送VXLAN报文3。ED12接收到VXLAN报文3,对VXLAN报文3进行解封装得到报文1。ED12对报文1进行封装得到VXLAN报文4,并通过Tunnel1向VTEP1发送VXLAN报文4。VTEP1对VXLAN报文4进行解封装得到报文1,并向VM1发送报文1。
本发明实施例的报文处理方法,在处于相同ED组的第一ED和第二ED之间建立VXLAN隧道,并在检测到第一ED与处于相同DC内的第一网络设备之间的通信链路为不可用Down状态时,根据第一VXLAN隧道的标识,更新第一ED已存储的转发表中的出端口信息。由此,能够实现从远端ED进入第一ED的流量能够通过第一VXLAN隧道转发至第二ED,由第二ED对流量进行正常转发处理,实现流量不中断且通信数据包不丢失,从而提高组网的持续性和可靠性。可选地,在一种实现方式中,该方法还包括第一ED与处于相同DC内的第一网络设备之间的通信链路恢复为UP状态后,第一ED再次对转发表中的出端口信息更新的过程。
具体地,在第一ED检测到与第一网络设备之间的通信链路恢复为可用UP状态,且接收到第一网络设备通过第二VXLAN隧道发送的VM的EVPN路由信息时,第一ED获取第二VXLAN隧道的标识;第一ED根据第二VXLAN隧道的标识,更新第一ED已存储的转发表中的出端口信息。
作为一个示例,以ED11作为第一ED为例。如图3a所示,ED11和RR1处于相同的DC1内。ED11与RR1之间的通信链路故障修复。在ED11检测到与RR1之间的通信链路恢复为可用UP状态之后,如果ED11接收到VTEP1通过Tunnel1发送的VM1的EVPN路由信息,则ED11根据Tunnel1更新ED11已存储的转发表中的出端口信息,即将出端口信息中的Tunnel4更新为Tunnel1。该出端口信息用于在ED11接收到携带目的IP地址为VM1的IP地址的报文时,通过该出端口信息表示的Tunnel1,直接向VTEP1转发该报文。
本发明实施例的报文处理方法,在第一ED检测到处于相同DC内的第一网络设备之间的通信链路恢复为可用UP状态,且接收到第一网络设备通过第二VXLAN隧道发送的VM的EVPN路由信息时,则根据第二VXLAN隧道的标识,更新第一ED已存储的转发表中的出端口信息。由此,能够实现第一ED根据与第一网络设备之间的通信链路的状态,及时更新已存储的转发表中的出端口信息,实现流量不中断且通信数据包不丢失的同时尽量减少流量绕行,从而提高组网的持续性和可靠性。图5示出根据本发明一实施例的报文处理方法的流程图。第一ED组处于第一DC网络边缘,第一ED组包括第一ED和第二ED,该方法用于第一ED。如图5所示,该方法还包括步骤S51至步骤S54。
在步骤S51中,接收第二网络设备发送的第三VXLAN报文,第三VXLAN报文携带广播报文。
在步骤S52中,确定第二网络设备所处的DC,并确定与第一ED连接的全部通信链路的状态。
在一种实现方式中,第二网络设备处于第一DC,且不为第二ED,或者,第二网络设备处于第二DC。
其中,如果第一ED与第二网络设备处于相同的DC,即第一ED与第二网络设备均处于第一DC,则广播报文来自于第一ED的DC侧。如果第一ED与第二网络设备处于不相同的DC,即第一ED处于第一DC,第二网络设备处于第二DC,则广播报文来自于第一ED的DCI侧。
在一种实现方式中,第一ED接收到第二网络设备发送的携带广播报文的第三VXLAN报文。第一ED根据第三VXLAN报文的外层IP头包括的源、目的IP地址确定第二网络设备所处的DC。
作为一个示例,以ED11作为第一ED为例。如图3d和图3e所示,如果ED11接收到ED2组通过Tunnel3发送的携带广播报文的VXLAN报文,则ED11根据该VXLAN报文的外层IP头包括的源IP地址3.3.3.3、目的IP地址2.2.2.2,确定发送该VXLAN报文的ED2组处于DC2,即广播报文来自于ED11的DCI侧。
作为一个示例,以ED11作为第一ED为例。如图3f和图3g所示,如果ED11接收到VTEP1通过Tunnel1发送的携带广播报文的VXLAN报文,则ED11根据该VXLAN报文的外层IP头包括的源IP地址1.1.1.1、目的IP地址2.2.2.2,确定发送该VXLAN报文的VTEP1组处于DC2,即广播报文来自于ED11的DC侧。
在一种实现方式中,第一ED连接的全部通信链路的状态包括:第一ED与处于第二DC网络边缘的远端ED之间的第一链路的通信链路状态、以及第一ED与处于相同DC内的第一网络设备之间的第二链路的通信链路状态。
其中,如果第一ED与某个网络设备处于不相同的DC,则第一ED与该网络设备之间的通信链路为第一ED的DCI侧通信链路,即第一链路为第一ED的DCI侧通信链路。如果第一ED与某个网络设备处于相同的DC,则第一ED与该网络设备之间的通信链路为第一ED的DC侧通信链路,即第二链路为第一ED的DC侧通信链路。
在一种实现方式中,通过操作管理维护(英文:Operation Administration andMaintenance,简称:OAM)机制来进行第一ED连接的全部通信链路的故障检测及故障通报。
作为一个示例,以ED11作为第一ED为例。如图3a所示,ED11连接的全部通信链路包括:ED11和RR1、ED11和ED21以及ED11和ED22之间的通信链路。如果ED11和RR1之间的通信链路出现故障,ED11和RR1之间的通信链路为不可用Down状态,即ED11的DC侧链路为不可用Down状态。如果ED11和ED21以及ED11和ED22之间的通信链路均出现故障,ED11和ED21以及ED11和ED22之间的通信链路为不可用Down状态,即ED11的DCI侧链路为不可用Down状态。
在步骤S53中,根据第二网络设备所处的DC以及与第一ED连接的全部通信链路的状态,生成第四VXLAN报文,第四VXLAN报文携带广播报文,且第四VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段。
其中,报文来源字段中的信息表示发送携带广播报文的第三VXLAN报文的网络设备所处的DC。第一链路状态字段中的信息表示第一ED与处于第二DC网络边缘的远端ED之间的第一链路的通信链路状态。第二链路状态字段中的信息表示第一ED与处于相同DC内的第一网络设备之间的第二链路的通信链路状态。
图6示出根据本发明一实施例的VXLAN报文头的格式示意图。如图6所示,VXLAN报文头包括多个R比特位,第一保留字段(Reserved1)、VXLAN网络标识(英文:VXLANNetworkIdentifier,简称:VNI)和第二保留字段(Reserved2)。多个R比特位,第一保留字段和第二保留字段为可以用字段。
在一种实现方式中,可以从多个R比特位,第一保留字段和第二保留字段中选取比特位作为报文来源字段、第一链路状态字段和第二链路状态字段。例如,可以选取第二保留字段中的第一比特位、第二比特位和第三比特位。将第一比特位作为报文来源字段,将第二比特位作为第一链路状态字段,将第三比特位作为第二链路状态字段。
在一种实现方式中,如果发送第三VXLAN报文的第二网络设备处于第一DC,且不为第二ED,则报文来源字段置位为0;如果发送第三VXLAN报文的第二网络设备处于第二DC,则报文来源字段置位为1。
在一种实现方式中,如果第一链路为可用UP状态,则第一链路状态字段置位为0;如果第一链路为不可用Down状态,则第一链路状态字段置位为1。
在一种实现方式中,如果第二链路为可用UP状态,则第二链路状态字段置位为0;如果第二链路为不可用Down状态,则第二链路状态字段置位为1。
在步骤S54中,通过除接收到第三VXLAN报文的端口以外的其它端口发送第四VXLAN报文,用于使在通过第一VXLAN隧道向第二ED发送第四VXLAN报文时,第二ED获取第四VXLAN报文携带的广播报文,并根据报文来源字段、第一链路状态字段和第二链路状态字段,确定是否对广播报文进行转发。
作为一个示例,以ED11作为第一ED为例。如图3d所示,ED11接收到ED2组通过Tunnel3发送的携带广播报文的VXLAN报文10,发送VXLAN报文10的ED2组处于DC2,即广播报文来自于ED11的DCI侧,报文来源字段置位为1。ED11和ED21或ED11和ED22之间的通信链路为有效UP状态,即ED11的DCI侧链路为有效UP状态,第一链路状态字段置位为0。ED11和RR1之间的通信链路为有效UP状态,即ED11的DC侧链路为有效UP状态,第二链路状态字段置位为0。由此,ED11生成VXLAN报文20。在VXLAN报文20的VXLAN报文头中,报文来源字段置位为1、第一链路状态字段置位为0以及第二链路状态字段置位为0。ED11分别通过Tunnel1和Tunnel4发送VXLAN报文20。
作为一个示例,以ED11作为第一ED为例。如图3e所示,ED11接收到ED2组通过Tunnel3发送的携带广播报文的VXLAN报文10,发送VXLAN报文10的ED2组处于DC2,即广播报文来自于ED11的DCI侧,报文来源字段置位为1。ED11和ED21或ED11和ED22之间的通信链路为有效UP状态,即ED11的DCI侧链路为有效UP状态,第一链路状态字段置位为0。ED11和RR1之间的通信链路为不可用Down状态,即ED11的DC侧链路为不可用Down状态,第二链路状态字段置位为1。由此,ED11生成VXLAN报文20。在VXLAN报文20的VXLAN报文头中,报文来源字段置位为1、第一链路状态字段置位为0以及第二链路状态字段置位为1。ED11通过Tunnel4发送VXLAN报文20。
作为一个示例,以ED11作为第一ED为例。如图3f所示,ED11接收到VTEP1通过Tunnel1发送的携带广播报文的VXLAN报文10,发送VXLAN报文10的VTEP1处于DC1,即广播报文来自于ED11的DC侧,报文来源字段置位为0。ED11和ED21或ED11和ED22之间的通信链路为有效UP状态,即ED11的DCI侧链路为有效UP状态,第一链路状态字段置位为0。ED11和RR1之间的通信链路为有效UP状态,即ED11的DC侧链路为有效UP状态,第二链路状态字段置位为0。由此,ED11生成VXLAN报文20。在VXLAN报文20的VXLAN报文头中,报文来源字段置位为0、第一链路状态字段置位为0以及第二链路状态字段置位为0。ED11分别通过Tunnel3和Tunnel4发送VXLAN报文20。
作为一个示例,以ED11作为第一ED为例。如图3g所示,ED11接收到VTEP1通过Tunnel1发送的携带广播报文的VXLAN报文10,发送VXLAN报文10的VTEP1处于DC1,即广播报文来自于ED11的DC侧,报文来源字段置位为0。ED11和ED21以及ED11和ED22之间的通信链路均为不可用Down状态,即ED11的DCI侧链路为不可用Down状态,第一链路状态字段置位为1。ED11和RR1之间的通信链路为有效UP状态,即ED11的DC侧链路为有效UP状态,第二链路状态字段置位为0。由此,ED11生成VXLAN报文20。在VXLAN报文20的VXLAN报文头中,报文来源字段置位为0、第一链路状态字段置位为1以及第二链路状态字段置位为0。ED11通过Tunnel4发送VXLAN报文20。
综上所述,第一ED接收到携带广播报文的第三VXLAN报文。第一ED根据确定的发送第三VXLAN报文的网络设备所处的DC,以及与第一ED连接的全部通信链路的状态,生成携带广播报文的第四VXLAN报文。表1示出根据本发明一实施例的字段取值表。如表1所示,第四VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段取值:
表1
报文来源字段 第一链路状态字段 第二链路状态字段
DCI侧/1 可用UP/0 可用UP/0
DCI侧/1 可用UP/0 不可用Down/1
DC侧/0 可用UP/0 可用UP/0
DC侧/0 不可用Down/1 可用UP/0
本发明实施例的报文处理方法,能够保证广播报文的正常转发。一方面,在第一ED不能自行对广播报文进行转发时,由第二ED对广播报文进行转发,避免广播报文丢失。另一方面,在第一ED能够自行对广播报文进行转发时,第二ED不对广播报文进行转发,避免广播报文重复。
图7示出根据本发明一实施例的报文处理方法的流程图。第一ED组处于第一DC网络边缘,第一ED组包括第一ED和第二ED,该方法用于第一ED。如图7所示,该方法还包括步骤S71和步骤S72。
在步骤S71中,接收第二ED发送的第五VXLAN报文,第五VXLAN报文携带广播报文,且第五VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段。
在步骤S72中,获取第五VXLAN报文携带的广播报文,并根据报文来源字段、第一链路状态字段和第二链路状态字段,确定是否对广播报文进行转发。
在一种实现方式中,根据报文来源字段、第一链路状态字段和第二链路状态字段,确定是否对广播报文进行转发(步骤S72),包括:如果报文来源字段置位为0,第一链路状态字段置位为0,且第二链路状态字段置位为0,则不对广播报文进行转发;或如果报文来源字段置位为1,第一链路状态字段置位为0,且第二链路状态字段置位为0,则不对广播报文进行转发;或如果报文来源字段置位为0,第一链路状态字段置位为1,且第二链路状态字段置位为0,则对广播报文进行转发;或如果报文来源字段置位为0,第一链路状态字段置位为1,且第二链路状态字段置位为0,则对广播报文进行转发。
作为一个示例,以ED12作为第一ED为例。如图3d所示,ED12接收到ED11发送的携带广播报文的VXLAN报文20。在VXLAN报文20的VXLAN报文头中,报文来源字段置位为1、第一链路状态字段置位为0以及第二链路状态字段置位为0。由此,ED12确定不对广播报文进行转发。在如图3d所示的组网中,ED11能够自行对广播报文进行转发,因此ED12可以不对广播报文进行转发。
作为一个示例,以ED12作为第一ED为例。如图3e所示,ED12接收到ED11发送的携带广播报文的VXLAN报文20。在VXLAN报文20的VXLAN报文头中,报文来源字段置位为1、第一链路状态字段置位为0以及第二链路状态字段置位为1。由此,ED12确定对广播报文进行转发。ED12生成携带广播报文的VXLAN报文30,并通过Tunnel1发送VXLAN报文30。在如图3e所示的组网中,ED11不能自行对广播报文进行转发,因此ED12需要对广播报文进行转发。
作为一个示例,以ED12作为第一ED为例。如图3f所示,ED12接收到ED11发送的携带广播报文的VXLAN报文20。在VXLAN报文20的VXLAN报文头中,报文来源字段置位为0、第一链路状态字段置位为0以及第二链路状态字段置位为0。由此,ED12确定不对广播报文进行转发。在如图3f所示的组网中,ED11能够自行对广播报文进行转发,因此ED12可以不对广播报文进行转发。
作为一个示例,以ED12作为第一ED为例。如图3g所示,ED12接收到ED11发送的携带广播报文的VXLAN报文20。在VXLAN报文20的VXLAN报文头中,报文来源字段置位为0、第一链路状态字段置位为1以及第二链路状态字段置位为0。由此,ED12确定对广播报文进行转发。ED12生成携带广播报文的VXLAN报文30,并通过Tunnel3发送VXLAN报文30。在如图3g所示的组网中,ED11不能自行对广播报文进行转发,因此ED12需要对广播报文进行转发。
综上所述,第一ED接收到携带广播报文的第五VXLAN报文。第一ED获取第五VXLAN报文携带的广播报文,并根据第五VXLAN报文的VXLAN报文头包括的报文来源字段、第一链路状态字段和第二链路状态字段,确定是否对广播报文进行转发。表2示出根据本发明一实施例的转发行为表。如表2所示,第四VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段取值对应的转发行为:
表2
报文来源字段 第一链路状态字段 第二链路状态字段 转发行为
DCI侧/1 可用UP/0 可用UP/0 不转发
DCI侧/1 可用UP/0 不可用Down/1 向DC侧转发
DC侧/0 可用UP/0 可用UP/0 不转发
DC侧/0 不可用Down/1 可用UP/0 向DCI侧转发
本发明实施例的报文处理方法,能够保证广播报文的正常转发。一方面,在第一ED不能自行对广播报文进行转发时,由第二ED对广播报文进行转发,避免广播报文丢失。另一方面,在第一ED能够自行对广播报文进行转发时,第二ED不对广播报文进行转发,避免广播报文重复。
图8示出根据本发明一实施例的报文处理装置的框图。第一边缘设备ED组处于第一数据中心DC网络边缘,第一ED组包括第一ED和第二ED,该装置应用于所述第一ED,该装置包括:
隧道标识获取模块81,用于在检测到所述第一ED与所述第一ED处于相同DC内的第一网络设备之间的通信链路为不可用Down状态时,获取所述第一ED和所述第二ED之间建立的第一VXLAN隧道的标识;
出端口信息更新模块82,用于根据所述第一VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息,所述出端口信息用于在接收到携带目的IP地址为虚拟机VM的IP地址的报文时,通过所述出端口信息表示的所述第一VXLAN隧道,向所述第二ED转发所述报文;其中,所述VM接入所述第一网络设备。
在一种实现方式中,所述装置还包括:
报文接收模块83,用于接收处于第二DC网络边缘的远端ED发送的第一VXLAN报文,所述第一VXLAN报文携带单播报文,所述单播报文包括所述VM的IP地址;
出端口信息确定模块84,用于根据所述VM的IP地址,从所述第一ED已存储的转发表中确定用于与所述VM进行通信交互的出端口信息;
报文发送模块85,用于在所述出端口信息为所述第一VXLAN隧道的标识时,通过所述第一VXLAN隧道向所述第二ED发送第二VXLAN报文,用于使所述第二ED获取所述第二VXLAN报文携带的所述单播报文,并根据所述单播报文包括的所述VM的IP地址,对所述单播报文进行转发。
在一种实现方式中,所述装置还包括:
所述报文接收模块83,还用于接收第二网络设备发送的第三VXLAN报文,所述第三VXLAN报文携带广播报文;
信息确定模块86,用于确定所述第二网络设备所处的DC,并确定与所述第一ED连接的全部通信链路的状态;
报文生成模块87,用于根据所述第二网络设备所处的DC以及与所述第一ED连接的全部通信链路的状态,生成第四VXLAN报文,所述第四VXLAN报文携带所述广播报文,且所述第四VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;
所述报文发送模块85,还用于通过除接收到所述第三VXLAN报文的端口以外的其它端口发送所述第四VXLAN报文,用于使在通过所述第一VXLAN隧道向所述第二ED发送所述第四VXLAN报文时,所述第二ED获取所述第四VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发;
其中,所述第二网络设备处于第一DC,且不为所述第二ED,或者,所述网络设备处于第二DC;
其中,所述第一ED连接的全部通信链路的状态包括:所述第一ED与处于第二DC网络边缘的远端ED之间的第一链路的通信链路状态、以及所述第一ED与处于相同DC内的第一网络设备之间的第二链路的通信链路状态。
在一种实现方式中,如果所述第二网络设备处于第一DC,且不为所述第二ED,则所述报文来源字段置位为0;或者,如果所述第二网络设备处于第二DC,则所述报文来源字段置位为1;
如果所述第一链路为可用UP状态,则所述第一链路状态字段置位为0;或者,如果所述第一链路为不可用Down状态,则所述第一链路状态字段置位为1;
如果所述第二链路为可用UP状态,则所述第二链路状态字段置位为0;或者,如果所述第二链路为不可用Down状态,则所述第二链路状态字段置位为1。
在一种实现方式中,所述装置还包括:
所述报文接收模块83,还用于接收所述第二ED发送的第五VXLAN报文,所述第五VXLAN报文携带广播报文,且所述第五VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;
所述报文发送模块85,还用于获取所述第五VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发。
在一种实现方式中,所述报文发送模块85,还用于:
如果所述报文来源字段置位为0,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为0,所述第一链路状态字段置位为1,且所述第二链路状态字段置位为0,则对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为1,则对所述广播报文进行转发。
在一种实现方式中,所述装置还包括:
所述隧道标识获取模块81,还用于在检测到所述第一ED与所述第一网络设备之间的通信链路恢复为可用UP状态,且接收到所述第一网络设备通过第二VXLAN隧道发送的所述VM的EVPN路由信息时,获取所述第二VXLAN隧道的标识;
所述出端口信息更新模块82,还用于根据所述第二VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息。
本发明实施例的报文处理装置,在处于相同ED组的第一ED和第二ED之间建立VXLAN隧道,并在检测到第一ED与处于相同DC内的第一网络设备之间的通信链路为不可用Down状态时,根据第一VXLAN隧道的标识,更新第一ED已存储的转发表中的出端口信息。由此,能够实现从远端ED进入第一ED的流量能够通过第一VXLAN隧道转发至第二ED,由第二ED对流量进行正常转发处理,实现流量不中断且通信数据包不丢失,从而提高组网的持续性和可靠性。
图9示出根据本发明一实施例的报文处理装置的框图。参照图9,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与报文处理逻辑对应的机器可执行指令以执行上文所述的报文处理方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是随机存取存储器:(英文:Radom Access Memory,简称:RAM)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (12)

1.一种报文处理方法,其特征在于,第一边缘设备ED组处于第一数据中心DC网络边缘,第一ED组包括第一ED和第二ED,所述方法应用于所述第一ED,所述方法包括:
在检测到所述第一ED与第一网络设备之间的通信链路为不可用Down状态时,所述第一网络设备与所述第一ED处于相同DC内,获取所述第一ED和所述第二ED之间建立的第一VXLAN隧道的标识;
根据所述第一VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息,所述出端口信息用于在接收到携带目的IP地址为虚拟机VM的IP地址的报文时,通过所述出端口信息表示的所述第一VXLAN隧道,向所述第二ED转发所述报文;
其中,所述VM接入所述第一网络设备;
所述方法还包括:
接收所述第二ED发送的第五VXLAN报文,所述第五VXLAN报文携带广播报文,且所述第五VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;所述第一链路状态字段中的信息表示第一ED与处于第二DC网络边缘的远端ED之间的第一链路的通信链路状态,所述第二链路状态字段中的信息表示第一ED与处于相同DC内的第一网络设备之间的第二链路的通信链路状态;
获取所述第五VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述第一VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息之后,所述方法还包括:
接收处于第二DC网络边缘的远端ED发送的第一VXLAN报文,所述第一VXLAN报文携带单播报文,所述单播报文包括所述VM的IP地址;
根据所述VM的IP地址,从所述第一ED已存储的转发表中确定用于与所述VM进行通信交互的出端口信息;
在所述出端口信息为所述第一VXLAN隧道的标识时,通过所述第一VXLAN隧道向所述第二ED发送第二VXLAN报文,用于使所述第二ED获取所述第二VXLAN报文携带的所述单播报文,并根据所述单播报文包括的所述VM的IP地址,对所述单播报文进行转发。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第二网络设备发送的第三VXLAN报文,所述第三VXLAN报文携带广播报文;
确定所述第二网络设备所处的DC,并确定与所述第一ED连接的全部通信链路的状态;
根据所述第二网络设备所处的DC以及与所述第一ED连接的全部通信链路的状态,生成第四VXLAN报文,所述第四VXLAN报文携带所述广播报文,且所述第四VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;
通过除接收到所述第三VXLAN报文的端口以外的其它端口发送所述第四VXLAN报文,用于使在通过所述第一VXLAN隧道向所述第二ED发送所述第四VXLAN报文时,所述第二ED获取所述第四VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发;
其中,所述第二网络设备处于第一DC,且不为所述第二ED,或者,所述第二网络设备处于第二DC;
其中,所述第一ED连接的全部通信链路的状态包括:所述第一ED与处于第二DC网络边缘的远端ED之间的第一链路的通信链路状态、以及所述第一ED与处于相同DC内的第一网络设备之间的第二链路的通信链路状态。
4.根据权利要求3所述的方法,其特征在于,
如果所述第二网络设备处于第一DC,且不为所述第二ED,则所述报文来源字段置位为0;或者,如果所述第二网络设备处于第二DC,则所述报文来源字段置位为1;
如果所述第一链路为可用UP状态,则所述第一链路状态字段置位为0;或者,如果所述第一链路为不可用Down状态,则所述第一链路状态字段置位为1;
如果所述第二链路为可用UP状态,则所述第二链路状态字段置位为0;或者,如果所述第二链路为不可用Down状态,则所述第二链路状态字段置位为1。
5.根据权利要求1所述的方法,其特征在于,所述根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发,包括:
如果所述报文来源字段置位为0,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为0,所述第一链路状态字段置位为1,且所述第二链路状态字段置位为0,则对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为1,则对所述广播报文进行转发。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测到所述第一ED与所述第一网络设备之间的通信链路恢复为可用UP状态,且接收到所述第一网络设备通过第二VXLAN隧道发送的所述VM的EVPN路由信息时,获取所述第二VXLAN隧道的标识;
根据所述第二VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息。
7.一种报文处理装置,其特征在于,第一边缘设备ED组处于第一数据中心DC网络边缘,第一ED组包括第一ED和第二ED,所述装置应用于所述第一ED,所述装置包括:
隧道标识获取模块,用于在检测到所述第一ED与第一网络设备之间的通信链路为不可用Down状态时,所述第一网络设备与所述第一ED处于相同DC内,获取所述第一ED和所述第二ED之间建立的第一VXLAN隧道的标识;
出端口信息更新模块,用于根据所述第一VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息,所述出端口信息用于在接收到携带目的IP地址为虚拟机VM的IP地址的报文时,通过所述出端口信息表示的所述第一VXLAN隧道,向所述第二ED转发所述报文;其中,所述VM接入所述第一网络设备;
所述装置还包括:
所述报文接收模块,还用于接收所述第二ED发送的第五VXLAN报文,所述第五VXLAN报文携带广播报文,且所述第五VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;所述第一链路状态字段中的信息表示第一ED与处于第二DC网络边缘的远端ED之间的第一链路的通信链路状态,所述第二链路状态字段中的信息表示第一ED与处于相同DC内的第一网络设备之间的第二链路的通信链路状态;
所述报文发送模块,还用于获取所述第五VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
报文接收模块,用于接收处于第二DC网络边缘的远端ED发送的第一VXLAN报文,所述第一VXLAN报文携带单播报文,所述单播报文包括所述VM的IP地址;
出端口信息确定模块,用于根据所述VM的IP地址,从所述第一ED已存储的转发表中确定用于与所述VM进行通信交互的出端口信息;
报文发送模块,用于在所述出端口信息为所述第一VXLAN隧道的标识时,通过所述第一VXLAN隧道向所述第二ED发送第二VXLAN报文,用于使所述第二ED获取所述第二VXLAN报文携带的所述单播报文,并根据所述单播报文包括的所述VM的IP地址,对所述单播报文进行转发。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
所述报文接收模块,还用于接收第二网络设备发送的第三VXLAN报文,所述第三VXLAN报文携带广播报文;
信息确定模块,用于确定所述第二网络设备所处的DC,并确定与所述第一ED连接的全部通信链路的状态;
报文生成模块,用于根据所述第二网络设备所处的DC以及与所述第一ED连接的全部通信链路的状态,生成第四VXLAN报文,所述第四VXLAN报文携带所述广播报文,且所述第四VXLAN报文的VXLAN报文头包括报文来源字段、第一链路状态字段和第二链路状态字段;
所述报文发送模块,还用于通过除接收到所述第三VXLAN报文的端口以外的其它端口发送所述第四VXLAN报文,用于使在通过所述第一VXLAN隧道向所述第二ED发送所述第四VXLAN报文时,所述第二ED获取所述第四VXLAN报文携带的所述广播报文,并根据所述报文来源字段、所述第一链路状态字段和所述第二链路状态字段,确定是否对所述广播报文进行转发;
其中,所述第二网络设备处于第一DC,且不为所述第二ED,或者,所述网络设备处于第二DC;
其中,所述第一ED连接的全部通信链路的状态包括:所述第一ED与处于第二DC网络边缘的远端ED之间的第一链路的通信链路状态、以及所述第一ED与处于相同DC内的第一网络设备之间的第二链路的通信链路状态。
10.根据权利要求9所述的装置,其特征在于,
如果所述第二网络设备处于第一DC,且不为所述第二ED,则所述报文来源字段置位为0;或者,如果所述第二网络设备处于第二DC,则所述报文来源字段置位为1;
如果所述第一链路为可用UP状态,则所述第一链路状态字段置位为0;或者,如果所述第一链路为不可用Down状态,则所述第一链路状态字段置位为1;
如果所述第二链路为可用UP状态,则所述第二链路状态字段置位为0;或者,如果所述第二链路为不可用Down状态,则所述第二链路状态字段置位为1。
11.根据权利要求7所述的装置,其特征在于,所述报文发送模块,还用于:
如果所述报文来源字段置位为0,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为0,则不对所述广播报文进行转发;或者,
如果所述报文来源字段置位为0,所述第一链路状态字段置位为1,且所述第二链路状态字段置位为0,则对所述广播报文进行转发;或者,
如果所述报文来源字段置位为1,所述第一链路状态字段置位为0,且所述第二链路状态字段置位为1,则对所述广播报文进行转发。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
所述隧道标识获取模块,还用于在检测到所述第一ED与所述第一网络设备之间的通信链路恢复为可用UP状态,且接收到所述第一网络设备通过第二VXLAN隧道发送的所述VM的EVPN路由信息时,获取所述第二VXLAN隧道的标识;
所述出端口信息更新模块,还用于根据所述第二VXLAN隧道的标识,更新所述第一ED已存储的转发表中的出端口信息。
CN201810483265.XA 2018-05-18 2018-05-18 报文处理方法及装置 Active CN108718269B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810483265.XA CN108718269B (zh) 2018-05-18 2018-05-18 报文处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810483265.XA CN108718269B (zh) 2018-05-18 2018-05-18 报文处理方法及装置

Publications (2)

Publication Number Publication Date
CN108718269A CN108718269A (zh) 2018-10-30
CN108718269B true CN108718269B (zh) 2021-04-27

Family

ID=63900050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810483265.XA Active CN108718269B (zh) 2018-05-18 2018-05-18 报文处理方法及装置

Country Status (1)

Country Link
CN (1) CN108718269B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109639534B (zh) * 2019-01-11 2021-03-02 锐捷网络股份有限公司 一种测试网络传输性能的方法、装置及计算机存储介质
CN110061899B (zh) * 2019-04-28 2021-08-06 新华三技术有限公司 一种数据报文传输方法、装置及系统
CN110601882B (zh) * 2019-09-04 2022-08-16 厦门网宿有限公司 一种二层专线网络系统及配置方法
CN112737956A (zh) * 2019-10-28 2021-04-30 华为技术有限公司 报文的发送方法和第一网络设备
CN113794641B (zh) * 2021-08-20 2022-10-21 新华三信息安全技术有限公司 报文处理方法及装置
CN115150323B (zh) * 2022-07-04 2023-06-02 中国联合网络通信集团有限公司 路由实现方法、vtep、第一边缘设备及系统
CN115174708B (zh) * 2022-07-14 2024-06-25 北京物芯科技有限责任公司 报文接收、信息确定方法、装置、交换芯片、设备及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102244612B (zh) * 2011-08-03 2014-06-11 华为技术有限公司 数据的接收方法、装置和通信系统
CN106161248B (zh) * 2015-04-27 2019-03-29 新华三技术有限公司 一种vxlan网络中报文转发方法及装置
US10454758B2 (en) * 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
CN106878065B (zh) * 2017-01-18 2021-06-11 新华三技术有限公司 一种分布式聚合系统的配置方法及装置
CN107645433B (zh) * 2017-08-31 2021-03-30 新华三技术有限公司 报文转发方法及装置

Also Published As

Publication number Publication date
CN108718269A (zh) 2018-10-30

Similar Documents

Publication Publication Date Title
CN108718269B (zh) 报文处理方法及装置
CN108574616B (zh) 一种处理路由的方法、设备及系统
US10666561B2 (en) Virtual machine migration
US10333836B2 (en) Convergence for EVPN multi-homed networks
CN109257265B (zh) 一种泛洪抑制方法、vxlan网桥、网关及系统
EP2853066B1 (en) Layer-3 overlay gateways
US9992106B2 (en) Generating a host route
CN107612808B (zh) 隧道建立方法和装置
CN108900414B (zh) 转发表生成方法及装置
CN108259299B (zh) 一种转发表项生成方法、装置及机器可读存储介质
CN108418740B (zh) 报文处理方法及装置
US11362954B2 (en) Tunneling inter-domain stateless internet protocol multicast packets
CN115225568B (zh) 对以太网虚拟私有网络—虚拟可扩展局域网的快速重路由
US11863454B2 (en) Systems and methods for scalable validation of multiple paths in a network using segment routing
CN108390812B (zh) 报文转发方法及装置
US20220124033A1 (en) Method for Controlling Traffic Forwarding, Device, and System
CN108833272B (zh) 一种路由管理方法和装置
CN107682261B (zh) 流量转发方法及装置
CN113507425B (zh) 一种Overlay组播方法、装置及设备
EP4030698A1 (en) Packet processing method, device, system and apparatus as well as storage medium
US20230164070A1 (en) Packet sending method, device, and system
CN108471374B (zh) 数据报文的转发方法及装置
CN108282404B (zh) 一种路由生成方法、装置及系统
CN108259366B (zh) 一种报文转发方法及装置
JP7273130B2 (ja) 通信方法および装置

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