CN111865514B - 用于软件定义网络路由服务的控制平面隔离 - Google Patents

用于软件定义网络路由服务的控制平面隔离 Download PDF

Info

Publication number
CN111865514B
CN111865514B CN201910937057.7A CN201910937057A CN111865514B CN 111865514 B CN111865514 B CN 111865514B CN 201910937057 A CN201910937057 A CN 201910937057A CN 111865514 B CN111865514 B CN 111865514B
Authority
CN
China
Prior art keywords
control node
zone identifier
workload
control
routing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910937057.7A
Other languages
English (en)
Other versions
CN111865514A (zh
Inventor
里查德·罗伯茨
阿南特拉穆·苏里亚纳拉亚纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Priority to CN202310878690.XA priority Critical patent/CN116915371A/zh
Publication of CN111865514A publication Critical patent/CN111865514A/zh
Application granted granted Critical
Publication of CN111865514B publication Critical patent/CN111865514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • 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/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • 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
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules

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

本发明涉及用于软件定义网络路由服务的控制平面隔离,公开了用于避免SDN的路由部件中的单点故障的技术。在一些方面中,提供路由管理服务的控制节点被分配区标识符。具有一个区标识符的控制节点可以在与具有不同区标识符的控制节点分开的进程和/或物理硬件上。诸如虚拟机或容器之类的工作负载可以使用不同的区标识符建立诸如边界网关协议作为服务(BGPaaS)路由会话的路由会话,以确保单独的控制节点为与高可用性服务相关联的主计算节点和次计算节点提供路由管理服务。这样,这些技术通过确保控制节点对于由主计算节点和次计算节点提供的高可用性服务不是单点故障来促进高可用性。

Description

用于软件定义网络路由服务的控制平面隔离
技术领域
本公开涉及计算机网络,更具体地,涉及配置网络设备和服务器。
背景技术
在典型的云数据中心环境中,互连服务器的大集合提供计算(例如,计算节点)和/或存储容量以运行各种应用程序。例如,数据中心包括为数据中心的客户托管应用程序和服务的设施。数据中心,例如,托管诸如网络和存储系统等的所有基础设施设备、冗余电源和环境控制。在典型的数据中心中,存储系统和应用程序服务器的群集经由由一层或多层物理网络交换机和路由器提供的高速交换结构互连。更复杂的数据中心为遍布全世界的基础设施提供位于各种物理主机设施中的订户支持设备。
软件定义网络(SDN)平台可以用在数据中心中,并且在一些情况下,其可以使用逻辑上集中和物理上分布的SDN控制器,以及虚拟路由器中的分布式转发平面,该分布式转发平面将网络从数据中心中的物理路由器和交换机扩展到虚拟服务器中托管的虚拟覆盖网络中。SDN控制器提供虚拟化网络的管理、控制和分析功能,并通过与虚拟路由器通信来协调虚拟路由器。
在一些情况下,计算节点可以被组织以提供冗余服务。例如,第一计算节点可配置为防火墙服务的主提供者,而第二计算节点可配置为主防火墙服务的次防火墙服务或后备防火墙服务。以这种方式配置计算节点可以用于提供所谓的“高可用性”。即,防火墙服务可以是高可用性服务,因为如果主计算节点发生故障,则可以将主计算节点上的防火墙服务快速迁移到在次计算节点上配置的防火墙服务。可以进行迁移,以便用户几乎不经历或完全不经历防火墙服务的停机时间。
发明内容
总体上,本公开描述了用于避免用于配置软件定义网络的计算节点的路由部件中的单点故障的技术。在一些方面,提供路由管理服务的控制节点被分配区标识符。具有一个区标识符的控制节点可以在与具有不同区标识符的控制节点分开的进程和/或物理硬件上。诸如虚拟机或容器之类的工作负载可以使用不同的区标识符建立诸如边界网关协议作为服务(BGPaaS)路由会话的路由会话,以确保单独的控制节点为与高可用性服务相关联的主计算节点和次计算节点提供路由管理服务。这样,这些技术通过确保控制节点对于由主计算节点和次计算节点提供的高可用性服务不是单点故障来促进高可用性。
在一个示例方面中,一种方法包括:通过第一工作负载,至少部分地基于第一区标识符建立与第一控制节点的第一路由会话,其中所述第一工作负载被配置为服务的主提供者;通过第二工作负载,至少部分地基于第二区标识符建立与第二控制节点的第二路由会话,所述第二区标识符不同于所述第一区标识符,其中所述第二工作负载被配置为服务的次提供者;经由第一控制节点管理的第一虚拟路由器接收第一工作负载对服务的一个或多个第一服务请求;响应于检测到第一控制节点的故障,将服务迁移到第二工作负载;以及经由第二控制节点管理的第二虚拟路由器接收第二工作负载对服务的一个或多个第二服务请求。
在另一示例方面,一种系统包括:第一控制节点,分配有第一区标识符;第二控制节点,分配有第二区标识符;第一工作负载,被配置为至少部分地基于第一区标识符建立与第一控制节点的第一路由会话,其中,第一工作负载配置为服务的主提供者;以及第二工作负载,被配置为至少部分地基于第二区标识符建立与第二控制节点的第二路由会话,其中,第二工作负载被配置为服务的次提供者;其中,第一工作负载还配置为经由第一控制节点管理的虚拟路由器接收一个或多个第一服务请求;其中所述SDN系统被配置为,响应于检测到第一控制节点的故障,将服务迁移到第二工作负载,其中,第二工作负载还被配置为经由第二控制节点管理的虚拟路由器接收一个或多个第二服务请求。
在又一示例方面中,一种方法包括:通过第一虚拟路由器至少部分地基于第一区标识符建立与第一控制节点的第一通信会话,其中,第一虚拟路由器被配置成向配置为服务的主提供者的第一工作负载提供第一虚拟网络;通过第二虚拟路由器,至少部分地基于第二区标识符建立与第二控制节点的第二通信会话,所述第二区标识符不同于所述第一区标识符,其中,第二虚拟路由器被配置为向配置为所述服务的次提供者的第二工作负载提供第二虚拟网络;经由第一虚拟路由器接收第一工作负载对服务的一个或多个第一服务请求;响应于检测到第一控制节点的故障,将服务迁移到第二工作负载;以及经由第二虚拟路由器接收第二工作负载对服务的一个或多个第二服务请求。
在附图和下面的描述中阐述了一个或多个示例的细节。根据说明书和附图以及权利要求书,其它特征、目的和优点将是显而易见的。
附图说明
图1是示出根据本文描述的技术的示例性计算机网络系统的框图。
图2是更详细地示出图1的SDN控制器的示例性实现的框图。
图3A至图3F是示出根据本文描述的技术的示例性网络路由关联的框图。
图4是示出根据本文描述的技术的用于绑定SDN中的控制节点以避免高可用性服务中单点故障的方法的操作流程图。
图5是示出根据本文描述的技术用于绑定SDN中的控制节点以避免为SDN提供路由的控制节点中的单点故障的方法的操作流程图。
图6是示出根据本文描述的技术的在执行软件升级时绑定控制节点的方法的操作流程图。
图7A至图7C是根据本文描述的技术用于配置SDN以避免单点故障的示例性用户界面屏幕。
具体实施方式
冗余节点的群集(称为“SDN控制器”或“控制节点”)可负责代表执行诸如虚拟机或容器等生产工作负载的“计算节点”来执行路由。换言之,计算节点(即,“路由客户端”)可以将路由委托给一个或多个控制节点(即,“路由服务器”)。对发生委托的SDN控制器或控制节点的选择可以是非决定性的或复杂的。本文描述了用于控制路由客户端和路由服务器之间的路由关联的系统、方法和计算机可读介质。应当注意,为了高可用性的目的,控制节点的几个实例可以独立运行,同时使用路由协议同步它们的路由状态以保持一致。
现在将呈现两种使用情况以进一步说明本公开的某些技术。第一使用情况将针对工作负载平面,第二使用情况将针对计算平面。在工作负载平面中,工作负载(即,虚拟机或容器)可以运行路由协议(例如,边界网关协议(BGP)),以在SDN系统内动态同步转发。可以在工作负载和SDN控制器之间实施专用路由关联(例如BGP对等体)。托管工作负载的计算节点(即,“路由客户端”)可以将路由关联委托给SDN控制器(即,“路由服务器”)。最终,路由关联因此可以虚拟地建立在工作负载和SDN控制器之间,而托管工作负载的计算节点中继这些元件之间的路由流量。
由计算节点用于中继流量的方法通常可以是网络地址转换,隧道效应或本地协议反射能力,例如BGP路由反射器。然而,这种方法对于部署具有高可用性(HA)要求的关键服务(例如移动服务)可能不是最佳的。通常,HA服务可以基于服务复制和非命运共享元件。然而,这种方法可能引入潜在的单点故障,这将在下面进一步描述。
在第二使用情况(计算节点使用的情况)中,计算节点使其路由状态与SDN控制器同步。因此,可以在计算节点和SDN控制节点之间实施专用路由关联。在这种情况下,作为到不同的SDN控制节点的两个本地路由关联的结果,可以本地提供高可用性。在一些方面,使用区标识符来控制计算节点和SDN控制节点之间的路由关联的选择可以为操作提供益处。例如,在一些方面中,如本文所述的区标识符的使用可促进计算节点路由关联迁移到SDN控制节点的决定集,同时隔离剩余的SDN控制节点,为可能对路由产生影响的维护操作做准备。
另外,在一些方面中,作为选择SDN控制节点以指派给路由关联的结果,本文描述的技术可在入状态服务升级(ISSU)期间提供更多操作控制。换而言之,与建立到可能具有版本A'软件的其它控制节点的计算节点路由关联相比,本文描述的技术可以有助于选择建立到具有版本A软件的SDN控制节点的计算节点路由关联。
在一些方面中,本文描述的技术可在路由生态系统中提供更标准的集成,其中冗余传统上由两个决定性节点来管理,所述决定性节点可使路由协议(例如,BGP(MP-BGP)的多协议扩展)的路径选择决策流线化。
本文描述了被称为“路由区”的配置对象,其具有相关联的区标识符。在一些方面中,可通过配置在SDN群集中全局地定义路由区。路由区可以配置为各个SDN控制节点的属性。路由区和控制节点之间的映射可以是灵活的。例如,SDN控制节点可以具有与其附接的一个或多个路由区。此外,路由区可由多个SDN控制节点引用。到路由区的绑定可以被配置成路由关联。
作为上述第一使用情况的示例,假设存在n个SDN控制节点:CN1,CN2,…CNn(n>1,通常n=3)。进一步假设在两个虚拟机(VM、VMA和VMB)上配置冗余服务(例如,高可用性服务)。使用本文描述的技术,可以创建n个区(Zi),在一些方面,n个区可以规范地按1:1映射到CNi(SDN控制节点)。用户可以将VMA(例如,BGP对等体)的“路由关联”配置为路由区“Z1”属性。此外,用户可以将VMB(例如,BGP对等体)的路由关联配置为路由区“Z2”属性。由于上述设计,获得与CN1SDN控制节点的VMA路由关联,同时获得与CN2 SDN控制节点的VMB路由关联。因此,VMA和VMB与不同的SDN控制节点相关联,这解决了先前描述的高可用性问题。
作为第二使用情况的示例,假设存在n个SDN控制节点CN1,CN2,…CNn(n>1,通常n=3)。进一步假设成组的计算节点CPT1…CPTx。用户可以定义两个路由区:全局区和维护区。用户可以创建将第一组CPTi计算节点绑定到全局区的配置。剩余计算节点CPTi+1到CPTx中的一些或全部可以绑定到维护区。这种设计可以确保维护区中没有SDN控制节点正在处理托管生产工作负载的任何计算节点(即,绑定到全局区的计算节点)的路由。因此,可以进行维护操作而不影响生产操作。
图1是示出根据本文描述的技术的示例性计算机网络系统8的框图。示例性计算机网络系统8可以使用下面参照图2、图3A-图3E、图4、图5、图6和图7A-图7C描述的技术来配置和操作。
图1的示例中的计算机网络系统8包括数据中心10A-10X(统称为“数据中心10”),其经由服务提供商网络7彼此互连并且与关联于客户11的客户网络互连。图1示出了计算机网络系统8和数据中心10A的一个示例性实现,数据中心10A托管一个或多个基于云的计算网络、计算域或项目(在此通常称为云计算群集)。基于云的计算群集可以共同位于诸如单个数据中心的公共整体计算环境中,或者分布在诸如不同数据中心的环境中。基于云的计算群集,例如,可以是不同的云环境,诸如OpenStack云环境、Kubernetes云环境或其它计算群集、域、网络等的各种组合。计算机网络系统8和数据中心10A的其他实现在其他情况下可能是适当的。这样的实现可以包括图1的示例中包括的部件的子集和/或可以包括图1中未示出的附加部件。数据中心10B-10X可以包括相同或相似的特征,并且配置为执行与这里关于数据中心10A描述的相同或相似的功能。
在图1所示的示例中,数据中心10A通过服务提供商网络7经由网关108为耦合到数据中心10A的客户11的应用程序和服务提供操作环境。尽管结合图1的计算机网络系统8描述的功能和操作可以被示为分布在图1中的多个装置上,但是在其他示例中,属于图1中的一个或多个装置的特征和技术可以由一个或多个这样的装置的本地部件在内部执行。类似地,一个或多个这样的装置可以包括某些部件并且执行各种技术,否则这些技术可以在本文的描述中归属于一个或多个其他装置。此外,某些操作、技术、特征和/或功能可以结合图1来描述,或者由特定部件、装置和/或模块来执行。在其它示例中,此类操作、技术、特征和/或功能可由其它部件、装置或模块执行。因此,归属于一个或多个部件、装置或模块的一些操作、技术、特征和/或功能可归属于其它部件、装置和/或模块,即使本文中未以此方式具体描述。
数据中心10A托管基础设施设备,例如网络和存储系统、冗余电源和环境控制。服务提供商网络7可以耦合到由其他提供者管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如,因特网)的一部分。在一些示例中,数据中心10A可以表示许多地理上分布的网络数据中心之一。如图1的示例所示,数据中心10A是为客户11提供网络服务的设施。客户11可以是诸如企业和政府或个人的集体实体。例如,网络数据中心可以为几个企业和终端用户托管网络服务。其它示例性服务可包括数据存储、虚拟专用网、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些示例中,数据中心10A是单独的网络服务器、网络对等体等。
在图1的示例中,数据中心10A包括成组存储系统和应用程序服务器,包括经由由一个或多个物理网络交换机和路由器层提供的高速交换结构20互连的服务器12A到服务器12X(统称为“服务器12”)。服务器12用作数据中心的物理计算节点。例如,每个服务器12可以提供用于执行一个或多个应用程序工作负载的操作环境。如本文所述,术语“应用程序工作负载”或“工作负载”可互换使用以指代应用程序工作负载。工作负载可以在诸如虚拟机36、容器或某种类型的虚拟化实例的虚拟化环境上执行,或者在某些情况下在直接而非间接地在虚拟化环境中执行工作负载的裸金属服务器上执行。服务器12中的每一者可替代地称为主机计算装置,或更简单地称为主机。服务器12可在一个或多个虚拟化实例(例如虚拟机36、容器或用于运行一个或多个服务(例如,虚拟化网络功能(VNF))的其它虚拟执行环境)上执行一个或多个工作负载37。一些或所有服务器12可以是裸金属服务器(BMS)。BMS可以是专用于特定客户或租户的物理服务器。
交换结构20可以包括耦接到架式交换机18A-18M的分布层的机架顶部(TOR)交换机16A-16N,数据中心10A可以包括一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙的安全装置、入侵检测和/或防入侵装置、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动装置、无线接入点、网桥、电缆调制解调器、应用程序加速器或其它网络装置。数据中心10A包括通过由一层或多层物理网络交换机和路由器提供的高速交换结构20互连的服务器12A-12X。交换结构20由耦接到架式交换机18A-18M(统称为“架式交换机18”)的分布层的成组互连机架顶部(TOR)交换机16A-16N(统称为“TOR交换机16”)提供。在一些示例中,架式交换机18可以用作脊节点,TOR交换机16可以用作数据中心10A中的叶节点。尽管未示出,数据中心10A还可以包括,例如一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙的安全装置、入侵检测和/或防入侵装置、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动装置、无线接入点、网桥、电缆调制解调器、应用程序加速器、或其他网络装置。
在该示例中,TOR交换机16和架式交换机18向服务器12提供到网关108和服务提供商网络7的冗余(多连接)连接。架式交换机18聚合流量流动并且提供TOR交换机16之间的高速连接。TOR交换机16可以是提供层2(MAC)和/或层3(例如IP)路由和/或交换功能的网络装置。TOR交换机16和架式交换机18可以各自包括一个或多个处理器和存储器,并且能够执行一个或多个软件进程。架式交换机18耦合到网关108,网关108可以执行层3路由以通过服务提供商网络7在数据中心10A和客户11之间路由网络流量。
交换结构20可以执行层3路由,以通过服务提供商网络7在数据中心10A和客户11之间路由网络流量。网关108用于在交换结构20和服务提供商网络7之间转发和接收分组。数据中心10A包括将交换结构20从物理交换机18、16扩展到软件或“虚拟”交换机的覆盖网络。例如,分别位于服务器12A-12X中的虚拟路由器30A-30X可以通过与位于交换结构20内的一个或多个物理交换机通信耦合来扩展交换结构20。虚拟交换机可以动态地创建和管理可用于应用程序实例之间的通信的一个或多个虚拟网络。在一个示例中,虚拟路由器30A-30X将虚拟网络执行为覆盖网络,该覆盖网络提供了将应用程序的虚拟地址与在其上执行应用程序的服务器12A-12X之一的物理地址(例如,IP地址)分离的能力。每个虚拟网络可以使用其自己的寻址和安全方案,并且可以被视为与物理网络及其寻址方案正交。可以使用各种技术通过物理网络在虚拟网络内和虚拟网络上传输分组。
根据本公开的一个或多个示例,软件定义网络(“SDN”)控制器132提供逻辑上并且在一些情况下物理上集中的控制器,用于促进数据中心10A内的一个或多个虚拟网络的操作。在本公开中,术语SDN控制器和虚拟网络控制器(“VNC”)可以互换使用。在一些示例中,SDN控制器132响应于经由北向API131从编排引擎130接收到的配置输入而操作,该北向API131又响应于从操作用户界面装置129的管理员24接收到的配置输入而操作。在一些方面,SDN控制器132可以是高可用性(HA)群集的一部分并且提供HA群集配置服务。在2013年6月5日提交的题为“PHYSICAL PATH DETERMINATION FOR VIRTUAL NETWORK PACKET FLOWS”的国际申请号为PCT/US2013/044378和2017年3月31日提交的题为“SESSION-BASEDTRAFFIC STATISTICS LOGGING FOR VIRTUAL ROUTERS”的美国专利申请序列号为15/476,136的专利中可以找到关于SDN控制器132与数据中心10A的其他装置或其他软件定义网络一起操作的其他信息,其中两个申请的全部内容通过引用结合于此文中,如同在此文中完全阐述一样。
例如,可以在数据中心10中使用SDN平台来控制和管理网络行为。在一些情况下,SDN平台包括逻辑上集中和物理上分布的SDN控制器,例如SDN控制器132,以及虚拟路由器30形式的分布式转发平面,该分布式转发平面将网络从数据中心交换结构中的物理路由器和交换机扩展到托管在虚拟化服务器中的虚拟覆盖网络中。
在一些示例中,SDN控制器132管理网络和网络服务,诸如负载平衡、安全性、网络配置、以及经由南向API133从服务器12到各种应用程序的资源分配。即,南向API133表示由SDN控制器132用来使网络的实际状态等于由编排引擎130指定的期望状态的成组通信协议。一种这样的通信协议可以包括消息通信协议,例如XMPP。例如,SDN控制器132通过配置例如TOR交换机16、架式交换机18和交换结构20的物理交换机;物理路由器;物理服务节点,例如防火墙和负载平衡器;以及例如虚拟化环境中的虚拟防火墙的虚拟服务来实现来自编排引擎130的高级请求。SDN控制器132在状态数据库中维护路由、网络和配置信息。SDN控制器132将路由信息和配置信息的适当子集从状态数据库传送到服务器12A-12X中的每一个上的虚拟路由器(VR)30A-30X或代理35A-35X(图1中的“代理”)。
如本文描述的,每个服务器12包括相应的转发部件39A-39X(以下称为“转发部件39”),其执行用于在每个服务器12上执行的工作负载的数据转发和流量统计收集功能。在图1的示例中,每个转发部件被描述为包括虚拟路由器(图1中的“VR 30A-VR 30X”)以执行分组路由和覆盖功能,以及VR代理(图1中的“VA 35A-35X”)以与SDN控制器132通信,并且作为响应,配置虚拟路由器30。
在该示例中,每个虚拟路由器30A-30X实现用于数据中心10内的相应虚拟网络的至少一个路由实例,并将分组路由到适当的虚拟机、容器或在由服务器提供的操作环境内执行的其它工作负载。例如,由服务器12A的虚拟路由器从底层物理网络结构接收的分组可以包括外部报头,以允许物理网络结构将有效载荷或“内部分组”隧道传送到用于执行虚拟路由器的服务器12A的网络接口的物理网络地址。外部报头不仅可以包括服务器的网络接口的物理网络地址,还可以包括虚拟网络标识符,例如VxLAN标签或多协议标签交换(MPLS)标签,其标识虚拟网络之一以及由虚拟路由器执行的相应路由实例。内部分组包括具有目的地网络地址的内部报头,该目的地网络地址符合由虚拟网络标识符标识的虚拟网络的虚拟网络寻址空间。
在图1的示例中,SDN控制器132学习路由和其他信息(诸如配置)并将其分发到数据中心10中的所有计算节点。在计算节点内运行的转发部件39的VR代理35在从SDN控制器132接收到路由信息时,通常用转发信息对数据转发元件(虚拟路由器30)进行编程。SDN控制器132使用诸如XMPP协议语义之类的消息通信协议而不是使用诸如BGP之类的路由协议之类的更重量级的协议来向VR代理35发送路由和配置信息。在XMPP中,SDN控制器132和代理在同一信道上传送路由和配置。当从VR代理35接收路由时,SDN控制器132充当消息通信协议客户端,并且在这种情况下,VR代理35充当消息通信协议服务器。相反,当SDN控制器发送路由到VR代理35时,SDN控制器132充当作为消息通信协议客户端的到VR代理35的消息通信协议服务器。SDN控制器132可向VR代理35发送安全策略以供虚拟路由器30应用。
用户界面装置129可以实现为任何合适的计算系统,诸如由用户和/或管理员24操作的移动或非移动计算装置。用户界面装置129可(例如)表示工作站、膝上型或笔记本计算机、台式计算机、平板计算机或可由用户操作和/或呈现根据本公开的一个或多个方面的用户界面的任何其它计算装置。
在一些示例中,编排引擎130管理数据中心10A的功能,诸如计算、存储、联网和应用程序资源。例如,编排引擎130可以为数据中心10A内或跨数据中心的租户创建虚拟网络。编排引擎130可以将工作负载(WL)附接到租户的虚拟网络。编排引擎130可以将租户的虚拟网络连接到外部网络,例如因特网或VPN。编排引擎130可以跨成组的工作负载或向租户网络的边界实现安全策略。编排引擎130可以在租户的虚拟网络中部署网络服务(例如,负载平衡器)。
在一些示例中,SDN控制器132管理网络和网络服务,诸如负载平衡、安全性、以及经由南向API133将资源从服务器12分配给各种应用程序。即,南向API133表示由SDN控制器132用来使网络的实际状态等于由编排引擎130指定的期望状态的成组通信协议。例如,SDN控制器132通过配置例如TOR交换机16、架式交换机18和交换结构20的物理交换机;物理路由器;物理服务节点,例如防火墙和负载平衡器;以及例如VM中的虚拟防火墙的虚拟服务来实现来自编排引擎130的高级请求。SDN控制器132在状态数据库中维护路由、网络和配置信息。
通常,任何两个网络装置之间的流量,例如交换结构20内的网络装置(未示出)之间,或者服务器12和客户11之间,或者服务器12之间,例如,可以使用许多不同的路径穿过物理网络。例如,在两个网络装置之间可能存在若干成本相等的不同路径。在一些情况下,属于从一个网络装置到另一个网络装置的网络流量的分组可以使用在每个网络交换节点处被称为多路径路由的路由策略被分布在各种可能的路径中。例如,因特网工程任务组(IETF)RFC 2992,“Analysis of an Equal-Cost Multi-Path Algorithm,”描述了一种用于沿着成本相同的多个路径路由分组的路由技术。RFC 2992的技术通过对在单个决定性路径上发送来自特定流量流的所有分组的分组报头字段进行散列,而分析涉及将流分配给箱的一个特定多路径路由策略。
虚拟路由器(虚拟路由器30A到虚拟路由器30X,统称为图1中的“虚拟路由器30”)执行数据中心10A内的相应虚拟网络的多个路由实例,并将分组路由到由服务器12提供的操作环境内执行的适当工作负载。每个服务器12可以包括虚拟路由器。例如,由服务器12A的虚拟路由器30A从底层物理网络结构接收的分组可以包括外部报头,以允许物理网络结构将有效载荷或“内部分组”隧道传送到服务器12A的网络接口的物理网络地址。外部报头不仅可以包括服务器的网络接口的物理网络地址,还可以包括虚拟网络标识符,例如VxLAN标签或多协议标签交换(MPLS)标签,其标识虚拟网络之一以及由虚拟路由器执行的相应路由实例。内部分组包括具有目的地网络地址的内部报头,该目的地网络地址符合由虚拟网络标识符标识的虚拟网络的虚拟网络寻址空间。
SDN控制器132可以由控制节点实现,该控制节点可以分布在许多物理装置上并且为数据中心中的物理和虚拟机提供路由服务。任何一个控制节点可以表示单点故障。根据本文描述的技术,向虚拟机36提供路由管理服务或向虚拟机36或虚拟路由器30提供其它服务的分布式SDN控制器132的控制节点被分配区标识符。实际上,工作负载或虚拟路由器30将这样的服务委托给路由节点的客户端并且是路由节点的客户端。具有一个区标识符的控制节点可以在与具有不同区标识符的控制节点分开的进程和/或物理硬件上,以降低单点故障的可能性。诸如虚拟机或容器之类的工作负载可以使用不同的区标识符建立诸如边界网关协议作为服务(Border Gateway Protocol as a Service,BGPaaS)会话的路由会话,以确保单独的控制节点为与高可用性服务相关联的主计算节点和次计算节点或主工作负载和次工作负载提供路由管理服务。
下面进一步详细描述的技术的实际应用程序是,该技术允许为数据中心中的虚拟机提供路由服务的控制节点的决定性配置。例如,区标识符可以提供额外级别的间接以便于控制SDN路由体系结构中的路由委托。“路由客户端”到“路由服务器”之间的这种路由区关系引入了对路由关联的抽象和决定性控制,其可以有助于提供高可用性的服务。
所述技术可以是有利的,因为在一些方面中,所述技术可减少或甚至消除控制节点是单点故障的概率。此外,这些技术可以是有利的,因为它们可以提供简单并有效的方式来分离在控制节点上执行的操作,例如升级数据中心的控制节点上的软件的操作。
图2是更详细地示出图1的SDN控制器132的示例性实现的框图。SDN控制器132可以包括一个或多个配置节点252A-252X(统称为“配置节点252”)和控制节点254A-254X(统称为“控制节点254”)。通常,节点252和254中的每一个可以被实现为单独的软件进程,并且节点可以分布在提供用于执行软件的环境的多个硬件计算平台上。此外,每个节点可以维护状态数据256,状态数据256可以存储在集中式或分布式数据库中。在一些示例中,状态数据库256是NoSQL数据库。在一些示例中,状态数据库256是数据库群集。
配置节点252可以将编排引擎130的高级数据模型转换为适合于与诸如物理交换机16、18之类的网络元件交互的低级模型。配置节点252可以将SDN控制器132的配置状态的持久副本保存在状态数据库256内。
控制节点254实现负责维持暂时网络状态的逻辑上集中的控制平面。控制节点254彼此交互并且与诸如物理交换机16、18的网络元件交互,以确保网络状态最终与编排引擎130所指定的期望状态一致。通常,控制节点254从配置节点252接收SDN控制器132的配置状态,并且经由IBGP彼此交换路由以确保所有控制节点254具有相同的网络状态。此外,控制节点254经由BGP或Netconf与物理交换机16、18交换路由。控制节点254,例如经由BGP或Netconf将配置状态信息(例如路由实例和转发策略)传送到物理交换机16、18,以便安装在物理交换机16、18内。此外,控制节点254经由BGP与物理交换机16、18交换路由,并且经由Netconf与物理交换机16、18交换SDN控制器132的配置状态。根据本公开的技术,一个或多个控制节点254在交换机16、18上配置底层网络。
配置节点252提供发现服务,数据中心10的租户可以使用该发现服务来定位SDN内可用的各种服务。例如,如果物理交换机16、18尝试与控制节点254A的连接,则其使用由配置节点252提供的发现服务来发现控制节点254A的IP地址。物理交换机16、18可以使用本地配置、DHCP或DNS来定位配置节点252内的服务发现服务器。
在一些示例中,配置节点252呈现与编排引擎130接口的北向API。编排引擎130使用该接口来使用高级数据模型安装配置状态。配置节点252还包括消息总线,以便于内部部件之间的通信。配置节点252还包括发现编排引擎130的高级模型中的变化并将这些变化转换成由SDN控制器132管理的低级数据模型中的相应变化的变压器。在一些示例中,配置节点252还包括提供南向API以将计算的低级配置下推到控制节点254的服务器。
图3A-图3E是示出根据本文描述的技术的示例性网络路由关联的框图。图3A示出了示例性的非决定性路由关联。在图3A的示例中,三个控制节点(254A、254B和254C)可通信地耦合到两个计算节点(302A和302B)。尽管可能需要三个控制节点,但是应当理解,可以使用其它数量的控制节点。如上所讨论的,控制节点254可以配置和管理为计算节点302A和302B提供路由服务的路由器和交换机。例如,控制节点254可以向计算节点(302A和302B)上的虚拟路由器(例如VR1 301和VR2 30B)提供配置数据。虚拟机(36A、36B或36C)可以与控制节点(254A、254B或254C)建立路由会话。在图3A所示的示例中,虚拟机VM1 36A已经与控制节点2 254B建立了路由会话306。在一些方面中,虚拟机与控制节点之间的路由会话可使用BGPaaS协议。VM1 36A可以向控制节点2 254B提供路由信息,例如与虚拟机相关联的IP地址。
控制节点可以将路由配置信息推送到计算节点上的虚拟路由器。在图3A所示的示例中,控制节点2 254B可以将路由配置信息推送到VR1 30A和VR2 30B。在一些方面中,控制节点254可使用可扩展通讯和表示协议(XMPP)协议与VR 30交换信息。
在图3A所示的示例中,控制节点254以非决定性方式与虚拟机36绑定(即,相关联)。即,控制节点以虚拟机36不确定如何选择控制节点254的方式绑定到虚拟机。例如,可以使用随机选择机制、负载平衡机制或散列机制来将控制节点绑定到虚拟机。
图3B示出了关于高可用性服务的示例性非决定性路由关联。在图3B所示的示例中,冗余服务312由VM1 36A和VM2 36B实现。冗余服务可以是高可用性服务、负载共享服务、灾难恢复服务等。例如,冗余服务312可以是被配置用于高可用性的防火墙服务。在图3B所示的示例中,非决定性绑定算法使得VM1 36A和VM2 36B经由路由会话306和308与相同的控制节点(即,控制节点2 254B)绑定。即使在VM1 36A或VM2 36B发生故障的情况下,也可以继续提供冗余服务312。然而,因为两个VM都绑定到控制节点2 254B,所以控制节点2 254B的故障可能导致冗余服务312变得不可用。换而言之,在控制节点2 254B发生故障的情况下,VM1 36A和VM2 36B的路由都可能受到影响,这可能破坏高可用性逻辑:服务可能被关闭,直到创建新的路由关联为止,这可能花费不可接受的长时间段(例如,数分钟)。因此,在图3B所示的示例中,控制节点2 254B是单点故障。
图3C示出了关于高可用性服务的示例性决定性路由关联。在图3C所示的示例中,控制节点254A、254B和254C中的每一个已经在配置过程期间被分配了区标识符(ID)312。例如,控制节点1 254A已经被分配了区标识符312“Z1”,控制节点2 254B已经被分配了区标识符312“Z2”,并且控制节点3 254C已经被分配了区标识符312“Z3”。VM 36可以使用区标识符312来以决定性方式与控制节点绑定(即,关联)。例如,区ID312可用于创建一个或多个控制节点254的区(即,相关联的集合)。VM 36可以在建立路由会话(例如,BGPaaS会话)时指定区ID 312的值。SDN系统将VM绑定到指定区中的一个或多个控制节点之一。区可以包括多于一个控制节点254。控制节点254可以包括在多于一个区中。在图3C所示的示例中,VM1 36A已配置为通过在创建路由会话310时指定区“Z2”来创建与控制节点2 254B的路由会话310。类似地,VM2 36B已配置为创建与控制节点3 254C的路由会话314。通过在创建路由会话314时指定区“Z3”。因此,用户可以通过为每个控制节点指定不同的区ID和路由关联来配置冗余服务312,使得被选择来管理路由去往和来自VM 36的数据的路由器和交换机的控制节点254不是单点故障。
图3D示出了提供高可用性路由的示例性决定性路由关联。在图3D所示的示例中,VM1 36A被配置为使用两个IP地址(IP ADDR 1和IP ADDR 2)用于路由目的,并且利用由两个控制节点254A和254B提供的路由管理服务,使得由控制节点254A和254B提供的路由管理功能是高度可用的。具体地,VM1 36A已经分别与控制节点1 254A和控制节点2254B建立了两个路由关联316和310。VM1 36A可以为每个路由关联指定不同的(例如,“Z1”和“Z2”),以确保VM1 36A绑定到两个不同的控制节点254A和254B。这可使控制节点254A和254B不是单点故障。
图3E示出了在区内提供具有冗余和缩放能力的高可用性路由管理服务的示例性决定性路由关联。图3E所示的示例类似于以上关于图3D所述的示例。VM1 36A配置为使用两个IP地址(IP ADDR 1和IP ADDR 2)用于路由目的,并且利用由两个控制节点254A和254B提供的路由管理服务,使得路由管理服务高度可用。VM1 36A可以为每个路由关联指定不同的区(例如,“Z1”和“Z2”),以确保VM1 36A绑定到两个不同的控制节点254A和254B。另外,区320A、320B和320C中的每一个可以包括多个控制节点254。例如,区“Z1”320A包括两个控制节点254A和254D。在一些方面中,控制节点254D可配置为相对于控制节点254A的冗余控制节点,使得如果控制节点254A发生故障,则控制节点254D可接管控制节点254A的操作。在一些方面中,控制节点254D可结合控制节点254A提供路由管理服务,以便在区32A内提供负载平衡能力或在区320A内提供向外扩展能力。区“Z2”320B中的控制节点254E和区“Z3”320C中的控制节点254F可以为其各自的区提供与控制节点254D类似的能力。图3E所示的示例示出了区320A-320C中每个区的两个控制节点254。区可以包括多于两个控制节点254,并且不同的区可以具有不同数量的分配的控制节点254。
上面的讨论主要是在提供虚拟机和控制节点之间的决定性BGPaaS关联的上下文中给出的。然而,其它方面包括为其它协议和实体提供决定性关联。图3F示出了使用上述区ID 312的控制节点254和虚拟路由器30之间的示例性决定性关联。在图3F所示的示例中,VR1 30A分别经由XMPP信道324A和324B与控制节点254A和254B交换数据。VR1 30A可经配置以在与控制节点建立XMPP信道时指定区ID。例如,VR1 30A可经配置以使得XMPP通信信道324A被分配到区“Z1”中的控制节点(例如,控制节点254A),且XMPP通信信道324B被分配到区“Z2”中的控制节点(例如,控制节点254B)。VR2 30B具有相对于XMPP信道324C和324D的类似配置。在某些方面,可以为XMPP会话配置区ID。在其它方面中,可将区ID传送到VR以用于建立XMPP会话。例如,控制节点或工作负载可以将区ID传送到相关联的VR。
图4是示出根据本文描述的技术的用于绑定SDN中的控制节点以避免高可用性服务中的单点故障的方法的操作的流程图。操作模式400是关于虚拟机描述的,但可用于管理其它工作负载,诸如容器。操作可以通过向控制节点分配区ID来开始。例如,可以将第一区ID分配给第一控制节点(402),并且可以将第二区ID分配给第二控制节点(404)。可以根据SDN系统的配置来确定将区ID分配给控制节点。区ID可以是控制节点的性质或属性。
主VM和次VM可被配置成提供冗余服务。如上所讨论的,冗余服务可以是高可用性服务、负载平衡服务等。在图4的示例性操作中,主VM和次VM可被配置成提供高可用性服务。
主VM可以与第一控制节点建立BGPaaS路由会话(406)。在一些方面中,主VM可被配置成将区ID与BGPaaS路由会话相关联。例如,区ID可以是主VM的BGPaaS配置的属性或性质。当建立BGPaaS路由会话时,主VM可以指定配置的区ID,以便与在具有指定区ID的区中的控制节点建立会话。
主VM可以经由BGPaaS路由会话向第一控制节点通告与主VM相关联的一个或多个IP地址(408)。在接收到一个或多个IP地址之后,第一控制节点可以向虚拟路由器反映(例如,推送)包括一个或多个IP地址的路由配置(410)。在一些方面中,XMPP信道可用于将路由配置从第一控制节点传送到连接到第一控制节点的虚拟路由器。
次VM可以执行与主VM类似的操作。次VM可以与第二控制节点建立BGPaaS路由会话(412)。在一些方面中,次VM可被配置成将区ID与BGPaaS路由会话相关联。例如,区ID可以是次VM的BGPaaS配置的属性或性质。当建立BGPaaS路由会话时,次VM可以指定配置的区ID,以便与在具有所指定的区ID的区中的控制节点建立会话。
次VM可以经由BGPaaS路由会话向第二控制节点通告与次VM相关联的一个或多个IP地址(414)。在接收到一个或多个IP地址之后,第二控制节点可以向虚拟路由器反映(例如,推送)包括一个或多个IP地址的路由配置(416)。在一些方面中,XMPP信道可用于将路由配置从第二控制节点传送到连接到第二控制节点的虚拟路由器。
在执行上述操作之后,可以使主VM和次VM提供的高可用性服务对客户端可用。主VM可以响应于经由第一控制节点接收的服务请求(418)。服务请求可以通过第一控制节点和连接到第一控制节点的VR来路由。
高可用性服务可以继续由第一控制节点提供,直到在第一控制节点中检测到故障(420)。该故障可以是总故障,例如到托管控制节点的服务器的功率损失或者托管控制节点的物理或虚拟机上的操作系统崩溃。故障可以是部分故障,例如,由于资源限制、瞬时错误等,第一控制节点不能及时地提供路由管理服务。
在检测到第一控制节点的故障时,SDN系统可以将高可用性服务迁移到次VM(422)。例如,SDN系统可以将与高可用性服务相关联的IP地址改变为与次VM相关联的IP地址。然后,次VM可以响应经由第二控制节点管理的路由器和交换机接收的服务请求(424)。例如,可以通过由第二控制节点管理的VR来路由服务请求。
图5是示出根据本文描述的技术的用于绑定SDN中的控制节点以避免为SDN提供路由的控制节点中的单点故障的方法的操作流程图。操作可以通过向控制节点分配区ID来开始。例如,可以将第一区ID分配给第一控制节点(502),并且可以将第二区ID分配给第二控制节点(504)。如上所述,可以根据SDN系统的配置来确定将区ID分配给控制节点。区ID可以是控制节点的性质或属性。
虚拟机可以建立冗余BGPaaS路由会话。例如,VM可以与第一控制节点建立第一BGPaaS路由会话(506)。在一些方面中,VM可被配置成将第一区ID与第一BGPaaS路由会话相关联。例如,第一区ID可以是VM的第一BGPaaS配置的属性或性质。在建立第一BGPaaS路由会话时,VM可以指定第一配置的区ID,以便与具有指定区ID的控制区建立第一会话。
VM可以经由BGPaaS路由会话向第一控制节点通告与VM相关联的第一IP地址(508)。在接收到IP地址之后,第一控制节点可以向虚拟路由器反映(例如,推送)包括IP地址的路由配置(510)。在一些方面中,XMPP信道可用于将路由配置从第一控制节点传送到连接到第一控制节点的虚拟路由器。
VM可以与不同区中的第二控制节点建立第二BGPaaS路由会话,使得第一控制节点和第二控制节点位于不同的虚拟或物理机上。在一些方面中,VM可被配置成将第二区ID与第二BGPaaS路由会话相关联。例如,第二区ID可以是VM的第二BGPaaS配置的属性或性质。在建立第二BGPaaS路由会话时,VM可以指定第二配置的区ID,以便与具有指定区ID的控制区建立第一会话。
VM可以经由第二BGPaaS路由会话向第二控制节点通告与VM相关联的第二IP地址(514)。在接收到IP地址之后,第二控制节点可以向虚拟路由器反映(例如,推送)包括第二IP地址的路由配置(510)。在一些方面中,XMPP信道可用于将路由配置从第二控制节点传送到连接到第二控制节点的虚拟路由器。
VM可以发送和接收可以经由第一控制节点管理的路由器和交换机路由的数据(518)。例如,可以通过由第一控制节点管理并且可通信地耦合到VM的VR来路由数据。
VM可以经由第一控制节点管理的路由器和交换机来发送和接收数据,直到在第一控制节点中检测到故障为止(520)。该故障可以是总故障,诸如到托管第一控制节点的服务器的功率损失或者托管第一控制节点的物理或虚拟机上的操作系统崩溃。故障可以是部分故障,例如,由于资源限制、瞬时错误等,第一控制节点不能及时地路由请求。
在检测到第一控制节点的故障时,第二控制节点可以配置为接管对与VM交换数据的交换机和路由器的管理(522)。例如,第二控制节点可以假定管理可通信地耦合到VM的VR。
图6是示出根据本文所述的技术在执行软件升级时绑定控制节点的方法的操作流程图。在图6所示的示例中,第一版本的软件被安装在为SDN配置的所有区中的控制节点上(602)。此外,控制节点可以配置为驻留在两个区中,主区和次区。主区和次区可以是除分配给控制节点的其它区之外的区。软件的第一版本可以包括用于控制节点的操作系统、应用程序、后台程序、进程、线程等。软件的第二版本可以变得可用(例如,软件的新的、不同的或升级的版本)。软件的第二版本可以以如下的两阶段技术来安装。
第一阶段可以通过禁用次区中的控制节点开始(604)。软件的第二版本可以安装在次区中的控制节点上(606)。然后可以重新启用次区中的控制节点(608)。
第二阶段可以通过禁用主区中的控制节点开始(610)。在利用主区中的控制节点的VM上配置为高可用性服务的服务可能无法切换到利用次区中的控制节点的次VM。软件的第二版本可以安装在主区中的控制节点上(612)。然后可重新启用主控制节点并恢复操作(614)。
此时,软件的第二版本可以安装在SDN系统中的所有控制节点上。可选地,可以移除软件的第一版本(616)。
可以对上述技术进行各种修改。例如,区ID可用于在计算节点级限定具有组相似性的控制节点组,以委托工作负载或计算平面中的路由。
此外,已经在单个站点处的SDN系统的上下文中呈现了上述技术。所述技术可扩展到多站点联网,其中相同的SDN群集跨越若干站点。在这种情况下,设计可以依赖于专用的站点专用SDN控制节点实例,路由关联可以建立到该实例。由区ID限定的路由区可以便于将站点专用SDN控制节点映射到其各自的从属计算节点。
此外,本文描述的技术可以被扩展为管理成组路由器之间的诸如资源预留协议(RSVP)、双向转发检测(BFD)或BGP的协议的网格自动剖分。例如,区ID可以配置为使得在同一路由区中的节点之间发生网格剖分。
图7A-图7C是根据本文所述的技术用于配置SDN以避免单点故障的示例性用户界面屏幕。图7A示出了示例性用户界面屏幕700,其包括用于接收限定可用于配置控制节点和路由会话的标识符的用户输入的字段712。在图7A所示的示例中,限定了区“Z1”、“Z2”和“Z3”。
图7B示出了用于配置字段714中标识的控制节点的示例性用户界面屏幕710。示例性用户界面屏幕710包括用于接收将区分配给所标识的控制节点的用户输入的字段712。在图7B所示的示例中,已将所标识的控制节点分配给区“Z1”。如前所述,可以将控制节点分配给多于一个区。
图7C示出了用于配置虚拟机的路由会话的示例性用户界面屏幕720。示例性用户界面屏幕720包括标识要配置的一个或多个虚拟机接口的字段722。字段724可以接收标识要分配给所标识的虚拟机接口所使用的路由会话的主路由区的输入。字段726可以接收标识要分配给所标识的虚拟机接口所使用的路由会话的次路由区的输入。
本公开中描述的技术可至少部分地以硬件、软件、固件或其任何组合来实施。例如,描述的技术的各个方面可在一个或多个可编程处理器内实施,所述可编程处理器包含一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其它等效的集成或离散逻辑电路、以及此类部件的任何组合。术语“处理器”或“处理电路”通常可以指任何前述逻辑电路,单独地或与其它逻辑电路或任何其它等效电路组合。包括硬件的控制单元还可执行本公开的技术中的一个或多个。
此类硬件、软件和固件可在同一装置内或在单独装置内实施以支持本公开中描述的各种操作和功能。另外,所述单元、模块或部件中的任一者可一起或单独实施为离散但可互操作的逻辑装置。将不同特征描绘为模块或单元旨在突出显示不同的功能方面,并且不一定暗示这些模块或单元必须由单独的硬件或软件部件来实现。而是,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件部件来执行,或者集成在公共或单独的硬件或软件部件内。
本公开中描述的技术还可实施于或编码于含有指令的计算机可读介质(例如计算机可读存储介质)中。嵌入或编码于计算机可读介质中的指令可致使可编程处理器或其它处理器(例如,当执行所述指令时)执行所述方法。计算机可读介质可以包括非瞬态计算机可读存储介质和瞬态通信介质。有形且非暂时性的计算机可读存储介质可包含随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质、或其他计算机可读存储介质。术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其它瞬态介质。

Claims (21)

1.一种计算机联网方法,包括:
通过第一工作负载,至少部分地基于第一区标识符建立与第一控制节点的第一路由会话,所述第一区标识符标识一个或多个控制节点中的第一组控制节点,所述第一组控制节点包括所述第一控制节点,其中所述第一工作负载被配置为服务的主提供者;
通过第二工作负载,至少部分地基于第二区标识符建立与第二控制节点的第二路由会话,所述第二区标识符标识一个或多个控制节点中的第二组控制节点,所述第二组控制节点包括所述第二控制节点,所述第二区标识符不同于所述第一区标识符,其中,一个或多个控制节点中的所述第一组控制节点在与一个或多个控制节点中的所述第二组控制节点不同的虚拟或物理机器上,其中所述第二工作负载被配置为所述服务的次提供者;
经由所述第一控制节点管理的第一虚拟路由器接收所述第一工作负载对所述服务的一个或多个第一服务请求;
响应于检测到所述第一控制节点的故障,将所述服务迁移到所述第二工作负载;以及
经由所述第二控制节点管理的第二虚拟路由器接收所述第二工作负载对所述服务的一个或多个第二服务请求。
2.根据权利要求1所述的方法,其中,建立所述第一路由会话包括建立第一边界网关协议作为服务BGPaaS路由会话,并且其中建立所述第二路由会话包括建立第二BGPaaS路由会话。
3.根据权利要求2所述的方法,
其中,所述第一区标识符包括所述第一工作负载上的第一BGPaaS配置的属性,并且其中,从所述第一BGPaaS配置确定所述第一区标识符以建立所述第一BGPaaS会话;以及
其中,所述第二区标识符包括所述第二工作负载上的第二BGPaaS配置的属性,并且其中,从所述第二BGPaaS配置确定所述第二区标识符以建立所述第二BGPaaS会话。
4.根据权利要求1-3中任一项所述的方法,还包括:
将所述第一区标识符分配为所述第一控制节点的属性,并将所述第一区标识符传送给所述第一工作负载;以及
将所述第二区标识符分配为所述第二控制节点的属性,并将所述第二区标识符传送给所述第二工作负载。
5.根据权利要求1-3中任一项所述的方法,还包括:
通过第三工作负载,至少部分地基于第三区标识符建立与第三控制节点的第三路由会话;
通过所述第三工作负载,至少部分地基于第四区标识符建立与第四控制节点的第四路由会话;
通过所述第三工作负载,经由所述第三控制节点管理的第三虚拟路由器接收对所述第三工作负载提供的第二服务的一个或多个第三请求服务请求;以及
响应于检测到所述第三控制节点的故障,配置所述第四控制节点管理所述第三虚拟路由器。
6.根据权利要求1-3中任一项所述的方法,还包括:
通过第三工作负载,至少部分地基于所述第一区标识符建立与第三控制节点的第三路由会话,其中所述第一控制节点和所述第三控制节点处于由所述第一区标识符标识的相同区中,其中所述第三控制节点提供关于所述第一控制节点的冗余路由管理服务。
7.根据权利要求1-3中任一项所述的方法,其中,向第一组控制节点分配第三区标识符,并且向第二组控制节点分配第四区标识符,其中所述第一组控制节点和所述第二组控制节点执行软件的第一版本,并且其中所述方法还包括:
禁用所述第二组控制节点;
在所述第二组控制节点上安装所述软件的第二版本;以及
重新启用所述第二组控制节点,其中所述第二组控制节点配置为执行所述软件的所述第二版本。
8.根据权利要求7所述的方法,还包括,从所述第一组控制节点和所述第二组控制节点中的一个或多个中移除所述软件的所述第一版本。
9.一种软件定义网络SDN系统,包括:
第一控制节点,分配有第一区标识符,所述第一区标识符标识一个或多个控制节点中的第一组控制节点,所述第一组控制节点包括所述第一控制节点;
第二控制节点,分配有第二区标识符,所述第二区标识符标识一个或多个控制节点中的第二组控制节点,所述第二组控制节点包括所述第二控制节点,其中,一个或多个控制节点中的所述第一组控制节点在与一个或多个控制节点中的所述第二组控制节点不同的虚拟或物理机器上;
第一工作负载,被配置为至少部分地基于所述第一区标识符建立与所述第一控制节点的第一路由会话,其中,所述第一工作负载被配置为服务的主提供者;以及
第二工作负载,被配置为至少部分地基于所述第二区标识符建立与所述第二控制节点的第二路由会话,其中,所述第二工作负载被配置为所述服务的次提供者;
其中,所述第一工作负载还配置为经由所述第一控制节点管理的虚拟路由器接收一个或多个第一服务请求;
其中,所述SDN系统被配置为,响应于检测到所述第一控制节点的故障,将所述服务迁移到所述第二工作负载,其中,所述第二工作负载还被配置为经由所述第二控制节点管理的虚拟路由器接收一个或多个第二服务请求。
10.根据权利要求9所述的SDN系统,其中,所述第一路由会话包括第一边界网关协议作为服务BGPaaS路由会话,其中,所述第二路由会话包括第二BGPaaS路由会话。
11.根据权利要求10所述的SDN系统,
其中,所述第一区标识符包括所述第一工作负载上的第一BGPaaS配置的属性,并且其中,从所述第一BGPaaS配置确定所述第一区标识符以建立所述第一BGPaaS会话;以及
其中,所述第二区标识符包括所述第二工作负载上的第二BGPaaS配置的属性,并且其中,从所述第二BGPaaS配置确定所述第二区标识符以建立所述第二BGPaaS会话。
12.根据权利要求9-11中任一项所述的SDN系统,其中,所述SDN系统还被配置为:
将所述第一区标识符分配为所述第一控制节点的属性;以及
将所述第二区标识符分配为所述第二控制节点的属性。
13.根据权利要求9-11中任一项所述的SDN系统,还包括:
第三工作负载,被配置为:
至少部分地基于第三区标识符建立与第三控制节点的第三路由会话;
至少部分地基于第四区标识符建立与第四控制节点的第四路由会话;以及
经由所述第三控制节点管理的第三虚拟路由器接收对所述第三工作负载提供的第二服务的一个或多个第三请求服务请求;
其中响应于检测到所述第三控制节点的故障;所述第四控制节点配置为管理所述第三虚拟路由器。
14.根据权利要求9-11中任一项所述的SDN系统,还包括:
第三工作负载,被配置为至少部分地基于所述第一区标识符建立与第三控制节点的第三路由会话,其中,所述第一控制节点和所述第三控制节点处于由所述第一区标识符标识的相同区中,其中,所述第三控制节点提供关于所述第一控制节点的冗余路由管理服务。
15.根据权利要求9-11中任一项所述的SDN系统,其中,第一组控制节点被分配第三区标识符,第二组控制节点被分配第四区标识符,其中,所述第一组控制节点和所述第二组控制节点执行软件的第一版本,并且其中,所述SDN系统被配置为:
禁用所述第二组控制节点;
在所述第二组控制节点上安装所述软件的第二版本;
重新启用所述第二组控制节点,其中,所述第二组控制节点被配置为执行所述软件的所述第二版本;
禁用所述第一组控制节点;
在所述第一组控制节点上安装所述软件的所述第二版本;以及
重新启用所述第一组控制节点,其中,所述第一组控制节点被配置为执行所述软件的所述第二版本。
16.一种计算机联网方法,包括:
通过第一虚拟路由器,至少部分地基于第一区标识符建立与第一控制节点的第一通信会话,所述第一区标识符标识一个或多个控制节点中的第一组控制节点,所述第一组控制节点包括所述第一控制节点,其中,所述第一虚拟路由器被配置为向配置为服务的主提供者的第一工作负载提供第一虚拟网络;
通过第二虚拟路由器,至少部分地基于第二区标识符建立与第二控制节点的第二通信会话,所述第二区标识符标识一个或多个控制节点中的第二组控制节点,所述第二组控制节点包括所述第二控制节点,所述第二区标识符不同于所述第一区标识符,其中,一个或多个控制节点中的所述第一组控制节点在与一个或多个控制节点中的所述第二组控制节点不同的虚拟或物理机器上,其中,所述第二虚拟路由器被配置为向配置为所述服务的次提供者的第二工作负载提供第二虚拟网络;
经由所述第一虚拟路由器接收所述第一工作负载对所述服务的一个或多个第一服务请求;
响应于检测到所述第一控制节点的故障,将所述服务迁移到所述第二工作负载;以及
经由所述第二虚拟路由器接收所述第二工作负载对所述服务的一个或多个第二服务请求。
17.如权利要求16所述的方法,其中,所述第一通信会话包括第一可扩展通讯和表示协议XMPP会话,并且其中,所述第二通信会话包括第二XMPP会话。
18.如权利要求17所述的方法,
其中,所述第一区标识符包括第一XMPP会话配置的属性,并且其中,从所述第一XMPP配置而确定所述第一区标识符以建立所述第一XMPP会话;以及
其中,所述第二区标识符包括第二XMPP会话配置的属性,并且其中,从所述第二XMPP配置而确定所述第二区标识符以建立所述第二XMPP会话。
19.根据权利要求16-18中任一项所述的方法,还包括:
将所述第一区标识符分配为所述第一控制节点的属性;
将所述第一区标识符传送到所述第一虚拟路由器;
将所述第二区标识符分配为所述第二控制节点的属性;以及
将所述第二区标识符传送到所述第二虚拟路由器。
20.如权利要求16-18中任一项所述的方法,还包括:
通过第三虚拟路由器,至少部分地基于第三区标识符建立与第三控制节点的第三通信会话,其中,所述第三控制节点被配置为管理所述第三虚拟路由器;
通过所述第三虚拟路由器,至少部分地基于第四区标识符建立与第四控制节点的第四通信会话;以及
响应于检测到所述第三控制节点的故障,配置所述第四控制节点以管理所述第三虚拟路由器。
21.一种计算机可读存储介质,所述计算机可读存储介质用指令编码,用于使一个或多个可编程处理器执行权利要求1-8或16-20中任一项所述的方法。
CN201910937057.7A 2019-04-26 2019-09-29 用于软件定义网络路由服务的控制平面隔离 Active CN111865514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310878690.XA CN116915371A (zh) 2019-04-26 2019-09-29 计算机联网方法以及软件定义网络sdn系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/396,615 US11153194B2 (en) 2019-04-26 2019-04-26 Control plane isolation for software defined network routing services
US16/396,615 2019-04-26

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310878690.XA Division CN116915371A (zh) 2019-04-26 2019-09-29 计算机联网方法以及软件定义网络sdn系统

Publications (2)

Publication Number Publication Date
CN111865514A CN111865514A (zh) 2020-10-30
CN111865514B true CN111865514B (zh) 2023-07-21

Family

ID=67001592

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310878690.XA Pending CN116915371A (zh) 2019-04-26 2019-09-29 计算机联网方法以及软件定义网络sdn系统
CN201910937057.7A Active CN111865514B (zh) 2019-04-26 2019-09-29 用于软件定义网络路由服务的控制平面隔离

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310878690.XA Pending CN116915371A (zh) 2019-04-26 2019-09-29 计算机联网方法以及软件定义网络sdn系统

Country Status (3)

Country Link
US (2) US11153194B2 (zh)
EP (1) EP3731468A1 (zh)
CN (2) CN116915371A (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11677583B2 (en) * 2020-04-06 2023-06-13 Cisco Technology, Inc. Dynamic cellular connectivity between the hypervisors and virtual machines
EP3961989B1 (en) * 2020-08-24 2023-05-03 Deutsche Telekom AG Method for an operation of a broadband access network of a telecommunications network comprising a plurality of central office points of delivery, broadband access network or telecommunications network, central office point of delivery cluster, system, program and computer-readable medium
US11470677B2 (en) * 2020-08-27 2022-10-11 Dish Network L.L.C. Systems and methods for a computer network intermediate router
US11522749B2 (en) * 2021-01-11 2022-12-06 Cisco Technology, Inc. Detecting communication pathways affected by session flaps
CN112910908B (zh) * 2021-02-09 2022-03-18 重庆邮电大学 一种基于sdn的工业异构协议转换装置管理及协同转换方法
US11469958B1 (en) * 2021-02-25 2022-10-11 Juniper Networks, Inc. Network controller deployment
CN115086978B (zh) * 2021-03-11 2024-05-07 中国移动通信集团四川有限公司 网络功能虚拟化sdn网络系统
US11632268B2 (en) * 2021-03-30 2023-04-18 Juniper Networks, Inc. Generating route target values for virtual private network routes
US11706303B2 (en) * 2021-04-22 2023-07-18 Cisco Technology, Inc. Survivability method for LISP based connectivity
CN113204353B (zh) * 2021-04-27 2022-08-30 新华三大数据技术有限公司 一种大数据平台组件部署方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2680515A1 (en) * 2012-06-30 2014-01-01 Juniper Networks, Inc. Selective bgp graceful restart in redundant router deployments
CN103973676A (zh) * 2014-04-21 2014-08-06 蓝盾信息安全技术股份有限公司 一种基于sdn的云计算安全保护系统及方法
CN104065553A (zh) * 2014-06-30 2014-09-24 华为技术有限公司 虚拟网络迁移方法和相关设备
CN105765921A (zh) * 2013-11-27 2016-07-13 甲骨文国际公司 用于利用软件定义网络(sdn)功能进行diameter路由的方法、系统和计算机可读介质
CN106027626A (zh) * 2016-05-12 2016-10-12 赛特斯信息科技股份有限公司 基于sdn实现虚拟化数据中心的系统
CN107710685A (zh) * 2015-07-20 2018-02-16 施瓦哲工程实验有限公司 通过自动生成的且物理上不同的通信路径在网络中进行流量路由
CN109462534A (zh) * 2017-09-06 2019-03-12 中国银联股份有限公司 区域互联控制器、区域互联控制方法以及计算机存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160277261A9 (en) * 2006-12-29 2016-09-22 Prodea Systems, Inc. Multi-services application gateway and system employing the same
CA2674201A1 (en) * 2007-01-17 2008-07-24 Hamid Ould-Brahim Border gateway protocol extended community attribute for layer-2 and layer-3 virtual private networks using 802.1ah-based tunnels
US20110153715A1 (en) * 2009-12-17 2011-06-23 Microsoft Corporation Lightweight service migration
US8750288B2 (en) 2012-06-06 2014-06-10 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US9338096B2 (en) * 2013-08-30 2016-05-10 Futurewei Technologies, Inc. Multicast tree packing for multi-party video conferencing under SDN environment
US20180129539A1 (en) * 2015-06-10 2018-05-10 Ali Sadat Next Gen SDN with Smart Agent Based Routing (SABR)
EP3479532B1 (en) * 2016-07-27 2020-07-15 Huawei Technologies Co., Ltd. A data packet forwarding unit in software defined networks
WO2018034042A1 (ja) * 2016-08-17 2018-02-22 株式会社Nttドコモ 通信制御装置及び通信制御方法
DE102016219854A1 (de) * 2016-10-12 2018-04-12 Siemens Aktiengesellschaft Computersystem und Verfahren zum dynamischen Anpassen eines software-definierten Netzwerks
EP3529950B1 (en) * 2016-10-24 2021-12-01 NEC Corporation Method for managing data traffic within a network
US10277535B2 (en) * 2017-03-31 2019-04-30 Hewlett Packard Enterprise Development Lp Network switch systems including logical switches
US10291497B2 (en) 2017-03-31 2019-05-14 Juniper Networks, Inc. Session-based traffic statistics logging for virtual routers
US10691504B2 (en) * 2017-08-14 2020-06-23 International Business Machines Corporation Container based service management
US20190253341A1 (en) * 2018-02-15 2019-08-15 128 Technology, Inc. Service Related Routing Method and Apparatus

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2680515A1 (en) * 2012-06-30 2014-01-01 Juniper Networks, Inc. Selective bgp graceful restart in redundant router deployments
CN105765921A (zh) * 2013-11-27 2016-07-13 甲骨文国际公司 用于利用软件定义网络(sdn)功能进行diameter路由的方法、系统和计算机可读介质
CN103973676A (zh) * 2014-04-21 2014-08-06 蓝盾信息安全技术股份有限公司 一种基于sdn的云计算安全保护系统及方法
CN104065553A (zh) * 2014-06-30 2014-09-24 华为技术有限公司 虚拟网络迁移方法和相关设备
CN107710685A (zh) * 2015-07-20 2018-02-16 施瓦哲工程实验有限公司 通过自动生成的且物理上不同的通信路径在网络中进行流量路由
CN106027626A (zh) * 2016-05-12 2016-10-12 赛特斯信息科技股份有限公司 基于sdn实现虚拟化数据中心的系统
CN109462534A (zh) * 2017-09-06 2019-03-12 中国银联股份有限公司 区域互联控制器、区域互联控制方法以及计算机存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于软件定义网络的自适应数据流处理模型";王斌;《计算机工程与设计》;20181216;全文 *

Also Published As

Publication number Publication date
US11153194B2 (en) 2021-10-19
EP3731468A1 (en) 2020-10-28
CN111865514A (zh) 2020-10-30
CN116915371A (zh) 2023-10-20
US20200344146A1 (en) 2020-10-29
US20220038365A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
CN111865514B (zh) 用于软件定义网络路由服务的控制平面隔离
US10389634B2 (en) Multiple active L3 gateways for logical networks
US11409550B2 (en) Low latency connections to workspaces in a cloud computing environment
CN111865643B (zh) 数据中心中的初始化网络设备和服务器配置
US10083026B1 (en) In-service software upgrade of software-defined networking controller
TWI724106B (zh) 資料中心間的業務流量控制方法、裝置及系統
US9503371B2 (en) High availability L3 gateways for logical networks
US9692729B1 (en) Graceful migration of isolated virtual network traffic
US9712386B1 (en) Grouping routing resources for isolated virtual network traffic management
EP2399369B1 (en) Distributed data center access switch
US8484353B1 (en) Resource placement templates for virtual networks
US11398956B2 (en) Multi-Edge EtherChannel (MEEC) creation and management
US20090150883A1 (en) Method and system for controlling network traffic in a blade chassis
CN111865641B (zh) 在数据中心中初始化服务器配置
EP4111651A1 (en) Service chaining in multi-fabric cloud networks
EP3731462B1 (en) Virtual port group
Ghorab et al. Sdn-based service function chaining framework for kubernetes cluster using ovs
Avidan A Survey of Virtual Network Architectures

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