CN106992918A - 报文转发方法和装置 - Google Patents

报文转发方法和装置 Download PDF

Info

Publication number
CN106992918A
CN106992918A CN201710203796.4A CN201710203796A CN106992918A CN 106992918 A CN106992918 A CN 106992918A CN 201710203796 A CN201710203796 A CN 201710203796A CN 106992918 A CN106992918 A CN 106992918A
Authority
CN
China
Prior art keywords
vxlan
forwarding
vtep
broadcasting packets
message
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
Application number
CN201710203796.4A
Other languages
English (en)
Other versions
CN106992918B (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 DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech 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 DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201710203796.4A priority Critical patent/CN106992918B/zh
Publication of CN106992918A publication Critical patent/CN106992918A/zh
Application granted granted Critical
Publication of CN106992918B publication Critical patent/CN106992918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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]
    • H04L12/4675Dynamic sharing of VLAN information amongst network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种报文转发方法和装置,应用于包括一个或多个汇集VTEP和多个非汇集VTEP的VXLAN系统,非汇集VTEP与至少一个汇集VTEP之间建立VXLAN隧道,VTEP基于来自VM的原始广播报文构造VXLAN广播报文,并将VXLAN广播报文携带的转发标识设置为未转发,后续通过VXLAN隧道广播所述VXLAN广播报文;VTEP在VXLAN广播报文携带的转发标识为未转发时,将该转发标识修改为已转发,通过除接收隧道外的其他VXLAN隧道广播修改后的VXLAN广播报文,并基于VXLAN广播报文获取原始广播报文,以在本地VXLAN中该广播原始广播报文。本申请技术方案可以简化配置,且便于扩展。

Description

报文转发方法和装置
技术领域
本申请涉及通信技术领域,尤其涉及一种报文转发方法和装置。
背景技术
在VXLAN(Virtual Extensible Local Area Network,虚拟扩展局域网)系统中,VM(Virtual Machine,虚拟机)可以通过VTEP(VXLAN Tunneling End Point,VXLAN隧道终端)接入VXLAN。具体地,VTEP在接收到来自VM的原始报文后,可以为所述原始报文封装VXLAN报文头以构造VXLAN报文,并通过对应的VXLAN隧道将所述VXLAN报文发送给对端VTEP,对端VTEP可以解封装所述VXLAN报文以获取所述原始报文,并将所述原始报文发送给对应VM。
相关技术中,在实现同一VXLAN中多个VM之间的互相通信时,通常需要在VTEP之间两两建立VXLAN隧道,后续VTEP与其他VTEP之间可以通过建立的VXLAN隧道进行VXLAN报文传输。然而,采用这种方式,任意两个VTEP之间均需要建立VXLAN隧道,配置较为繁琐。此外,当VXLAN系统中新增一个VM时,也需要该VM所连接的VTEP与其他VTEP之间建立VXLAN隧道,不便于VXLAN系统的扩展。
发明内容
有鉴于此,本申请提供一种报文转发方法和装置,以解决相关技术中VXLAN的配置繁琐且不便于扩展的问题。
具体地,本申请是通过如下技术方案实现的:
第一方面,本申请提供一种报文转发方法,应用于VXLAN系统,所述VXLAN系统中包括一个或多个汇集VXLAN隧道终端VTEP和多个非汇集VTEP,所述非汇集VTEP与至少一个汇集VTEP之间建立VXLAN隧道,所述方法应用于所述VXLAN系统中的VTEP,包括:
在接收到来自虚拟机VM的原始广播报文时,为所述原始广播报文封装VXLAN报文头以构造VXLAN广播报文,并将所述VXLAN广播报文携带的转发标识设置为未转发;
通过VXLAN隧道,在所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文;
在接收到VXLAN广播报文时,判断所述VXLAN广播报文携带的转发标识是否为未转发;
当所述转发标识为未转发时,将所述转发标识修改为已转发后,在所述VXLAN广播报文所属VXLAN中,通过除接收隧道外的其他VXLAN隧道广播修改后的VXLAN广播报文,并对所述VXLAN广播报文进行解封装得到原始广播报文,以在本地VXLAN中广播所述原始广播报文。
第二方面,本申请提供一种报文转发装置,应用于VXLAN系统,所述VXLAN系统中包括一个或多个汇集VXLAN隧道终端VTEP和多个非汇集VTEP,所述非汇集VTEP与至少一个汇集VTEP之间建立VXLAN隧道,所述装置应用于所述VXLAN系统中的VTEP,包括:
构造单元,用于在接收到来自虚拟机VM的原始广播报文时,为所述原始广播报文封装VXLAN报文头以构造VXLAN广播报文,并将所述VXLAN广播报文携带的转发标识设置为未转发;
第一广播单元,用于通过VXLAN隧道,在所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文;
标识判断单元,用于在接收到VXLAN广播报文时,判断所述VXLAN广播报文携带的转发标识是否为未转发;
第二广播单元,用于当所述转发标识为未转发时,将所述转发标识修改为已转发后,在所述VXLAN广播报文所属VXLAN中,通过除接收隧道外的其他VXLAN隧道广播修改后的VXLAN广播报文,并对所述VXLAN广播报文进行解封装得到原始广播报文,以在本地VXLAN中广播所述原始广播报文。
分析上述技术方案可知,在实现同一VXLAN中多个VM之间的互相通信时,仅需汇集VTPE与非汇集VTEP之间建立VXLAN隧道,而任意两个非汇集VTEP之间均无需建立VXLAN隧道,从而有效减少了建立的VXLAN隧道的数量,简化了VXLAN系统的配置。此外,当VXLAN系统中新增一个VM时,也仅需该VM所连接的VTEP与汇集VTEP之间建立VXLAN隧道,有利于VXLAN系统的扩展。
附图说明
图1是相关技术中的VXLAN系统架构图;
图2是本申请一示例性实施例示出的一种VXLAN系统架构图;
图3是本申请一示例性实施例示出的一种报文转发方法的流程图;
图4是本申请一示例性实施例示出的另一种VXLAN系统架构图;
图5是本申请一示例性实施例示出的一种报文转发装置所在设备的硬件结构图;
图6是本申请一示例性实施例示出的一种报文转发装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参考图1,为相关技术中的VXLAN系统架构图。如图1所示,VM 1至VM 5均属于同一个VXLAN,VM 1至VM 5分别通过VTEP 1至VTEP5接入所述VXLAN。在该VXLAN系统中,任意两个VTEP之间均建立有VXLAN隧道,各VTEP均可以通过VXLAN隧道向对端VTEP发送VXLAN报文。
请继续参考图1,假设VM 1发送ARP请求报文,以请求VM 3的MAC地址,所述ARP请求报文的源MAC地址为VM 1的MAC地址,目的MAC地址为广播MAC地址。
VTEP 1在接收到来自VM 1的所述ARP请求报文时,可以根据所述ARP请求报文的源MAC地址,以及所述ARP请求报文的入接口和VM 1所属VXLAN的VNI(VXLAN NetworkIdentifier,VXLAN网络标识符),进行转发表项的学习。假设VM 1的MAC地址为MAC 1,所述入接口为接口1,所述VNI为VNI 1000,则VTEP 1可以学习VNI 1000、MAC 1、接口1三者之间的映射关系,并将所述映射关系更新至转发表项中。
此外,VTEP 1还可以为所述ARP请求报文封装VXLAN报文头以构造VXLAN广播报文,并根据所述VXLAN广播报文的VNI在所述VXLAN广播报文所属VXLAN(即VM1所属VXLAN)中广播所述VXLAN广播报文,即VTEP1可以通过VXLAN隧道12、13、14和15分别向VTEP 2至VTEP 5发送所述VXLAN广播报文。
VTEP 2至VTEP 5在接收到所述VXLAN广播报文时,均可以解封装所述VXLAN广播报文以获取VM 1发送的ARP请求报文,从而可以根据所述VXLAN广播报文携带的VNI、所述ARP请求报文的源MAC地址,以及所述VXLAN广播报文的接收隧道接口,进行转发表项的学习。此外,VTEP 2至VTEP 5还可以在本地VXLAN中广播所述ARP请求报文。
以VTEP 3为例,VTEP 3在通过VXLAN隧道13接收到所述VXLAN广播报文时,可以对所述VXLAN广播报文进行解封装,得到VM 1发送的ARP请求报文,从而可以学习VNI 1000、MAC 1、VXLAN隧道13接口三者之间的映射关系,并将所述映射关系更新至转发表项中。此外,VTEP 3还可以根据本地预先配置的VXLAN,向包括VM 3在内的本地VXLAN中的VM(图中未全部示出)发送所述ARP请求报文。
VM 3在接收到VTEP 3发送的所述ARP请求报文时,可以针对所述ARP请求报文进行响应,即构造源MAC地址为本机MAC地址(假设为MAC 3),目的MAC地址为MAC 1的ARP响应报文,并向VTEP 3发送所述ARP响应报文。
另一方面,VM 2、VM 4和VM 5在分别接收到VTEP 2、VTEP 4和VTEP 5发送的所述ARP请求报文时,由于所述ARP请求报文的目的IP地址为VM 3的IP地址,而不为本机IP地址,因此VM 2、VM 4和VM 5不会针对所述ARP请求报文进行响应,而可以将所述ARP请求报文丢弃。
VTEP 3在接收到来自VM 3的所述ARP响应报文时,可以根据所述ARP响应报文的源MAC地址,以及所述ARP响应报文的入接口和VM 3所属VXLAN的VNI,进行转发表项的学习。假设所述ARP响应报文的入接口为接口2,则VTEP 3可以学习VNI 1000、MAC 3、接口2三者之间的映射关系,并将所述映射关系更新至转发表项。此外,VTEP 3还可以为所述ARP响应报文封装VXLAN报文头以构造VXLAN单播报文,并根据本地保存的VNI 1000、MAC 1、VXLAN隧道13接口三者之间的映射关系,通过VXLAN隧道13将所述VXLAN单播报文发送给VTEP 1。
VTEP 1在通过VXLAN隧道13接收到所述VXLAN单播报文时,可以对所述VXLAN单播报文进行解封装,得到VM 3发送的ARP响应报文,还可以学习VNI 1000、MAC 3、VXLAN隧道13接口三者之间的映射关系,并将所述映射关系更新至转发表项中。此外,VTEP 1还可以根据本地保存的VNI 1000、MAC 1、接口1三者之间的映射关系,通过接口1将所述ARP响应报文发送给VM 1。
结合图1可见,相关技术中,在实现同一VXLAN中的VM 1至VM 5之间的互相通信时,VTEP 1至VTEP 5之间总共需要建立10条VXLAN隧道,建立的VXLAN隧道的数量较多,配置较为繁琐。此外,假设在该VXLAN系统中新增一个VM 6,则VM 6所连接的VTEP 6与VTEP 1至VETP 5之间需要建立5条VXLAN隧道,不便于VXLAN系统的扩展。
请参考图2,为本申请一示例性实施例示出的一种VXLAN系统架构图。与图1类似,VM 1至VM 5均属于同一个VXLAN,VM 1至VM 5分别通过VTEP 1至VTEP 5接入所述VXLAN。
为了减少VTEP之间建立的XVLAN隧道的数量,可以将VXLAN系统中的VTEP分为汇集VTEP和非汇集VTEP。其中,非汇集VTEP至少与一个汇集VETP之间建立VXLAN隧道,而任意两个非汇集VTEP之间则均无需建立VXLAN隧道。汇集VTEP与非汇集VTEP之间可以通过建立的VXLAN隧道进行VXLAN报文传输,而两个非汇集VTEP之间则可以通过汇集VTEP进行VXLAN报文传输。
如图2所示,在该VXLAN系统中,VTEP 5为汇集VTEP,VTEP 1至4均为非汇集VTEP。其中,VTEP 5与VTEP 1至VTEP 4之间分别建立有VXLAN隧道15、25、35和45。在该VXLAN系统中建立4条VXLAN隧道,相较于图1所示的VXLAN系统,有效减少了建立的VXLAN隧道的数量,简化了VXLAN系统的配置。此外,假设在该VXLAN系统中新增一个VM 6,则VM 6所连接的VTEP 6仅需与VETP 5之间建立1条VXLAN隧道,有利于VXLAN系统的扩展。
基于图2所示的VXLAN系统架构图,请参考图3,为本申请一示例性实施例示出的一种报文转发方法的流程图。所述报文转发方法可以应用于图2所示的VTEP中,包括以下步骤:
步骤301:在接收到来自VM的原始广播报文时,为所述原始广播报文封装VXLAN报文头以构造VXLAN广播报文,并将所述VXLAN广播报文携带的转发标识设置为未转发。
步骤302:通过VXLAN隧道,在所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文。
步骤303:在接收到VXLAN广播报文时,判断所述VXLAN广播报文携带的转发标识是否为未转发。
步骤304:当所述转发标识为未转发时,将所述转发标识修改为已转发后,在所述VXLAN广播报文所属VXLAN中,通过除接收隧道外的其他VXLAN隧道广播修改后的VXLAN广播报文,并对所述VXLAN广播报文进行解封装得到原始广播报文,以在本地VXLAN中广播所述原始广播报文。
在本实施例中,VTEP在接收到来自VM的原始广播报文时,首先可以基于所述原始广播报文确定所述VM所属VXLAN。举例来说,假设VM 1接入VLAN 101,则来自VM 1的原始广播报文中携带有VLAN ID,且所述VLAN ID为VLAN 101。VTEP 1中保存有预先配置的VLAN101与VXLAN 1000的对应关系,VTEP 1在接收到来自VM 1的原始广播报文时,可以确定所述原始广播报文对应的VNI为VXLAN 1000,即VM 1属于VXLAN 1000。
在确定所述VM所属VXLAN后,VTEP可以为所述原始广播报文封装VXLAN报文头,以构造VXLAN广播报文。其中,所述VXLAN报文头中包括VNI字段,用于携带所述VXLAN报文所属VXLAN的VNI。后续VTEP可以通过VXLAN隧道,在构造的所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文。
需要说明的是,VTEP在构造VXLAN广播报文时,还可以将所述VXLAN广播报文携带的转发标识设置为未转发。其中,所述转发标识可以是所述VXLAN报文头的某个预留字段。
如下表1所示,为VXLAN报文头的一种示例:
表1
在VXLAN报文头中,VNI字段可以携带本VXLAN报文所属VXLAN的VNI,Reserved 1字段为24位的预留字段,Reserved 2字段为8位的预留字段。为了便于处理,可以选择位数较少的Reserved 2字段作为所述转发标识。技术人员可以规定Reserved 2字段携带的数值0表示未转发,Reserved 2字段携带的数值1表示已转发,则VTEP在检测到VXLAN报文的Reserved 2字段携带的数值为0时,确定所述VXLAN报文携带的转发标识为未转发,在检测到VXLAN报文的Reserved 2字段携带的数值为1时,确定所述VXLAN报文携带的转发标识为已转发。
VTEP在通过VXLAN隧道接收到VXLAN广播报文时,除了可以在本地VXLAN中,广播解封装所述VXLAN广播报文得到的原始广播报文之外,还可以根据所述VXLAN广播报文中的转发标识是否为未转发,判断是否需要继续在所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文。
继续以图2所示的VXLAN系统为例,假设VM 1向VTEP 1发送ARP请求报文(即原始广播报文),以请求VM 3的MAC地址,则所述ARP请求报文的源MAC地址为VM 1的MAC地址,目的MAC地址为广播MAC地址。
VTEP 1在接收到来自VM 1的所述ARP请求报文时,与相关技术类似,也可以根据所述ARP请求报文的源MAC地址,以及所述ARP请求报文的入接口和VM 1所属VXLAN的VNI,进行转发表项的学习。假设VM 1的MAC地址为MAC 1,所述入接口为接口1,所述VNI为VNI 1000,则VTEP 1可以学习VNI 1000、MAC 1、接口1三者之间的映射关系,并将所述映射关系更新至转发表项中。
此外,VTEP 1还可以为所述ARP请求报文封装VXLAN报文头以构造VXLAN广播报文,并将所述VXLAN广播报文的转发标识设置为未转发。后续VTEP 1可以根据构造的所述VXLAN广播报文携带的VNI,在所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文。由于VTEP 1仅与VTEP 5之间建立有VXLAN隧道15,因此VTEP1可以通过VXLAN隧道15向VTEP 5发送所述VXLAN广播报文。
VTEP 5在通过VXLAN隧道15接收到所述VXLAN广播报文时,可以判断所述VXLAN广播报文携带的转发标识是否为未转发。由于所述VXLAN广播报文携带的转发标识为未转发,因此VTEP 5可以将所述转发标识修改为已转发,并在所述VXLAN广播报文所属VXLAN中,通过除接收隧道外的其他VXLAN隧道广播修改后的VXLAN广播报文,即通过VXLAN隧道25、35和45,分别向VTEP 2、VTEP 3和VTEP 4发送修改后的VXLAN广播报文。
此外,VTEP 5还可以对所述VXLAN广播报文进行解封装,得到VM 1发送的ARP请求报文,从而可以学习VNI 1000、MAC 1、VXLAN隧道15接口三者之间的映射关系,并将所述映射关系更新至转发表项中。VTEP 5在得到所述ARP请求报文后,可以根据本地预先配置的VXLAN,向包括VM 5在内的本地VXLAN中的VM发送所述ARP请求报文。
VTEP 2、VTEP 3和VTEP 4在接收到所述修改后的VXLAN广播报文时,均可以根据所述修改后的VXLAN广播报文中的转发标识是否为未转发,判断是否需要继续在其所属VXLAN中广播所述VXLAN广播报文。此外,VTEP 2、VTEP 3和VTEP 4还可以解封装所述VXLAN广播报文以获取VM 1发送的ARP请求报文,从而可以根据所述VXLAN广播报文携带的VNI、所述ARP请求报文的源MAC地址,以及所述VXLAN广播报文的接收隧道接口,进行转发表项的学习,并在本地VXLAN中广播所述ARP请求报文。
以VTEP 3为例,VTEP 3在通过VXLAN隧道35接收到所述修改后的VXLAN广播报文时,也可以判断所述修改后的VXLAN广播报文携带的转发标识是否为未转发,由于所述修改后的VXLAN广播报文携带的转发标识为已转发,因此VTEP 3可以不再在其所属VXLAN中广播所述VXLAN广播报文。
此外,VTEP 3还可以对所述VXLAN广播报文进行解封装,得到VM 1发送的ARP请求报文,从而可以学习VNI 1000、MAC 1、VXLAN隧道35接口三者之间的映射关系,并将所述映射关系更新至转发表项中。VTEP 3在得到VM 1发送的ARP请求报文后,可以根据本地预先配置的VXLAN,向包括VM 3在内的本地VXLAN中的VM发送所述ARP请求报文。
VM 3在接收到VTEP 3发送的所述ARP请求报文时,可以针对所述ARP请求报文进行响应,即构造源MAC地址为本机MAC地址(假设为MAC 3),目的MAC地址为MAC 1的ARP响应报文(即原始单播报文),并向VTEP 3发送所述ARP响应报文。
另一方面,VM 2、VM 4和VM 5在分别接收到VTEP 2、VTEP 4和VTEP 5发送的所述ARP请求报文时,由于所述ARP请求报文的目的IP地址为VM 3的IP地址,而不为本机IP地址,因此VM 2、VM 4和VM 5不会针对所述ARP请求报文进行响应,而可以将所述ARP请求报文丢弃。
VTEP 3在接收到来自VM 3的所述ARP响应报文时,与相关技术类似,也可以根据所述ARP响应报文的源MAC地址,以及所述ARP响应报文的入接口和VM 3所属VXLAN的VNI,进行转发表项的学习。假设所述ARP响应报文的入接口为接口2,则VTEP 3可以学习VNI 1000、MAC 3、接口2三者之间的映射关系,并将所述映射关系更新至转发表项。
此外,VTEP 3还可以为所述ARP响应报文封装VXLAN报文头以构造VXLAN单播报文,并将所述VXLAN广播报文的转发标识设置为未转发。后续VTEP 3可以根据本地保存的VNI1000、MAC 1、VXLAN隧道35接口三者之间的映射关系,通过VXLAN隧道35将所述VXLAN单播报文发送给VTEP 5。
VTEP 5在通过VXLAN隧道35接收到所述VXLAN单播报文时,可以对所述VXLAN单播报文进行解封装,得到VM 3发送的ARP响应报文,从而可以学习VNI 1000、MAC 3、VXLAN隧道35接口三者之间的映射关系,并将所述映射关系更新至转发表项中。
此外,VTEP 5还可以基于本地保存的转发表项判断所述VXLAN单播报文的出接口是否为VXLAN隧道接口。由于本地保存的转发表项为VNI 1000、MAC 1、VXLAN隧道15,因此所述VXLAN单播报文的出接口为隧道接口,VTEP 5可以再判断所述VXLAN单播报文携带的转发标识是否为未转发。由于所述VXLAN单播报文携带的转发标识为未转发,因此VTEP 5可以将所述转发标识修改为已转发,并通过VXLAN隧道15将修改后的VXLAN单播报文发送给VTEP1。
VTEP 1在通过VXLAN隧道15接收到所述修改后的VXLAN单播报文时,也可以对所述VXLAN单播报文进行解封装,得到VM 3发送的ARP响应报文,从而可以学习VNI 1000、MAC 3、VXLAN隧道15接口三者之间的映射关系,并将所述映射关系更新至转发表项中。
此外,VTEP 1还可以基于本地保存的转发表项判断所述VXLAN单播报文的出接口是否为VXLAN隧道接口。由于本地保存的转发表项为VNI 1000、MAC 1、接口1,因此所述VXLAN单播报文的出接口不为隧道接口,VTEP 1可以通过接口1将所述ARP响应报文发送给VM 1。
将图2与图1对比可见,采用本申请技术方案,在实现同一VXLAN中的VM 1至VM 5这5个VM之间的互相通信时,仅需汇集VTPE与非汇集VTEP之间建立VXLAN隧道,而任意两个非汇集VTEP之间均无需建立VXLAN隧道,即VTEP 1至VTEP 5之间总共仅需建立4条VXLAN隧道,从而有效减少了建立的VXLAN隧道的数量,简化了VXLAN系统的配置。此外,当VXLAN系统中新增一个VM时,也仅需该VM所连接的VTEP与汇集VTEP之间建立VXLAN隧道,即假设在该VXLAN系统中新增一个VM 6,则VM 6所连接的VTEP 6仅需与VETP 5之间建立1条VXLAN隧道,有利于VXLAN系统的扩展。
请参考图4,为本申请一示例性实施例示出的另一种VXLAN系统架构图。与图2类似,VM 1至VM 5均属于同一个VXLAN,VM 1至VM 5分别通过VTEP 1至VTEP 5接入所述VXLAN。在该VXLAN系统中,VTEP 1和VTEP 5均为汇集VTEP,VTEP 2至4均为非汇集VTEP。其中,VTEP1与VTEP 2至VTEP 5之间分别建立有VXLAN隧道12、13、14和15,VTEP 5和VTEP 1至VTEP 4之间分别建立有VXLAN隧道15、25、35和45。
假设VTEP 1接收到来自VM 1的原始广播报文,则VTEP 1可以为所述原始广播报文封装VXLAN报文头以构造VXLAN广播报文,并将所述VXLAN广播报文携带的转发标识设置为未转发。由于VTEP 1与VTEP 2至VTEP 5之间分别建立有VXLAN隧道12、13、14和15,因此后续VTEP 1可以通过VXLAN隧道12、13、14和15分别向VTEP 2、VTEP 3、VTEP 4和VTEP 5发送构造的所述VXLAN广播报文。
VTEP 2在通过VXLAN隧道12接收到VTEP 1发送的VXLAN广播报文时,可以解析得到所述VXLAN广播报文携带的转发标识为未转发。由于VTEP 2还与VTEP 5之间建立有VXLAN隧道25,因此VTEP 2可以在将所述VXLAN广播报文携带的转发标识设置为已转发后,通过VXLAN隧道25向VTEP 5发送修改后的VXLAN广播报文。
VTEP 5在通过VXLAN隧道25接收到VTEP 2发送的VXLAN广播报文时,可以解析得到所述VXLAN广播报文携带的转发标识为已转发,因此VTEP 5可以不再通过VXLAN隧道15、35和45分别向VTEP 1、VTEP 3和VTEP 4发送所述VXLAN广播报文。
然而,如果不存在转发标识,则VTEP 1可以通过VXLAN隧道12向VTEP 2发送VXLAN广播报文,VTEP 2可以将所述VXLAN广播报文通过VXLAN隧道25发送给VTEP 5,而VTEP 5又可以将所述VXLAN广播报文通过VXLAN隧道15发送回VTEP 1,出现环路现象,造成广播风暴。
由此可见,在包括多个汇集VTEP的VXLAN系统中,或者在非汇集VTEP之间也建立有VXLAN隧道的VXLAN系统中,极有可能出现环路现象,造成广播风暴。但通过在VXLAN广播报文中添加转发标识,使各VTEP可以根据所述转发标识是否为未转发,判断是否需要继续在所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文,从而可以有效抑制广播风暴。
VTEP在进行VXLAN单播报文的传输时,可以在VXLAN单播报文中添加所述转发标识,也可以不添加所述转发标识。但为了便于处理,VTEP通常也会在VXLAN单播报文中添加所述转发标识。在这种情况下,VTEP在接收到VXLAN单播报文时,如果基于本地保存的转发表项确定所述VXLAN单播报文的出接口为VXLAN隧道接口,则所述VXLAN单播报文携带的转发标识应当为未转发。如果所述转发标识为已转发,则说明所述转发表项可能存在错误,因此VTEP可以将所述VXLAN单播报文丢弃,而不再基于所述转发表项转发所述VXLAN单播报文,以避免报文传输出错。
与前述报文转发方法的实施例相对应,本申请还提供了报文转发装置的实施例。
本申请报文转发装置的实施例可以应用在VTEP上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在VTEP的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本申请报文转发装置所在VTEP的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的VTEP通常根据该报文转发的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图6,为本申请一示例性实施例示出的一种报文转发装置的框图。所述报文转发装置可以应用于VXLAN系统,所述VXLAN系统中包括一个或多个汇集VXLAN隧道终端VTEP和多个非汇集VTEP,所述非汇集VTEP与至少一个汇集VTEP之间建立VXLAN隧道,所述装置600可以应用于图5所示的VTEP中,包括:
构造单元601,用于在接收到来自虚拟机VM的原始广播报文时,为所述原始广播报文封装VXLAN报文头以构造VXLAN广播报文,并将所述VXLAN广播报文携带的转发标识设置为未转发;
第一广播单元602,用于通过VXLAN隧道,在所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文;
标识判断单元603,用于在接收到VXLAN广播报文时,判断所述VXLAN广播报文携带的转发标识是否为未转发;
第二广播单元604,用于当所述转发标识为未转发时,将所述转发标识修改为已转发后,在所述VXLAN广播报文所属VXLAN中,通过除接收隧道外的其他VXLAN隧道广播修改后的VXLAN广播报文,并对所述VXLAN广播报文进行解封装得到原始广播报文,以在本地VXLAN中广播所述原始广播报文。
在一个可选的实施例中,所述第二广播单元604还可以用于当所述转发标识为已转发时,对所述VXLAN广播报文进行解封装得到原始广播报文,以在本地VXLAN中广播所述原始广播报文。
在另一个可选的实施例中,所述构造单元601还可以用于在接收到来自VM的原始单播报文时,为所述原始单播报文封装VXLAN报文头以构造VXLAN单播报文,并将所述VXLAN单播报文携带的转发标识设置为未转发;
所述装置600还可以包括:
第一单播单元605,用于基于本地保存的转发表项转发所述VXLAN单播报文;
接口判断单元606,用于在接收到VXLAN单播报文时,基于本地保存的转发表项判断所述VXLAN单播报文的出接口是否为VXLAN隧道接口;
第二单播单元607,用于当所述出接口不为VXLAN隧道接口时,解封装所述VXLAN单播报文以获取原始单播报文,并转发所述原始单播报文;
所述第二单播单元607还用于当所述出接口为VXLAN隧道接口时,判断所述VXLAN单播报文携带的转发标识是否为未转发;若为未转发,则将所述转发标识修改为已转发,并转发修改后的VXLAN单播报文;若为已转发,则丢弃所述VXLAN单播报文。
在另一个可选的实施例中,所述装置600还可以包括:
第一更新单元608,用于在接收到来自VM的原始广播报文时,根据所述原始广播报文的源MAC地址,以及所述原始广播报文的入接口和所述VM所属VXLAN的VXLAN网络标识符VNI,更新本地保存的转发表项。
在另一个可选的实施例中,所述装置600还可以包括:
第二更新单元609,用于在接收到VXLAN广播报文时,根据所述VXLAN广播报文携带的VNI、原始广播报文的源MAC地址,以及所述VXLAN广播报文的接收隧道接口,更新本地保存的转发表项。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种报文转发方法,其特征在于,应用于VXLAN系统,所述VXLAN系统中包括一个或多个汇集VXLAN隧道终端VTEP和多个非汇集VTEP,所述非汇集VTEP与至少一个所述汇集VTEP之间建立VXLAN隧道,所述方法应用于所述VXLAN系统中的VTEP,包括:
在接收到来自虚拟机VM的原始广播报文时,为所述原始广播报文封装VXLAN报文头以构造VXLAN广播报文,并将所述VXLAN广播报文携带的转发标识设置为未转发;
通过VXLAN隧道,在所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文;
在接收到VXLAN广播报文时,判断所述VXLAN广播报文携带的转发标识是否为未转发;
当所述转发标识为未转发时,将所述转发标识修改为已转发后,在所述VXLAN广播报文所属VXLAN中,通过除接收隧道外的其他VXLAN隧道广播修改后的VXLAN广播报文,并对所述VXLAN广播报文进行解封装得到原始广播报文,以在本地VXLAN中广播所述原始广播报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述转发标识为已转发时,对所述VXLAN广播报文进行解封装得到原始广播报文,以在本地VXLAN中广播所述原始广播报文。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到来自VM的原始单播报文时,为所述原始单播报文封装VXLAN报文头以构造VXLAN单播报文,并将所述VXLAN单播报文携带的转发标识设置为未转发;
基于本地保存的转发表项转发所述VXLAN单播报文;
在接收到VXLAN单播报文时,基于本地保存的转发表项判断所述VXLAN单播报文的出接口是否为VXLAN隧道接口;
当所述出接口不为VXLAN隧道接口时,解封装所述VXLAN单播报文以获取原始单播报文,并转发所述原始单播报文;
当所述出接口为VXLAN隧道接口时,判断所述VXLAN单播报文携带的转发标识是否为未转发;若为未转发,则将所述转发标识修改为已转发,并转发修改后的VXLAN单播报文;若为已转发,则丢弃所述VXLAN单播报文。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到来自VM的原始广播报文时,根据所述原始广播报文的源MAC地址,以及所述原始广播报文的入接口和所述VM所属VXLAN的VXLAN网络标识符VNI,更新本地保存的转发表项。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到VXLAN广播报文时,根据所述VXLAN广播报文携带的VNI、所述VXLAN广播报文的接收隧道接口,以及所述原始广播报文的源MAC地址,更新本地保存的转发表项。
6.一种报文转发装置,其特征在于,应用于VXLAN系统,所述VXLAN系统中包括一个或多个汇集VXLAN隧道终端VTEP和多个非汇集VTEP,所述非汇集VTEP与至少一个所述汇集VTEP之间建立VXLAN隧道,所述装置应用于所述VXLAN系统中的VTEP,包括:
构造单元,用于在接收到来自虚拟机VM的原始广播报文时,为所述原始广播报文封装VXLAN报文头以构造VXLAN广播报文,并将所述VXLAN广播报文携带的转发标识设置为未转发;
第一广播单元,用于通过VXLAN隧道,在所述VXLAN广播报文所属VXLAN中广播所述VXLAN广播报文;
标识判断单元,用于在接收到VXLAN广播报文时,判断所述VXLAN广播报文携带的转发标识是否为未转发;
第二广播单元,用于当所述转发标识为未转发时,将所述转发标识修改为已转发后,在所述VXLAN广播报文所属VXLAN中,通过除接收隧道外的其他VXLAN隧道广播修改后的VXLAN广播报文,并对所述VXLAN广播报文进行解封装得到原始广播报文,以在本地VXLAN中广播所述原始广播报文。
7.根据权利要求6所述的装置,其特征在于,
所述第二广播单元还用于当所述转发标识为已转发时,对所述VXLAN广播报文进行解封装得到原始广播报文,以在本地VXLAN中广播所述原始广播报文。
8.根据权利要求6所述的装置,其特征在于,
所述构造单元还用于在接收到来自VM的原始单播报文时,为所述原始单播报文封装VXLAN报文头以构造VXLAN单播报文,并将所述VXLAN单播报文携带的转发标识设置为未转发;
所述装置还包括:
第一单播单元,用于基于本地保存的转发表项转发所述VXLAN单播报文;
接口判断单元,用于在接收到VXLAN单播报文时,基于本地保存的转发表项判断所述VXLAN单播报文的出接口是否为VXLAN隧道接口;
第二单播单元,用于当所述出接口不为VXLAN隧道接口时,解封装所述VXLAN单播报文以获取原始单播报文,并转发所述原始单播报文;
所述第二单播单元还用于当所述出接口为VXLAN隧道接口时,判断所述VXLAN单播报文携带的转发标识是否为未转发;若为未转发,则将所述转发标识修改为已转发,并转发修改后的VXLAN单播报文;若为已转发,则丢弃所述VXLAN单播报文。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一更新单元,用于在接收到来自VM的原始广播报文时,根据所述原始广播报文的源MAC地址,以及所述原始广播报文的入接口和所述VM所属VXLAN的VXLAN网络标识符VNI,更新本地保存的转发表项。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二更新单元,用于在接收到VXLAN广播报文时,根据所述VXLAN广播报文携带的VNI、原始广播报文的源MAC地址,以及所述VXLAN广播报文的接收隧道接口,更新本地保存的转发表项。
CN201710203796.4A 2017-03-30 2017-03-30 报文转发方法和装置 Active CN106992918B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710203796.4A CN106992918B (zh) 2017-03-30 2017-03-30 报文转发方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710203796.4A CN106992918B (zh) 2017-03-30 2017-03-30 报文转发方法和装置

Publications (2)

Publication Number Publication Date
CN106992918A true CN106992918A (zh) 2017-07-28
CN106992918B CN106992918B (zh) 2019-12-06

Family

ID=59412037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710203796.4A Active CN106992918B (zh) 2017-03-30 2017-03-30 报文转发方法和装置

Country Status (1)

Country Link
CN (1) CN106992918B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888518A (zh) * 2017-10-20 2018-04-06 深圳市楠菲微电子有限公司 用于转发报文的方法及装置
CN109412925A (zh) * 2018-09-30 2019-03-01 锐捷网络股份有限公司 基于vtep的转发表项更新方法及vtep
CN112929284A (zh) * 2021-01-29 2021-06-08 烽火通信科技股份有限公司 一种IPv6 VXLAN场景下的ND报文识别方法与系统
CN113541739A (zh) * 2021-07-09 2021-10-22 合肥新线通信科技有限公司 一种单频通信方法、系统及通信系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103814554A (zh) * 2013-12-11 2014-05-21 华为技术有限公司 一种虚拟可扩展局域网的通信方法、装置和系统
US20150063353A1 (en) * 2013-09-04 2015-03-05 Cisco Technology, Inc. Implementation of virtual extensible local area network (vxlan) in top-of-rack switches in a network environment
CN105656796A (zh) * 2014-11-25 2016-06-08 杭州华三通信技术有限公司 实现虚拟扩展局域网三层转发的方法和装置
CN106161248A (zh) * 2015-04-27 2016-11-23 杭州华三通信技术有限公司 一种vxlan网络中报文转发方法及装置
CN106230749A (zh) * 2016-08-30 2016-12-14 锐捷网络股份有限公司 一种在虚拟可扩展局域网中转发报文的方法和汇聚交换机

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150063353A1 (en) * 2013-09-04 2015-03-05 Cisco Technology, Inc. Implementation of virtual extensible local area network (vxlan) in top-of-rack switches in a network environment
CN103814554A (zh) * 2013-12-11 2014-05-21 华为技术有限公司 一种虚拟可扩展局域网的通信方法、装置和系统
CN105656796A (zh) * 2014-11-25 2016-06-08 杭州华三通信技术有限公司 实现虚拟扩展局域网三层转发的方法和装置
CN106161248A (zh) * 2015-04-27 2016-11-23 杭州华三通信技术有限公司 一种vxlan网络中报文转发方法及装置
CN106230749A (zh) * 2016-08-30 2016-12-14 锐捷网络股份有限公司 一种在虚拟可扩展局域网中转发报文的方法和汇聚交换机

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888518A (zh) * 2017-10-20 2018-04-06 深圳市楠菲微电子有限公司 用于转发报文的方法及装置
CN109412925A (zh) * 2018-09-30 2019-03-01 锐捷网络股份有限公司 基于vtep的转发表项更新方法及vtep
CN109412925B (zh) * 2018-09-30 2021-06-18 锐捷网络股份有限公司 基于vtep的转发表项更新方法及vtep
CN112929284A (zh) * 2021-01-29 2021-06-08 烽火通信科技股份有限公司 一种IPv6 VXLAN场景下的ND报文识别方法与系统
CN113541739A (zh) * 2021-07-09 2021-10-22 合肥新线通信科技有限公司 一种单频通信方法、系统及通信系统
CN113541739B (zh) * 2021-07-09 2023-04-28 合肥新线通信科技有限公司 一种单频通信方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN106992918B (zh) 2019-12-06

Similar Documents

Publication Publication Date Title
US10230616B2 (en) Monitoring virtualized network
CN107645431B (zh) 报文转发方法及装置
CN107070691B (zh) Docker容器的跨主机通信方法和系统
CN103873374B (zh) 虚拟化系统中的报文处理方法及装置
JP6034979B2 (ja) パケット転送方法と装置及びデータセンターネットワーク
US10812632B2 (en) Network interface controller with integrated network flow processing
US10205657B2 (en) Packet forwarding in data center network
CN115174470B (zh) 逻辑路由器
CN103841023B (zh) 数据转发的方法和设备
CN106998286A (zh) 一种vxlan报文转发方法及装置
CN105827495B (zh) Vxlan网关的报文转发方法和设备
CN106992918A (zh) 报文转发方法和装置
CN103095546A (zh) 一种处理报文的方法、装置及数据中心网络
CN104243269A (zh) 一种虚拟扩展局域网报文的处理方法及装置
CN107493222B (zh) 一种vxlan报文转发的方法及装置
CN107682275B (zh) 报文监控方法及装置
US8472420B2 (en) Gateway device
CN106209689B (zh) 从vxlan至vlan的组播数据报文转发方法和设备
CN108306806B (zh) 一种报文转发方法及装置
CN106921578B (zh) 一种转发表项的生成方法和装置
WO2013029440A1 (en) Method and apparatus for implementing layer-2 interconnection of data centers
CN113132202B (zh) 一种报文传输方法及相关设备
CN106330719A (zh) 一种vxlan报文转发方法和装置
US9716688B1 (en) VPN for containers and virtual machines in local area networks
CN114095460B (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