CN112019437A - 网络间服务链 - Google Patents
网络间服务链 Download PDFInfo
- Publication number
- CN112019437A CN112019437A CN201910911308.4A CN201910911308A CN112019437A CN 112019437 A CN112019437 A CN 112019437A CN 201910911308 A CN201910911308 A CN 201910911308A CN 112019437 A CN112019437 A CN 112019437A
- Authority
- CN
- China
- Prior art keywords
- route
- network
- evpn
- controller
- switch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000002184 metal Substances 0.000 claims abstract description 58
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000008676 import Effects 0.000 claims description 35
- 238000005538 encapsulation Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 description 31
- 238000005516 engineering process Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45541—Bare-metal, i.e. hypervisor runs directly on hardware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例涉及网络间服务链。描述了这样的技术,其中集中式控制器跨多个网络在裸机服务器(BMS)和虚拟执行元件(例如,虚拟机或容器)或在一些实例中的远程BMS之间构建服务链。在一些示例中,控制器可以使用以太网虚拟专用网络(EVPN)–虚拟可扩展局域网(VXLAN)和诸如BGP/多协议标签交换(BGP/MPLS)互联网协议虚拟专用网络(IP VPN)之类的IP VPN在BMS与虚拟执行元件或远程BMS之间构建服务链。
Description
技术领域
本公开一般涉及计算机网络,并且更具体地,涉及将网络服务应用于遍历计算机网络的网络业务。
背景技术
计算机网络是交换数据和共享资源的互连计算设备的集合。在诸如互联网之类的基于分组的网络中,计算设备通过将数据划分为被称为分组的小块来传送数据,跨网络将这些小块单独地从源设备路由发送到目的地设备。目的地设备从分组中提取数据,并将数据组装成其原始形式。
网络中被称为路由器的某些设备使用路由协议来交换和积累描述网络的拓扑信息。这允许路由器构造其自己的网络路由拓扑地图。在接收到传入分组后,路由器检查分组内的密钥信息,并根据累积的拓扑信息转发该分组。
网络操作者可以部署一个或多个网络设备,以实现应用网络服务的服务点,网络服务诸如防火墙、载体级网络地址转换(CG-NAT)、用于视频的性能增强代理、运输控制协议(TCP)优化和报头丰富、缓存和负载平衡。另外,网络操作者可以配置服务链,每个服务链标识一组网络服务,该组网络服务将被应用于被映射到相应服务链的分组流。换言之,服务链定义一个或多个网络服务,其要以特定顺序被应用来提供用于应用于被绑定到该服务链的分组流的复合服务。
发明内容
通常,描述了这样的技术,其中诸如软件定义联网(SDN)控制器之类的集中式控制器在裸机(bare metal)服务器(BMS)与虚拟执行元件(例如虚拟机或容器)或者在一些实例中的远程BMS之间构建网络间服务链。根据所公开的技术,控制器可以构建网络间服务链,以使用以太网虚拟专用网络(EVPN)作为基础运输技术、通过网络间服务链来引导(steer)BMS与虚拟执行元件或远程BMS之间的业务。
在一种实现中,控制器可以构建网络间服务链,以将源自BMS的业务引导通过一个或多个服务节点,并最终引导到虚拟机。例如,控制器可以配置虚拟专用网络,诸如互联网协议虚拟专用网络(IP VPN)(诸如BGP/多协议标签交换(BGP/MPLS)IP VPN),以建立虚拟网络拓扑来将来自源VPN(在本文中被称为“源网络”)的业务流导向(direct)到向业务流提供一个或多个网络服务的一个或多个服务节点,然后导向到目的地VPN(在本文中被称为“目的地网络”)。为了经由服务节点将业务从源网络导向到目的地网络,控制器可以获得到与目的地网络相关联的虚拟机的路由(在本文中被称为“IP路由”)。控制器可以修改IP路由,以将业务从源网络导向到服务节点,而不是直接导向到目的地网络。例如,控制器可以通过设置下一跳以及在一些实例中设置标签或隧道封装信息或其他下一跳信息来修改IP路由,该其他下一跳信息标识在一个或多个服务节点的服务链的头端处的第一服务节点。然后,控制器将修改的IP路由公告(advertise)给源网络。控制器将修改的IP路由向源网络的这种公告被称为“重新发起”IP路由。源网络的网络设备(例如虚拟路由器)可以从控制器导入修改的IP路由,这导致网络设备将业务引导到路由下一跳,例如服务链的头端处的服务节点。
作为重新发起IP路由的一部分,控制器还可以将所获得的IP路由存储为EVPN路由。例如,除了将IP路由存储在用于源网络的IP路由表中之外,控制器还可以将IP路由作为EVPN路由(例如,EVPN类型5路由,其可以指定用于子网间连接性的IP路由,即跨数据中心的IP网络的细分的连接性)存储在用于源网络的EVPN路由表中。控制器还可以设置EVPN路由的下一跳,以指向源网络的托管网络虚拟功能(例如虚拟机)的设备(例如服务器),该网络虚拟功能实现服务链的头端处的服务节点。控制器可以将修改的EVPN路由公告到直接连接到BMS的物理机架顶(TOR)交换机。TOR交换机可以从控制器导入EVPN路由,以将TOR交换机配置为将源自BMS的数据业务引导到路由下一跳,例如,托管服务链的头端处的服务节点的服务器。
以这种方式,当TOR交换机接收到源自BMS的、发往目的地网络的虚拟机的数据业务时,TOR交换机可以使用例如虚拟可扩展局域网(VXLAN)来将业务引导到托管服务链的头端处的服务节点的服务器。当服务器接收到数据业务时,服务器将数据业务转发到虚拟路由器,该虚拟路由器将数据业务引导到下一跳,例如在服务链的头端处的服务节点。源网络的虚拟路由器使用例如通用路由封装(GRE)上的多协议标签交换(MPLS)或用户数据报协议(UDP)上的MPLS来将业务引导到服务节点。服务链的尾端处的服务节点将数据业务发送到目的地网络的虚拟路由器,该虚拟路由器最终将数据业务发送到虚拟机。
在一种实现中,控制器可以构建网络间服务链以将源自虚拟机的业务引导通过一个或多个服务节点,并最终引导到BMS。例如,控制器可以获得具有与目的地网络相关联的BMS的IP地址的EVPN路由。控制器可以将EVPN路由作为IP路由存储在用于源网络的IP路由表中,并通过将下一跳设置到一个或多个服务节点的服务链的头端处的服务节点来修改IP路由。控制器可以将修改的IP路由公告给源网络,其中源网络的虚拟路由器可以从控制器导入修改的IP路由,使得虚拟路由器被配置为将数据业务引导到路由下一跳,例如,服务链的头端处的服务节点。控制器还可以修改IP路由,以将下一跳设置为直接连接到BMS的TOR交换机。控制器可以将修改的IP路由公告给目的地网络,以将目的地网络的虚拟路由器配置为将从服务链的尾端处的服务节点接收到的数据业务引导到下一跳,例如TOR交换机。
以这种方式,源网络中源出发往BMS的数据业务的虚拟机可以将数据业务发送到源网络的虚拟路由器,该虚拟路由器使用例如MPLSoGRE/UDP来将数据业务引导到服务链的头端处的服务节点。当目的地网络的虚拟路由器从服务链的尾端处的服务节点接收数据业务时,目的地网络的虚拟路由器可以使用例如VXLAN将数据业务发送到TOR交换机,该TOR交换机继而将数据业务发送到BMS。
在一种实现中,控制器可以构建网络间服务链,以将源自源BMS的业务引导通过一个或多个服务节点,并最终引导至目的地BMS。例如,控制器可以获得具有与目的地网络相关联的目的地BMS的IP地址的EVPN路由。控制器可以通过将下一跳设置到托管一个或多个服务节点的服务链的头端处的服务节点的服务器来修改EVPN路由。控制器可以将修改的EVPN路由公告到直接连接到源BMS的TOR交换机,以将TOR交换机配置为将从源BMS接收的数据业务引导到下一跳路由,例如,托管服务链的头端处的服务节点的服务器。
控制器还可以将EVPN路由作为IP路由存储在源网络的IP路由表中,并设置IP路由的下一跳到服务链的头端处的服务节点。控制器将修改的IP路由公告给源网络,以将源网络的虚拟路由器配置为将从直接连接到源BMS的TOR交换机接收到的数据业务引导到路由下一跳,例如,位于服务链的头端处的服务节点。控制器还可以修改IP路由,以将下一跳设置为直接连接到目的地BMS的TOR交换机。控制器可以将修改的IP路由公告给目的地网络,以将目的地网络的虚拟路由器配置为将从服务链的尾端处的服务节点接收到的数据业务引导到下一跳,例如TOR交换机。
以这种方式,当源网络的TOR交换机接收到源自源BMS的、发往目的地BMS的数据业务时,TOR交换机可以使用例如VXLAN将数据业务引导到托管服务链的头端处的服务节点的服务器。当服务器接收到数据业务时,服务器将数据业务转发到虚拟路由器,该虚拟路由器将数据业务引导到下一跳,例如服务链的头端处的服务节点。源网络的虚拟路由器使用例如通用路由封装(GRE)上的多协议标签交换(MPLS)或用户数据报协议(UDP)上的MPLS来将业务引导到服务节点。位于服务链的尾端处的服务节点将数据业务发送到目的地网络的虚拟路由器。当目的地网络的虚拟路由器从服务链的尾端处的服务节点接收数据业务时,目的地网络的虚拟路由器可以使用例如VXLAN将数据业务发送到TOR交换机,该TOR交换机继而将数据业务发送到BMS。
本公开的技术可以提供一个或多个技术优势。例如,通过将目的地网络的路由也重新发起作为包括被设置到托管服务节点的服务器的下一跳的EVPN路由,从而将经由服务节点连接源网络和目的地网络的服务链扩展到裸机服务器。这使BMS与虚拟执行元件(在一些实例中为BMS)之间的业务能够使用EVPN作为基础运输技术、通过服务链中的一个或多个服务节点而被引导,同时维持使用IP VPN,这提供可伸缩性优势。
在一个示例中,一种方法包括:由控制器从目的地网络获得指定到该目的地网络可到达的目的地地址的下一跳的路由。该方法还包括由控制器生成第一修改路由,其将服务节点指定为针对目的地地址的下一跳,其中该服务节点在目的地网络外部。该方法还包括由控制器生成第二修改路由,其将托管服务节点的服务器指定为针对目的地地址的下一跳。此外,该方法包括由控制器将第二修改路由发送到源网络的交换机,以将该交换机配置为将源自裸机服务器并且发往源网络的业务发送到托管服务节点的服务器。该方法还包括由控制器将第一修改路由发送到源网络的路由器,以将路由器配置为将从交换机接收到的业务发送到服务节点。
在另一示例中,一种方法包括:由控制器从目的地网络中的交换机获得以太网虚拟专用网(EVPN)路由,该路由指定到目的地网络可到达的裸机服务器的互联网协议(IP)地址的下一跳。该方法还包括由控制器生成第一修改IP路由,其将服务节点指定为针对目的地地址的下一跳。该方法还包括由控制器生成第二修改IP路由,其将交换机指定为针对目的地地址的下一跳,其中,交换机被直接连接到裸机服务器。该方法还包括由控制器将第一修改IP路由发送到源网络的路由器,以将源网络的路由器配置为将源自虚拟机并且发往裸机服务器的业务发送到服务节点。此外,该方法包括由控制器将第二修改IP路由发送到目的地网络的路由器,以将目的地网络的路由器配置为将从服务节点接收到的业务发送到交换机。
在又一示例中,控制器包括一个或多个处理器。该控制器还包括由一个或多个处理器执行的控制单元,该控制单元被配置为从目的地网络获得路由,该路由指定到该目的地网络可到达的目的地地址的下一跳。控制器还包括由一个或多个处理器执行的服务链单元,该服务链单元被配置为生成将服务节点指定为针对目的地地址的下一跳的第一修改路由,其中该服务节点在目的地网络外部。一个或多个处理器还被配置为生成第二修改路由,该第二修改路由将托管服务节点的服务器指定为针对目的地地址的下一跳。一个或多个处理器还被配置为将第二修改路由发送到源网络的交换机,以将该交换机配置为将业务从裸机服务器发送到托管服务节点的服务器,其中,该业务源自裸机服务器并且发往源网络。一个或多个处理器还被配置为将第一修改路由发送到源网络的路由器,以将源网络的路由器配置为将从交换机接收到的业务发送到服务节点。
在附图和以下描述中阐述了本公开的一种或多种技术的细节。本发明的其他特征、目的和优点从说明书和附图以及权利要求书将变得明显。
附图说明
图1是图示出根据本公开中描述的技术的一个或多个方面的示例网络系统的框图。
图2是图示出根据本公开中描述的技术的一个或多个方面的另一示例网络系统的框图。
图3图示出了根据本公开中描述的技术的一个或多个方面进行操作的示例控制器。
图4是图示出根据本公开中描述的技术的一个或多个方面的提供网络间服务链的控制器的示例操作400的流程图。
图5是图示出根据本公开中描述的技术的一个或多个方面的提供网络间服务链的控制器的另一示例操作500的流程图。
图6是图示出根据本公开中描述的技术的一个或多个方面的提供从裸机服务器到虚拟执行元件的网络间服务链的网络系统的示例操作的流程图。
图7是图示出根据本公开中描述的技术的一个或多个方面的提供从虚拟执行元件到裸机服务器的网络间服务链的网络系统的示例操作的流程图。
图8是图示出根据本公开中描述的技术的一个或多个方面的提供从裸机服务器到远程裸机服务器的网络间服务链的网络系统的示例操作的流程图。
在整个附图和文本中,相同的附图标记表示相同的元件。
具体实施方式
图1是图示出根据本公开中描述的技术的示例网络系统2的框图。网络系统2包括具有网络设备的网络12A-12B(统称为“网络12”),以提供用于网络12的连接性,网络设备例如是虚拟路由器14A-14B(统称为“虚拟路由器14”)。
在图1的示例中,网络12可以表示为网络系统2建立的虚拟网络。在一些实例中,网络12可以被实现为层3虚拟专用网络(VPN)。这些层3VPN可以表示互联网协议VPN(IP VPN),诸如BGP/多协议标签交换(BGP/MPLS)IP VPN。IP VPN的实现提供了可伸缩性优势。例如,网络系统2通过确保来自不同VPN(例如,网络12)的路由保持独特且分离来将IP VPN实现为针对不同的客户对业务进行分隔,而不管针对相应客户的VPN是否具有重叠的地址空间。对于为网络系统2配置的且特定虚拟路由器14参与其中的每个VPN,虚拟路由器都维持VPN路由和转发实例(VRF),例如VRF 18A-18B(统称为“VRF 18”)。SDN控制器22可以具有用于VRF的独特路由表,虚拟路由器通过该路由表转发与VRF相关联的网络分组。BGP/MPLS IP VPN使用BGP来跨IP骨干网分发VPN路由信息(例如IP路由),而MPLS被用来转发VPN业务,诸如使用MPLSoUDP/GRE隧道。BGP/MPLS IP VPN的附加示例在Rosen和Rekhter的“BGP/MPLS IPVirtual Private Networks(VPNs)(BGP/MPLS IP虚拟专用网(VPN))”(互联网工程任务组网络工作组,征求意见稿4364,2006年2月)中进行了描述,该文档通过引用将其整体并入本文。
虚拟路由器14可以分别在用于网络12的一个或多个真实服务器(未示出)上执行。每个虚拟路由器14可以分别表示用于网络12的提供者边缘路由器。执行虚拟路由器14的服务器可以提供用于执行一个或多个客户特定虚拟机(VM)的操作环境。例如,执行虚拟路由器14B的服务器可以提供用于执行VM 27的操作环境,该VM 27可以运行针对客户的诸如Web服务器、数据库服务器和/或企业应用之类的客户应用(未示出)。VM 27可以被称为虚拟化应用工作负载(或仅被称为应用工作负载),并且通常表示虚拟化执行元件,诸如虚拟机或容器。客户设备(未示出)可以访问托管虚拟机的数据中心,以向客户提供应用或服务。
虚拟路由器14可以将网络从数据中心交换结构中的交换机和物理路由器扩展到虚拟服务器中托管的虚拟覆盖网络(例如,隧道)。虚拟路由器14动态创建和管理可用于应用工作负载之间的通信的一个或多个虚拟网络,例如网络12。在一个示例中,虚拟路由器14将虚拟网络执行为覆盖网络,其提供了将应用的虚拟地址与应用正在其上执行的服务器的物理地址(例如,IP地址)去耦合的能力。在一些示例中,这些覆盖隧道可以是通用路由封装/用户数据报协议上的多协议标签交换(GRE/GRE上的MPLS)隧道,其可以被用来将业务隧道传输到虚拟机的特定IP地址。在其他示例中,这些覆盖隧道可以是虚拟可扩展局域网(VXLAN)隧道,其被用来将业务隧道传输到诸如路由器或交换机之类的物理设备的特定IP地址。例如,覆盖隧道还可以包括使用通用路由封装的网络虚拟化(NVGRE)隧道。
每个虚拟网络12可以使用其自己的寻址和安全方案,并且可以被视为与物理网络及其寻址方案正交。虚拟路由器14包含每租户的状态。例如,虚拟路由器14可以为每个虚拟网络包含分离的转发表(路由实例)。该转发表包含虚拟机或其他虚拟执行元件(例如,容器)的IP前缀(在层3覆盖的情况下)或MAC地址(在层2覆盖的情况下)。给定的虚拟路由器可以包含服务器上本地存在的路由实例(即,其具有在服务器上存在的至少一个虚拟机)。如下面进一步所述,虚拟路由器14A可以包含针对用作服务节点10的虚拟机的路由实例,而虚拟路由器14B可以包含针对VM 27的路由实例。备选地,基础物理路由器和交换机可能不包含针对虚拟机或其他虚拟执行元件的任何每租户的状态,诸如任何MAC地址、IP地址或策略。例如,基础物理路由器和交换机的转发表可以包含物理服务器的IP前缀或MAC地址。
网络系统2可以包括裸机服务器28(“BMS 28”),该裸机服务器28表示专用于由单个客户(也被称为数据中心的“租户”)使用的服务器,其可以被称为“单租户服务器”。BMS28可以提供供单个客户使用的专用硬件,以避免在多租户服务器中发生的所谓的“有噪声的邻居问题”。即,与其中多个客户可以与相同的物理硬件/服务器交互来与它们单独被分配的虚拟路由器进行接口连接的服务器不同,BMS 28被专用于仅供单个客户使用。
TOR交换机16可以是提供层二(例如,MAC)和/或层三(例如,IP)路由和/或交换功能性的物理网络设备。TOR交换机16可以包括一个或多个处理器和存储器,并且能够执行一个或多个软件处理器。TOR交换机16可以通过将附接电路扩展到BMS 28来直接连接到BMS28,以向BMS 28提供到虚拟机的网络内或网络间连接性。在一些实例中,TOR交换机16可以实现EVPN-VXLAN以提供用于BMS 28和托管虚拟机的物理设备(例如服务器)的连接性。EVPN-VXLAN可以提供EVPN,其被用来通过中间层3网络扩展两个层2客户网络以在BMS 28和虚拟机之间进行连接。VXLAN(例如,在数据平面中)被用来提供覆盖网络以与TOR交换机16通信。TOR交换机16可以操作为用于BMS 28的虚拟隧道端点(VTEP)。TOR交换机16可以使用VXLAN封装来自BMS 28的业务以转发该业务。即,来自BMS 28的业务使用EVPN作为控制平面,而VXLAN被用作基础数据平面中的封装。
网络系统2可以包括一个或多个服务节点,例如,服务节点10A-10C(统称为“服务节点10”)。服务节点10可以例如将一个或多个服务应用于数据业务。作为示例,服务节点10可以应用一个或多个服务,诸如防火墙、深度分组检查(DPI)、入侵检测系统(IDS)、入侵防御系统(IPS)、载体级网络地址转换(CG-NAT)、媒体优化(语音/视频)、IPSec/VPN服务、运输控制协议(TCP)优化和报头丰富、缓存、HTTP过滤、计数、计费、收费和分组流的负载平衡或应用于网络业务的其他类型的服务。为了便于说明,相对于服务节点10A-10C描述了本文描述的示例,但是所公开的技术可以为任何数目的服务节点提供服务链。
在一些示例中,服务节点10可以在虚拟环境内被执行。在这些示例中,服务节点10可以各自表示服务器的虚拟计算环境中的虚拟节点,例如虚拟机,其将服务应用于由服务节点10接收的数据业务。在一些示例中,服务节点10可以备选地被称为“服务点”、“增值服务(VAS)点”或节点、或“网络功能虚拟化(NFV)节点”。网络功能虚拟化涉及不是在物理硬件设施上而是在虚拟机中的联网功能的编排和管理,诸如防火墙、IDS/IPS、DPI、缓存、广域网(WAN)优化等。以这种方式,服务节点10可以各自表示服务实例。如下面进一步描述的,服务节点10可以各自表示由SDN控制器22编排的虚拟机,其通过根据特定服务路径将分组顺序地导向到服务节点10来实现一个或多个服务链,例如服务链26A。服务节点10可以各自与一个IP地址相关联,通过该IP地址可对服务节点进行寻址以导向网络业务。例如,可以使用BGP来公告到服务节点10的IP可达性。
SDN控制器22提供了用于配置和管理网络系统2的路由和交换基础设施的控制器。SDN控制器22提供了在逻辑上且在一些情况下在物理上集中的控制器,以用于促进一个或多个虚拟网络的操作。SDN控制器22可以表示一个或多个服务器设施、专用控制器设备或以上各项的任何组合,SDN控制器22执行用以管理网络系统2的VPN的过程。有关结合其他网络设备(诸如服务节点10)或其他软件定义的网络而操作为虚拟网络控制器的SDN控制器22的附加信息在2013年6月5日提交的、名称为“PHYSICAL PATH DETERMINATION FOR VIRTUALNETWORK PACKET FLOWS(针对虚拟网络分组流的物理路径确定)”的国际申请PCT/US2013/044378中找到,该专利通过引用并入本文,就好像全文在本文中被阐述一样。
在图1的示例中,网络系统2可以扩展集群以包括BMS和连接到TOR交换机(例如TOR交换机16)的其他虚拟实例。例如,SDN控制器22可以使用例如Open vSwitch数据库管理协议(OVSDB)来配置TOR交换机,以配置TOR交换机16。SDN控制器22可以使用OVSDB将TOR交换机16配置为集群中配置的任何虚拟网络的一部分。这使得BMS(例如BMS 28)能够与集群中的任何虚拟实例进行通信。SDN控制器22还可以使用OVSDB来从TOR交换机导入动态获悉的地址。SDN控制器22可以进一步使用策略配置来控制BMS和集群中的虚拟实例的通信。
根据本文描述的技术的一个或多个方面,SDN控制器22可以经由一个或多个服务节点10来在BMS 28和VM 27之间构建一个或多个网络间服务链。在一种实现中,SDN控制器图22可以构建服务链26A,该服务链将源自与源网络12A相关联的BMS 28的业务引导到一个或多个服务节点10,并且此后引导至与目的地网络12B相关联的虚拟机27。
在图1所图示的示例中,SDN控制器22可以创建跨在基础网络上的隧道,该隧道跨越服务链26A中的所有服务。例如,SDN控制器22可以规定相应的路由实例,该路由实例包括用于服务节点10的虚拟接口和虚拟路由器14的路由实例,以便沿着业务链26A将业务从BMS28引导到业务节点10,业务节点10继而将业务发送到VM27。例如,SDN控制器22可以在与源网络12A相关联的服务链(例如,服务节点10A)的头端处规定服务节点的“左”接口,以使进入该服务节点的数据业务被转发到“左”接口以访问服务节点10A。SDN控制器22还可以在与目的地网络12B相关联的服务链(例如,服务节点10C)的尾端处规定服务节点的“右”接口,以使离开服务节点的数据业务被转发到“右”接口以访问目的地网络12B。在图1的示例中,SDN控制器22可以进一步规定“正确的”虚拟网络功能(例如,虚拟机27)以与目的地网络12B相关联。
中间服务节点(例如,服务节点10B)的每一个可以被配置为从先前的服务节点(例如,服务节点10A)接收数据业务,并将数据业务转发到后续的服务节点(例如,服务节点10C)。位于服务链的尾端处的服务节点(例如,服务节点10C)被配置为将业务发送到服务节点10C的“右”接口,以将数据业务导向到目的地网络12B。
为了使得源网络12A的虚拟路由器14A沿着服务链26A引导业务流,SDN控制器22可以从目的地网络12B获得虚拟路由器14B的IP路由与到VM 27的下一跳,将IP路由的下一跳设置指向服务节点10A,将IP路由添加到用于源网络12A的IP路由表中,并将修改的IP路由公告给源网络12A。更具体地说,SDN控制器22可以配置IP路由的下一跳和/或标签,以使得虚拟路由器14A将业务引导到服务节点10A的“左”接口。SDN控制器22将修改的IP路由向源网络12A的这种公告被称为“重新发起”IP路由。
在图1所图示的示例中,SDN控制器22与网络系统2的设备(例如,虚拟路由器14)建立通信会话20A-20B(统称为“通信会话20”)以交换控制状态信息。尽管被描述为“会话”,但是通信会话可能不一定是有状态的。在图1的示例中,通信会话20A-20B可以各自表示可扩展消息收发和存在协议(XMPP)会话或针对适合于交换控制状态的另一通信协议的会话。在一些示例中,设备可以表示物理设备。在这些示例中,通信会话可以表示边界网关协议(BGP)会话。SDN控制器22经由通信会话20A来与网络12A的虚拟路由器14A交换IP路由,并且经由通信会话20B来与网络12B的虚拟路由器14B交换IP路由。
虚拟路由器14B可以提供网络12B可到达的IP路由,包括到目的地端点(例如VM27)的IP路由。例如,虚拟路由器14B可以提供包括VM 27的目的地IP地址和针对托管VM 27的物理服务器的网络地址的IP路由。SDN控制器22可以经由通信会话20B获得针对网络12B的IP路由。在一种实现中,SDN控制器22可以经由通信会话20B从托管虚拟路由器14B的服务器的虚拟网络(VN)代理获得IP路由。
SDN控制器22修改所获得的IP路由,以将业务导向到一个或多个服务节点10,而不是直接导向到目的地网络12B。例如,为了将发往VM 27的业务从源网络12A导向到服务节点10以供处理,SDN控制器22修改所获得的IP路由中的下一跳,以指向服务节点10A的“左”接口。在一些示例中,修改路由中的下一跳可以包括修改针对基础物理网络的目的地网络地址以指向执行服务节点10A的服务器的网络地址。在一些示例中,修改路由中的下一跳还可以或者备选地包括修改标签(例如,MPLS标签)或其他虚拟网络标识符、隧道封装信息或将服务节点10A标识为网络12A和(在一些情况下)基础物理网络的组合的其他下一跳信息。结果,在其中服务节点10A由在具有一个或多个路由实例的服务器上执行的虚拟机应用的实例中,用于该服务的虚拟路由器可以将包括MPLS标签的服务链26A业务导向到服务节点10A,其在虚拟路由器中与路由实例相关联。
SDN控制器22可以将修改的IP路由存储在针对用于目的地网络12B的路由实例的IP路由表23中。IP路由表可以存储用于动态获悉的路由的IP地址(例如,IPv4和/或IPv6地址),诸如用于与目的地网络12B相关联的VM 27的IP地址。在一些示例中,IP路由表23可以包括BGP路由表,该BGP路由表存储经由BGP获悉的层3VPN路由。
SDN控制器22然后在路由协议消息21中将修改的IP路由公告给源网络12A,如上所述,修改的IP路由使下一跳被设置为服务节点10A的“左”接口。在一些示例中,路由协议消息21使用XMPP转发。在一些示例中,路由协议消息21中的路由可以包括标签,该标签标识由服务器执行为虚拟机的服务节点10A,其具有可由该路由指定的下一跳寻址的接口。标签可以是标识由服务器为服务节点10A所实现的VRF的标签。该VRF可以备选地被称为“服务VRF”或“服务路由实例”,并且可以是特定于服务节点10A的,例如由SDN控制器22或另一实体为了将业务导向至服务节点10A而建立。
在一些示例中,SDN控制器还可以用适当的路由目标(例如,在此示例中为100的路由目标)标记路由协议消息21,以使得虚拟路由器14A(以及网络12A的配置有导入路由目标100的其他路由器)导入修改的IP路由,其具有的IP地址为VM 27,并且下一跳被设置为服务节点10A的“左”接口。
源网络12A的虚拟路由器14A导入在路由协议消息21中公告的修改的IP路由,这使得虚拟路由器14A将数据业务从源网络12A引导到服务节点10A,而不是直接引导到目的地网络12B。例如,当虚拟路由器14A接收去往VM 27的网络业务时,虚拟路由器14A可以将网络业务引导至路由下一跳,即服务节点10A。
在将一个或多个服务应用于业务流之后,在服务链的尾端处的服务节点,例如服务节点10C,可以将业务朝向目的地网络12B发送到服务网络10C的“右”接口。例如,服务节点10C的“右”接口将数据业务发送到目的地网络12B的虚拟路由器14B,后者继而将业务转发到VM27。在2014年6月30日提交的名称为“SERVICE CHAINING ACROSS MULTIPLENETWORKS(跨多个网络的服务链)”的美国专利号9,634,936中进一步描述了不同网络的虚拟实体之间的服务链的附加示例,其全部内容通过引用并入本文。
根据本文公开的技术的一个或多个方面,SDN控制器22还可以将IP路由重新发起作为EVPN路由,以将服务链26A扩展到BMS 28。例如,SDN控制器22除了将从目的地网络12B获得的IP路由重新发起到源网络12A中且具有到服务节点10A的修改的下一跳之外,还可以将IP路由重新发起作为EVPN路由,并且下一跳指向托管服务节点10A的“左”接口的服务器。
例如,除了将IP路由存储在针对用于目的地网络12B的路由实例的IP路由表23中之外,SDN控制器22还可以将IP路由作为EVPN路由存储在用于路由实例的EVPN路由表24中。EVPN路由表24可以存储EVPN相关的路由,诸如指定用于跨数据中心的子网间连接性的IP前缀(例如,VM 27的IP地址)的EVPN型5路由。EVPN型5路由的附加示例在2018年5月18日的BESS工作组、互联网草案,draft-ietf-bess-evpn-prefix-advertisement-11的“IPPrefix Advertisement in EVPN(EVPN中的IP前缀公告)”中进行了描述,其全部内容通过引用并入本文。
SDN控制器22还可以通过将下一跳设置为指向托管服务节点10A的“左”接口的服务器来修改EVPN路由。修改路由中的下一跳可以包括修改用于基础物理网络的目的地网络地址,以指向执行操作为服务节点10A的虚拟机的服务器的网络地址。
为了导入EVPN路由,TOR交换机16配置有适当的路由目标。例如,TOR交换机16可以自动生成路由目标(例如,80000*)。在所图示的示例中,TOR交换机16可以生成导入路由目标80000:300。
在一些示例中,SDN控制器22可以备选地或附加地规定要为其应用服务链26A的一个或多个逻辑路由器。逻辑路由器是物理路由器,其被分为执行独立的路由任务的多个逻辑设备。当创建逻辑路由器时,SDN控制器还可以创建内部虚拟网络,该内部虚拟网络被用来承载EVPN类型5路由。在这些示例中,为关联的内部虚拟网络配置路由目标。
SDN控制器22可以将EVPN路由发送到TOR交换机16,并将下一跳被设置为托管服务节点10A的“左”接口的服务器且路由目标为80000:300。在一个示例中,SDN控制器22可以发送包括EVPN路由、下一跳和路由目标的路由协议公告30(例如,BGP消息)。TOR交换机16可以导入EVPN路由,其中目的地地址为VM 27且下一跳被设置为托管服务节点10A的“左”接口的服务器。TOR交换机16可以将EVPN路由存储在EVPN路由表中,并在其转发表中将下一跳配置到托管服务节点10A的“左”接口的服务器。
当TOR交换机16接收到源自BMS 28并且发往VM 27的数据业务时,TOR交换机16可以执行对其转发表的查找以确定下一跳,该下一跳是托管服务节点10A的“左”接口的服务器。TOR交换机16可以将VXLAN外部分组封装到数据业务中,以将数据业务隧道传输到托管服务节点10A的“左”接口的物理服务器的网络地址。TOR交换机16还可以封装标识用于目的地网络12B的路由实例的虚拟网络标识符(VNI)(例如,VXLAN标号)。
当服务器的虚拟路由器14A接收到VXLAN封装的数据业务时,虚拟路由器14A对VXLAN外部报头进行解封装并基于VNI执行下一跳的查找。虚拟路由器14A可以从查找中确定下一跳是服务节点10A的“左”接口。虚拟路由器14A例如使用MPLSoGRE/UDP将分组发送到服务节点10A。从这里,服务节点10A(和后续的服务节点10)将一个或多个服务应用于数据业务。当位于服务链的尾端处的服务节点(例如,服务节点10C)接收到数据业务时,服务节点10C将数据业务引导至目的地网络12B的虚拟路由器14B,后者继而将数据业务转发至VM27。
在一些示例中,SDN控制器22可以计算针对在相反方向(即从VM 27到BMS 28)上流动的业务的服务链26B。例如,SDN控制器22可以获得具有针对与目的地网络12A相关联的BMS 28的目的地地址的EVPN路由。例如,SDN控制器22可以经由与TOR交换机16的TOR代理的通信会话20A来获得EVPN路由。EVPN路由可以包括EVPN型5路由,其指定了与目的地网络12A相关联的BMS 28的IP地址。SDN控制器22可以将获得的EVPN路由存储在用于源网络12B的EVPN路由表24中。
SDN控制器22可以将所获得的EVPN路由重新发起作为IP路由。例如,除了将EVPN路由存储在EVPN路由表24中之外,SDN控制器22还可以将EVPN路由作为IP路由存储在用于路由实例的IP路由表23中。SDN控制器22可以将IP路由中的下一跳设置到TOR交换机16。SDN控制器22可以将IP路由公告给目的地网络,例如目的地网络12A。虚拟路由器14A可以导入IP路由和指向TOR交换机16的下一跳,以使虚拟路由器14A被配置为将从在服务链的尾端处的服务节点(例如,服务节点10A)接收到的数据业务引导到TOR交换机16。
SDN控制器22还可以将包括从目的地网络12A获得的EVPN路由的路由协议消息公告给源网络12B,源网络12B与托管服务链的头端处的服务节点(例如,服务节点10C)的服务器相关联。源网络12B的虚拟路由器14B可以将EVPN路由导入到用于源网络12B的EVPN路由表中,并且还可以将在EVPN路由中指定的IP路由存储在IP路由表中。
当虚拟路由器14B接收到源自VM 27并且发往BMS 28的数据业务时,虚拟路由器14B执行对其转发表的查找,并确定下一跳是服务链的头端(例如,在此示例中为服务节点10C)。例如,虚拟路由器14B可以使用MPLSoGRE/UDP将业务引导到服务节点10C。当位于服务链的尾端处的服务节点(例如,服务节点10A)接收到数据业务时,服务节点10A将数据业务引导至目的地网络12A的虚拟路由器14A。虚拟路由器14A可以接收数据业务并执行对其转发表的查找,并确定下一跳是TOR交换机16。虚拟路由器14A可以将VXLAN外部分组封装到数据业务,以将数据业务隧道传输到TOR交换机16。虚拟路由器14A可以封装标识用于目的地网络12A的路由实例的VNI。当TOR交换机16接收到VXLAN封装的数据业务时,TOR交换机16对VXLAN外部报头进行解封装,并基于VNI执行对下一跳的查找。TOR交换机16可以从查找中确定下一跳是BMS 28,并将数据业务转发到BMS 28。
本公开的技术可以提供一个或多个技术优势。例如,通过将目的地网络的路由也重新发起作为包括被设置到托管服务节点的服务器的下一跳的EVPN路由,从而将经由服务节点连接源网络和目的地网络的服务链扩展到裸机服务器。这使BMS与虚拟执行元件(在一些实例中为BMS)之间的业务能够使用EVPN作为基础运输技术、通过服务链的一个或多个服务节点而被引导,同时维持使用IP VPN,这可以提供可伸缩性优势。
图2是图示出根据本公开中描述的技术的一个或多个方面的网络系统2的另一示例的框图。在图2的示例中,SDN控制器22可以经由一个或多个服务节点(例如服务节点10)来在裸机服务器31A-31B(统称为“BMS 31”)之间构建网络间服务链。在一种实现中,SDN控制器22可以构建服务链33,其将业务从与源网络12A相关联的源BMS 31A引导到一个或多个服务节点10,并且此后引导至与目的地网络12B相关联的目的地BMS 31B。
在该示例中,SDN控制器22可以重新发起从目的地网络12B获得的EVPN路由。例如,SDN控制器22可以从与TOR交换机32B的TOR代理的通信会话20B中获得EVPN路由。在该示例中,通信会话20B可以是BGP会话。SDN控制器22可以获得EVPN路由,诸如指定BMS 31B的IP地址的EVPN型5路由。SDN控制器22可以将EVPN路由存储在针对用于目的地网络12B的路由实例的EVPN路由表24中。
SDN控制器22也可以将EVPN路由中的下一跳设置为指向托管服务链33的头端处的服务节点(例如,在该示例中为服务节点10A)的服务器。修改EVPN路由中的下一跳可以包括修改用于基础物理网络的目的地网络地址,以指向托管服务节点10A的“左”接口的服务器的网络地址。
SDN控制器22可以将包括修改的EVPN路由、下一跳和适当路由目标的路由协议消息36(例如BGP消息)公告到TOR交换机32A,其中下一跳指向托管服务器服务节点10A的“左”接口的服务器。TOR交换机32A可以导入EVPN路由,其目的地地址为BMS 31B且下一跳被设置到托管服务节点10A的“左”接口的服务器。TOR交换机32A可以将EVPN路由存储在EVPN路由表中,并在其转发表中将下一跳配置到托管服务节点10A“左”接口的服务器。
SDN控制器22可以将所获得的EVPN路由重新发起作为IP路由,并且将IP路由的下一跳设置为指向针对用于目的地网络12B的路由实例的TOR交换机32B。例如,除了将EVPN路由存储在EVPN路由表24中之外,SDN控制器22还可以将EVPN路由作为IP路由存储在用于路由实例的IP路由表23中。SDN控制器22还可以将IP路由中的下一跳设置为指向TOR交换机32B。SDN控制器22可以向目的地网络12B公告包括IP路由的路由协议消息34,以将虚拟路由器14B配置为将从服务链的尾端(例如服务节点10C)接收的数据业务引导到TOR交换机32B。
SDN控制器22还可以将包括从目的地网络12B获得的EVPN路由的路由协议消息35公告给源网络12A,源网络12A与托管服务链的头端处的服务节点(例如,服务节点10A)的服务器相关联。源网络12A的虚拟路由器14A可以将EVPN路由导入到用于源网络12A的EVPN路由表中,并且还可以将在EVPN路由中指定的IP路由存储在IP路由表中。
当TOR交换机32A接收到源自源BMS 31A并且发往目的地BMS 31B的数据业务时,TOR交换机32A可以执行对其转发表的查找以确定下一跳,该下一跳是托管服务节点10A的“左”接口的服务器。TOR交换机16可以将VXLAN外部分组封装到数据业务中,以将数据业务隧道传输到托管服务节点10A的“左”接口的物理服务器的网络地址。TOR交换机16还可以封装标识用于目的地网络12B的路由实例的VNI。
当服务器的虚拟路由器14A接收到VXLAN封装的数据业务时,虚拟路由器14A对VXLAN外部报头进行解封装,并基于VNI执行对下一跳的查找。虚拟路由器14A可以从查找中确定下一跳是服务节点10A的“左”接口。虚拟路由器14A例如使用MPLSoGRE/UDP将分组发送到服务节点10A。当服务链的尾端处的服务节点(例如,服务节点10C)接收到数据业务时,服务节点10C将数据业务引导到目的地网络12B的虚拟路由器14B。虚拟路由器14B可以接收数据业务并执行对其转发表的查找,并确定下一跳是TOR交换机32B。虚拟路由器14B可以将VXLAN外部分组封装到数据业务中,以将数据业务隧道传输到TOR交换机32B。虚拟路由器14B可以封装标识用于目的地网络12B的路由实例的VNI。当TOR交换机32B接收到VXLAN封装的数据业务时,TOR交换机32B对VXLAN外部报头进行解封装,并基于VNI执行对下一跳的查找。TOR交换机32B可以从查找中确定下一跳是目的地BMS 31B,并且将数据业务转发到BMS31B。
图3图示出了根据本文描述的技术的一个或多个方面进行操作的示例控制器。SDN控制器300可以表示图1-图2的SDN控制器22的示例实例。尽管被图示和描述为物理上是分布式的且“虚拟”的网络控制器,但是SDN控制器300的一些示例可以在物理上和逻辑上被集中在设施或服务器内。
如在图3的示例中所图示的,SDN控制器300包括一个或多个控制器节点302A-302N(统称为“控制器节点302”)。每个控制器节点302可以表示SDN控制器300的分布式和“虚拟”网络控制器。根据在网络上操作的对等协议而彼此对等的控制器节点302,其可以表示交换结构或L2/L3IP结构的示例实例。在图示的示例中,控制器节点302使用边界网关协议(BGP)实现(对等协议的示例)而彼此对等。在这个意义上,控制器节点302A和302N可以表示使用对等协议对等的第一控制器节点设备和第二控制器节点设备。控制器节点302包括相应的网络发现模块364A-364N,以发现网络的网络元件。
控制器节点302使用对等协议向彼此提供与至少部分地由控制器节点302管理的虚拟网络的各个元件相关的信息。例如,控制器节点302A可以管理操作为虚拟网络的虚拟网络交换机的第一组一个或多个服务器。控制器节点302A可以通过BGP 368A将与第一组服务器的管理或操作相关的信息发送到控制器节点302N。例如,由控制器节点302管理的其他元件可以包括网络控制器和/或设施、网络基础设施设备(例如,L2或L3交换机)、通信链路、防火墙和控制器节点302。因为控制器节点302具有对等关系而不是主从关系,所以可以在控制器节点302之间充分容易地共享信息。另外,可以足够容易地替换控制器节点302的硬件和/或软件,从而提供令人满意的资源互换性。
每个控制器节点302可以包括用于执行基本相似的功能性的基本相似的组件,在下文中主要关于控制器节点302A来描述所述功能性。控制器节点302A可以包括分析数据库356A,其用于存储与由控制器节点302A管理的第一组元件相关的诊断信息。控制器节点302A可以共享与由控制器节点302A管理并存储在分析数据库356中的第一组元件中的一个或多个元件相关的至少一些诊断信息,以及接收与由其他控制器节点302A管理的任何元件相关的至少一些诊断信息。例如,分析数据库356A可以表示分布式哈希表(DHT),或者用于与其他控制器节点352协作地以分布式的方式存储用于网络元件的诊断信息的任何合适的数据结构。
控制器节点302A可以包括配置数据库360A,其用于存储与由控制器节点302A管理的第一组元件相关的配置信息。控制器节点302A的控制平面组件可以使用接口340将配置信息存储到配置数据库360A,该接口340可以表示用于元数据接入点(IF-MAP)协议实现的接口。控制器节点302A可以共享与由控制器节点302A管理并存储在配置数据库360A中的第一组元件中的一个或多个元件相关的至少一些配置信息,以及接收与由其他控制器节点302A管理的任何元件相关的至少一些配置信息。例如,配置数据库360A可以表示分布式哈希表(DHT),或者用于与其他控制器节点302协作地以分布式的方式存储用于网络元件的配置信息的任何合适的数据结构。RIB的各部分(包括如图1中所述的IP路由表和EVPN路由表)可以由控制节点存储,以促进网络发现模块和BGP 368的操作。
SDN控制器300可以执行由模块330表示的所示SDN控制器操作中的任何一个或多个操作,模块330可以包括编排332、用户界面(UI)334、全局负载平衡336和一个或多个应用338。SDN控制器300执行编排模块332,以响应于动态需求环境通过例如在数据中心服务器中产生/移除虚拟机、调整计算能力、分配网络存储资源以及修改连接虚拟网络的虚拟交换机的虚拟拓扑,来促进对一个或多个虚拟网络的操作。由SDN控制器300执行的SDN控制器全局负载平衡336支持例如在控制器节点302之间进行分析、配置、通信任务的负载平衡。应用338可以表示由控制器节点302执行的一个或多个网络应用,以例如改变物理和/或虚拟网络的拓扑、添加服务或影响分组转发。
用户界面334包括可用于管理员(或软件代理)控制控制器节点302的操作的接口。例如,用户界面334可以包括各种方法,管理员可以通过这些方法修改例如控制器节点302A的配置数据库360A。由SDN控制器300操作的一个或多个虚拟网络的管理可以通过提供单个管理点的统一用户界面334来进行,这可以减少一个或多个虚拟网络的管理成本。
控制器节点302A可以包括诸如控制平面虚拟机(VM)310A之类的控制单元,其执行控制平面协议以控制和监视一组网络元件。在一些实例中,控制平面VM 310A可以表示本机过程。在所图示的示例中,控制平面VM 310A执行BGP 368A,以将与由控制器节点302A管理的第一组元件相关的信息提供给例如控制器节点302N的控制平面虚拟机362N。控制平面VM310A可以使用基于开放标准的协议(例如,基于BGP的L3VPN)来分发关于其与其他控制平面实例的(多个)虚拟网络和/或(多个)其他第三方联网装备的信息。给定根据本文描述的一个或多个方面的基于对等的模型,不同的控制平面实例(例如,控制平面VM 310A-310N的不同实例)可以执行不同的软件版本。在一个或多个方面,例如,控制平面VM 310A可以包括特定版本的软件类型,并且控制平面VM 310N可以包括相同类型的软件的不同版本。控制节点设备的对等配置可以实现针对控制平面VM 310A-310N使用不同的软件版本。各个控制器节点302对多个控制平面VM的执行可以防止出现单个故障点。
控制平面VM 310A可以使用通信协议来与物理和虚拟路由器进行通信。虚拟路由器或交换机促进一个或多个虚拟网络中的覆盖网络。在所图示的示例中,控制平面VM 310A使用可扩展消息收发和存在协议(XMPP)366A,来与用于虚拟网络的至少一个虚拟路由器(例如,图1-图2的虚拟路由器14)通信。可以根据XMPP 366A将虚拟网络路由数据、统计信息收集、日志和配置信息作为XML文档发送,以用于在控制平面VM 310A与虚拟路由器之间的通信。控制平面VM 310A可以继而将数据路由发送到其他XMPP服务器(诸如分析收集器),或者可以代表一个或多个虚拟网络交换机检索配置信息。控制平面VM 310A可以进一步执行用于与和配置数据库360A相关联的配置虚拟机(VM)358A进行通信的通信接口340。通信接口340可以表示IF-MAP接口。
控制器节点302A可以进一步包括配置VM 308A,用以存储用于网络元件的配置信息并管理配置数据库360A。配置VM 308A尽管被描述为虚拟机,但是在一些方面,其可以表示在控制器节点302A的操作系统上执行的本机过程。配置VM 308A和控制平面VM 310A可以通过使用XMPP的通信接口344A、使用IF-MAP进行通信。在一些方面,配置VM 308A可以包括水平可伸缩的多租户IF-MAP服务器和表示配置数据库360A的基于分布式哈希表(DHT)的IF-MAP数据库。在一些方面,配置VM 308A可以包括配置转换器,其可以将用户友好的更高级别的虚拟网络配置转换成可以使用配置数据库360A存储的基于标准的协议配置(例如,BGP L3VPN配置)。通信接口340可以包括用于与其他网络元件通信的IF-MAP接口。假设IF-MAP模式可以被动态更新,则使用IF-MAP可以使虚拟网络配置的存储和管理非常灵活且可扩展。有利地,虚拟网络控制器228的各方面对于新应用338可以是灵活的。
控制器节点302A还可以包括分析虚拟机(VM)304A,用以存储与由控制器节点302A管理的至少第一组元件相关的诊断信息(和/或可见性信息)。控制平面VM 310A和分析VM304A可以通过通信接口346A使用XMPP实现进行通信。分析VM 304A尽管被描述为虚拟机,但是在一些方面,其可以表示在控制器节点302A的操作系统上执行的本机过程。
分析VM 304A可以包括分析数据库356A,其可以存储用于虚拟网络的可见性数据。可见性信息可以描述分布式SDN控制器300本身的以及客户网络的可见性。分布式数据库可以在第一侧上包括XMPP接口,并且在第二侧上包括REST/JSON/XMPP接口。
虚拟路由器可以由SDN控制器300控制,以实现针对一个或多个端点和/或一个或多个主机的层3转发和策略强制实施点。由于来自控制平面VM 310A的配置,一个或多个端点或一个和/或一个或多个主机可以被分类为虚拟网络。控制平面VM 310A还可以将针对每个端点的虚拟到物理的映射分发给所有其他端点作为路由。这些路由可以给出将虚拟IP映射到物理IP的下一跳和所使用的封装技术(例如IPinIP、NVGRE、VXLAN等之一)。虚拟路由器可能对所使用的实际隧道传输封装一无所知。例如使用地址解析协议(ARP)、动态主机配置协议(DHCP)、域名服务(DNS)等之一,虚拟路由器还可以捕获令人感兴趣的层2(L2)分组、广播分组和/或实现用于这些分组的代理。
在一些情况下,不同的控制器节点302可以由不同的供应者提供。然而,控制器节点302的对等配置可以使得能够使用由不同供应者提供的不同硬件和/或软件,以用于实现分布式SDN控制器300的控制器节点302。根据上述内容进行操作的系统可以与物理网络拓扑、访问类型和/或位置无关地将网络拓扑的逻辑视图提供给终端主机。在无需更改网络的终端主机视图的情况下,分布式SDN控制器300为网络操作者和/或应用提供了编程方式来改变拓扑、影响分组转发和/或添加服务以及网络服务(例如防火墙)的水平伸缩。
由模块330表示的任何虚拟网络控制器操作都可以导向/请求控制器节点302建立服务链,以用于从BMS和虚拟机跨不同网络引导业务通过一系列的一个或多个服务节点10。例如,UI 334可以接收客户端请求以创建用于客户端业务的服务链(例如,图1的服务链26A)。作为另一示例,应用338中的一个可以请求针对用于该应用的应用业务的服务链。
控制平面VM 310A-310N还包括根据本公开中描述的技术实现服务链的各个服务链单元370A-370N。为了便于描述,以下针对服务链单元370A描述服务链单元370A-370N的操作。服务链单元370A监视由控制平面VM 310经由XMPP 366A从SDN控制器300控制的虚拟化元件获得的路由,以及在一些实例中,监视由SDN控制器300生成的用于对元件进行配置的路由。
根据本文描述的技术,服务链单元370A可以部分地通过将路由修改并重新发起到由SDN控制器300控制的元件的网络中来建立所请求的服务链。例如,SDN控制器300可以接收请求(例如,经由UI 334),以经由一个或多个服务节点例如由虚拟机315A-315C实现的服务节点(服务节点VM 315”),来配置BMS 328A与目的地端点(例如VM 315N或BMS 328B)之间的网络间服务链。
SDN控制器300可以规定网络元件,以经由一个或多个服务节点VM 315将业务从源网络322A导向至目的地网络332N。为了经由一个或多个服务节点VM 315将业务从源网络322A导向至目的地网络322N,服务链单元370A可以从目的地网络322N获得路由,修改路由以设置下一跳和(在一些情况下)标签以指定服务链的头端处的服务节点(例如,服务节点VM 315A),并将修改的路由重新发起到源网络322A中。例如,SDN控制器300可以使用XMPP366N来获得到目的地端点(例如VM 315N)的IP路由。在一个示例中,SDN控制器300可以从托管VM 315N的服务器312N的VN代理313N获得IP路由。SDN控制器300可以将IP路由存储在控制平面VM 310A中的IP路由表中(未示出)。尽管利用特定的控制平面VM描述了本文所述的示例,但是该技术可以由SDN控制器300的任何控制平面VM执行。
为了将获得的IP路由重新发起到源网络322A中,服务链单元370A可以使用XMPP366A来将修改的IP路由发送到具有标识VM 315A的下一跳的服务器312A的VN代理313A。服务链单元370A可以进一步将获得的IP路由重新发起作为EVPN路由。例如,为了将业务从裸机服务器328导向到托管服务节点VM 315A的服务器312A,服务链单元370A可以将从目的地网络322N获得的IP路由作为EVPN路由存储在用于路由实例的控制平面VM 310A的EVPN路由表中(图3中未示出)。例如,服务链单元370A被配置为响应于起源于服务链的头端处的IP路由(例如,源自虚拟路由器314A的IP路由)来发起EVPN路由(例如,EVPN型5路由)。服务链单元370A可以修改EVPN路由以设置下一跳和(在一些情况下)标签,以指定托管操作为服务链的头端处的服务节点的VM 315A的服务器312A,并且重新发起到TOR交换机316A的EVPN路由。为了重新发起到TOR交换机316A的EVPN路由,服务链单元370A可以使用BGP 368A发送包括具有到服务器312A的下一跳的EVPN路由的BGP消息,该消息使TOR交换机316A将源自BMS328A并且发往BMS 328B的数据业务引导到服务器312A。在一些示例中,BGP消息还包括使得TOR交换机316A导入EVPN路由的路由目标。
在一些示例中,SDN控制器300可以接收请求以将网络间服务链配置为经由一个或多个服务节点VM 315将数据业务从虚拟机315N引导到BMS 328A。在这些示例中,控制平面VM 310A可以例如经由使用BGP 368A的BGP会话,来获得指定BMS 328A的IP地址的EVPN路由。控制平面VM 310A可以将所获得的EVPN路由重新发起作为用于目的地网络(例如网络322A)的路由实例的IP路由。例如,控制平面VM 310A可以将EVPN路由存储到用于源网络的控制平面VM 310N的IP路由表中。服务链单元370A可以修改指向目的地网络322A的TOR交换机316A的下一跳。服务链单元370A可以使用XMPP 366A将IP路由公告给服务器312A,服务器312A托管与服务链的尾端处的服务节点(例如,服务节点VM 315C)进行接口连接的虚拟路由器314A。虚拟路由器314A可以导入IP路由和指向TOR交换机316A的下一跳。例如,控制平面VM 310A可以使用XMPP 366A来公告包括IP路由和下一跳的XMPP消息。以这种方式,虚拟路由器314A可以使用VXLAN封装来将从VM 315C接收的数据业务发送到TOR交换机316A,TOR交换机316A继而将数据业务转发到BMS 328A。
在一些示例中,SDN控制器300可以接收请求以将网络间服务链配置为经由一个或多个服务节点VM 315来引导BMS 328A和BMS 328B之间的数据业务。在这些示例中,当控制平面VM 310A从目的地网络322N的TOR交换机316B接收到EVPN路由时,控制平面VM 310A可以将EVPN路由重新发起作为用于路由实例的IP路由。SDN控制器300可以经由与TOR交换机316B的TOR代理的通信会话来获得EVPN路由。TOR代理充当针对TOR交换机316B的OVSDB客户端,并且可以接收TOR交换机端口是其成员的虚拟网络的EVPN路由以及TOR交换机中获悉的MAC地址。在一些情形下,由TOR代理接收的EVPN路由被添加到OVSDB中的单播远程表中。在一些实例中,由TOR代理接收的MAC地址被导出到SDN控制器300(例如,控制平面VM 310N)中适当的EVPN表并被分发给其他控制器,并随后被分发给计算节点以及集群中支持EVPN的其他网络设备。控制器节点304随后为TOR交换机和其他计算节点中的每个虚拟网络编程复制树。控制平面VM 310A可以将EVPN路由存储到控制平面VM 310N中的IP路由表中(未示出),以用于目的地网络322N的路由实例。服务链单元370A可以将下一跳设置到目的地网络322N的TOR交换机316B。服务链单元370A可以使用XMPP 366A将IP路由公告到服务器312A,服务器312A托管与服务链的尾端处的服务节点(例如,服务节点VM 315C)进行接口连接的虚拟路由器314A。虚拟路由器314N可以导入IP路由和指向TOR交换机316B的下一跳。以这种方式,虚拟路由器314A可以使用VXLAN封装来将从VM 315C接收的数据业务发送到TOR交换机316B,TOR交换机316B继而将数据业务转发到BMS 328B。
服务链单元370A还可以将从目的地网络322N获得的EVPN路由中的下一跳设置为指向托管服务链的头端处的服务节点(例如服务节点VM 315A)的服务器312A。服务链单元370A可以使用BGP 368A将路由协议公告(例如,BGP消息)公告给TOR交换机316A。BGP消息可以包括EVPN路由和下一跳,以将TOR交换机316A配置为将源自BMS 328A并且发往BMS 328B的数据业务引导至服务器312A。在一些示例中,BGP消息还包括使得TOR交换机316A导入EVPN路由的路由目标。
图4是图示出根据本公开中描述的技术的一个或多个方面的提供网络间服务链的控制器的示例操作400的流程图。尽管关于图1的SDN控制器22进行了描述,但是示例操作400可以由任何控制器、服务器、设施、管理系统或其他合适的网络设备应用以执行本文描述的技术。关于配置图1的网络系统2中的服务链26A以及配置图2的网络系统2中的服务链33来描述图4的操作400。如图6进一步描述的,SDN控制器22可以执行操作400,以提供从裸机服务器到虚拟执行元件(例如,虚拟机)的网络间服务链。如图8中进一步描述的,SDN控制器22可以执行操作400以提供从裸机服务器到远程裸机服务器的网络间服务链。
在图4的示例中,SDN控制器22可以从目的地网络12B获得指定到目的地网络可到达的目的地地址的下一跳的路由(402)。在一些示例中,SDN控制器22可以从目的地网络获得IP路由,该IP路由指定了目的地网络12B可到达的虚拟机(例如,图1的VM 27)。在这样的示例中,SDN控制器22可以与目的地网络12B的虚拟路由器14B建立通信会话(例如,通信会话20B)以交换控制状态信息。SDN控制器22经由通信会话20B来与网络12B的虚拟路由器14B交换IP路由,并且经由通信会话20B来与网络12B的虚拟路由器14B交换IP路由。在其他示例中,SDN控制器22可以从目的地网络获得EVPN路由,该EVPN路由指定了目的地网络12B可到达的裸机服务器(例如,图2的BMS 31B)。在这样的示例中,SDN控制器22可以从与TOR交换机32B的TOR代理的通信会话20B获得EVPN路由。SDN控制器22可以获得EVPN路由,诸如指定BMS31B的IP地址的EVPN型5路由。
SDN控制器22可以生成第一修改路由,其将服务节点指定为针对目的地地址的下一跳,其中该服务节点在目的地网络外部(404)。在一个示例中,如果SDN控制器22从目的地网络获得IP路由,则SDN控制器22可以通过修改到操作为服务链的头端的服务节点10A的下一跳来修改IP路由。例如,SDN控制器22修改所获得的IP路由,以将业务导向到一个或多个服务节点10,而不是直接导向到目的地网络12B。在其他示例中,如果SDN控制器22从目的地网络获得EVPN路由,则SDN控制器可以将EVPN路由重新发起作为IP路由,并且将下一跳修改到操作为服务链的头端的服务节点10A。
SDN控制器22可以生成第二修改路由,其将托管服务节点的服务器指定为针对目的地地址的下一跳(406)。在一个示例中,如果SDN控制器22从目的地网络获得IP路由,则SDN控制器22可以将从目的地网络12B获得的IP路由存储为EVPN路由(例如,EVPN型5路由)。SDN控制器可以将针对EVPN路由的下一跳设置为针对托管服务节点(例如,作为虚拟机)的物理服务器的IP地址。在其他示例中,如果SDN控制器22从目的地网络获得EVPN路由,则SDN控制器22可以将EVPN路由中的下一跳设置为指向托管服务链的头端处的服务节点的服务器。修改EVPN路由中的下一跳可以包括修改用于基础物理网络的目的地网络地址,以指向托管服务节点10A的“左”接口的服务器的网络地址。
SDN控制器22可以将第二修改路由发送到源网络的交换机,以将该交换机配置为将源自裸机服务器并且去往源网络的业务发送到托管服务节点的服务器(408)。例如,SDN控制器22可以将具有下一跳和路由目标的EVPN路由发送到TOR交换机16,该下一跳被设置到托管服务节点10A的“左”接口的服务器且该路由目标使得TOR交换机16导入路由目标。以这种方式,TOR交换机16可以将EVPN路由与目的地节点(例如,图1的VM 27或图2的BMS 31B)的目的地地址一起导入,并将下一跳设置为托管服务节点10A的“左”接口的服务器。TOR交换机16可以将EVPN路由存储在EVPN路由表中,并在其转发表中将下一跳配置到托管服务节点10A的“左”接口的服务器。
SDN控制器22可以将第一修改路由发送到源网络的路由器,以将路由器配置为将从交换机接收的业务发送到服务节点(410)。例如,SDN控制器22可以在路由协议消息中将修改的IP路由公告给源网络12A,该修改的IP路由具有被设置到服务节点10A的“左”接口的下一跳。源网络12A的虚拟路由器14A导入被公告的修改的IP路由,这使得虚拟路由器14A将数据业务从源网络12A引导到服务节点10A,而不是直接引导到目的地网络12B。例如,当虚拟路由器14A接收发往目的地节点(例如,图1的VM 27或图2的BMS 31B)的网络业务时,虚拟路由器14A可以将网络业务引导至路由下一跳,即服务节点10A。
图5是图示出根据本公开中描述的技术的一个或多个方面的提供网络间服务链的控制器的另一示例操作500的流程图。尽管关于图1的SDN控制器22进行了描述,但是示例操作500可以由任何控制器、服务器、设施、管理系统或其他合适的网络设备应用以执行本文描述的技术。关于配置图1的网络系统2中的服务链26B来描述图5的操作500。如图7中进一步描述的,SDN控制器22可以执行操作500以提供从虚拟执行元件(例如,虚拟机)到裸机服务器的网络间服务链。
SDN控制器22可以从目的地网络中的交换机获得以太网虚拟专用网络(EVPN)路由,该路由指定了到目的地网络可到达的裸机服务器的互联网协议(IP)地址的下一跳(502)。例如,SDN控制器22可以经由与TOR交换机16的TOR代理的通信会话20A获得EVPN路由。EVPN路由可以包括EVPN型5路由,该路由指定了与目的地网络12A相关联的BMS 28的IP地址。
SDN控制器22可以生成第一修改IP路由,其将服务节点指定为针对目的地地址的下一跳(504)。例如,SDN控制器22可以将所获得的EVPN路由重新发起作为IP路由。例如,除了将EVPN路由存储在EVPN路由表24中之外,SDN控制器22还可以将EVPN路由作为IP路由存储在用于路由实例的IP路由表中。SDN控制器22可以将IP路由中的下一跳设置为指向托管服务链的头端处的服务节点的服务器。
SDN控制器22可以生成第二修改IP路由,其将交换机指定为针对目的地地址的下一跳,其中交换机被直接连接到裸机服务器(506)。例如,SDN控制器22可以将所获得的EVPN路由重新发起作为IP路由。例如,除了将EVPN路由存储在EVPN路由表24中之外,SDN控制器22还可以将EVPN路由作为IP路由存储在用于路由实例的IP路由表中。SDN控制器22可以将IP路由中的下一跳设置到TOR交换机16。
SDN控制器22可以将第一修改IP路由发送到源网络的路由器,以将源网络的路由器配置为将源自虚拟机并且发往裸机服务器的业务发送到服务节点(508)。例如,SDN控制器22可以向与托管服务链的头端处的服务节点(例如服务节点10C)的服务器相关联的源网络12B公告包括从目的地网络(例如目的地网络12A)获得的EVPN路由的路由协议消息。源网络12B的虚拟路由器14B可以将EVPN路由导入到用于源网络12B的EVPN路由表中,并且还可以将在EVPN路由中指定的IP路由存储在IP路由表中。以这种方式,当虚拟路由器14B接收到源自VM 27并且发往BMS 28的数据业务时,虚拟路由器14B执行对其转发表的查找,并确定下一跳是服务链的头端(例如,在此示例中为服务节点10C)。
SDN控制器22可以将第二修改IP路由发送到目的地网络的路由器,以将目的地网络的路由器配置为将从服务节点接收的业务发送到交换机(510)。例如,SDN控制器22可以将IP路由公告到目的地网络,例如目的地网络12A。虚拟路由器14A可以导入IP路由和指向TOR交换机16的下一跳,使得虚拟路由器14A被配置为将从服务链的尾端处的服务节点(例如,服务节点10A)接收到的数据业务引导到TOR交换机16。以这种方式,当虚拟路由器14A从服务链的尾端接收数据业务时,虚拟路由器14A可以执行对其转发表的查找,并确定下一跳是TOR交换机16,并将业务发送到TOR交换机16。
图6是图示出根据本公开中所描述的技术的一个或多个方面的提供从裸机服务器到虚拟执行元件(例如,虚拟机)的网络间服务链的网络系统的示例操作600的流程图。尽管关于图1的SDN控制器22进行了描述,但是示例操作600可以由任何控制器、服务器、设施、管理系统或其他合适的网络设备应用以执行本文描述的技术。关于图1的网络系统2描述图6的操作600。
SDN控制器22接收定义服务链(例如,图1的服务链26A)的请求,以用于经由一个或多个服务节点跨不同网络将业务从裸机服务器引导到虚拟机(602)。SDN控制器22可以获得(例如,存储、生成或接收)用于目的地网络12B的IP路由,该IP路由为目的地网络的目的地端点(例如,VM 27)指定下一跳(604)。SDN控制器22生成将服务节点指定为针对目的地地址的下一跳的第一修改路由(606)。例如,SDN控制器22可以将针对IP路由的下一跳设置为针对提供服务的服务节点的IP地址,并且在一些实例中,将标识与该服务节点相关联的路由实例的标签设置到路由器。SDN控制器22生成第二修改路由,该路由将托管服务节点的服务器指定为针对目的地地址的下一跳(608)。例如,SDN控制器22可以将从目的地网络12B获得的IP路由存储为EVPN路由(例如,EVPN型5路由)。SDN控制器可以将针对EVPN路由的下一跳设置为针对托管服务节点(例如,作为虚拟机)的物理服务器的IP地址。
SDN控制器22可以将第二修改路由(例如,EVPN路由)发送到TOR交换机16,以将TOR交换机16配置为将源自BMS 28的业务发送到托管服务节点10A的服务器(610)。在一些示例中,TOR交换机16可以被配置有适当的路由目标,以从SDN控制器22导入EVPN路由。SDN控制器22还可以将第一修改路由发送到源网络12A的虚拟路由器14A,以将虚拟路由器14A配置为将从TOR交换机16接收的业务发送到服务节点10A(612)。
TOR交换机16可以接收第二修改路由(614),并且将TOR交换机配置为将源自BMS28的业务发送到托管服务节点10A的服务器(616)。例如,TOR交换机16可以接收具有适当目标路由的EVPN路由,并且可以导入具有VM 27的IP地址和下一跳的EVPN路由,该下一跳被设置到托管实现服务节点10A的虚拟机的服务器。TOR交换机16可以将下一跳存储在其转发信息中,以将源自BMS 28的业务引导到托管服务节点10A的服务器。虚拟路由器14A可以接收第一修改路由(618)并且将虚拟路由器配置为将从BMS 28接收的业务发送到服务节点10A(620)。例如,虚拟路由器14A导入具有VM 27的目的地地址和被设置到服务节点10A的下一跳的路由。
已导入由SDN控制器22公告的路由后,TOR交换机16和虚拟路由器14A可以将业务沿着服务链26A从BMS 28经由服务节点10引导到VM 27。例如,TOR交换机16可以从BMS 28接收发往虚拟机27的数据业务(622)。TOR交换机16可以执行对其EVPN路由表的查找,并确定设置到托管实现服务节点10A的虚拟机的服务器的下一跳。TOR交换机16可以通过用VXLAN报头封装数据业务来将数据业务发送到托管服务节点10A的服务器(624),该VXLAN报头具有标识针对目的地网络的路由实例的虚拟网络标识符(VNI)。当虚拟路由器14A从TOR交换机16接收数据业务时(626),虚拟路由器14A可以对VXLAN报头进行解封装并基于VNI执行对下一跳的查找。虚拟路由器14A可以根据该查找确定下一跳是服务节点10A,并且将分组发送到操作为服务节点10A的虚拟机(628)。在一些示例中,虚拟路由器14A可以使用例如MPLSoGRE/UDP封装将业务发送到服务节点10A。
在将一个或多个服务应用于业务流之后,在服务链的尾端处的服务节点,例如服务节点10C,可以将业务朝向目的地网络12B发送到服务节点10C的“右”接口。虚拟路由器14B可以接收数据业务并将数据业务发送到VM 27。
图7是图示出根据本公开中所描述的技术的一个或多个方面的提供从虚拟执行元件(例如,虚拟机)到裸机服务器的网络间服务链的网络系统的示例操作700的流程图。尽管关于图1的SDN控制器22进行了描述,但是示例操作700可以由任何控制器、服务器、设施、管理系统或其他合适的网络设备应用以执行本文描述的技术。关于图1的网络系统2描述图7的操作700。
SDN控制器22接收定义服务链(例如,图1的服务链26B)的请求,以用于经由一个或多个服务节点跨不同网络将业务从虚拟机引导到裸机服务器(702)。SDN控制器22可以获得(例如,存储、生成或接收)用于目的地网络12A的EVPN路由(例如,EVPN型5路由),该EVPN路由为目的地网络的目的地端点(例如,BMS 28)指定下一跳(704)。SDN控制器22生成将服务节点指定为针对目的地地址的下一跳的第一修改路由(706)。例如,SDN控制器22可以使用由EVPN路由指定的BMS 28的IP地址,而将从目的地网络12B获得的EVPN路由存储为IP路由。SDN控制器22可以生成第二修改路由,该路由将目的地网络12B的交换机指定为针对目的地地址的下一跳(708)。
SDN控制器22可以将第一修改路由(例如IP路由)发送到虚拟路由器14B,以将虚拟路由器14B配置为将源自VM 27的业务发送到服务链的头端处的服务节点(例如,服务节点10C)(710)。SDN控制器22还可以将第二修改路由发送到目的地网络12A的虚拟路由器14A,以将虚拟路由器14A配置为将从服务链的服务节点尾端(例如,服务节点10A)接收到的业务发送到TOR交换机16(712)。
源网络12B的虚拟路由器14B可以接收第一修改路由(714)并且将虚拟路由器配置为将源自VM 27的业务发送到服务链的头端处的服务节点(716)。例如,虚拟路由器14B可以接收IP路由,并且可以导入具有BMS 28的IP地址和下一跳的IP路由,该下一跳被设置到实现服务链的头端(例如服务节点10C)的虚拟机。目的地网络12A的虚拟路由器14A可以接收第二修改路由(718),并且将虚拟路由器配置为将从服务链的服务节点尾端接收到的业务发送到TOR交换机16(720)。例如,虚拟路由器14A导入路由,该路由具有针对BMS 28的目的地地址和设置到TOR交换机16的下一跳。
已导入SDN控制器22公告的路由后,虚拟路由器14A和14B可以将业务沿着服务链26B从VM 27经由服务节点10引导到BMS 28。例如,虚拟路由器14B可以从VM 27接收发往BMS28的数据业务(722)。虚拟路由器14B可以执行对其转发表的查找,并确定被设置到实现服务链的头端(例如服务节点10C)的虚拟机的下一跳。虚拟路由器14B可以使用例如MPLSoGRE/UDP封装将数据业务发送到服务节点10C(724)。在将一个或多个服务应用于业务流之后,在服务链的尾端处的服务节点,例如服务节点10A,可以将业务朝向目的地网络12A发送。当虚拟路由器14A从服务链的尾端处的服务节点(例如,服务节点10A)接收到数据业务时(726),虚拟路由器14A可以对MPLSoGRE/UDP报头进行解封装并基于MPLS标签执行对下一跳的查找。虚拟路由器14A可以根据查找确定下一跳是TOR交换机16,并且将分组发送到TOR交换机16,该TOR交换机16最终将数据业务发送到BMS 28(728)。在一些示例中,虚拟路由器14A可以使用例如VXLAN封装将业务发送到TOR交换机16。
图8是图示出根据本公开中描述的技术的一个或多个方面的提供从裸机服务器到远程裸机服务器的网络间服务链的网络系统的另一示例操作800的流程图。尽管关于图2的SDN控制器22进行了描述,但是示例操作800可以由任何控制器、服务器、设施、管理系统或其他合适的网络设备应用以执行本文描述的技术。关于图2的网络系统2描述图8的操作800。
SDN控制器22接收到定义服务链(例如,图2的服务链33)的请求,以用于经由一个或多个服务节点跨不同网络将业务从裸机服务器引导到虚拟机(802)。SDN控制器22可以获得(例如,存储、生成或接收)用于目的地网络12B的EVPN路由,该EVPN路由为目的地网络的目的地端点(例如,BMS 31B)指定下一跳(804)。例如,SDN控制器22可以使用由EVPN路由指定的BMS 31B的IP地址将从目的地网络12B获得的EVPN路由存储为IP路由。SDN控制器22可以生成第二修改路由,其将服务节点指定为针对目的地地址的下一跳(808)。例如,SDN控制器22可以将针对IP路由的下一跳设置为针对提供服务的服务节点的IP地址,并且在一些实例中,将标识与该服务节点相关联的路由实例的标签设置到路由器。SDN控制器22生成第二修改路由,该路由将托管服务节点的服务器指定为针对目的地地址的下一跳。SDN控制器22可以生成将目的地网络12B的交换机指定为针对目的地地址的下一跳的第三修改路由(810)。SDN控制器22可以将第一修改路由发送到源网络12A的虚拟路由器14A,以将虚拟路由器14A配置为将从TOR交换机32A接收的业务发送到服务链的头端处的服务节点(812)。SDN控制器22也可以将第二修改路由发送到源网络12A的TOR交换机32A,以将TOR交换机配置为将源自BMS 31A的业务发送到托管服务链的头端处的服务节点的服务器(814)。SDN控制器22还可以将第三修改路由发送到目的地网络12B的虚拟路由器14B,以将虚拟路由器14B配置为将从服务链的尾端处的服务节点(例如,服务节点10A)接收到的业务发送到TOR交换机32B(816)。
TOR交换机32A可以接收第二修改路由,并且将虚拟路由器14A配置为将从TOR交换机32A接收到的业务发送到服务链的头端处的服务节点(818)。例如,TOR交换机32A可以接收具有适当目标路由的EVPN路由,并且可以导入具有BMS 31B的IP地址和下一跳的EVPN路由,该下一跳被设置到托管实现服务节点10A的虚拟机的服务器。虚拟路由器14A可以接收第一修改路由并且将TOR交换机配置为将源自BMS 31A的业务发送到托管服务链的头端处的服务节点的服务器(820)。例如,虚拟路由器14A导入具有针对BMS 31B的目的地地址和被设置到服务节点10A的下一跳的路由。目的地网络12B的虚拟路由器14B可以接收第二修改路由,以将虚拟路由器14B配置为将从服务链的尾端处的服务节点(例如,服务节点10A)接收到的业务发送到TOR交换机32B(822)。例如,虚拟路由器14B导入具有针对BMS 31B的目的地地址和设置到TOR交换机32B的下一跳的路由。
已导入由SDN控制器22公告的路由后,虚拟路由器14和TOR交换机32可以将业务沿着业务链33从BMS 31A经由服务节点10引导到BMS 31B。例如,TOR交换机32A可以从BMS 31A接收发往BMS 31B的数据业务(824)。TOR交换机32A可以执行对其EVPN路由表的查找,并确定设置到托管实现服务节点10A的虚拟机的服务器的下一跳。TOR交换机32A可以通过用VXLAN报头封装数据业务来将数据业务发送到托管服务节点10A的服务器(826),该VXLAN报头具有标识用于目的地网络的路由实例的虚拟网络标识符(VNI)。当虚拟路由器14A从TOR交换机32A接收数据业务时(828),虚拟路由器14A可以对VXLAN报头进行解封装并基于VNI执行对下一跳的查找。虚拟路由器14A可以根据该查找确定下一跳是服务节点10A,并且将该分组发送到操作为服务节点10A的虚拟机(830)。在一些示例中,虚拟路由器14A可以使用例如MPLSoGRE/UDP封装将业务发送到服务节点10A。在将一个或多个服务应用于业务流之后,在服务链的尾端处的服务节点,例如服务节点10C,可以将业务朝向目的地网络12B发送。当虚拟路由器14B从服务链的尾端处的服务节点(例如,服务节点10C)接收到数据业务时(832),虚拟路由器14B可以对MPLSoGRE/UDP报头进行解封装并基于MPLS标签执行对下一跳的查找。虚拟路由器14B可以根据查找确定下一跳是TOR交换机32B,并且将分组发送到TOR交换机32B(834),该TOR交换机最终将数据业务发送到BMS 31B。在一些示例中,虚拟路由器14B可以使用例如VXLAN封装将业务发送到TOR交换机32B。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,处理器包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或离散逻辑电路、以及此类组件的任何组合。术语“处理器”或“处理电路”通常可以单独或与其他逻辑电路或任何其他等效电路组合地指代任何前述逻辑电路。包括硬件的控制单元还可以执行本公开的一种或多种技术。
可以在同一设备内或在分离的设备内实现这样的硬件、软件和固件以支持本公开中描述的各种操作和功能。另外,所描述的任何单元、模块或组件可以一起或分离地被实现为离散但可互操作的逻辑设备。将不同特征描绘为模块或单元旨在突出不同的功能方面,并且不一定暗示此类模块或单元必须通过分离的硬件或软件组件来实现。而是,与一个或多个模块或单元相关联的功能性可以通过分离的硬件或软件组件来执行,或者可以被集成在公共或分离的硬件或软件组件内。
还可以在包含指令的诸如计算机可读存储介质之类的计算机可读介质中实施或编码本公开中描述的技术。嵌入或编码在计算机可读存储介质中的指令可以使得可编程处理器或其他处理器例如在执行指令时执行方法。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒带、磁性介质、光学介质或其他计算机可读介质。
Claims (20)
1.一种方法,包括:
由控制器从目的地网络获得路由,所述路由指定到由所述目的地网络可到达的目的地地址的下一跳;
由所述控制器生成第一修改路由,所述第一修改路由将服务节点指定为针对所述目的地地址的所述下一跳,其中所述服务节点在所述目的地网络外部;
由所述控制器生成第二修改路由,所述第二修改路由将托管所述服务节点的服务器指定为针对所述目的地地址的所述下一跳;
由所述控制器将所述第二修改路由发送到源网络的交换机,以将所述交换机配置为将源自裸机服务器并且发往所述源网络的业务发送到托管所述服务节点的所述服务器;以及
由所述控制器将所述第一修改路由发送到所述源网络的路由器,以将所述路由器配置为将从所述交换机接收到的所述业务发送到所述服务节点。
2.根据权利要求1所述的方法,
其中所述裸机服务器包括第一裸机服务器,
其中所述目的地地址包括由所述目的地网络可到达的第二裸机服务器的互联网协议(IP)地址,
其中所述路由包括以太网虚拟专用网络(EVPN)路由,所述EVPN路由指定所述第二裸机服务器的所述IP地址,
其中生成所述第一修改路由包括将所述EVPN路由存储为IP路由,并且
其中将所述第二修改路由发送到源网络的所述交换机包括:发送边界网关协议(BGP)消息,所述BGP消息包括指定所述第二裸机服务器的所述IP地址的所述EVPN路由。
3.根据权利要求2所述的方法,其中所述交换机包括第一交换机,所述方法还包括:
由所述控制器生成第三修改路由,所述第三修改路由将所述目的地网络的第二交换机指定为针对所述目的地地址的所述下一跳,其中所述第二交换机被直接连接到所述第二裸机服务器;
由所述控制器将所述第三修改路由发送到所述目的地网络的路由器,以将所述目的地网络的所述路由器配置为将从所述服务节点接收到的所述业务发送到所述第二交换机。
4.根据权利要求3所述的方法,
其中所述源网络的所述路由器被配置为使用通用路由封装(GRE)上的多协议标签交换(MPLS)或用户数据报协议(UDP)上的MPLS将从所述交换机接收到的所述业务发送到所述服务节点,并且
其中所述目的地网络的所述路由器被配置为使用虚拟可扩展局域网(VXLAN)将所述业务发送到被直接连接到所述第二裸机服务器的所述第二交换机。
5.根据权利要求1所述的方法,
其中所述目的地地址包括由所述目的地网络可到达的虚拟机的互联网协议(IP)地址,
其中所述路由包括IP路由,
其中生成所述第二修改路由包括将所述IP路由存储为以太网虚拟专用网络(EVPN)路由,所述EVPN路由指定所述虚拟机的所述IP地址,并且
其中将所述第一修改路由发送到源网络的所述交换机包括:发送边界网关协议(BGP)消息,所述BGP消息包括指定所述虚拟机的所述IP地址的所述EVPN路由。
6.根据权利要求5所述的方法,其中所述BGP消息包括导入路由目标,所述导入路由目标用以将所述交换机配置为导入所述EVPN路由。
7.根据权利要求5所述的方法,其中所述EVPN路由包括EVPN型5路由,所述EVPN型5路由用于指定用于跨数据中心的子网间连接性的所述IP地址。
8.根据权利要求5-7中任一项所述的方法,
其中所述源网络的所述路由器被配置为使用通用路由封装(GRE)上的多协议标签交换(MPLS)或用户数据报协议(UDP)上的MPLS将从所述交换机接收到的所述业务发送到所述服务节点,并且
其中所述交换机被配置为使用虚拟可扩展局域网(VXLAN)将所述业务从所述裸机服务器发送到托管所述服务节点的所述服务器。
9.一种方法,包括:
由控制器从目的地网络中的交换机获得以太网虚拟专用网络(EVPN)路由,所述EVPN路由指定到由所述目的地网络可到达的裸机服务器的互联网协议(IP)地址的下一跳;
由所述控制器生成第一修改IP路由,所述第一修改IP路由将服务节点指定为针对所述目的地地址的下一跳;
由所述控制器生成第二修改IP路由,所述第二修改IP路由将所述交换机指定为针对所述目的地地址的所述下一跳,其中所述交换机被直接连接到所述裸机服务器;
由所述控制器将所述第一修改IP路由发送到源网络的路由器,以将所述源网络的所述路由器配置为将源自所述虚拟机并且发往所述裸机服务器的业务发送到所述服务节点;以及
由所述控制器将所述第二修改IP路由发送到所述目的地网络的路由器,以将所述目的地网络的所述路由器配置为将从所述服务节点接收到的所述业务发送到所述交换机。
10.根据权利要求9所述的方法,
其中生成所述第一修改路由包括将所述EVPN路由存储为指定所述裸机服务器的所述IP地址的IP路由。
11.根据权利要求9-10中任一项所述的方法,其中所述EVPN路由包括EVPN型5路由,所述EVPN型5路由用于指定用于跨数据中心的子网间连接性的所述IP地址。
12.一种控制器,包括:
一个或多个处理器;
由所述一个或多个处理器执行的控制单元,所述控制单元被配置为从目的地网络获得路由,所述路由指定到由所述目的地网络可到达的目的地地址的下一跳;以及
由所述一个或多个处理器执行的服务链单元,所述服务链单元被配置为:
生成第一修改路由,所述第一修改路由将服务节点指定为针对所述目的地地址的所述下一跳,其中所述服务节点在所述目的地网络外部;
生成第二修改路由,所述第二修改路由将托管所述服务节点的服务器指定为针对所述目的地地址的所述下一跳;
将所述第二修改路由发送到源网络的交换机,以将所述交换机配置为将业务从裸机服务器发送到托管所述服务节点的所述服务器,其中所述业务源自所述裸机服务器并且发往所述源网络;以及
将所述第一修改路由发送到所述源网络的路由器,以将所述源网络的所述路由器配置为将从所述交换机接收到的所述业务发送到所述服务节点。
13.根据权利要求12所述的控制器,
其中所述裸机服务器包括第一裸机服务器,
其中所述目的地地址包括由所述目的地网络可到达的第二BMS的互联网协议(IP)地址,
其中所述路由包括以太网虚拟专用网络(EVPN)路由,所述EVPN路由指定所述第二裸机服务器的所述IP地址,
其中为了生成所述第一修改路由,所述一个或多个处理器还被配置为将所述EVPN路由存储为IP路由,并且
其中为了将所述第二修改路由发送到源网络的所述交换机,所述一个或多个处理器还被配置为发送边界网关协议(BGP)消息,所述BGP消息包括指定所述第二裸机服务器的所述IP地址的所述EVPN路由。
14.根据权利要求13所述的控制器,其中所述交换机包括第一交换机,由所述一个或多个处理器执行的所述服务链单元还被配置为:
生成第三修改路由,所述第三修改路由将所述目的地网络的第二交换机指定为针对所述目的地地址的所述下一跳,其中所述第二交换机被连接到所述第二裸机服务器;
将所述第三修改路由发送到所述目的地网络的路由器,以将所述目的地网络的所述路由器配置为将从所述服务节点接收到的所述业务发送到所述第二交换机。
15.根据权利要求14所述的控制器,
其中所述源网络的所述路由器被配置为使用通用路由封装(GRE)上的多协议标签交换(MPLS)或用户数据报协议(UDP)上的MPLS将从所述交换机接收到的所述业务发送到所述服务节点,并且
其中所述目的地网络的所述路由器被配置为使用虚拟可扩展局域网(VXLAN)将所述业务发送到被连接到所述第二裸机服务器的所述第二交换机。
16.根据权利要求12所述的控制器,
其中所述目的地地址包括由所述目的地网络可到达的虚拟机的互联网协议(IP)地址;
其中所述路由包括IP路由;
其中为了生成所述第二修改路由,所述一个或多个处理器还被配置为将所述IP路由存储为以太网虚拟专用网络(EVPN)路由,所述EVPN路由指定所述虚拟机的所述IP地址,
其中为了将所述第一修改路由发送到源网络的所述交换机,所述一个或多个处理器还被配置为发送边界网关协议(BGP)消息,所述BGP消息包括指定所述虚拟机的所述IP地址的所述EVPN路由。
17.根据权利要求16所述的控制器,其中所述BGP消息包括导入路由目标,所述导入路由目标用以将所述交换机配置为导入所述EVPN路由。
18.根据权利要求16所述的控制器,其中所述EVPN路由包括EVPN型5路由,所述EVPN型5路由用于指定跨数据中心的子网间连接性的所述IP地址。
19.根据权利要求16-18中任一项所述的控制器,
其中所述源网络的所述路由器被配置为使用通用路由封装(GRE)上的多协议标签交换(MPLS)或用户数据报协议(UDP)上的MPLS将从所述交换机接收到的所述业务发送到所述服务节点,并且
其中所述交换机被配置为使用虚拟可扩展局域网(VXLAN)将业务从所述裸机服务器发送到托管所述服务节点的所述服务器。
20.根据权利要求12所述的控制器,
其中由所述一个或多个处理器执行的所述控制单元还被配置为从目的地网络获得以太网虚拟专用网络(EVPN)路由,所述EVPN路由指定到由所述目的地网络可到达的裸机服务器的互联网协议(IP)地址的下一跳;并且
由所述一个或多个处理器执行的服务链单元被配置为:
将所述EVPN路由存储为IP路由,所述IP路由具有由所述EVPN路由指定的所述IP地址;
生成第一修改IP路由,所述第一修改IP路由将服务节点指定为针对所述目的地地址的下一跳,
生成第二修改IP路由,所述第二修改IP路由将所述交换机指定为针对所述目的地地址的所述下一跳,其中所述交换机被连接到所述裸机服务器;
将所述第一修改IP路由发送到源网络的路由器,以将所述源网络的所述路由器配置为将从虚拟机接收到的业务发送到所述服务节点,其中所述业务源自所述虚拟机并且发往所述裸机服务器;以及
将所述第二修改IP路由发送到所述目的地网络的路由器,以将所述目的地网络的所述路由器配置为将从所述服务节点接收到的所述业务发送到所述交换机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311580033.3A CN117395196A (zh) | 2019-05-31 | 2019-09-25 | 网络间服务链 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/428,442 US10965592B2 (en) | 2019-05-31 | 2019-05-31 | Inter-network service chaining |
US16/428,442 | 2019-05-31 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311580033.3A Division CN117395196A (zh) | 2019-05-31 | 2019-09-25 | 网络间服务链 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112019437A true CN112019437A (zh) | 2020-12-01 |
Family
ID=67001595
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311580033.3A Pending CN117395196A (zh) | 2019-05-31 | 2019-09-25 | 网络间服务链 |
CN201910911308.4A Pending CN112019437A (zh) | 2019-05-31 | 2019-09-25 | 网络间服务链 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311580033.3A Pending CN117395196A (zh) | 2019-05-31 | 2019-09-25 | 网络间服务链 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10965592B2 (zh) |
EP (1) | EP3745658A1 (zh) |
CN (2) | CN117395196A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112838974A (zh) * | 2020-12-29 | 2021-05-25 | 新华三技术有限公司 | 一种服务链引流系统以及方法 |
CN114116130A (zh) * | 2021-11-26 | 2022-03-01 | 北京天融信网络安全技术有限公司 | 一种虚拟机与容器之间的访问方法及装置 |
CN114726774A (zh) * | 2022-04-08 | 2022-07-08 | 江苏安超云软件有限公司 | 用于云平台的服务链实现的方法、装置及基于云平台的系统 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10225094B2 (en) * | 2012-05-29 | 2019-03-05 | Futurewei Technologies, Inc. | SDN facilitated multicast in data center |
US9225638B2 (en) | 2013-05-09 | 2015-12-29 | Vmware, Inc. | Method and system for service switching using service tags |
US10135737B2 (en) | 2014-09-30 | 2018-11-20 | Nicira, Inc. | Distributed load balancing systems |
US10516568B2 (en) | 2014-09-30 | 2019-12-24 | Nicira, Inc. | Controller driven reconfiguration of a multi-layered application or service model |
US9825810B2 (en) | 2014-09-30 | 2017-11-21 | Nicira, Inc. | Method and apparatus for distributing load among a plurality of service nodes |
US10594743B2 (en) | 2015-04-03 | 2020-03-17 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
US10797966B2 (en) | 2017-10-29 | 2020-10-06 | Nicira, Inc. | Service operation chaining |
US10797910B2 (en) | 2018-01-26 | 2020-10-06 | Nicira, Inc. | Specifying and utilizing paths through a network |
US10805192B2 (en) | 2018-03-27 | 2020-10-13 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US11288088B2 (en) | 2019-02-22 | 2022-03-29 | Vmware, Inc. | Service control plane messaging in service data plane |
US11070396B2 (en) * | 2019-04-04 | 2021-07-20 | Tata Communications Transformation Services (US) Inc. | Virtual cloud exchange system and method |
US11128490B2 (en) * | 2019-04-26 | 2021-09-21 | Microsoft Technology Licensing, Llc | Enabling access to dedicated resources in a virtual network using top of rack switches |
US10965592B2 (en) | 2019-05-31 | 2021-03-30 | Juniper Networks, Inc. | Inter-network service chaining |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11283717B2 (en) | 2019-10-30 | 2022-03-22 | Vmware, Inc. | Distributed fault tolerant service chain |
US11223494B2 (en) | 2020-01-13 | 2022-01-11 | Vmware, Inc. | Service insertion for multicast traffic at boundary |
US11153406B2 (en) | 2020-01-20 | 2021-10-19 | Vmware, Inc. | Method of network performance visualization of service function chains |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
US11792112B2 (en) * | 2020-04-06 | 2023-10-17 | Vmware, Inc. | Using service planes to perform services at the edge of a network |
US11178041B1 (en) * | 2020-07-07 | 2021-11-16 | Juniper Networks, Inc. | Service chaining with physical network functions and virtualized network functions |
EP3965379A1 (en) * | 2020-09-04 | 2022-03-09 | Huawei Technologies Co., Ltd. | Data transmission method, apparatus, and network device |
US10972436B1 (en) * | 2020-10-24 | 2021-04-06 | 360 It, Uab | System and method for session affinity in proxy media routing |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11611625B2 (en) | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
FR3118371A1 (fr) * | 2020-12-23 | 2022-06-24 | Orange | Procédés de communication, réflecteur de routes, hôte et système informatique pour la mise en œuvre de tels procédés |
FR3118372A1 (fr) * | 2020-12-23 | 2022-06-24 | Orange | Procédés de communication, proxys virtuels et système informatique pour la mise en œuvre de tels procédés |
US11658933B2 (en) * | 2020-12-31 | 2023-05-23 | Juniper Networks, Inc. | Dynamically learning media access control and internet protocol addresses |
US20220369202A1 (en) * | 2021-05-14 | 2022-11-17 | At&T Intellectual Property I, L.P. | Facilitation of service integrity detection and self healing to support 5g or other next generation networks |
US12028248B2 (en) * | 2021-05-27 | 2024-07-02 | Cisco Technology, Inc. | Using global virtual network instance (VNI) labels to signal a service chain |
US11968120B2 (en) * | 2021-08-03 | 2024-04-23 | Cisco Technology, Inc. | Adaptive hierarchical service path selection in dynamic edge computing environments |
CN113746730B (zh) * | 2021-08-25 | 2023-05-16 | 新华三大数据技术有限公司 | 一种路由信息处理方法及装置 |
US20230074222A1 (en) * | 2021-09-03 | 2023-03-09 | Cisco Technology, Inc. | Techniques for allowing software defined (sd) network fabrics to accept network devices from other fabric technologies |
CN114650271B (zh) * | 2022-03-23 | 2023-12-05 | 杭州迪普科技股份有限公司 | 全局负载dns邻居站点学习方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150244617A1 (en) * | 2012-06-06 | 2015-08-27 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
CN105306333A (zh) * | 2014-06-30 | 2016-02-03 | 瞻博网络公司 | 跨越多个网络的服务链接 |
CN107547335A (zh) * | 2016-06-27 | 2018-01-05 | 丛林网络公司 | 在evpn中信号通知ip地址移动的方法和网络设备 |
CN108092890A (zh) * | 2017-12-26 | 2018-05-29 | 新华三技术有限公司 | 路由建立方法和装置 |
WO2019001397A1 (zh) * | 2017-06-26 | 2019-01-03 | 新华三技术有限公司 | 路由同步 |
CN109728984A (zh) * | 2018-11-26 | 2019-05-07 | 华为技术有限公司 | 一种接入系统、方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7664119B2 (en) * | 2001-03-30 | 2010-02-16 | Intel Corporation | Method and apparatus to perform network routing |
US9467885B2 (en) * | 2010-11-08 | 2016-10-11 | Qualcomm Incorporated | Inter-frequency measurement control in a multi-carrier system |
US20130294318A1 (en) * | 2012-05-03 | 2013-11-07 | Qualcomm Incorporated | Efficient update of tmgi list in lte embms |
US9710762B2 (en) | 2012-06-06 | 2017-07-18 | Juniper Networks, Inc. | Dynamic logging |
US9692692B1 (en) * | 2015-09-29 | 2017-06-27 | Juniper Networks, Inc. | High-scale data center having LSP transport hierarchy |
EP3389310B1 (en) * | 2015-12-30 | 2022-06-01 | Huawei Technologies Co., Ltd. | Method for establishing routing table, electronic device and network |
US10965592B2 (en) | 2019-05-31 | 2021-03-30 | Juniper Networks, Inc. | Inter-network service chaining |
-
2019
- 2019-05-31 US US16/428,442 patent/US10965592B2/en active Active
- 2019-06-21 EP EP19181602.4A patent/EP3745658A1/en active Pending
- 2019-09-25 CN CN202311580033.3A patent/CN117395196A/zh active Pending
- 2019-09-25 CN CN201910911308.4A patent/CN112019437A/zh active Pending
-
2021
- 2021-03-29 US US17/216,308 patent/US11824775B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150244617A1 (en) * | 2012-06-06 | 2015-08-27 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
CN105306333A (zh) * | 2014-06-30 | 2016-02-03 | 瞻博网络公司 | 跨越多个网络的服务链接 |
CN107547335A (zh) * | 2016-06-27 | 2018-01-05 | 丛林网络公司 | 在evpn中信号通知ip地址移动的方法和网络设备 |
WO2019001397A1 (zh) * | 2017-06-26 | 2019-01-03 | 新华三技术有限公司 | 路由同步 |
CN108092890A (zh) * | 2017-12-26 | 2018-05-29 | 新华三技术有限公司 | 路由建立方法和装置 |
CN109728984A (zh) * | 2018-11-26 | 2019-05-07 | 华为技术有限公司 | 一种接入系统、方法及装置 |
Non-Patent Citations (3)
Title |
---|
J. RABADAN等: "draft-ietf-bess-evpn-prefix-advertisement-11", 《IP PREFIX ADVERTISEMENT IN EVPN》 * |
SHUNWAN ZHUANG等: "draft-zhuang-bess-enhanced-vpn-auto-discovery-03", 《BGP EXTENSIONS FOR ENHANCED VPN AUTO DISCOVERY》 * |
徐俭: "基于SDN服务链的云平台数据中心安全技术探究", 《电视工程》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112838974A (zh) * | 2020-12-29 | 2021-05-25 | 新华三技术有限公司 | 一种服务链引流系统以及方法 |
CN112838974B (zh) * | 2020-12-29 | 2022-07-12 | 新华三技术有限公司 | 一种服务链引流系统以及方法 |
CN114116130A (zh) * | 2021-11-26 | 2022-03-01 | 北京天融信网络安全技术有限公司 | 一种虚拟机与容器之间的访问方法及装置 |
CN114726774A (zh) * | 2022-04-08 | 2022-07-08 | 江苏安超云软件有限公司 | 用于云平台的服务链实现的方法、装置及基于云平台的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117395196A (zh) | 2024-01-12 |
US20200382420A1 (en) | 2020-12-03 |
US11824775B2 (en) | 2023-11-21 |
US10965592B2 (en) | 2021-03-30 |
US20210243118A1 (en) | 2021-08-05 |
EP3745658A1 (en) | 2020-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11824775B2 (en) | Inter-network service chaining | |
US10986024B1 (en) | Dynamic prefix list for route filtering | |
US10454821B2 (en) | Creating and maintaining segment routed traffic engineering policies via border gateway protocol | |
US10270843B2 (en) | Chaining service zones by way of route re-origination | |
US10361884B2 (en) | Virtual private network forwarding and nexthop to transport mapping scheme | |
US10397049B2 (en) | Auto-provisioning edge devices in a communication network using control plane communications | |
US10171338B2 (en) | On-demand next-hop resolution | |
US8953441B2 (en) | Re-routing network traffic after link failure | |
EP2963866B1 (en) | Service chaining across multiple networks | |
US8750288B2 (en) | Physical path determination for virtual network packet flows | |
EP3809641A1 (en) | Improved port mirroring over evpn vxlan | |
US11956141B2 (en) | Service chaining with physical network functions and virtualized network functions | |
US20200314016A1 (en) | Tunneling inter-domain stateless internet protocol multicast packets | |
US11632268B2 (en) | Generating route target values for virtual private network routes | |
EP3944568A1 (en) | Generating route distinguishers for virtual private network addresses based on physical hardware addresses | |
WO2024118159A1 (en) | DISTRIBUTION OF SRv6 MODES OF OPERATION VIA ROUTING PROTOCOLS |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201201 |