[go: up one dir, main page]

CN115604056A - Efficient storage implementation of downstream VXLAN identifiers - Google Patents

Efficient storage implementation of downstream VXLAN identifiers Download PDF

Info

Publication number
CN115604056A
CN115604056A CN202210614851.XA CN202210614851A CN115604056A CN 115604056 A CN115604056 A CN 115604056A CN 202210614851 A CN202210614851 A CN 202210614851A CN 115604056 A CN115604056 A CN 115604056A
Authority
CN
China
Prior art keywords
vtep
local
vni
packet
remote
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
CN202210614851.XA
Other languages
Chinese (zh)
Other versions
CN115604056B (en
Inventor
S·K·亚加迪桑
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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
Priority claimed from US17/591,623 external-priority patent/US11855804B2/en
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN115604056A publication Critical patent/CN115604056A/en
Application granted granted Critical
Publication of CN115604056B publication Critical patent/CN115604056B/en
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/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • 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

本公开涉及下游VXLAN标识符的高效存储实现。一种用作本地VXLAN隧道端点(VTEP)的网络设备包括通信接口、第一处理器和分组处理器。通信接口在本地VTEP和远程VTEP之间进行通信,每个VTEP都有相应的VXLAN标识符(VNI)。第一处理器导入下游‑VNI(D‑VNI),用于将分组从本地VTEP转发到远程VTEP,创建可转换为导入的D‑VNI的唯一的出口路由接口(RIF),并将唯一的出口RIF与本地VTEP中的一个或更多个路由条目相关联。分组处理器接收发往远程VTEP的分组,在本地VTEP中的路由条目中查找分组以检索唯一的出口RIF,将唯一的出口RIF转换为导入的D‑VNI,用导入的D‑VNI封装分组,并根据唯一的出口RIF转发封装的分组。

Figure 202210614851

The present disclosure relates to efficient storage implementation of downstream VXLAN identifiers. A network device for use as a local VXLAN tunnel endpoint (VTEP) includes a communication interface, a first processor, and a packet processor. The communication interface communicates between the local VTEP and the remote VTEP, and each VTEP has a corresponding VXLAN identifier (VNI). The first processor imports a downstream-VNI (D-VNI) for forwarding packets from the local VTEP to the remote VTEP, creates a unique egress routing interface (RIF) that can be A RIF is associated with one or more routing entries in the local VTEP. The Packet Processor receives a packet destined for the remote VTEP, looks up the packet in the routing entry in the local VTEP to retrieve the unique egress RIF, converts the unique egress RIF into an imported D‑VNI, encapsulates the packet with the imported D‑VNI, And forward the encapsulated packet according to the unique egress RIF.

Figure 202210614851

Description

下游VXLAN标识符的高效存储实现Efficient storage implementation of downstream VXLAN identifiers

技术领域technical field

本文描述的实施例总体涉及数据通信,尤其是涉及用于下游VXLAN 标识符(D-VNI)的高效存储实现的方法和系统。Embodiments described herein relate generally to data communications, and more particularly to methods and systems for efficient storage implementation of downstream VXLAN identifiers (D-VNI).

背景技术Background technique

虚拟可扩展局域网(VXLAN)是一种网络虚拟化技术,适用于诸如云计算和数据中心等大规模部署。VXLAN使用类似VLAN的封装技术。例如,在征求意见(RFC)7348中描述了VXLAN。Virtual Extensible LAN (VXLAN) is a network virtualization technology suitable for large-scale deployments such as cloud computing and data centers. VXLAN uses an encapsulation technology similar to VLAN. For example, VXLAN is described in Request for Comments (RFC) 7348 .

以太网虚拟专用网(EVPN)是VXLAN的控制平面,允许构建和部署大规模基于VXLAN的网络。例如,在RFC 8365中规定了EVPN。Ethernet Virtual Private Network (EVPN) is the control plane of VXLAN, allowing the construction and deployment of large-scale VXLAN-based networks. For example, EVPN is specified in RFC 8365.

VRF是一种其中多个独立的转发表位于同一网络设备(例如路由器或交换机)中的技术。每个VRF实例中的转发表用于为每个数据分组指定下一跳,以及控制如何转发分组的一组规则和路由协议。由于VRF路由实例是独立的,因此相同或重叠的IP地址可以在不同的实例中使用,而不会相互冲突,并且可以分割网络路径,而不需要多个路由器。此外,由于流量是自动隔离的,VRF还提高了网络安全性,并可以减少对加密和身份验证的需要。VRF is a technique in which multiple independent forwarding tables are located in the same network device (such as a router or switch). The forwarding table in each VRF instance is used to specify the next hop for each data packet, as well as a set of rules and routing protocols that control how packets are forwarded. Since VRF routing instances are independent, the same or overlapping IP addresses can be used in different instances without conflicting with each other, and network paths can be segmented without the need for multiple routers. Additionally, since traffic is automatically segregated, VRF also increases network security and can reduce the need for encryption and authentication.

发明内容Contents of the invention

本文描述的实施例提供了一种用作本地虚拟可扩展局域网(VXLAN) 隧道端点(VTEP)的网络设备,该网络设备包括通信接口、第一处理器和分组处理器。通信接口在本地虚拟路由和转发域(VRF)与远程VRF之间进行通信,本地VRF中的每一个和远程VRF中的每一个都有唯一的 VXLAN标识符(VNI)。第一处理器运行控制程序,该控制程序为本地 VTEP中配置的本地VRF创建本地VRF实例,导入下游-VNI(D-VNI),以用于将分组从本地VRF转发到远程VTEP中而不是本地VTEP中配置的远程VRF,创建可转换为导入的D-VNI的唯一的出口路由接口(RIF),并将唯一的出口RIF与本地VRF实例中的一个或更多个路由条目相关联。分组处理器接收发往远程VRF的分组,在本地VRF实例中的一个或更多个路由条目中查找分组,以检索唯一的出口RIF,将唯一的出口RIF转换为导入的D-VNI,用导入的D-VNI封装分组,并根据唯一的出口RIF转发封装的分组。Embodiments described herein provide a network device for use as a local virtual extensible local area network (VXLAN) tunnel endpoint (VTEP), the network device including a communication interface, a first processor and a packet processor. The communication interface communicates between a local virtual routing and forwarding domain (VRF) and remote VRFs, each of which has a unique VXLAN identifier (VNI). The first processor runs a control program that creates a local VRF instance for the local VRF configured in the local VTEP, importing a downstream-VNI (D-VNI) for forwarding packets from the local VRF into the remote VTEP instead of the local The remote VRF configured in the VTEP, creates a unique egress routing interface (RIF) that can be converted to the imported D-VNI, and associates the unique egress RIF with one or more routing entries in the local VRF instance. A packet processor receives a packet destined for a remote VRF, looks up the packet in one or more routing entries in the local VRF instance to retrieve a unique egress RIF, converts the unique egress RIF to an imported D-VNI, and uses the imported The D-VNI encapsulates the packet and forwards the encapsulated packet according to the unique egress RIF.

在一些实施例中,本地VTEP中的控制程序将本地VRF的本地VNI 导出到远程VTEP,以用于由远程VTEP将分组从远程VRF转发到本地 VRF。控制程序进一步为本地VNI创建第二出口RIF,并将第二出口RIF 与本地VRF实例中的一个或更多个第二路由条目相关联。分组处理器通过通信接口从远程VRF接收发往本地VRF的第二分组,第二分组由远程 VTEP用导出的本地VNI封装,对第二分组进行解封装,在本地VRF实例中的一个或更多个第二路由条目中查找解封装的分组,以检索第二出口 RIF,以及根据第二出口RIF转发第二分组。在其他实施例中,本地VTEP 和远程VTEP被包括在以太网虚拟专用网(EVPN)中,其中不同VRF之间通信的分组基于VXLAN封装进行封装。在其他实施例中,控制程序使用与本地VRF相关联的边界网关协议(BGP)的实例导入D-VNI。In some embodiments, the control program in the local VTEP exports the local VNI of the local VRF to the remote VTEP for use by the remote VTEP in forwarding packets from the remote VRF to the local VRF. The control program further creates a second egress RIF for the local VNI and associates the second egress RIF with one or more second routing entries in the local VRF instance. The packet processor receives a second packet destined for the local VRF from the remote VRF through the communication interface, the second packet is encapsulated by the remote VTEP with the exported local VNI, and the second packet is decapsulated, and one or more of the local VRF instances Look up the decapsulated packet in a second routing entry to retrieve the second egress RIF, and forward the second packet according to the second egress RIF. In other embodiments, the local VTEP and the remote VTEP are included in an Ethernet Virtual Private Network (EVPN), where packets communicated between different VRFs are encapsulated based on VXLAN encapsulation. In other embodiments, the control program imports the D-VNI using an instance of Border Gateway Protocol (BGP) associated with the local VRF.

在一个实施例中,控制程序将唯一的出口RIF与多个路由条目相关联,这些路由条目分别属于为本地VTEP中提供的多个本地VRF分别创建的多个VRF实例。在另一个实施例中,控制程序在访问控制列表(ACL)中的转发规则中配置一个或更多个路由条目,并且分组处理器通过将分组与 ACL中的转发规则之一相匹配来查找分组。在又一实施例中,本地VTEP 和远程VTEP中的每一个都包括通信网络中的叶网络设备或服务网络设备,叶网络设备中的每一个被分配一个或更多个本地VRF,并且服务网络设备中的每一个被分配不同于本地VRF的一个或更多个远程VRF。In one embodiment, the control program associates a unique egress RIF with multiple routing entries belonging to multiple VRF instances respectively created for multiple local VRFs provided in the local VTEP. In another embodiment, the control program configures one or more routing entries in the forwarding rules in the access control list (ACL), and the packet processor finds the packet by matching it with one of the forwarding rules in the ACL . In yet another embodiment, each of the local VTEP and the remote VTEP includes a leaf network device or a serving network device in the communication network, each of the leaf network devices is assigned one or more local VRFs, and the serving network Each of the devices is assigned one or more remote VRFs different from the local VRF.

在一些实施例中,服务主机(serving host)被耦合到配置了对应共享服务VRF的给定服务网络设备,服务主机通过通信网络向本地VRF中的一个或更多个被服务主机(served host)提供服务。在其他实施例中,具有集线器-轮辐拓扑的通信网络,其中一个或更多个集线器网络设备配置有支持在属于本地VRF中不同VRF的被服务主机之间的路由的集线器VRF。在其他实施例中,通信网络支持等价多径(ECMP)路由协议,并且分组处理器使用不同的ECMP路径用不同的相应D-VNI封装转发到多个远程VTEP的分组。In some embodiments, a serving host (serving host) is coupled to a given serving network device configured with a corresponding shared service VRF, and the serving host sends messages to one or more served hosts (served hosts) in the local VRF through a communication network. Provide services. In other embodiments, a communication network having a hub-and-spoke topology, wherein one or more hub network devices are configured with a hub VRF that supports routing between served hosts belonging to different VRFs in the local VRF. In other embodiments, the communication network supports the Equal Cost Multi-Path (ECMP) routing protocol, and the packet processor encapsulates packets forwarded to multiple remote VTEPs using different ECMP paths with different corresponding D-VNIs.

在一个实施例中,分组处理器从第一VRF中的主机或网元接收分组,或从第三VRF接收分组。在另一实施例中,控制程序从远程VTEP导入 D-VNI,或者通过在由用户手动发送的一个或更多个命令中接收D-VNI,或者通过运行包含一个或更多个命令的脚本自动地导入D-VNI。In one embodiment, the packet processor receives packets from a host or network element in a first VRF, or receives a packet from a third VRF. In another embodiment, the control program imports the D-VNI from a remote VTEP, either by receiving the D-VNI in one or more commands sent manually by the user, or automatically by running a script containing one or more commands Import D-VNI correctly.

根据本文描述的实施例,还提供了一种用于数据通信的方法,包括在用作本地虚拟可扩展局域网(VXLAN)隧道端点(VTEP)的网络设备中,在本地虚拟路由和转发域(VRF)以及远程VRF之间进行通信,本地VRF 中的每一个和远程VRF中的每一个都有唯一的VXLAN标识符(VNI)。本地VRF实例由本地VTEP中配置的本地VRF控制程序创建。导入下游 -VNI(D-VNI),以用于将分组从本地VRF转发到远程VTEP(而不是本地VTEP)中配置的远程VRF。创建可转换为导入的D-VNI的唯一的出口路由接口(RIF),并且该唯一的出口RIF与本地VRF实例中的一个或更多个路由条目相关联。由本地VTEP的分组处理器接收发往远程VRF的分组。在本地VRF实例中的一个或更多个路由条目中查找分组,以检索唯一的出口RIF。将唯一的出口RIF转换为导入的D-VNI,并使用导入的D-VNI 封装分组。根据唯一的出口RIF转发封装的分组。According to embodiments described herein, there is also provided a method for data communication comprising, in a network device serving as a local virtual extensible local area network (VXLAN) tunnel endpoint (VTEP), in a local virtual routing and forwarding domain (VRF ) and remote VRFs, each of the local VRFs and each of the remote VRFs has a unique VXLAN identifier (VNI). The local VRF instance is created by the local VRF control program configured in the local VTEP. Import a downstream-VNI (D-VNI) for forwarding packets from the local VRF to the remote VTEP instead of the remote VRF configured in the local VTEP. A unique egress routing interface (RIF) convertible to the imported D-VNI is created and associated with one or more routing entries in the local VRF instance. Packets destined for remote VRFs are received by the packet processor of the local VTEP. The packet is looked up in one or more routing entries in the local VRF instance to retrieve a unique egress RIF. Convert the only egress RIF to an imported D-VNI and use the imported D-VNI to encapsulate the grouping. The encapsulated packets are forwarded according to the unique egress RIF.

根据本文描述的实施例,另外提供了一种用作本地虚拟可扩展局域网 (VXLAN)隧道端点(VTEP)的网络设备,该网络设备包括通信接口、第一处理器和分组处理器。通信接口与一个或更多个远程VTEP进行通信,本地VTEP和一个或更多个远程VTEP被分配相应的VXLAN标识符(VNI)。运行控制程序的第一处理器,该控制程序导入下游-VNI(D-VNI),以用于将分组从本地VTEP转发到远程VTEP,创建可转换为导入的D-VNI的唯一的出口路由接口(RIF),并将唯一的出口RIF与本地VTEP中的一个或更多个路由条目相关联。分组处理器接收发往远程VTEP的分组,在本地VTEP中的一个或更多个路由条目中查找分组,以检索唯一的出口RIF,将唯一的出口RIF转换为导入的D-VNI,用导入的D-VNI封装分组,并根据唯一的出口RIF转发封装的分组。According to embodiments described herein, there is additionally provided a network device for use as a local virtual extensible local area network (VXLAN) tunnel endpoint (VTEP), the network device comprising a communication interface, a first processor and a packet processor. The communication interface communicates with one or more remote VTEPs, the local VTEP and the one or more remote VTEPs are assigned corresponding VXLAN identifiers (VNIs). a first processor running a control program that imports a downstream-VNI (D-VNI) for use in forwarding packets from the local VTEP to the remote VTEP, creating a unique egress routing interface convertible to the imported D-VNI (RIF), and associate a unique egress RIF with one or more routing entries in the local VTEP. A packet processor receives a packet destined for a remote VTEP, looks up the packet in one or more routing entries in the local VTEP to retrieve a unique egress RIF, converts the unique egress RIF to an imported D-VNI, and uses the imported The D-VNI encapsulates the packet and forwards the encapsulated packet according to the unique egress RIF.

在一些实施例中,控制程序将本地VTEP的本地VNI导出到远程 VTEP,以用于由远程VTEP在将分组从远程VTEP转发到本地VTEP。控制程序进一步为本地VNI创建第二出口RIF,并将第二出口RIF与本地 VTEP中的一个或更多个第二路由条目相关联。分组处理器通过通信接口从远程VTEP接收发往本地VTEP的第二分组,第二分组由远程VTEP用导出的本地VNI封装,对第二分组进行解封装,在一个或更多个第二路由条目中查找解封装的分组,以检索第二出口RIF,以及根据第二出口RIF 转发第二分组。在其他实施例中,本地VTEP和一个或更多个远程VTEP 属于多站点拓扑中的不同的相应站点。在又一其他实施例中,本地VTEP 用作边界网关(BGW)VTEP,并且一个或更多个远程VTEP用作耦合到主机的叶VTEP,BGWVTEP和主机被分配公共虚拟路由和转发域(VRF)。In some embodiments, the control program exports the local VNI of the local VTEP to the remote VTEP for use by the remote VTEP in forwarding packets from the remote VTEP to the local VTEP. The control program further creates a second egress RIF for the local VNI and associates the second egress RIF with one or more second routing entries in the local VTEP. The packet processor receives a second packet destined for the local VTEP from the remote VTEP through the communication interface, the second packet is encapsulated by the remote VTEP with the derived local VNI, the second packet is decapsulated, and the one or more second routing entries The decapsulated packet is looked up in to retrieve the second egress RIF, and the second packet is forwarded according to the second egress RIF. In other embodiments, the local VTEP and the one or more remote VTEPs belong to different respective sites in the multi-site topology. In yet other embodiments, the local VTEP acts as a border gateway (BGW) VTEP and one or more remote VTEPs act as leaf VTEPs coupled to the host, the BGWVTEP and the host are assigned a common virtual routing and forwarding domain (VRF) .

在一个实施例中,本地VTEP和远程VTEP被分配不同的相应VNI。在另一实施例中,网络设备包括在包括多个互连网络设备的通信网络中,并且网络设备用作通信网络中的叶VTEP或BGW VTEP。In one embodiment, the local VTEP and the remote VTEP are assigned different corresponding VNIs. In another embodiment, the network device is included in a communication network comprising a plurality of interconnected network devices, and the network device acts as a leaf VTEP or a BGW VTEP in the communication network.

根据本文描述的实施例,还提供了一种用于数据通信的方法,包括:在用作本地虚拟可扩展局域网(VXLAN)隧道端点(VTEP)的网络设备中,与一个或更多个远程VTEP进行通信,本地VTEP和一个或更多个远程VTEP被分配相应的VXLAN标识符(VNI)。由本地VTEP上运行的控制程序导入下游-VNI(D-VNI),以用于将分组从本地VTEP转发到远程VTEP。创建可转换为导入的D-VNI的唯一的出口路由接口(RIF),并且该唯一的出口RIF与本地VTEP中的一个或更多个路由条目相关联。由本地VTEP的分组处理器接收发往远程VTEP的分组。在本地VTEP中的一个或更多个路由条目中查找分组,以检索唯一的出口RIF。将唯一的出口RIF转换为导入的D-VNI,并使用导入的D-VNI封装分组。根据唯一的出口RIF转发封装的分组。According to the embodiments described herein, there is also provided a method for data communication, comprising: communicating with one or more remote VTEPs in a network device serving as a local Virtual Extensible Local Area Network (VXLAN) tunnel endpoint (VTEP) To communicate, the local VTEP and one or more remote VTEPs are assigned corresponding VXLAN identifiers (VNIs). A downstream-VNI (D-VNI) is imported by a control program running on the local VTEP for forwarding packets from the local VTEP to the remote VTEP. A unique egress routing interface (RIF) convertible to the imported D-VNI is created and associated with one or more routing entries in the local VTEP. Packets destined for the remote VTEP are received by the packet processor of the local VTEP. The packet is looked up in one or more routing entries in the local VTEP to retrieve a unique egress RIF. Convert the only egress RIF to an imported D-VNI and use the imported D-VNI to encapsulate the grouping. The encapsulated packets are forwarded according to the unique egress RIF.

根据本文描述的实施例,还提供了一种用于虚拟路由和转发域(VRF) 之间通信的方法,该方法包括:在本地VXLAN隧道端点(VTEP)中配置的本地VRF和在远程VTEP中但不在本地VTEP中配置的远程VRF之间通信。由本地VTEP导入与远程VRF相关联的下游VXLAN标识符(D-VNI),用于将分组从本地VRF转发到远程VRF,并创建可转换为导入的D-VNI 的唯一的出口路由接口(RIF)。当本地VTEP一接收到发往远程VRF的分组时,基于该分组检索的唯一的出口RIF被转换为导入的D-VNI,并且该分组用导入的D-VNI封装。根据唯一的出口RIF转发封装的分组。According to embodiments described herein, there is also provided a method for communication between virtual routing and forwarding domains (VRFs), the method comprising: a local VRF configured in a local VXLAN tunnel endpoint (VTEP) and a remote VTEP But not between remote VRFs configured in the local VTEP. The local VTEP imports the downstream VXLAN identifier (D-VNI) associated with the remote VRF for forwarding packets from the local VRF to the remote VRF and creates a unique egress routing interface (RIF ). When a packet destined for a remote VRF is received by the local VTEP, the unique egress RIF retrieved based on the packet is converted to an imported D-VNI, and the packet is encapsulated with the imported D-VNI. The encapsulated packets are forwarded according to the unique egress RIF.

根据本文描述的实施例,还提供了一种用于在不同路由域的站点之间进行通信的方法,该方法包括:在本地VXLAN隧道端点(VTEP)和属于不同的相应路由域的远程VTEP之间进行通信。由本地VTEP导入下游VNI (D-VNI),用于将分组从本地VTEP转发到远程VTEP,并创建可转换为导入的D-VNI的唯一的出口路由接口(RIF)。当本地VTEP一接收到发往远程VTEP的分组时,基于该分组检索的唯一的出口RIF被转换为导入的D-VNI,并且该分组用导入的D-VNI封装。根据唯一的出口RIF转发封装的分组。According to embodiments described herein, there is also provided a method for communicating between sites of different routing domains, the method comprising: communicating between a local VXLAN tunnel endpoint (VTEP) and a remote VTEP belonging to a different corresponding routing domain communicate between. Import a downstream VNI (D-VNI) from the local VTEP to forward packets from the local VTEP to the remote VTEP and create a unique egress routing interface (RIF) that can be converted to the imported D-VNI. When the local VTEP receives a packet destined for the remote VTEP, the unique egress RIF retrieved based on the packet is converted to an imported D-VNI, and the packet is encapsulated with the imported D-VNI. The encapsulated packets are forwarded according to the unique egress RIF.

附图说明Description of drawings

下面将对实施例以及附图进行详细描述,以更充分地理解这些和其他实施例,其中:For a more complete understanding of these and other embodiments, the embodiments are described in detail below along with the accompanying drawings, in which:

图1是根据本文描述的实施例示意性地示出提供共享服务的计算机系统的框图;FIG. 1 is a block diagram schematically illustrating a computer system for providing sharing services according to an embodiment described herein;

图2是根据本文描述的实施例示意性地示出用作虚拟隧道端点(VTEP) 的网络设备的框图;Figure 2 is a block diagram schematically illustrating a network device serving as a virtual tunnel endpoint (VTEP) according to embodiments described herein;

图3A和3B是根据本文描述的实施例示意性地示出应用于非封装和封装分组的VTEP处理和转发的图;3A and 3B are diagrams schematically illustrating VTEP processing and forwarding applied to non-encapsulated and encapsulated packets, according to embodiments described herein;

图4是根据本文描述的实施例示意性地示出用于配置VTEP以与远程 VTEP通信的方法的流程图;Figure 4 is a flowchart schematically illustrating a method for configuring a VTEP to communicate with a remote VTEP, according to embodiments described herein;

图5是根据本文描述的实施例示意性地示出具有集线器-轮辐拓扑的计算机系统的框图;以及5 is a block diagram schematically illustrating a computer system with a hub-and-spoke topology, according to embodiments described herein; and

图6是根据本文描述的实施例示意性地示出多站点计算机系统的图。Figure 6 is a diagram schematically illustrating a multi-site computer system, according to embodiments described herein.

具体实施方式detailed description

概述overview

本文描述的实施例提供了用于虚拟可扩展局域网(VXLAN)隧道的改进方法和系统,该隧道具有跨不同路由域的下游VXLAN标识符(D-VNIs) 封装。Embodiments described herein provide improved methods and systems for virtual extensible local area network (VXLAN) tunnels with encapsulation of downstream VXLAN identifiers (D-VNIs) across different routing domains.

各种通信网络被划分为多个路由域,这些路由域通常彼此隔离,例如出于安全原因。对于隔离的路由域,允许流量在每个路由域内流动,但不允许在不同的路由域之间流动。例如,路由域可能与多站点计算机系统中的站点或虚拟路由和转发域(VRF)相关联。Various communication networks are divided into routing domains, which are usually isolated from each other, eg for security reasons. For isolated routing domains, traffic is allowed to flow within each routing domain, but not between different routing domains. For example, a routing domain might be associated with a site or a virtual routing and forwarding domain (VRF) in a multi-site computer system.

支持VXLAN的网络设备称为虚拟隧道端点(VTEP)。VTEP封装 VXLAN流量,并在流量离开VXLAN隧道时解封装该流量。A network device that supports VXLAN is called a virtual tunnel endpoint (VTEP). VTEP encapsulates VXLAN traffic and decapsulates the traffic as it leaves the VXLAN tunnel.

在VXLAN中,每个VXLAN隧道通常被分配唯一的开放系统互连 (OSI)第三层(L3)VXLAN标识符(VNI)。在下面的描述中,为了简洁起见,术语“L3VNI”也被简单地称为“VNI”。可以以各种方式在通信网络中分配VNI。例如,在多VRF配置中,不同VRF通常被分配不同的相应VNI,并且在多站点配置中,属于公共站点的网络设备可以被分配相同或不同的VNI。不同的站点通常属于不同的管理域。In VXLAN, each VXLAN tunnel is typically assigned a unique Open Systems Interconnection (OSI) Layer 3 (L3) VXLAN Identifier (VNI). In the following description, the term "L3VNI" is also simply referred to as "VNI" for the sake of brevity. VNIs can be allocated in a communication network in various ways. For example, in a multi-VRF configuration, different VRFs are typically assigned different corresponding VNIs, and in a multi-site configuration, network devices belonging to a common site may be assigned the same or different VNIs. Different sites usually belong to different administrative domains.

在一些应用中,例如,通信网络需要支持与各个站点或VRF相关联的不同路由域之间的通信。例如,可以通过在不同路由域之间导入和导出某些VNI来实现域间通信。从另一个路由域导入用于建立VXLAN隧道的 VNI称为“下游-VNI”(D-VNI)。In some applications, for example, a communication network needs to support communication between different routing domains associated with various sites or VRFs. For example, inter-domain communication can be achieved by importing and exporting certain VNIs between different routing domains. A VNI imported from another routing domain for establishing a VXLAN tunnel is called a "downstream-VNI" (D-VNI).

在一些实施例中,网络设备中的分组转发基于预先排序的路由条目,其中每个路由条目与相应的出口路由器接口(RIF)相关联。原则上,与域间VXLAN隧道相关的路由条目可以为导入的D-VNI存储显式的D-VNI 信息。然而,这种方法通常成本高昂,甚至不可行,因为在大量路由条目上存储显式D-VNI信息可能会占用大量存储空间。例如,假设每个路由条目有10个字节的D-VNI信息,超过10000个路由条目的存储空间总计为 100KB。例如,在硬件实现中的另一个要求是,需要硬件来支持在路由条目中存储显式D-VNI信息。In some embodiments, packet forwarding in a network device is based on pre-ordered routing entries, where each routing entry is associated with a corresponding egress router interface (RIF). In principle, routing entries related to inter-domain VXLAN tunnels can store explicit D-VNI information for imported D-VNIs. However, this approach is usually cost-prohibitive or even infeasible, since storing explicit D-VNI information on a large number of routing entries may consume a large amount of storage space. For example, assuming each routing entry has 10 bytes of D-VNI information, the total storage space for more than 10,000 routing entries is 100KB. For example, another requirement in hardware implementation is that hardware is needed to support storing explicit D-VNI information in routing entries.

在一些实施例中,提供了一种用D-VNI支持VXLAN封装的有效方案。在高效方案中,为相应导入的D-VNI创建唯一的出口RIF,并与相关路由条目相关联。In some embodiments, an efficient solution for supporting VXLAN encapsulation with D-VNI is provided. In an efficient scenario, a unique egress RIF is created for the corresponding imported D-VNI and associated with the relevant routing entry.

考虑例如在多站点计算机系统中用作本地虚拟可扩展局域网 (VXLAN)隧道端点(VTEP)的网络设备的实施例。该网络设备包括通信接口、第一处理器和分组处理器。通信接口与一个或更多个远程VTEP 进行通信,其中本地VTEP和一个或更多个远程VTEP被分配相应的 VXLAN标识符(VNI)。第一个处理器运行控制程序,该程序导入(例如,从远程VTEP或从用户导入)下游-VNI(D-VNI)以用于将分组从本地VTEP 转发到远程VTEP,创建可转换为导入的D-VNI的唯一的出口路由接口 (RIF),并将唯一的出口RIF与本地VTEP中的一个或更多个路由条目相关联。分组处理器接收发往远程VTEP的分组,在本地VTEP中的一个或更多个路由条目中查找分组以检索唯一的出口RIF,将唯一的出口RIF 转换为导入的D-VNI,用导入的D-VNI封装分组,并根据唯一的出口RIF 转发封装的分组。Consider an embodiment of a network device acting as a local virtual extensible local area network (VXLAN) tunnel endpoint (VTEP), for example, in a multi-site computer system. The network device includes a communication interface, a first processor and a packet processor. The communication interface communicates with one or more remote VTEPs, where the local VTEP and the one or more remote VTEPs are assigned respective VXLAN identifiers (VNIs). The first processor runs a control program that imports (for example, from a remote VTEP or from a user) a downstream-VNI (D-VNI) for forwarding packets from the local VTEP to the remote VTEP, creating D-VNI's unique egress routing interface (RIF), and associate the unique egress RIF with one or more routing entries in the local VTEP. A packet processor receives a packet destined for a remote VTEP, looks up the packet in one or more routing entries in the local VTEP to retrieve a unique egress RIF, converts the unique egress RIF to an imported D-VNI, and uses the imported D-VNI - The VNI encapsulates the packet and forwards the encapsulated packet according to the unique egress RIF.

在一些实施例中,控制程序将本地VTEP的本地VNI导出到远程 VTEP,以用于由远程VTEP在将分组从远程VTEP转发到本地VTEP时,为本地VNI创建出口RIF,并将该出口RIF与本地VTEP中的一个或更多个第二路由条目相关联。响应于经由通信接口从远程VTEP接收,由远程 VTEP用导出的本地VNI封装并且发往本地VTEP的第二分组,分组处理器解封装第二分组,在一个或更多个第二路由条目中查找解封装的分组以检索第二出口RIF,以及根据第二出口RIF转发第二分组。In some embodiments, the control program exports the local VNI of the local VTEP to the remote VTEP for use by the remote VTEP in forwarding packets from the remote VTEP to the local VTEP, creates an egress RIF for the local VNI, and links the egress RIF to the One or more second routing entries in the local VTEP are associated. In response to receiving a second packet from the remote VTEP via the communication interface, encapsulated by the remote VTEP with the derived local VNI and destined for the local VTEP, the packet processor decapsulates the second packet, looks in the one or more second routing entries The decapsulated packet is retrieved to retrieve a second egress RIF, and the second packet is forwarded according to the second egress RIF.

在一些实施例中,本地VTEP和一个或更多个远程VTEP属于多站点拓扑中的不同的相应站点,例如,多站点数据中心。在一些实施例中,本地VTEP用作边界网关(BGW)VTEP,而一个或更多个远程VTEP用作被耦合到主机的叶VTEP,其中BGW VTEP和主机被分配了公共VRF。In some embodiments, the local VTEP and the one or more remote VTEPs belong to different respective sites in a multi-site topology, eg, a multi-site data center. In some embodiments, a local VTEP acts as a border gateway (BGW) VTEP, while one or more remote VTEPs act as leaf VTEPs coupled to the host, where the BGW VTEP and the host are assigned a common VRF.

在本公开的技术中,提供了一种用D-VNI支持VXLAN隧道的低存储方案。为此,将为相应导入的D-VNI创建唯一的RIF,并将其与相关的路由条目相关联。唯一的出口RIF中的每一个可与多个路由条目相关联,但通常仅存储在网络设备中一次,而与在该网络设备中配置的VRF的数量无关。由于导入的D-VNI的数量通常相对较少,因此唯一的出口RIF消耗的存储空间非常小。In the disclosed technology, a low-storage solution of using D-VNI to support VXLAN tunnel is provided. For this, a unique RIF will be created for the corresponding imported D-VNI and associated with the relevant routing entry. Each of the unique egress RIFs may be associated with multiple routing entries, but is typically only stored once in a network device, regardless of the number of VRFs configured in that network device. Since the number of imported D-VNIs is usually relatively small, the only export RIF consumes very little storage space.

本公开的低存储方案可用于各种应用,包括(但不限于)提供共享服务的多VRF通信系统、具有集线器-轮辐拓扑的多VRF通信系统和多站点通信系统。The low memory scheme of the present disclosure can be used in various applications including, but not limited to, multi-VRF communication systems providing shared services, multi-VRF communication systems with hub-and-spoke topologies, and multi-site communication systems.

系统说明instructions

图1是根据本文描述的实施例示意性地示出提供共享服务的计算机系统20的框图。FIG. 1 is a block diagram schematically illustrating a computer system 20 for providing sharing services according to an embodiment described herein.

计算机系统20包括通过通信网络30为主机28A、28B和28C提供服务的服务主机24A和24B。通信网络30可以包括例如以太网。Computer system 20 includes service hosts 24A and 24B that provide services to hosts 28A, 28B, and 28C over communication network 30 . Communications network 30 may include, for example, Ethernet.

服务主机24A和24B属于由域名系统(DNS)VRF和存储VRF指定的路由域,它们被分配了相应VNI值20001和20002。主机28A、28B和 28C属于由表示为粉色、蓝色和紫色的相应VRF指定的不同路由域,这些 VRF被分配了相应的VNI值10001、10002和10003。Service hosts 24A and 24B belong to routing domains specified by Domain Name System (DNS) VRF and Storage VRF, which are assigned corresponding VNI values 20001 and 20002. Hosts 28A, 28B, and 28C belong to different routing domains specified by respective VRFs denoted pink, blue, and purple, which are assigned respective VNI values 10001, 10002, and 10003.

在本示例中,主机28A、28B和28C中的每一个从表示为DN1和DN2 的DNS主机24A接收DNS服务,并从表示为ST1和ST2的存储主机24B 接收存储服务。在其他实施例中,还可以使用其他类型的服务和/或其他数量的服务类型。In this example, each of hosts 28A, 28B, and 28C receives DNS service from DNS host 24A, denoted DN1 and DN2, and storage service from storage host 24B, denoted ST1 and ST2. In other embodiments, other types of services and/or other numbers of service types may also be used.

通信网络30包括多个互连网络设备,例如表示为L11…L32的叶交换机34、表示为S1和S2的主干交换机36以及表示为SL1和SL2的服务叶交换机38。为了简洁起见,服务叶交换机34在本文中也被称为“服务交换机”。The communication network 30 includes a plurality of interconnected network devices such as leaf switches 34 denoted L11...L32, spine switches 36 denoted S1 and S2, and serving leaf switches 38 denoted SL1 and SL2. For brevity, service leaf switches 34 are also referred to herein as "service switches."

在下面的描述中,叶交换机包括直接或间接耦合到一个或更多个主机的交换机。主机可以包括例如物理服务器和/或虚拟化数据中心环境中的虚拟机或服务器。In the following description, a leaf switch includes a switch that is directly or indirectly coupled to one or more hosts. Hosts may include, for example, physical servers and/or virtual machines or servers in a virtualized data center environment.

叶交换机34在一侧耦合到主机28A、28B和28C,在另一侧耦合到主干交换机36。例如,叶交换机L11耦合到粉色VRF中表示H11和H12的主机28A,以及蓝色VRF中表示H13和H14的主机28B。服务交换机SL1 和SL2在一侧耦合到DNS主机DN1和DN2以及存储主机ST1和ST2,在另一侧耦合到主干交换机36。Leaf switch 34 is coupled to hosts 28A, 28B, and 28C on one side and to spine switch 36 on the other side. For example, leaf switch L11 is coupled to host 28A denoted H11 and H12 in the pink VRF, and host 28B denoted H13 and H14 in the blue VRF. Service switches SL1 and SL2 are coupled to DNS hosts DN1 and DN2 and storage hosts ST1 and ST2 on one side and to spine switch 36 on the other side.

在计算机系统20中,叶、主干和服务交换机被分配相应的自主系统编号(ASN)。具体而言,叶交换机L11…L32被分配为ASN 65001…65006,主干交换机S1和S2分别被分配为ASN 65100和65101,服务交换机SL1 和SL2分别被分配为ASN 65201和65202。例如,可以使用ASN来指定路由目标(RTs),如下所述。In computer system 20, leaf, spine and service switches are assigned respective Autonomous System Numbers (ASNs). Specifically, leaf switches L11...L32 are assigned ASNs 65001...65006, spine switches S1 and S2 are assigned ASNs 65100 and 65101, respectively, and service switches SL1 and SL2 are assigned ASNs 65201 and 65202, respectively. For example, ASNs can be used to specify routing targets (RTs), as described below.

在一些实施例中,通信网络30包括以太网虚拟专用网(EVPN),其中网络设备中的至少一些用作VXLAN虚拟隧道端点(VTEP)。在后面的描述中,术语“网络设备”、“交换机”、“路由器”、“网关”和“VTEP”可以互换使用。In some embodiments, communication network 30 includes an Ethernet Virtual Private Network (EVPN), where at least some of the network devices function as VXLAN virtual tunnel endpoints (VTEPs). In the description that follows, the terms "network device", "switch", "router", "gateway" and "VTEP" are used interchangeably.

在一些实施例中,用作VTEP的网络设备通常为在该VTEP中提供的各个VRF创建VRF实例。在本示例中,根据耦合到叶交换机的主机的VRF,叶VTEP L11…L32中的每一个都配置有粉色、蓝色和紫色VRF中的两个 VRF。类似地,在本示例中,服务VTEPS SL1和SL2中的每一个都为其配置的VRF(例如,DNS和存储VRF)创建相应的VRF实例。In some embodiments, a network device acting as a VTEP typically creates VRF instances for each VRF provisioned in that VTEP. In this example, each of the leaf VTEPs L11...L32 is configured with two of the pink, blue, and purple VRFs, depending on the VRFs of the hosts coupled to the leaf switches. Similarly, in this example, each of service VTEPS SL1 and SL2 creates a corresponding VRF instance for its configured VRFs (eg, DNS and storage VRFs).

在一些实施例中,需要通信网络30来支持在不同VTEP中提供的不同VRF之间的VXLAN隧道。为此,VTEP可通过相互交换与不同VRF 相关联的VNI来建立VRF间VXLAN隧道。In some embodiments, the communication network 30 is required to support VXLAN tunneling between different VRFs provided in different VTEPs. To this end, the VTEP can establish an inter-VRF VXLAN tunnel by exchanging VNIs associated with different VRFs.

在服务到主机的方向上,服务VTEP SL1和SL2中的每一个都从每个叶VTEP导入叶VTEP中配置的每个VRF的D-VNI。然后,服务VTEP 使用从给定VRF的叶VTEP导入的D-VNI将发往给定VRF的分组封装在叶VTEP中。在主机到服务的方向上,L11…L32中的每个叶VTEP从每个服务VTEP SL1和SL2导入D-VNI。在本示例中,叶VTEP从服务VTEP 导入与DNS和存储VRF相对应的两个D-VNI。然后,叶VTEP使用针对给定VRF从服务VTEP导入的D-VNI将发往给定VRF的分组封装在服务 VTEP中。In the service-to-host direction, each of the service VTEPs SL1 and SL2 imports from each leaf-VTEP the D-VNI of each VRF configured in the leaf-VTEP. The serving VTEP then encapsulates packets destined for the given VRF in the leaf-VTEP using the D-VNI imported from the given VRF's leaf-VTEP. In the host-to-service direction, each leaf VTEP in L11...L32 imports the D-VNI from each service VTEP SL1 and SL2. In this example, the leaf VTEP imports two D-VNIs corresponding to DNS and storage VRFs from the service VTEP. The leaf VTEP then encapsulates packets destined for the given VRF in the serving VTEP using the D-VNI imported from the serving VTEP for the given VRF.

如上所述,在VTEP中配置的VRF具有包括路由条目的相应转发表。每个路由条目与(例如指向)相应的出口RIF相关联,VTEP使用该出口 RIF进行分组转发。在一些实施例中,VTEP为每个导入的D-VNI创建唯一的出口RIF,并将唯一的出口RIF与VTEP中配置的VRF中的相关路由条目相关联。As mentioned above, a VRF configured in a VTEP has a corresponding forwarding table that includes routing entries. Each routing entry is associated with (eg points to) a corresponding egress RIF, which is used by the VTEP for packet forwarding. In some embodiments, the VTEP creates a unique egress RIF for each imported D-VNI and associates the unique egress RIF with the relevant routing entry in the VRF configured in the VTEP.

在一些实施例中,通信网络30支持使用带有D-VNI的VXLAN封装在不同叶VTEP中的不同VRF之间进行通信。例如,L11可以从L21、L22、 L31和/或L32为其粉色VRF导入与紫色VRF相关联的D-VNI。L11为导入的D-VNI创建唯一的RIF,并将该唯一的出口RIF与经由本地粉色VRF 实例中的L21…L32之一发送到紫色VRF的路由条目相关联。然后,L11 使用导入的D-VNI来封装H11发送到H22的分组,例如经由L11、S1和 L22。In some embodiments, the communication network 30 supports communication between different VRFs in different leaf VTEPs using VXLAN encapsulation with D-VNI. For example, L11 can import a D-VNI associated with a purple VRF for its pink VRF from L21, L22, L31 and/or L32. L11 creates a unique RIF for the imported D-VNI and associates this unique egress RIF with the route entry sent to the purple VRF via one of the L21...L32 in the local pink VRF instance. L11 then uses the imported D-VNI to encapsulate the packets that H11 sends to H22, eg via L11, S1 and L22.

在一些实施例中,网络设备中的控制程序使用路由目标(RT)导入和导出路由。RT是BGP协议中用于指定和控制路由导入/导出方向和内容的构造。在一些实施例中,RT用于控制VTEP之间路由/VNI的导入和导出。In some embodiments, a control program in a network device imports and exports routes using route targets (RTs). RT is a structure used in the BGP protocol to specify and control the direction and content of route import/export. In some embodiments, the RT is used to control the import and export of routes/VNIs between VTEPs.

在一些实施例中,VTEP中的VRF实例包括导入RT列表和导出RT 列表。导出列表中的RT附加到VTEP向其他VTEP发布的每条路由。当远程VTEP一接收带有附加RT的发布的路由时,远程VTEP将RT与其相应VRF实例中定义的导入列表进行比较。如果附加的RT中的任何RT与 VRF实例的导入列表相匹配,则远程VTEP会将发布的的路由导入该VRF 实例。当附加到发布的路由的所有RT都与VRF实例的导入列表不匹配时,远程VTEP会忽略将发布的路由导入该VRF实例。In some embodiments, a VRF instance in a VTEP includes an import RT list and an export RT list. The RTs in the export list are appended to every route that a VTEP advertises to other VTEPs. When a remote VTEP receives an advertised route with an attached RT, the remote VTEP compares the RT to the import list defined in its corresponding VRF instance. If any of the attached RTs match the VRF instance's import list, the remote VTEP will import the advertised routes into that VRF instance. When all RTs attached to an advertised route do not match the VRF instance's import list, the remote VTEP ignores importing the advertised route into that VRF instance.

在一些实施例中,使用带有D-VNI的VXLAN隧道访问计算机系统 20中的共享服务涉及以下阶段:In some embodiments, accessing shared services in computer system 20 using a VXLAN tunnel with D-VNI involves the following stages:

·叶VTEP L11…L32中的每一个为其配置的VRF中的每一个(例如,在粉色、蓝色和紫色VRF中)导入RT,其中服务VTEP SL1和SL2导出与其共享服务VRF对应的路由。例如,如果服务VTEP导出自动派生的RT,则叶VTEP导入RT*:20001和*:20002。这些RT中的通配符“*”表示分别分配给SL1和SL2的自主系统号(ASN)65201和65202。可替代地,可以使用显式ASN指定RT,而不是使用通配符表示法。• Each of the leaf VTEPs L11...L32 imports RTs to each of its configured VRFs (eg, in pink, blue and purple VRFs), where serving VTEPs SL1 and SL2 export routes corresponding to their shared serving VRFs. For example, if the service VTEP exports an auto-derived RT, the leaf VTEP imports RT *:20001 and *:20002. The wildcard "*" in these RTs indicates the Autonomous System Number (ASN) 65201 and 65202 assigned to SL1 and SL2 respectively. Alternatively, an RT can be specified using an explicit ASN instead of wildcard notation.

·SL1和SL2中的每一个都为其配置的VRF(DNS和存储VRF)导入由叶VTEP为粉色、蓝色和紫色VRF宣布的RT。在本示例中,SL1和 SL2中的每一个都导入RT*:10001、*:10002和*:10003。可替代地,可以在RT中使用叶VTEP的显式ASN,而不是通配符表示法。• Each of SL1 and SL2 imports the RTs announced by the leaf VTEPs for the pink, blue and purple VRFs for its configured VRFs (DNS and Storage VRFs). In this example, SL1 and SL2 each import RT *:10001, *:10002, and *:10003. Alternatively, explicit ASNs of leaf VTEPs can be used in RT instead of wildcard notation.

·基于导入的路由,叶VTEP为相应的D-VNIs 20001和20002创建唯一的出口RIF。在叶VTEP中提供的VRF的路由表中,叶VTEP进一步将这些唯一的出口RIF与发往DNS和存储主机的路由条目相关联。• Based on the imported routes, the leaf VTEP creates unique egress RIFs for the corresponding D-VNIs 20001 and 20002. In the routing table of the VRF provided in the leaf VTEP, the leaf VTEP further associates these unique egress RIFs with routing entries destined for DNS and storage hosts.

·基于从叶VTEP导入的路由,SL1和SL2中的每一个都为相应的D-VNI 10001、10002和10003创建唯一的出口RIF。服务VTEP在DNS和存储VRF的相应路由表中,进一步将这些唯一的出口RIF与发往主机 H11…H34的路由条目相关联。• Each of SL1 and SL2 creates a unique egress RIF for the corresponding D-VNI 10001 , 10002 and 10003 based on the routes imported from the leaf VTEP. The serving VTEP further associates these unique egress RIFs with routing entries destined for hosts H11...H34 in DNS and in the corresponding routing tables of the storage VRF.

·考虑从源主机(例如H11(IP 192.168.51.11))发送到DNS主机(例如DN1(IP200.11.3.1))的分组。叶VTEP(L11或L12)从H11接收分组,用D-VNI 20001封装分组,并将封装的分组隧道传输到SL1 (IP 10.150.3.1)或SL2(IP 10.150.3.2)。SL1或SL2解封装分组,并基于所接收的分组中的D-VNI(20001)将解封装的分组路由到目标DNS VRF中的DN1。SL1或SL2通过基于接收分组中的D-VNI选择DNS VRF的路由表来执行最后一次路由。相反,SL1或SL2从主机DN1接收分组,并用H11所属的粉色VRF的D-VNI 10001封装该分组。SL1 或SL2将封装的分组通过隧道传输到L11或L12,L11或L12使用粉色 VRF的路由表来解封装分组,并路由解封装的分组。• Consider a packet sent from a source host (eg H11 (IP 192.168.51.11)) to a DNS host (eg DN1 (IP 200.11.3.1)). The leaf VTEP (L11 or L12) receives the packet from H11, encapsulates the packet with D-VNI 20001, and tunnels the encapsulated packet to SL1 (IP 10.150.3.1) or SL2 (IP 10.150.3.2). SL1 or SL2 decapsulates the packet and routes the decapsulated packet to DN1 in the target DNS VRF based on the D-VNI (20001) in the received packet. SL1 or SL2 performs last-pass routing by selecting the routing table of the DNS VRF based on the D-VNI in the received packet. Instead, SL1 or SL2 receives a packet from host DN1 and encapsulates the packet with D-VNI 10001 of the pink VRF to which H11 belongs. SL1 or SL2 tunnels the encapsulated packet to L11 or L12, and L11 or L12 uses the routing table of the pink VRF to decapsulate the packet and route the decapsulated packet.

在一些实施例中,叶VTEP 34或服务VTEP 38使用多机箱链路聚合 (MLAG)配置连接到本地主机。在这样的实施例中,对等VTEP对主机绑定来说似乎是单个逻辑网络设备。例如,叶VTEP L11和L12可以配置为主机H11、H12、H13和H14中的每一个的MLAG对等方。类似地,服务VTEPS SL1和SL2可以被配置为服务主机DN1、DN2、ST1和ST2中的每一个的MLAG对等方。In some embodiments, leaf VTEP 34 or service VTEP 38 connects to the local host using a multi-chassis link aggregation (MLAG) configuration. In such an embodiment, the peer VTEP appears to the host binding as a single logical network device. For example, leaf VTEPs L11 and L12 may be configured as MLAG peers for each of hosts H11, H12, H13, and H14. Similarly, serving VTEPS SL1 and SL2 may be configured as MLAG peers for each of serving hosts DN1, DN2, ST1 and ST2.

在一些实施例中,通信网络30支持等价多径(ECMP)路由协议。通常,ECMP可用于快速故障切换恢复。例如,ECMP适用于EVPN多主(MH) 配置,例如具有CLOS网络拓扑的数据中心。在ECMP中,源VTEP通过多个相应的ECMP路径将分组转发到多个目的地VTEP,其中源VTEP使用不同的相应D-VNI封装通过不同的ECMP路径转发的分组。In some embodiments, communication network 30 supports the Equal Cost Multi-Path (ECMP) routing protocol. Typically, ECMP can be used for fast failover recovery. For example, ECMP is suitable for EVPN multi-home (MH) configurations, such as data centers with CLOS network topologies. In ECMP, a source VTEP forwards packets to multiple destination VTEPs over multiple corresponding ECMP paths, where the source VTEP encapsulates the packets forwarded over different ECMP paths using different corresponding D-VNIs.

用作VTEP的网络设备Network device used as VTEP

图2是根据本文描述的实施例示意性地示出用作虚拟隧道端点(VTEP) 的网络设备50的框图。例如,可以使用网络设备50来实现图1的计算机系统20中的叶VTEP L11…L32和服务VTEP SL1和SL2,以及下面图5 的计算机系统300中的叶VTEP L11…L22和集线器VTEP SL1和SL2。Fig. 2 is a block diagram schematically illustrating a network device 50 serving as a virtual tunnel endpoint (VTEP) according to embodiments described herein. For example, the network device 50 can be used to implement the leaf VTEP L11...L32 and the service VTEP SL1 and SL2 in the computer system 20 of FIG. .

网络设备50包括耦合到网络接口56的分组处理器54,该网络接口 56使用端口58连接到通信网络(例如,图1的通信网络30)。每个端口 58可以用作传入分组的输入端口、传出分组的输出端口或传入和传出分组的组合端口。分组处理器54通常处理实时分组处理和转发。Network device 50 includes a packet processor 54 coupled to a network interface 56 that is connected to a communication network (e.g., communication network 30 of FIG. 1) using port 58. Each port 58 can be used as an input port for incoming packets, an output port for outgoing packets, or a combined port for incoming and outgoing packets. Packet processor 54 typically handles real-time packet processing and forwarding.

网络设备50还包括通用处理器60,例如中央处理单元(CPU)和可由CPU 60和分组处理器54访问的存储器62。CPU 60运行控制平面程序 64,该程序处理网络设备的脱机控制和供应任务。在一些实施例中,控制平面程序64(或其一部分)包括网络操作系统(NOS)65,例如

Figure RE-GDA0003813230200000112
Figure RE-GDA0003813230200000111
Cumulus Linux NOS。为简洁起见,控制平面程序64在本文中也简称为“控制程序”。Network device 50 also includes a general-purpose processor 60 , such as a central processing unit (CPU), and memory 62 accessible by CPU 60 and packet processor 54 . CPU 60 runs control plane programs 64, which handle off-line control and provisioning tasks of network devices. In some embodiments, the control plane program 64 (or a portion thereof) includes a network operating system (NOS) 65, such as
Figure RE-GDA0003813230200000112
Figure RE-GDA0003813230200000111
Cumulus Linux NOS. For the sake of brevity, the control plane program 64 is also simply referred to as "control program" herein.

在一些实施例中,控制程序64在存储器62中创建一个或更多个VRF 实例66,每个VRF实例对应于网络设备50中提供的VRF。在一个实施例中,VRF实例存储各种类型的信息,例如:分配给网络设备的自身的VNI 70、一个或更多个导入的D-VNI 72和一个或更多个本地VNI 74(网络设备导出)。在域间VXLAN隧道中,VTEP 50使用从远程VTEP导入的D-VNI 来封装发往远程VTEP的分组。远程VTEP使用从VTEP 50接收的导出的本地VNI 74作为D-VNI来封装发往VTEP 50的分组。导出的本地VNI 74 可以包括例如与自己的VNI 70相同的值。In some embodiments, control program 64 creates one or more VRF instances 66 in memory 62 , each VRF instance corresponding to a VRF provided in network device 50 . In one embodiment, a VRF instance stores various types of information, such as: its own VNI 70 assigned to a network device, one or more imported D-VNIs 72, and one or more local VNIs 74 (network device export). In the inter-domain VXLAN tunnel, VTEP 50 uses the D-VNI imported from the remote VTEP to encapsulate packets destined for the remote VTEP. The remote VTEP encapsulates packets destined for the VTEP 50 using the derived local VNI 74 received from the VTEP 50 as a D-VNI. The derived local VNI 74 may include, for example, the same values as the own VNI 70 .

VRF实例66还包括转发信息库(FIB)76,其包括多个路由条目78。在一些实施例中,FIB在硬件中实现,但由控制平面程序64控制。在一些实施例中,分组处理器54在FIB的路由条目中查找分组,以找到指定分组应如何转发的路由条目。在一个实施例中,FIB 76中的分组查找通常基于分组报头中的信息,例如IP地址和前缀。VRF instance 66 also includes a forwarding information base (FIB) 76 that includes a number of routing entries 78 . In some embodiments, the FIB is implemented in hardware, but controlled by the control plane program 64 . In some embodiments, packet processor 54 looks up the packet in the routing entries of the FIB to find a routing entry that specifies how the packet should be forwarded. In one embodiment, packet lookups in FIB 76 are generally based on information in packet headers, such as IP addresses and prefixes.

在本示例中,路由条目至少包括出口路由接口(RIF)和下一跳信息。路线条目还可以存储供应商特定的信息。出口RIF包括表示可路由接口的逻辑接口,该可路由接口可包括物理端口、子接口、交换机虚拟接口(SVI)、 L3VNI或任何其他合适类型的接口。在一些实施例中,VNI或D-VNI可从出口RIF派生并用于VXLAN封装。In this example, the routing entry includes at least the egress routing interface (RIF) and next hop information. Route entries can also store vendor-specific information. An egress RIF includes a logical interface representing a routable interface, which may include a physical port, sub-interface, switch virtual interface (SVI), L3VNI, or any other suitable type of interface. In some embodiments, a VNI or D-VNI may be derived from the egress RIF and used for VXLAN encapsulation.

在一个实施例中,VTEP 50将出口RIF存储在存储器62中的RIF表 80中。在本实施例中,FIB 76中的路由条目78指向RIF表中的各个出口 RIF,其中多个不同的路由条目可以指向公共出口RIF。In one embodiment, VTEP 50 stores egress RIFs in RIF table 80 in memory 62. In this embodiment, routing entries 78 in FIB 76 point to individual egress RIFs in the RIF table, where multiple different routing entries may point to a common egress RIF.

在一些实施例中,VTEP 50为每个导入的D-VNI创建唯一的出口RIF,并将该唯一的出口RIF存储在RIF表80中。在一些实施例中,VTEP 50 还为每个本地VNI 74创建唯一的出口RIF,并将该唯一的出口RIF存储在 RIF表80中。导出的本地VNI与为本地VNI创建的相同出口RIF相关联。In some embodiments, VTEP 50 creates a unique egress RIF for each imported D-VNI and stores the unique egress RIF in RIF table 80 . In some embodiments, VTEP 50 also creates a unique egress RIF for each local VNI 74 and stores the unique egress RIF in RIF table 80. An exported local VNI is associated with the same egress RIF created for the local VNI.

路由条目78中的下一跳信息通常指定要沿到目的地的路径遍历的下一网络设备的IP地址。The next hop information in routing entry 78 typically specifies the IP address of the next network device to be traversed along the path to the destination.

在一些实施例中,控制程序64为每个导入的D-VNI和每个本地VNI (除了唯一的出口RIF之外)创建唯一转发标识符(FID),其中FID映射到该唯一的出口RIF的导入的D-VNI中。在这些实施例中,FIB 76提供指向出口RIF的路由入口,该出口RIF又指向映射到出口RIF的导入D-VNI 的FID。在一个实施例中,分组处理器使用操作链为分组导出导入的D-VNI: FIB查找->出口RIF->FID->导入的D-VNI。由于每个导入的D-VNI仅被分配一个FID,因此FID占用的存储区域很少。In some embodiments, control program 64 creates a unique forwarding identifier (FID) for each imported D-VNI and each native VNI (except for the unique egress RIF), where the FID maps to the unique egress RIF's Imported D-VNI. In these embodiments, FIB 76 provides a routing entry pointing to an egress RIF, which in turn points to the FID of the importing D-VNI mapped to the egress RIF. In one embodiment, the packet processor exports the imported D-VNI for the packet using a chain of operations: FIB lookup -> egress RIF -> FID -> imported D-VNI. Since each imported D-VNI is assigned only one FID, the storage area occupied by the FID is very small.

在一些实施例中,VTEP 50包括网关协议84的一个或更多个实例,例如边界网关协议(BGP)。例如,VTEP 50可以为在VTEP中配置的每个VRF分配专用BGP实例。在一些实施例中,VTEP 50使用BGP 84与其他VTEP交换诸如VNI和RTs之类的路由信息。In some embodiments, VTEP 50 includes one or more instances of gateway protocol 84, such as Border Gateway Protocol (BGP). For example, VTEP 50 may allocate a dedicated BGP instance for each VRF configured in the VTEP. In some embodiments, VTEP 50 uses BGP 84 to exchange routing information such as VNIs and RTs with other VTEPs.

在一些实施例中,控制程序64在访问控制列表(ACL)中的转发规则中规定一个或更多个路由条目。在这些实施例中,分组处理器54通过将分组与ACL中转发规则之一相匹配来查找分组。In some embodiments, control program 64 specifies one or more routing entries in forwarding rules in an access control list (ACL). In these embodiments, packet processor 54 looks up the packet by matching the packet to one of the forwarding rules in the ACL.

用作VTEP的网络设备中的分组处理Packet processing in a network device used as a VTEP

图3A和3B是根据本文描述的实施例示意性地示出应用于非封装和封装分组的VTEP处理和转发的图。3A and 3B are diagrams schematically illustrating VTEP processing and forwarding applied to non-encapsulated and encapsulated packets, according to embodiments described herein.

图3A描绘分组处理器100中的处理。例如,可以由VTEP 50的分组处理器54执行相同或类似的处理。FIG. 3A depicts processing in packet processor 100 . For example, the same or similar processing may be performed by packet processor 54 of VTEP 50 .

分组处理器100接收没有封装的输入分组104。在计算系统20中,输入分组104例如可以来自主机28A、28B或28C、诸如DNS主机24A(DN1 或DN2)或存储主机24B(ST1或ST2)之类的服务主机。在本示例中,输入分组104发往未在分组处理器100的VETP中配置的VRF,因此需要用合适的导入的D-VNI封装。Packet processor 100 receives input packets 104 without encapsulation. In computing system 20, incoming packet 104 may be from, for example, host 28A, 28B, or 28C, a service host such as DNS host 24A (DN1 or DN2) or storage host 24B (ST1 or ST2). In this example, the incoming packet 104 is destined for a VRF that is not configured in the VETP of the packet processor 100 and therefore needs to be encapsulated with a suitable imported D-VNI.

在查找级106,分组处理器100识别输入分组来自的VRF,并在所识别的VRF的FIB(76)中查找输入分组。例如,假设输入分组源自粉色 VEF的主机H11,则分组处理器100在主机H11所属的粉色VRF的FIB 中查找输入分组。成功的查找操作导致指定出口RIF的路由条目78。在此示例中,出口RIF包括分配给导入的D-VNI的唯一的出口RIF。At lookup stage 106, packet processor 100 identifies the VRF from which the incoming packet came, and looks up the incoming packet in the FIB (76) of the identified VRF. For example, assuming that the incoming packet originates from the host H11 of the pink VEF, the packet processor 100 looks for the incoming packet in the FIB of the pink VRF to which the host H11 belongs. A successful lookup operation results in a routing entry 78 specifying the egress RIF. In this example, the egress RIF includes the only egress RIF assigned to the imported D-VNI.

在邻接级110中,分组处理器100从级106的路由入口或出口RIF生成下一跳信息。在映射级112中,分组处理器100导出与级106的出口RIF 相关联的导入的D-VNI,并且在重写级114中,从输入分组104生成用级 112的导入的D-VNI封装的VXLAN输出分组120。分组处理器100根据级106的出口RIF转发输出分组。In the adjacency stage 110, the packet processor 100 generates next hop information from the route ingress or egress RIF of the stage 106. In the mapping stage 112, the packet processor 100 derives the imported D-VNI associated with the egress RIF of the stage 106, and in the rewriting stage 114, generates from the input packet 104 the VXLAN output packet 120 . Packet processor 100 forwards outgoing packets according to the egress RIF of stage 106 .

图3B描绘了分组处理器150中的处理。例如,可以由VTEP 50的分组处理器54执行相同或类似的处理。FIG. 3B depicts processing in packet processor 150 . For example, the same or similar processing may be performed by packet processor 54 of VTEP 50 .

分组处理器150接收用先前导出到远程VTEP的VNI封装的输入分组 154。导出的VNI被远程VTEP用作D-VNI,用于封装发往包括分组处理器150的VTEP的分组。The packet processor 150 receives an input packet 154 encapsulated with a VNI previously exported to the remote VTEP. The derived VNI is used by the remote VTEP as a D-VNI for encapsulating packets destined for the VTEP comprising packet processor 150 .

分组处理器150解除对输入分组154的封装(级156),基于用其封装输入分组的VNI选择目标VRF,并在所选VRF的FIB 76中查找解除封装的分组(级158)。Packet processor 150 decapsulates incoming packet 154 (stage 156), selects a target VRF based on the VNI with which the incoming packet was encapsulated, and looks for the decapsulated packet in FIB 76 of the selected VRF (stage 158).

在一些实施例中,分组处理器150终止输入分组154通过其到达的 VXLAN隧道。在这种情况下,级158的查找操作导致与D-VNI无关的常规出口RIF。在邻接级160中,分组处理器生成下一跳信息。在重写级162 中,分组处理器154生成未封装的输出分组164A,并根据级158的出口 RIF路由输出分组。In some embodiments, packet processor 150 terminates the VXLAN tunnel through which incoming packet 154 arrived. In this case, the lookup operation of stage 158 results in a normal egress RIF that is not related to D-VNI. In the adjacency stage 160, the packet processor generates next hop information. In rewrite stage 162, packet processor 154 generates unencapsulated output packet 164A and routes the output packet according to the egress RIF of stage 158.

在一些实施例中,包括分组处理器154的VTEP用作调解器VTEP,其调解不同路由域之间的通信。下面将参考图5描述包括调解器器VTEP 的集线器-轮辐拓扑。In some embodiments, a VTEP including packet processor 154 acts as a mediator VTEP that mediates communications between different routing domains. A hub-and-spoke topology including a moderator VTEP will be described below with reference to FIG. 5 .

当作为调解器VTEP操作时,分组处理器154将本地VNI(74)导出到源VTEP,并从目的地VTEP导入D-VNI(72)。分组处理器154从源 VTEP接收输入分组154,并在级156和158中处理该分组,导致如上所述的出口RIF。When operating as a mediator VTEP, packet processor 154 exports a local VNI (74) to a source VTEP and imports a D-VNI (72) from a destination VTEP. Packet processor 154 receives an input packet 154 from a source VTEP and processes the packet in stages 156 and 158, resulting in an egress RIF as described above.

在图3B中,以虚线描绘与调解器VTEP相关的处理。响应于识别出口RIF与D-VNI(从目的地VTEP导入的D-VNI)唯一关联,分组处理器 154将唯一的出口RIF映射到导入的D-VNI(级170)。在重写级162中,分组处理器154使用从目的地VTEP导入的D-VNI重新封装分组,产生输出分组164B。分组处理器154然后根据级158的出口RIF路由输出分组 164B。In Fig. 3B, the processing related to the moderator VTEP is depicted in dotted lines. In response to identifying that the egress RIF is uniquely associated with the D-VNI (the D-VNI imported from the destination VTEP), packet processor 154 maps the unique egress RIF to the imported D-VNI (stage 170). In rewrite stage 162, packet processor 154 re-encapsulates the packet using the D-VNI imported from the destination VTEP, producing output packet 164B. Packet processor 154 then routes output packet 164B according to the egress RIF of stage 158.

注意,尽管图3A和3B描绘了不同的分组处理流,但在一个实施例中, VTEP(例如VTEP 50)通常实现分组处理器100和150的分组处理流两者。Note that although FIGS. 3A and 3B depict different packet processing flows, in one embodiment, a VTEP (eg, VTEP 50 ) generally implements both packet processing flows of packet processors 100 and 150 .

控制平面处理Control Plane Processing

图4是根据本文描述的实施例示意性地示出用于配置用于与远程 VTEP通信的VTEP的方法的流程图。Figure 4 is a flowchart schematically illustrating a method for configuring a VTEP for communication with a remote VTEP, according to embodiments described herein.

图4的方法将被描述为由在VTEP 50的CPU 60上运行的控制程序64 执行,在此表示为本地VTEP。The method of FIG. 4 will be described as being performed by a control program 64 running on a CPU 60 of a VTEP 50, here indicated as a local VTEP.

该方法从VRF实例创建步骤200开始,控制程序64为本地VTEP中配置的相应一个或更多个本地VRF创建一个或更多个VRF实例。The method begins with a VRF instance creation step 200 where the control program 64 creates one or more VRF instances for corresponding one or more local VRFs configured in the local VTEP.

在导入步骤204,控制程序从远程VTEP导入一个或更多个D-VNI(72)。在本示例中,导入的D-VNI中的每一个与在远程VTEP中而不是在本地 VTEP中配置的相应远程VRF相关联。In import step 204, the control program imports one or more D-VNIs from the remote VTEP (72). In this example, each of the imported D-VNIs is associated with a corresponding remote VRF configured in the remote VTEP instead of the local VTEP.

在导出步骤208,控制程序向远程VTEP导出一个或更多个本地VNI (74),这些本地VNI分别与本地VTEP中配置的本地VRF相关联,并且将由远程VTEP作为D-VNI用于封装发往本地VTEP的分组。In the export step 208, the control program exports to the remote VTEP one or more local VNIs (74), which are respectively associated with the local VRFs configured in the local VTEP, and will be used by the remote VTEP as D-VNIs for encapsulation sent to Grouping of local VTEPs.

在出站RIF创建步骤212,控制程序为导入的D-VNI创建相应的唯一出站RIF,以便可以从其唯一出站RIF推理每个D-VNI。在入站RIF创建步骤214,控制程序为本地VNI创建相应唯一的入站出口RIF(这些出站 RIF还用于入站方向上相应导出的本地VNI),以便每个导出的本地VNI 都可以从其唯一的入站出站RIF中推理出来。In the outbound RIF creation step 212, the control program creates corresponding unique outbound RIFs for the imported D-VNIs, so that each D-VNI can be deduced from its unique outbound RIF. In the inbound RIF creation step 214, the control program creates corresponding unique inbound egress RIFs for the local VNIs (these outbound RIFs are also used for the corresponding exported local VNIs in the inbound direction), so that each exported local VNI can be accessed from Its only inbound and outbound RIF inferred.

在RIF关联步骤216,控制程序将步骤212的出站出口RIF和步骤214 的入站出口RIF与相应本地VRF的VRF实例中的相关路由条目相关联。在一些实施例中,控制程序将唯一的出口RIF与多个路由条目相关联,这些路由条目分别属于分别为本地VTEP中提供的多个本地VRF创建的多个 VRF实例。在步骤216之后,本地VTEP准备好处理本地VTEP中的本地VRF和远程VTEP中的远程VRF之间的通信。In a RIF association step 216, the control program associates the outbound egress RIF of step 212 and the inbound egress RIF of step 214 with the relevant routing entries in the VRF instance of the corresponding local VRF. In some embodiments, the control program associates a unique egress RIF with multiple routing entries belonging to multiple VRF instances respectively created for multiple local VRFs provided in the local VTEP. After step 216, the local VTEP is ready to handle communications between the local VRF in the local VTEP and the remote VRF in the remote VTEP.

具有集线器-轮辐网络拓扑的计算机系统Computer system with hub-and-spoke network topology

图5是根据本文描述的实施例示意性地示出了具有集线器-轮辐 (hub-spoke)拓扑的计算机系统300的框图。FIG. 5 is a block diagram schematically illustrating a computer system 300 with a hub-spoke topology, according to embodiments described herein.

在集线器-轮辐网络拓扑中,集线器路由域充当多个其他路由域(轮辐) 的连接中心点。In a hub-and-spoke network topology, a hub routing domain acts as a central point of connection for multiple other routing domains (spokes).

计算机系统300支持表示为粉色、蓝色和HUB01的多个路由域(VRF),这些路由域相应被分配了L3VNI值10001、10002和20001。Computer system 300 supports multiple routing domains (VRFs) denoted pink, blue, and HUB01, which are assigned L3VNI values 10001, 10002, and 20001, respectively.

计算机系统300包括通信网络302,其中多个网络设备互连,包括表示为SL1和SL2的集线器交换机(也称为集线器VTEP)304、表示为L11… L22的叶交换机(也称为叶VTEP)308以及表示为S1和S2的主干交换机 316。在计算机系统300中,集线器VTEP 304用作调解器VTEP,调解叶 VTEP 308中配置的不同VRF之间的通信。Computer system 300 includes a communication network 302 in which a number of network devices are interconnected, including hub switches (also referred to as hub VTEPs) 304 denoted SL1 and SL2, leaf switches (also referred to as leaf VTEPs) 308 denoted L11...L22 and spine switches 316 denoted S1 and S2. In computer system 300, hub VTEP 304 acts as a mediator VTEP, mediating communications between different VRFs configured in leaf VTEP 308.

在通信网络302中,叶交换机L11…L22在一侧被耦合到主机312A 和312B,在另一侧被耦合到主干交换机316(S1和S2)。此外,主干交换机S1和S2中的每一个都被耦合到一侧的集线器交换机SL1和SL2以及另一侧的叶交换机。In communication network 302, leaf switches L11...L22 are coupled on one side to hosts 312A and 312B and on the other side to spine switches 316 (S1 and S2). Furthermore, each of the spine switches S1 and S2 is coupled to hub switches SL1 and SL2 on one side and leaf switches on the other side.

在本示例中,HUB01VRF在集线器VTEP SL1和SL2中的每一个中被配置,而粉色和蓝色VRF都在叶VTEP L11…L22中的每一个中被配置。一般来说,每个叶VTEP 308都配置有被耦合到该叶VTEP的主机312A和 312B的VRF。In this example, the HUB01 VRF is configured in each of the hub VTEPs SL1 and SL2, while the pink and blue VRFs are configured in each of the leaf VTEPs L11...L22. In general, each leaf-VTEP 308 is configured with a VRF that is coupled to the leaf-VTEP's hosts 312A and 312B.

在一些实施例中,计算机系统300支持使用D-VNI技术在不同VRF 之间进行通信。为此,配置不同VRF的VTEP可以通过相互交换VNI来建立基于VXLAN的通信。In some embodiments, computer system 300 supports communication between different VRFs using D-VNI technology. To this end, VTEPs configured with different VRFs can establish VXLAN-based communication by exchanging VNIs with each other.

在图5的示例中,集线器VTEP SL1和SL2中的每一个从叶VTEP L11…L22中的每一个导入用于粉色VRF的D-VNI,以及用于蓝色VRF的另一个D-VNI。此外,叶VTEP L11…L22中的每一个都从SL1和SL2为 HUB01VRF导入D-VNI。In the example of Figure 5, each of the hub VTEPs SL1 and SL2 imports a D-VNI for the pink VRF, and another D-VNI for the blue VRF, from each of the leaf VTEPs L11...L22. In addition, each of leaf VTEP L11...L22 imports D-VNI from SL1 and SL2 for HUB01VRF.

考虑源叶VTEP通过集线器VTEP向目标叶VTEP发送分组。源VTEP 使用从集线器VTEP导入的D-VNI封装分组,并通过隧道将封装的分组传输到集线器VTEP。基于接收到的分组中的D-VNI,集线器VTEP使用集线器VTEP从目标VTEP导入的D-VNI重新封装分组。Consider a source leaf VTEP sending a packet to a target leaf VTEP through a hub VTEP. The source VTEP encapsulates the packet using the D-VNI imported from the hub VTEP and tunnels the encapsulated packet to the hub VTEP. Based on the D-VNI in the received packet, the hub VTEP re-encapsulates the packet using the D-VNI imported by the hub VTEP from the target VTEP.

在一些实施例中,计算机系统300支持具有低存储占用空间的D-VNI 的VXLAN隧道,如上所述,例如参考上面的图1。在这样的实施例中,计算机系统300中的叶和集线器VTEP为导入的D-VNI创建唯一的出口 RIF,并在VTEP中仅存储一次唯一的出口RIF。In some embodiments, computer system 300 supports VXLAN tunneling of D-VNI with a low storage footprint, as described above, eg, with reference to FIG. 1 above. In such an embodiment, the leaf and hub VTEPs in computer system 300 create unique egress RIFs for imported D-VNIs and store the unique egress RIFs only once in the VTEP.

在计算机系统300中,耦合到公共叶交换机但属于不同VRF的主机 312A和312B也可以经由集线器交换机SL1和SL2使用D-VNI进行通信。例如,尽管粉色VRF的H11和蓝色VRF的H13都耦合到叶交换机L11,但如上所述,主机H11和H13经由调解器VTEP SL1和SL2彼此通信。In computer system 300, hosts 312A and 312B coupled to a common leaf switch but belonging to different VRFs can also communicate using D-VNI via hub switches SL1 and SL2. For example, although H11 of the pink VRF and H13 of the blue VRF are both coupled to leaf switch L11, hosts H11 and H13 communicate with each other via mediators VTEP SL1 and SL2 as described above.

在一些实施例中,使用VXLAN隧道和D-VNI在集线器-轮辐拓扑中的通信涉及以下阶段:In some embodiments, communication in a hub-and-spoke topology using VXLAN tunnels and D-VNI involves the following phases:

·每个集线器VTEP SL1和SL2从叶VTEP路由(例如,如上所述使用 RT)导入粉色和蓝色VRF。例如,SL1或SL2的HUB01VRF的集线器VRF实例从叶VTEP导入RT*:10001和*:10002。例如,SL1和 SL2中的每一个都从包括主机H11…H14的IP地址的L11和L12路由导入,并从包括H21…H24的IP地址的L21和L22路由导入。• Each hub VTEP SL1 and SL2 imports pink and blue VRFs from leaf VTEP routes (eg using RT as above). For example, the hub VRF instance of HUB01VRF of SL1 or SL2 imports RT *:10001 and *:10002 from the leaf VTEP. For example, each of SL1 and SL2 imports from L11 and L12 routes including IP addresses of hosts H11...H14, and imports from L21 and L22 routes including IP addresses of H21...H24.

·SL1和SL2中的每一个都将导入的路由聚合为聚合路由,并发起具有导出RT65201:10002(或65202:10002)为粉色VRF路由的聚合路由。类似地,SL1和SL2发起导出RT65201:10001(或65201:10001)为蓝色 VRF路由的聚合路由。在一些实施例中,SL1或SL2通过对由主机312A 和312B的IP地址表示的导入路由应用最长前缀匹配(LPM)方法来生成聚合路由。例如,SL1和SL2为L11中的粉色VRF生成聚合路由 192.168.62.0/24,用于经由L21或L22到达蓝色VRF的H23和H24。Each of SL1 and SL2 aggregates the imported routes into an aggregated route and initiates an aggregated route with exported RT65201:10002 (or 65202:10002) as a pink VRF route. Similarly, SL1 and SL2 initiate an aggregated route that exports RT65201:10001 (or 65201:10001) as the blue VRF route. In some embodiments, SL1 or SL2 generates aggregated routes by applying a longest prefix match (LPM) method to the imported routes represented by the IP addresses of hosts 312A and 312B. For example, SL1 and SL2 generate an aggregated route 192.168.62.0/24 for the pink VRF in L11, which is used to reach H23 and H24 of the blue VRF via L21 or L22.

·叶VTEP L11…L22使用其自动导出的RT进行路由导出和导入。这意味着叶VTEP从SL1和SL2导入聚合路由,用于通过集线器VTEP进行VRF间路由,例如H11(粉色VRF)和H24(蓝色VRF)之间的路由。· Leaf VTEP L11…L22 uses its auto-exported RT for routing export and import. This means that the leaf VTEP imports aggregated routes from SL1 and SL2 for inter-VRF routing via the hub VTEP, for example routing between H11 (pink VRF) and H24 (blue VRF).

·考虑粉色VRF中的主机向蓝色VRF的主机发送分组。例如,H11(IP192.168.51.11)向H24(IP 192.168.62.24)发送分组。分组由L11或L12 接收,L11或L12使用先前源自SL1和/或SL2的聚合路由 192.168.62.0/24转发分组。L11或L22使用HUB01VRF的D-VNI 20001 封装分组,并将封装的分组通过隧道传输到集线器VTEP SL1或SL2。 SL1或SL2基于从L21和/或L22导入的完整主机路由(例如,主机H24 的192.168.62.24/32),在HUB01VRF中解封装分组并路由解封装分组。 SL1或SL2使用VNI 10002(从L21和/或L22导入)重新封装分组,并通过VXLAN将重新封装的分组隧道传输到L21或L22。L21或L22 然后在蓝色VRF中路由分组(例如,在本例中路由到H24)。类似的转发方案适用于不同VRF的热点之间的通信,其中主机被耦合到公共叶VTEP(例如H11和H13)。• Consider a host in the pink VRF sending a packet to a host in the blue VRF. For example, H11 (IP 192.168.51.11) sends a packet to H24 (IP 192.168.62.24). The packet is received by L11 or L12, which forwards the packet using the aggregated route 192.168.62.0/24 previously sourced from SL1 and/or SL2. L11 or L22 uses D-VNI 20001 of HUB01VRF to encapsulate the packet, and transmits the encapsulated packet to the hub VTEP SL1 or SL2 through the tunnel. SL1 or SL2 decapsulates the packet in HUB01VRF and routes the decapsulated packet based on the complete host route imported from L21 and/or L22 (eg, 192.168.62.24/32 for host H24). SL1 or SL2 re-encapsulates packets using VNI 10002 (imported from L21 and/or L22) and tunnels the re-encapsulated packets to L21 or L22 via VXLAN. L21 or L22 then routes the packet in the blue VRF (eg, to H24 in this example). A similar forwarding scheme applies to communications between hotspots of different VRFs, where hosts are coupled to a common leaf VTEP (eg, H11 and H13).

多站点计算机系统multi-site computer system

图6是根据本文描述的实施例示意性地示出了多站点计算机系统400 的图。例如,图6中的计算机系统可用于实现多站点数据中心,其站点可部署在不同的地理位置和/或具有不同的管理域。FIG. 6 is a diagram schematically illustrating a multi-site computer system 400 according to embodiments described herein. For example, the computer system in FIG. 6 can be used to implement a multi-site data center, the sites of which can be deployed in different geographic locations and/or have different management domains.

在本示例中,计算机系统400包括表示为DC-1、DC-2和DC-3的数据中心(DC)站点404,其可由不同的网络管理器单独管理。在替代实施例中,多站点计算机系统可以包括其他适当数量的站点。在一些实施例中, DC站点404与不同的相应路由域相关联。In this example, computer system 400 includes data center (DC) sites 404, denoted DC-1, DC-2, and DC-3, which may be separately managed by different network managers. In alternative embodiments, a multi-site computer system may include other suitable numbers of sites. In some embodiments, DC sites 404 are associated with different corresponding routing domains.

DC站点404中的每一个都包括边界网关(BGW)路由器(也称为 BGW VTEP)412,其本地连接到DC站点的一个或更多个叶交换机(也称为叶VTEP)416。DC站点DC-1、DC-2和DC-3中的BGW VTEP分别表示为BGW1、BGW2和BGW3。在一些实施例中,BGW VTEP 412用作调解器VTEP,调解具有不同路由域的DC站点之间的通信。Each of the DC sites 404 includes a border gateway (BGW) router (also referred to as a BGW VTEP) 412 locally connected to one or more leaf switches (also referred to as leaf VTEPs) 416 of the DC site. The BGW VTEPs in DC sites DC-1, DC-2, and DC-3 are denoted as BGW1, BGW2, and BGW3, respectively. In some embodiments, BGW VTEP 412 acts as a mediator VTEP, mediating communications between DC sites with different routing domains.

在一些实施例中,使用图2的VTEP 50实现BGW VTEP 412和叶 VTEP 416,并如以上图3A和3B所述处理分组。In some embodiments, BGW VTEP 412 and leaf VTEP 416 are implemented using VTEP 50 of FIG. 2, and packets are processed as described above for FIGS. 3A and 3B.

DC站点DC-1、DC-2和DC-3中的叶VTEP 416分别表示为DCL-1、 DCL-2和DCL-3。为清楚起见,图6描绘了每个DC位点中仅一个叶VTEP。每个DC站点404通常包括可经由DC站点的叶VTEP访问的主机420。在一些实施例中,BGW VTEP 412和主机420共享表示为“A”的公共VRF。Leaf VTEPs 416 in DC sites DC-1, DC-2, and DC-3 are denoted DCL-1, DCL-2, and DCL-3, respectively. For clarity, Figure 6 depicts only one lobe VTEP in each DC locus. Each DC site 404 generally includes hosts 420 accessible via the DC site's leaf VTEPs. In some embodiments, BGW VTEP 412 and host 420 share a common VRF denoted "A".

在本示例中,BGW1、BGW2和BGW3分别被分配了VNI 50002、50003 和50099,而叶VTEP DCL-1、DCL-2和DCL-3分别被分配了VNI 50001、 50004和50099。DC-1和DC-2站点中的VNI分配是不对称的(因为BGW VTEP分配的VNI与DC站点中的叶交换机不同),而DC-3站点中的VNI 分配是对称的(因为BGW VTEP和叶VTEP在此DC站点中共享共同的 VNI值50099)。In this example, BGW1, BGW2, and BGW3 are assigned VNIs 50002, 50003, and 50099, respectively, while leaf VTEPs DCL-1, DCL-2, and DCL-3 are assigned VNIs 50001, 50004, and 50099, respectively. VNI allocation in DC-1 and DC-2 sites is asymmetrical (because BGW VTEPs allocate VNIs different from leaf switches in DC sites), while VNI allocation in DC-3 sites is symmetrical (because BGW VTEPs and Leaf VTEPs in this DC site share a common VNI value of 50099).

在图6的示例中,站点DC-1中的叶VTEP DCL-1需要向站点DC-2 中的叶VTEP DCL-2发送分组。这种域间通信可以使用带有D-VNI的 VXLAN隧道来实现。In the example of FIG. 6, leaf VTEP DCL-1 in site DC-1 needs to send packets to leaf VTEP DCL-2 in site DC-2. This inter-domain communication can be achieved using VXLAN tunnels with D-VNI.

在一个示例场景中,叶VTEP DCL-1后面的主机向叶VTEP DCL-2 后面的另一个主机发送分组。为了支持此场景,DCL-1从BGW1导入D-VNI 50002,BGW1从BGW2导入D-VNI50003,BGW2从DCL-2导入VNI 50004。从DCL-1发送到DCL-2的分组将用D-VNI 50002封装并通过隧道传输到 BGW1。BGW1解封分组,用D-VNI 50003重新封装分组,并将分组通过隧道传输到BGW2。BGW2将分组解封装,用D-VNI 50004重新封装,并将分组通过隧道传输到叶DCL-2。作为最终的终止叶VTEP,DCL-2将分组解封装,并将解封装后的分组转发给DCL-2后面的目标主机。In one example scenario, a host behind leaf VTEP DCL-1 sends a packet to another host behind leaf VTEP DCL-2. To support this scenario, DCL-1 imports D-VNI 50002 from BGW1, BGW1 imports D-VNI 50003 from BGW2, and BGW2 imports VNI 50004 from DCL-2. Packets sent from DCL-1 to DCL-2 will be encapsulated with D-VNI 50002 and tunneled to BGW1. BGW1 decapsulates the packet, re-encapsulates the packet with D-VNI 50003, and tunnels the packet to BGW2. BGW2 decapsulates the packet, recapsulates it with D-VNI 50004, and tunnels the packet to leaf DCL-2. As the final terminating leaf VTEP, DCL-2 decapsulates the packet and forwards the decapsulated packet to the destination host behind DCL-2.

在另一个示例场景中,叶VTEP DCL-1后面的主机向叶VTEP DCL-3 后面的主机发送分组。为了支持此场景,DCL-1从BGW1导入VNI 50002, BGW1从BGW3导入VNI 50099。从DCL-1后面的主机发送到DCL-3后面的另一个主机的分组将按照BGW1之前的场景进行处理。在当前场景中, BGW1使用D-VNI 50099重新封装分组,并通过隧道将分组传输到BGW3。BGW3基于VNI 50099,通过DCL-3将分组转发到DCL-3后面的目标主机。In another example scenario, a host behind leaf VTEP DCL-1 sends a packet to a host behind leaf VTEP DCL-3. To support this scenario, DCL-1 imports VNI 50002 from BGW1, and BGW1 imports VNI 50099 from BGW3. A packet sent from a host behind DCL-1 to another host behind DCL-3 will be processed according to the scenario before BGW1. In the current scenario, BGW1 re-encapsulates the packet using D-VNI 50099, and tunnels the packet to BGW3. Based on VNI 50099, BGW3 forwards the packet to the target host behind DCL-3 through DCL-3.

如上所述,站点DC-3中的VNI分配是对称的,这意味着站点DC-3 内的通信不需要D-VNI。然而,为了将分组从站点DC-3发送到DC-1或 DC-2,BGW3需要分别从BGW1导入D-VNI50002或从BGW2导入D-VNI 50003。As mentioned above, the allocation of VNIs in site DC-3 is symmetric, which means that communication within site DC-3 does not require a D-VNI. However, in order to send packets from site DC-3 to DC-1 or DC-2, BGW3 needs to import D-VNI 50002 from BGW1 or D-VNI 50003 from BGW2 respectively.

在一些实施例中,计算机系统400支持具有低存储占用空间的D-VNI 的VXLAN隧道,如上所述,例如参考图1。在这些实施例中,计算机系统400中的VTEP为导入的D-VNI创建唯一的出口RIF,并在VTEP中仅存储一次唯一的出口RIF。In some embodiments, computer system 400 supports VXLAN tunneling of D-VNI with a low storage footprint, as described above, eg, with reference to FIG. 1 . In these embodiments, the VTEP in computer system 400 creates a unique egress RIF for the imported D-VNI and stores the unique egress RIF only once in the VTEP.

图1的计算机系统20、图5的计算机系统300和图6的计算机系统 400的配置以及图2的网络设备(VTEP)50的配置是示例配置,这些配置纯粹是为了概念清楚而选择的。在替代实施例中,还可以使用任何其他合适的计算机系统和网络设备配置。为了清楚起见,图中省略了对于理解本发明原理所不需要的元件,例如各种接口、寻址电路、定时和排序电路以及调试电路。The configurations of computer system 20 of FIG. 1, computer system 300 of FIG. 5, and computer system 400 of FIG. 6, and network equipment (VTEP) 50 of FIG. 2 are example configurations chosen purely for conceptual clarity. In alternative embodiments, any other suitable computer system and network equipment configurations may also be used. For clarity, elements not necessary for understanding the principles of the invention, such as various interfaces, addressing circuits, timing and sequencing circuits, and debugging circuits, have been omitted from the figures.

网络设备(VTEP)50的一些元件,例如分组处理器54,可以在硬件中实现,例如在一个或更多个专用集成电路(ASIC)或FPGA中实现。另外或可选地,分组处理器54可以使用软件或使用硬件和软件元件的组合来实现。存储器62可以包括使用任何适当存储技术的任何适当类型的存储器,例如随机存取存储器(RAM)、动态RAM(DRAM)、非易失性存储器 (例如闪存)或多种存储器类型的组合。Some elements of network equipment (VTEP) 50, such as packet processor 54, may be implemented in hardware, such as in one or more application specific integrated circuits (ASICs) or FPGAs. Additionally or alternatively, packet processor 54 may be implemented using software or using a combination of hardware and software elements. Memory 62 may comprise any suitable type of memory using any suitable storage technology, such as random access memory (RAM), dynamic RAM (DRAM), non-volatile memory such as flash memory, or a combination of memory types.

在一些实施例中,CPU 60和/或分组处理器54的一些功能可由通用处理器执行,通用处理器在软件中编程以执行本文所述的功能。软件可以例如通过网络以电子形式下载到处理器,或者可以替代地或附加地提供和/ 或存储在非暂时性有形介质上,例如磁、光或电子存储器。In some embodiments, some of the functions of CPU 60 and/or packet processor 54 may be performed by a general purpose processor programmed in software to perform the functions described herein. The software may be downloaded electronically to the processor, eg, over a network, or may alternatively or additionally be provided and/or stored on a non-transitory tangible medium such as magnetic, optical or electronic memory.

以上描述的实施例通过示例给出,并且还可以使用其他合适的实施例。The embodiments described above are given by way of example, and other suitable embodiments may also be used.

在上述实施例中,路由/VNI主要使用BGP协议导入和导出。然而,在替代实施例中,路由/VNI可以由通信网络的用户在网络设备中配置。在示例实施例中,网络设备通过在源自用户的一个或更多个命令中接收 D-VNI来导入D-VNI,其中用户手动或通过运行包含一个或更多个命令的脚本自动发送一个或更多个命令。In the above embodiments, the route/VNI mainly uses the BGP protocol to import and export. However, in alternative embodiments, the routing/VNI may be configured in the network device by a user of the communication network. In an example embodiment, the network device imports the D-VNI by receiving the D-VNI in one or more commands originating from the user, wherein the user sends one or more commands.

上述实施例主要指OSI模型中指定的层。然而,这不是强制性的,并且在替代实施例中,也可以使用根据任何其他合适的分层模型的层。假设这种替代分层模型包括传输层和IP层,类似于OSI模型中指定的传输层和IP层。The above embodiments mainly refer to the layers specified in the OSI model. However, this is not mandatory and in alternative embodiments layers according to any other suitable layering model may also be used. It is assumed that this alternative layered model includes a transport layer and an IP layer, similar to the transport and IP layers specified in the OSI model.

尽管本文描述的实施例主要解决诸如交换机和路由器之类的网络设备中的D-VNI的高效存储实现,但本文描述的方法和系统也可用于其他应用中,例如在诸如NIC或智能NIC之类的网络适配器中使用小存储空间来实现D-VNI。Although the embodiments described herein primarily address efficient storage implementations of D-VNI in network devices such as switches and routers, the methods and systems described herein may also be used in other applications, such as D-VNI is implemented using a small memory space in the network adapter.

应当理解,以上描述的实施例是作为示例引用的,并且以下权利要求不限于上文特别示出和描述的内容。相反,范围包括上文所述的各种特征的组合和子组合,以及本领域技术人员在阅读前述描述时会想到的、在现有技术中未公开的变化和修改。通过引用合并到本专利申请中的文件应视为本申请的组成部分,除非这些合并文件中的任何术语的定义与本规范中明示或暗示的定义相冲突,否则仅应考虑本规范中的定义。It should be understood that the embodiments described above are cited as examples and that the following claims are not limited to what has been particularly shown and described above. Rather, the scope includes combinations and sub-combinations of the various features described above, as well as variations and modifications not disclosed in the prior art that would occur to those skilled in the art upon reading the foregoing description. Documents incorporated by reference into this patent application shall be deemed to be an integral part of this application, and unless the definition of any term in such incorporated documents conflicts with an express or implied definition in this specification, only the definition in this specification shall be considered. .

Claims (38)

1. A network device for use as a local virtual extensible local area network, VXLAN, tunnel endpoint, VTEP, the network device comprising:
a communication interface for communicating between local virtual routing and forwarding domains, VRFs, and remote VRFs, wherein each of the local VRFs and each of the remote VRFs has a unique VXLAN identifier, VNI;
a first processor running a control program for:
creating a local VRF instance for a local VRF configured in the local VTEP;
importing a downstream-VNID-VNI for forwarding packets from the local VRF into a remote VTEP instead of a remote VRF configured in the local VTEP;
creating a unique egress routing interface, RIF, that is convertible to the imported D-VNI; and
associating the unique egress RIF with one or more routing entries in the local VRF instance; and
a packet processor to:
receiving a packet destined for the remote VRF;
looking up the packet in the one or more routing entries in the local VRF instance to retrieve the unique egress RIF, convert the unique egress RIF to the imported D-VNI, and encapsulate the packet with the imported D-VNI; and
forwarding the encapsulated packet according to the unique egress RIF.
2. The network device of claim 1, wherein the control program in the local VTEP is to:
exporting, by the remote VTEP, a local VNI of the local VRF to the remote VTEP for forwarding of packets by the remote VTEP from the remote VRF to the local VRF; and
creating a second egress RIF for the local VNI and associating the second egress RIF with one or more second routing entries in the local VRF instance; and
the packet processor is to:
receiving, from the remote VRF via the communication interface, a second packet destined for the local VRF, the second packet encapsulated by the remote VTEP with the derived local VNI;
decapsulating the second packet;
looking up the decapsulated packet in the one or more second routing entries in the local VRF instance to retrieve the second egress RIF; and
forwarding the second packet according to the second egress RIF.
3. The network device of claim 1, wherein the local VTEP and the remote VTEP are included in an Ethernet Virtual Private Network (EVPN), wherein packets communicated between different VRFs are encapsulated based on VXLAN encapsulation.
4. The network device of claim 1, wherein the control program is to import the D-VNI using an instance of Border Gateway Protocol (BGP) associated with the local VRF.
5. The network device of claim 1, wherein the control program is to associate the unique egress RIF with a plurality of routing entries respectively belonging to a plurality of VRF instances respectively created for a plurality of local VRFs configured in the local VTEP.
6. The network device of claim 1, wherein the control program is to configure the one or more routing entries in a forwarding rule in an Access Control List (ACL), and wherein the packet processor is to look up the packet by matching the packet to one of the forwarding rules in the ACL.
7. The network device of claim 1, wherein each of the local VTEP and the remote VTEP comprises a leaf network device or a serving network device in the communication network, and wherein each of the leaf network devices is assigned one or more local VRFs and each of the serving network devices is assigned one or more remote VRFs that are different from the local VRFs.
8. The network device of claim 7, wherein a service host is coupled to a given service network device on which a corresponding shared service VRF is configured, and wherein the service host provides services to one or more served hosts of the local VRFs over the communication network.
9. The network device of claim 7, wherein the communication network has a hub-spoke topology in which one or more hub network devices are configured with hub VRFs that support routing between served hosts belonging to different ones of the local VRFs.
10. The network device of claim 1, wherein the communication network supports an equal-cost multipath ECMP routing protocol, and wherein the packet processor is to forward packets to a plurality of remote VTEPs using different ECMP paths with different respective D-VNI encapsulations.
11. The network device of claim 1, wherein the packet processor is to receive the packet from a host or network element in the first VRF, or from a third VRF.
12. The network device of claim 1, wherein the control program is to import the D-VNI from the remote VTEP, or to receive the D-VNI by receiving the D-VNI in one or more commands sent manually by a user, or automatically by running a script containing the one or more commands.
13. A method for data communication, comprising:
in a network device acting as a local virtual extensible local area network, VXLAN, tunnel endpoint, VTEP, communicating between local virtual routing and forwarding domains, VRFs, and remote VRFs, wherein each of the local VRFs and each of the remote VRFs has a unique VXLAN identifier, VNI;
creating a local VRF instance for a local VRF configured in the local VTEP through a control program;
importing a downstream-VNID-VNI for forwarding packets from the local VRF into a remote VTEP instead of a remote VRF configured in the local VTEP;
creating a unique egress routing interface, RIF, that is convertible to the imported D-VNI;
associating the unique egress RIF with one or more routing entries in the local VRF instance;
receiving, by a packet processor of the local VTEP, packets destined for the remote VRF;
looking up the packet in the one or more routing entries in the local VRF instance to retrieve the unique egress RIF, convert the unique egress RIF to the imported D-VNI, and encapsulate the packet with the imported D-VNI; and
forwarding the encapsulated packet according to the unique egress RIF.
14. The method of claim 13, comprising:
exporting a local VNI of the local VRF to the remote VTEP for forwarding of packets by the remote VTEP from the remote VRF to the local VRF, creating a second egress RIF for the local VNI, and associating the second egress RIF with one or more second routing entries in the local VRF instance;
receiving, from the remote VRF, a second packet destined for the local VRF, the second packet encapsulated by the remote VTEP with the derived local VNI;
decapsulate the second packet and look up the decapsulated packet in the one or more second routing entries in the local VRF instance to retrieve the second egress RIF; and
forwarding the second packet according to the second egress RIF.
15. The method of claim 13, wherein the local VTEP and the remote VTEP are included in an Ethernet Virtual Private Network (EVPN), wherein packets communicated between different VRFs are encapsulated based on VXLAN encapsulation.
16. The method of claim 13, wherein importing the D-VNI comprises importing the D-VNI using an instance of a Border Gateway Protocol (BGP) associated with the local VRF.
17. The method of claim 13, wherein associating the unique egress RIF comprises associating the unique egress RIF with a plurality of routing entries respectively belonging to a plurality of VRF instances respectively created for a plurality of local VRFs configured in the local VTEP.
18. The method of claim 13, comprising configuring the one or more routing entries in a forwarding rule in an Access Control List (ACL), and wherein looking up the packet comprises matching the packet to one of the forwarding rules in the ACL.
19. The method of claim 13, wherein each of the local VTEP and the remote VTEP comprises a leaf network device or a serving network device in the communication network, and wherein each of the leaf network devices is assigned one or more local VRFs and each of the serving network devices is assigned one or more remote VRFs different from the local VRFs.
20. The method of claim 19, wherein a service host is coupled to a given service network device on which a corresponding shared service VRF is configured, and wherein the service host provides services to one or more of the local VRFs over the communication network.
21. The method of claim 19, wherein the communication network has a hub-spoke topology in which one or more hub network devices are configured with hub VRFs that support routing between served hosts belonging to different ones of the local VRFs.
22. The method of claim 13, wherein the communication network supports an equal-cost multi-path ECMP routing protocol, and wherein the method further comprises encapsulating packets forwarded to a plurality of remote VTEPs with different respective D-VNIs using different ECMP paths.
23. The method of claim 13, wherein receiving the packet comprises receiving the packet from a host or network element in the first VRF, or receiving the packet from a third VRF.
24. The method of claim 13, wherein importing the D-VNI comprises importing the D-VNI from the remote VTEP, or receiving the D-VNI by receiving the D-VNI in one or more commands manually sent by a user, or automatically by running a script containing the one or more commands.
25. A network device for use as a local virtual extensible local area network, VXLAN, tunnel endpoint, VTEP, the network device comprising:
a communication interface to communicate with one or more remote VTEPs, wherein the local VTEP and the one or more remote VTEPs are assigned respective VXLAN identifiers VNIs;
a first processor running a control program for:
importing a downstream-VNID-VNI for forwarding packets from the local VTEP to a remote VTEP;
creating a unique egress routing interface, RIF, that is convertible to the imported D-VNI; and
associating the unique egress RIF with one or more routing entries in the local VTEP; and
a packet processor to:
receiving a packet addressed to the remote VTEP;
looking up the packet in the one or more routing entries in the local VTEP to retrieve the unique egress RIF, convert the unique egress RIF to the imported D-VNI, and encapsulate the packet with the imported D-VNI; and
forwarding the encapsulated packet according to the unique egress RIF.
26. The network device of claim 25, wherein the control program is to:
exporting, by the remote VTEP, a local VNI of the local VTEP to the remote VTEP for forwarding of packets from the remote VTEP to the local VTEP; and
creating a second egress RIF for the local VNI and associating the second egress RIF with one or more second routing entries in the local VTEP; and
the packet processor is to:
receiving, from the remote VTEP via the communication interface, a second packet destined for the local VTEP, the second packet encapsulated by the remote VTEP with the derived local VNI;
decapsulating the second packet;
looking up the decapsulated packet in the one or more second routing entries to retrieve the second egress RIF; and
forwarding the second packet according to the second egress RIF.
27. The network device of claim 25, wherein the local VTEP and the one or more remote VTEPs belong to different respective sites in a multi-site topology.
28. The network device of claim 25, wherein the local VTEP serves as a border gateway, BGW VTEP, and the one or more remote VTEPs serve as leaf VTEPs coupled to hosts, and wherein the BGW VTEPs and the hosts are assigned a common virtual routing and forwarding domain, VRF.
29. The network device of claim 25, wherein the local VTEP and the remote VTEP are assigned different respective VNIs.
30. The network device of claim 25, wherein the network device is included in a communication network comprising a plurality of interconnected network devices, and wherein the network device functions as a leaf VTEP or a BGW VTEP in the communication network.
31. A method for data communication, comprising:
in a network device acting as a local virtual extensible local area network, VXLAN, tunnel endpoint, VTEP, communicating with one or more remote VTEPs, wherein the local VTEP and the one or more remote VTEPs are assigned respective VXLAN identifiers, VNIs;
importing, by a control program running on the local VTEP, a downstream VNID-VNI for forwarding packets from the local VTEP to a remote VTEP;
creating a unique egress routing interface, RIF, that is convertible to the imported D-VNI;
associating the unique egress RIF with one or more routing entries in the local VTEP;
receiving, by a packet processor of the local VTEP, packets destined for the remote VTEP;
looking up the packet in the one or more routing entries in the local VTEP to retrieve the unique egress RIF, convert the unique egress RIF to the imported D-VNI, and encapsulate the packet with the imported D-VNI; and
forwarding the encapsulated packet according to the unique egress RIF.
32. The method of claim 31, comprising:
exporting, by the remote VTEP, a local VNI of the local VTEP to the remote VTEP for forwarding of packets from the remote VTEP to the local VTEP, creating a second egress RIF for the local VNI, and associating the second egress RIF with one or more second routing entries in the local VTEP;
receiving, from the remote VTEP, a second packet destined for the local VTEP, the second packet encapsulated by the remote VTEP with the derived local VNI;
decapsulate the second packet and look up the decapsulated packet in the one or more second route entries to retrieve the second egress RIF; and
forwarding the second packet according to the second egress RIF.
33. The method of claim 31, wherein the local VTEP and the one or more remote VTEPs belong to different respective sites in a multi-site topology.
34. The method according to claim 31, wherein the local VTEP serves as a border gateway, BGW VTEP, and the one or more remote VTEPs serve as leaf VTEPs coupled to hosts, and wherein the BGW VTEPs and the hosts are assigned a common virtual routing and forwarding domain, VRF.
35. The method of claim 31, wherein the local VTEP and the remote VTEP are assigned different respective VNIs.
36. The method of claim 31, wherein the network device is included in a communication network comprising a plurality of interconnected network devices, and wherein the network device functions as a leaf VTEP or a BGW VTEP in the communication network.
37. A method for communicating between virtual routing and forwarding domains, VRFs, the method comprising:
communicating between a local VRF configured in a local VXLAN tunnel endpoint VTEP and a remote VRF configured in a remote VTEP but not in the local VTEP;
importing, by the local VTEP, a downstream VXLAN identifier, D-VNI, associated with the remote VRF for forwarding packets from the local VRF to the remote VRF and creating a unique egress routing interface, RIF, that is translatable to the imported D-VNI; and
when a packet destined for the remote VRF is received by the local VTEP, converting the unique egress RIF retrieved based on the packet to the imported D-VNI and encapsulating the packet with the imported D-VNI; and
forwarding the encapsulated packet according to the unique egress RIF.
38. A method for communicating between stations of different routing domains, the method comprising:
communicating between a local VXLAN tunnel endpoint VTEP and a remote VTEP belonging to a different respective routing domain;
importing, by the local VTEP, a downstream-VNID-VNI for forwarding packets from the local VTEP to the remote VTEP, and creating a unique egress routing interface, RIF, that is convertible to the imported D-VNI;
when a packet destined for the remote VTEP is received by the local VTEP, converting the unique egress RIF retrieved based on the packet to the imported D-VNI, and encapsulating the packet with the imported D-VNI; and
forwarding the encapsulated packet according to the unique egress RIF.
CN202210614851.XA 2021-06-28 2022-05-31 Efficient storage implementation of downstream VXLAN identifiers Active CN115604056B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN202141028962 2021-06-28
IN202141028962 2021-06-28
US17/591,623 2022-02-03
US17/591,623 US11855804B2 (en) 2021-06-28 2022-02-03 Storage-efficient implementation of downstream VXLAN identifiers

Publications (2)

Publication Number Publication Date
CN115604056A true CN115604056A (en) 2023-01-13
CN115604056B CN115604056B (en) 2024-10-01

Family

ID=84388789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210614851.XA Active CN115604056B (en) 2021-06-28 2022-05-31 Efficient storage implementation of downstream VXLAN identifiers

Country Status (2)

Country Link
CN (1) CN115604056B (en)
DE (1) DE102022206442A1 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060182037A1 (en) * 2003-12-15 2006-08-17 Sbc Knowledge Ventures, L.P. System and method to provision MPLS/VPN network
US20160134520A1 (en) * 2014-11-12 2016-05-12 Cisco Technology, Inc. Optimized inter-vrf (virtual routing and forwarding) route leaking in network overlay based environments
US20170317919A1 (en) * 2016-04-29 2017-11-02 Cisco Technology, Inc. Interoperability between data plane learning endpoints and control plane learning endpoints in overlay networks
US20180069792A1 (en) * 2015-04-30 2018-03-08 Huawei Technologies Co., Ltd. Packet Processing Method, and Device and System
US20180302410A1 (en) * 2017-04-14 2018-10-18 Nxp Usa, Inc. Method and Apparatus for Speeding Up ACL Rule Lookups That Include TCP/UDP Port Ranges in the Rules
US10243834B1 (en) * 2015-01-22 2019-03-26 Juniper Networks, Inc. Interconnecting virtual networks using an ethernet virtual private network (EVPN) and virtual extensible local area network (VXLAN) based overlay network
US20200403922A1 (en) * 2019-06-24 2020-12-24 Vmware, Inc. Load balancing of l2vpn traffic over multiple ipsec vpn tunnels
US20210119827A1 (en) * 2019-10-18 2021-04-22 Juniper Networks, Inc. Port mirroring over evpn vxlan

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060182037A1 (en) * 2003-12-15 2006-08-17 Sbc Knowledge Ventures, L.P. System and method to provision MPLS/VPN network
US20160134520A1 (en) * 2014-11-12 2016-05-12 Cisco Technology, Inc. Optimized inter-vrf (virtual routing and forwarding) route leaking in network overlay based environments
CN107210961A (en) * 2014-11-12 2017-09-26 思科技术公司 The VRF of optimization in environment based on the network coverage(Virtual flow-line and forwarding)Between route leaking
US10243834B1 (en) * 2015-01-22 2019-03-26 Juniper Networks, Inc. Interconnecting virtual networks using an ethernet virtual private network (EVPN) and virtual extensible local area network (VXLAN) based overlay network
US20180069792A1 (en) * 2015-04-30 2018-03-08 Huawei Technologies Co., Ltd. Packet Processing Method, and Device and System
US20170317919A1 (en) * 2016-04-29 2017-11-02 Cisco Technology, Inc. Interoperability between data plane learning endpoints and control plane learning endpoints in overlay networks
US20180302410A1 (en) * 2017-04-14 2018-10-18 Nxp Usa, Inc. Method and Apparatus for Speeding Up ACL Rule Lookups That Include TCP/UDP Port Ranges in the Rules
US20200403922A1 (en) * 2019-06-24 2020-12-24 Vmware, Inc. Load balancing of l2vpn traffic over multiple ipsec vpn tunnels
US20210119827A1 (en) * 2019-10-18 2021-04-22 Juniper Networks, Inc. Port mirroring over evpn vxlan

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HUAWEI: "VXLAN功能增强", pages 4 - 5, Retrieved from the Internet <URL:https://support.huawei. com/enterprise/zh/doc/EDOC1000173014/ac080f8> *
J. E. VACA P. AND G. D. SALAZAR-CHACÓN.: "VXLAN-IPSec Dual-Overlay as a Security Technique in Virtualized Datacenter Environments", 2020 IEEE ANDESCON, 1 December 2020 (2020-12-01) *
孙兵: "基于VxLAN的网络分组策略研究与分析", 计算机技术与发展, vol. 31, no. 1, 31 January 2021 (2021-01-31) *

Also Published As

Publication number Publication date
DE102022206442A1 (en) 2022-12-29
CN115604056B (en) 2024-10-01

Similar Documents

Publication Publication Date Title
US10116559B2 (en) Operations, administration and management (OAM) in overlay data center environments
US8830834B2 (en) Overlay-based packet steering
EP3240250B1 (en) Virtual router terminating an overlay tunnel in a storage area network
US9912614B2 (en) Interconnection of switches based on hierarchical overlay tunneling
Lasserre et al. Framework for data center (DC) network virtualization
US8661525B2 (en) Implementation method and system of virtual private network
US11799762B2 (en) Layer-2 network extension over layer-3 network using layer-2 metadata
JP5410614B2 (en) Enterprise layer 2 seamless site expansion in cloud computing
EP3219057B1 (en) Optimized inter-vrf (virtual routing and forwarding ) route leaking in network overlay based environments
US9100213B1 (en) Synchronizing VPLS gateway MAC addresses
US12081367B2 (en) Generating route target values for virtual private network routes
CN107770062A (en) A kind of data packet sending method, device and the network architecture
CN107040463A (en) A system for avoiding traffic flooding due to asymmetric MAC learning
EP3809641A1 (en) Improved port mirroring over evpn vxlan
WO2011032472A1 (en) Virtual private network implemaentation method and system
WO2018171529A1 (en) Method, device and computer storage medium for implementing double control plane
US11855804B2 (en) Storage-efficient implementation of downstream VXLAN identifiers
EP3979709A1 (en) Dynamic multi-destination traffic management in a distributed tunnel endpoint
CN115604056B (en) Efficient storage implementation of downstream VXLAN identifiers
EP3487130B1 (en) Method, router and medium for avoiding traffic flooding due to asymmetric mac learning and achieving predictable convergence for pbb-evpn active-active redundancy
CN115348238A (en) DHCP relay method, VTEP gateway, electronic device and medium
SE541314C2 (en) Methods and apparatuses for routing data packets in a network topology
Jain LAN Extension and Network Virtualization in Cloud Data Centers
US20240364618A1 (en) Efficient multicast forwarding by shared gateway switch in multi-fabric network
US10812446B1 (en) Dynamic host configuration across multiple sites in software defined access networks

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