CN113765829A - 软件定义联网分布式系统中的活性检测和路由收敛 - Google Patents

软件定义联网分布式系统中的活性检测和路由收敛 Download PDF

Info

Publication number
CN113765829A
CN113765829A CN202010870300.0A CN202010870300A CN113765829A CN 113765829 A CN113765829 A CN 113765829A CN 202010870300 A CN202010870300 A CN 202010870300A CN 113765829 A CN113765829 A CN 113765829A
Authority
CN
China
Prior art keywords
network
virtual
routes
route
underlying
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010870300.0A
Other languages
English (en)
Other versions
CN113765829B (zh
Inventor
A·苏亚纳拉亚纳
R·罗伯茨
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 CN202311085819.8A priority Critical patent/CN117278503A/zh
Publication of CN113765829A publication Critical patent/CN113765829A/zh
Application granted granted Critical
Publication of CN113765829B publication Critical patent/CN113765829B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • 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/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • 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/026Details of "hello" or keep-alive messages
    • 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/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/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality

Landscapes

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

Abstract

本公开的实施例涉及软件定义联网分布式系统中的活性检测和路由收敛。本公开描述了用于在节点故障之后改进网络收敛速度的技术。在一个示例中,方法包括:由SDN控制器存储底层路由表和覆盖路由表,底层路由表具有针对数据中心的底层网络的路由,覆盖路由表具有针对用于数据中心的覆盖网络的虚拟网络的一组路由,其中底层网络包括物理网络交换机、网关路由器和在数据中心的相应计算节点上执行的一组虚拟路由器;在底层路由表内,安装到被指派给虚拟路由器中的特定虚拟路由器的目的地地址的路由,作为对底层网络中的特定虚拟路由器的可达性状态的指示符。SDN控制器基于在底层路由表内路由的存在或缺失,控制针对覆盖网络的虚拟网络的路由的通告。

Description

软件定义联网分布式系统中的活性检测和路由收敛
技术领域
本公开涉及计算机网络,更具体地涉及在虚拟网络内转发分组。
背景技术
在典型的云数据中心环境中,存在大量互连的服务器,这些服务 器提供计算(例如,计算节点)和/或存储容量以运行各种应用。例如, 数据中心包括为数据中心的客户托管应用和服务的设施。例如,数据 中心托管所有基础设施设备,诸如联网和存储系统、冗余电源和环境 控件。在典型的数据中心中,存储系统和应用服务器的集群经由一层 或多层物理网络交换机和路由器所提供的高速交换结构互连。更复杂 的数据中心为遍布全球的基础设施提供位于各种物理托管设施中的订 户支持设备。
由于敏感应用(例如实时)的部署不断增加,因此网络收敛和快 速故障转移已成为高性能服务提供方联网中的重要工具。可以在数据 中心中使用软件定义联网(SDN)平台,并且在一些情况下,可以使 用逻辑上集中且物理上分布的SDN控制器以及虚拟路由器中的分布式 转发平面,该虚拟路由器将网络从数据中心中的物理路由器和交换机 扩展到虚拟化服务器(称为计算节点)中托管的虚拟覆盖网络中。SDN 控制器提供虚拟化网络的管理、控制和分析功能,并通过与虚拟路由 器进行通信来协调虚拟路由器。
SDN控制器与计算节点的虚拟路由器之间的通信丢失可能会导致 数据中心环境内基于云的服务降级或无法正常运行。类似地,SDN控 制器与SDN网关之间的通信丢失也可能会中断基于云的服务的交付。 SDN控制器可能需要花费一些时间来检测计算节点或SDN网关何时 发生故障,并且一旦SDN控制器检测到故障,SDN控制器就需要花费 一些时间来将反映故障的路由更新传送给其他计算节点和SDN网关。 同时,覆盖网络中的其他设备将继续向故障计算节点或SDN网关发送 业务,并且该业务将会被丢弃,这一问题称为“路径监测(blackholing)”。
发明内容
大体上,本公开描述用于在SDN控制器与底层网络的设备之间的 通信丢失时减少对软件定义联网(SDN)平台内的业务流的中断的技 术。底层网络由物理设备和连接组成,覆盖网络通过这些物理设备和 连接提供网络虚拟化。底层网络可以由物理节点组成,包括一个或多 个网关路由器(在本文中也称为SDN网关)、计算节点以及以通信方 式耦合计算节点和SDN控制器的基于交换机的互联网协议(IP)结构 (在本文中也称为数据中心交换结构)的叶交换机(leaf switch)和脊 交换机(spine switch)。计算节点可以是执行针对一个或多个虚拟网 络实现分布式转发平面的虚拟路由器的服务器。计算节点的SDN控制 器和虚拟路由器进行通信以共享信息,以控制虚拟网络内的租户业务 的转发以到达网络目的地。
根据本公开的技术,IP结构的节点被配置为将计算节点路由传播 到SDN控制器。SDN控制器维护覆盖路由表,该覆盖路由表存储由计 算节点的虚拟路由器和/或数据中心的网关路由器直接向SDN控制器 通告的覆盖网络路由(例如VPN路由)。SDN控制器还维护底层路由 表,该底层路由表存储由SDN控制器在它通过与IP结构的节点交换 路由协议消息来与IP结构同步底层网络路由状态时所获得的底层网络 路由。SDN控制器在使用直接从计算节点接收到的覆盖网络路由转发 网络业务之前,基于同步的底层网络路由状态执行下一跳可达性检查。 以这种方式,底层网络路由的存在或缺失是用于控制覆盖网络中的覆盖网络路由的分发或撤消的触发。
本公开描述了用于利用路由协议来传播静态底层网络路由以从交 换结构的叶节点(例如,架顶式交换机)到达计算节点(例如,计算 节点的节点定位器前缀,诸如计算节点的IPv4或IPv6前缀)的技术。IP结构的节点使用网络协议将计算节点的静态底层网络路由分发给 SDN控制器。然后,SDN控制器将到计算节点的静态底层路由的存在 与计算节点的“可达性”或“活性(liveness)”相关联,并且被配置 为在将网络业务转发到与计算节点相关联的覆盖路由之前通过首先检 查所存储的路由信息中是否存在路由来执行下一跳可达性检查。以这 种方式,SDN控制器处底层网络路由的存在是SDN控制器将覆盖网络 路由分发给覆盖网络中的对等体的触发。
如本公开中所描述的,IP结构中的叶节点被配置为在每个叶节点 的转发平面与相应计算节点的虚拟路由器之间运行故障检测协议会 话,诸如双向转发检测(BFD)。以这种方式,IP结构中的叶节点可 以快速检测到经由底层网络的叶节点与计算节点的通信何时故障。在 一些示例中,BFD会话与叶节点与计算节点的虚拟路由器之间的边界 网关协议会话相关联。如果叶节点的故障检测协议会话检测到与计算 节点的虚拟路由器的通信故障,则叶节点通过将路由协议消息发送到 IP结构中的脊节点来传送底层网络的故障,从而撤消与计算节点相关 联的底层网络路由。脊节点又将底层网络路由撤消传送给SDN控制器, 并且SDN控制器更新其底层网络路由表以撤消针对不可达的虚拟路由 器或计算节点的底层网络路由。然后,SDN控制器将消息发送到其他 计算节点、SDN网关或其他设备,以撤消与计算节点发生故障的底层 通信相关联的静态底层路由。
以这种方式,SDN控制器被配置为将覆盖网络路由(VPN路由) 的通告(advertisement)与静态底层网络路由的存在或缺失联系起来。 如果存在静态底层网络路由,则SDN控制器仅将针对给定虚拟路由器 的覆盖网络路由通告给该覆盖的其他虚拟路由器。通过经由BFD触发 和控制底层网络路由的撤消,SDN控制器控制覆盖路由的通告,否则该通告就无法与BFD的活性检测联系在一起。
以这种方式,本公开的技术可以改进基于SDN的服务的可用性。 本公开的技术可以提供一种或多种优点。例如,本公开的技术可以提 供计算节点与IP结构的更好集成。此方法考虑了虚拟化基础设施的各 种元素:网络虚拟化解决方案(包括计算节点上的SDN控制器和虚拟 路由器/虚拟代理(agent))、底层交换层(例如,基于交换机的IP 结构)以及SDN网关(例如路由器)。在一些方面中,本公开提供了 一种用于覆盖网络和IP结构之间的集成的方法,并且解决了该方法引 起的一些复杂性。
例如,这些技术可以通过更快地将转发状态与网络拓扑的实际状 态收敛来避免业务路径监测并提供更好的路由一致性。在一些方面中, 在链路聚合组的所有成员链路上使用微BFD可以帮助提供更快的故障 检测。该技术可以提供SDN控制器控制平面的良好稳定性,因为仅以 下一跳可达性检查的形式检查数据平面,以确认隧道端点的活性。该 技术还可以避免由于底层故障而导致的假阳性情况,这种情况可能潜 在地导致覆盖网络中的双重故障(例如,同时发生主故障和备份故障)。
在一个示例方面中,一种方法包括:由软件定义联网(SDN)控 制器存储底层路由表和覆盖路由表,底层路由表具有针对数据中心的 底层网络的一组路由,覆盖路由表具有针对用于数据中心的覆盖网络 的至少一个虚拟网络的一组路由,其中底层网络包括多个物理网络交 换机、网关路由器和在数据中心的相应计算节点上执行的一组虚拟路 由器;在SDN控制器的底层路由表内,安装到被指派给虚拟路由器中 的特定虚拟路由器的目的地地址的路由,作为对底层网络中的特定虚 拟路由器的可达性状态的指示符;以及利用SDN控制器并且基于在底 层路由表内到虚拟路由器中的特定虚拟路由器的路由的存在或缺失, 控制针对覆盖网络的至少一个虚拟网络的多个路由中的一个或多个路 由的通告。
在另一示例方面中,SDN控制器包括与存储器通信的处理电路装 置,该处理电路装置被配置为:存储底层路由表和覆盖路由表,底层 路由表具有针对数据中心的底层网络的一组路由,覆盖路由表具有针 对用于数据中心的覆盖网络的至少一个虚拟网络的一组路由,其中底 层网络包括多个物理网络交换机、网关路由器和在数据中心的相应计 算节点上执行的一组虚拟路由器;在SDN控制器的底层路由表内,安 装到被指派给虚拟路由器中的特定虚拟路由器的目的地地址的路由, 作为对底层网络中的特定虚拟路由器的可达性状态的指示符;以及基 于在底层路由表内到虚拟路由器中的特定虚拟路由器的路由的存在或 缺失,控制针对覆盖网络的至少一个虚拟网络的多个路由中的一个或 多个路由的通告。
在另一示例中,方法包括:在数据中心的底层网络的互联网协议 (IP)结构的叶交换机的路由表内,安装到被指派给在计算节点上执 行的虚拟路由器的目的地地址的底层网络路由,其中底层路由提供对 特定虚拟路由器的可达性状态的指示符;并且由叶交换机经由在叶交 换机与虚拟路由器之间建立的故障检测协议会话而确定虚拟路由器未 响应故障检测协议会话;以及响应于确定虚拟路由器未响应故障检测 协议会话,由叶交换机向与管理覆盖网络的SDN控制器对等的脊节点 发送撤消与虚拟路由器相关联的底层网络路由的路由撤消消息,以指 示与虚拟路由器的通信故障。
在下面的附图和说明书中陈述一个或多个示例的细节。其它特征、 目标和优点将通过说明书、附图和权利要求书而变得明显。
附图说明
图1是图示了具有数据中心的示例网络系统的框图,在该数据中 心中可以实现本文描述的技术的示例。
图2是进一步详细地图示了图1的数据中心的示例实现的框图。
图3是进一步详细地图示了图2的数据中心的示例实现的框图。
图4是根据本公开技术的更详细地图示了SDN控制器的控制节点 的示例的框图。
图5A-图5B是根据本公开技术的进一步详细地图示了计算节点的 示例的框图。
图6是图示了具有专用子网的一对叶交换机的概念图。
图7是图示了使用内部网关协议将虚拟路由器主机路由重新分配 到IP结构的概念图。
图8是图示了根据本公开技术的各个方面的网络设备的示例操作 的流程图。
图9是图示了在包括SDN网关的自主系统与包括IP结构和SDN 控制器的自主系统之间的外部BGP对等的概念图。
图10是图示了IP结构的节点向SDN网关通知计算节点故障的系 统的概念图。
图11是图示了在SDN网关和脊交换机之间使用多跳eBGP的网络 拓扑的概念图。
图12是图示了在SDN网关故障的情况下用于收敛的示例过程的 概念图。
图13是图示了BGP即服务(BGPaas)布置的概念图,其中单个 控制节点提供单点故障。
图14是图示了使用BGPaas控制节点区域的冗余BGPaas设计的 概念图。
图15是图示了使用主和次控制节点区域来改进VNF路由稳定性 的冗余BGPaas设计的概念图。
图16是图示了裸金属服务器被连接在专用叶交换机上的系统的概 念图。
图17是图示了根据本公开的各个方面的使用集成式路由和桥接 (IRB)集成的示例虚拟路由器到叶交换机ECMP附接的逻辑表示的 概念图。
图18是图示了SDN网关功能与IP结构的脊功能折叠在一起的网 络设计的概念图。
图19是图示了折叠的SDN网关/IP结构设计网络设计的示例信令 概述的概念图,其中SDN网关功能与IP结构的脊功能折叠在一起。
图20A-图20B是图示了虚拟路由器的转发信息库(FIB)结构的 概念图,该结构具有对前缀数量的线性收敛时间依赖性。
图21A-图21B是图示了根据本公开技术的各个方面的针对转发信 息库中的复合下一跳的示例转发结构的概念图。
图22是图示了根据本公开技术的网络设备的示例操作的流程图。
具体实施方式
图1是图示了具有数据中心10的示例网络系统5的框图,在该数 据中心10中可以实现本文描述的技术的示例。在网络系统5中,SDN 控制器32、计算节点26A-26X(“计算节点26”)、SDN网关8A-8B (“SDN网关8”)和互联网协议(IP)结构20的节点根据本文描述 的技术进行操作,以确保客户业务流和在云数据中心内执行的客户应 用能够继续进行而不会中断。
通常,数据中心10为通过服务提供方网络6被耦合到数据中心10 的客户4提供应用和服务的操作环境。客户4通过提供方边缘(PE) 设备12被耦合到服务提供方网络6。数据中心10托管基础设施设备, 诸如联网和存储系统、冗余电源和环境控件。服务提供方网络6可以 被耦合到由其他提供方管理的一个或多个网络,并且因此可以形成大 规模公共网络基础设施(例如,互联网)的一部分。
在一些示例中,数据中心10可以表示许多地理上分布的网络数据 中心之一。如图1的示例中所示,数据中心10是为客户4提供网络服 务的设施。客户4可以是诸如企业和政府等集体实体,或个人。例如, 网络数据中心可以为多个企业和最终用户托管web服务。其他示例服 务可以包括数据存储、虚拟专用网络、业务工程、文件服务、数据挖 掘、科学或超级计算等。在一些示例中,数据中心10是单独的网络服 务器、网络对等体或其他。
在本示例中,数据中心10包括一组存储系统和应用服务器,它们 经由一层或多层物理网络交换机和路由器所提供的IP结构20互连。 计算节点26是充当数据中心的计算节点的服务器。在一些示例中,术 语“计算节点”和“服务器”在本文中可互换使用,以指代计算节点 26。例如,每个计算节点26可以提供用于执行一个或多个客户特定虚 拟机(图1中的“VM”)的操作环境。IP结构20由一组互连的叶交 换机24A-24N(统称为“叶交换机24”)提供,这些叶交换机24A-24N 被耦合至脊交换机22A-22M(统称为“脊交换机22”)的分布层。叶交换机24也可以被称为架顶式(TOR)交换机。脊交换机22也可以 被称为脊交换机。尽管未示出,但是数据中心10还可以包括例如一个 或多个非边缘交换机、路由器、集线器、网关、安全设备(诸如防火 墙、入侵检测和/或入侵防御设备)、服务器、计算机终端、膝上型电脑、打印机、数据库、无线移动设备(诸如蜂窝电话或个人数字助理)、 无线接入点、桥接器、电缆调制解调器、应用加速器或其他网络设备。
在本示例中,叶交换机24和脊交换机22向计算节点26提供到IP 结构20的冗余(多宿主)连接性。脊交换机22聚合业务流并提供叶 交换机24之间的高速连接性。叶交换机24是提供层2(例如,MAC) 和/或层3(例如,IP)路由和/或交换功能性的网络设备。叶交换机24和脊交换机22各自包括一个或多个处理器和存储器,并且能够执行一 个或多个软件过程。SDN网关8(也被称为网关路由器)是执行层3 路由以通过服务提供方网络6在数据中心10和客户4之间路由网络业 务的路由设备。SDN网关8提供冗余网关以在IP结构20和服务提供方网络6之间转发和接收分组。
根据本公开的一个或多个示例,SDN控制器32提供逻辑上的并且 在一些情况下物理上的集中式控制器,用于促进数据中心10内的一个 或多个虚拟网络的操作。贯穿本公开,术语SDN控制器和虚拟网络控 制器(“VNC”)可以互换使用。在一些示例中,SDN控制器32响应 于经由北向应用编程接口(API)31从编排引擎30接收到的配置输入 而操作,该API又响应于从管理员28接收到的配置输入而操作。关于 SDN控制器32结合数据中心10的其他设备或其他软件定义网络进行 操作的附加信息在2013年6月5日提交的国际申请号 PCT/US2013/044378中找到,该申请的标题为“PHYSICAL PATH DETERMINATION FOR VIRTUALNETWORK PACKET FLOWS”, 该案件通过引用并入本文就如同在本文进行了充分阐述一样。
在一些示例中,编排引擎30管理数据中心10的功能,诸如计算、 存储、联网和应用资源。例如,编排引擎30可以为数据中心10内或 跨数据中心的租户创建虚拟网络。编排引擎30可以将虚拟机(VM) 连接到租户的虚拟网络。编排引擎30可以将租户的虚拟网络连接到某 个外部网络,例如互联网或VPN。编排引擎30可以跨一组VM实现安 全策略或将安全策略实现到租户网络的边界。编排引擎30可以在租户 的虚拟网络中部署网络服务(例如负载平衡器)。
在一些示例中,SDN控制器32管理网络和联网服务,诸如负载平 衡、安全性,并经由南向API 33将来自计算节点26的资源分配给各 种应用。即,南向API 33表示SDN控制器32用来使网络的实际状态 等于编排引擎30指定的期望状态的一组通信协议。例如,一种这样的 通信协议可以包括诸如XMPP等消息传递协议。例如,SDN控制器32 通过配置物理交换机来实现来自编排引擎30的高级请求,物理交换机 例如叶交换机24、脊交换机22;物理路由器;物理服务节点,诸如防 火墙和负载平衡器;以及虚拟服务,诸如VM中的虚拟防火墙。SDN 控制器32维护状态数据库内的路由、联网和配置信息。SDN控制器 32将路由信息和配置信息的适当子集从状态数据库传送到每个计算节 点26A-26X上的虚拟路由器(VR)代理36A-36X(图1中的“VA”)。
通常,任何两个网络设备之间的业务,诸如IP结构20内的网络设 备之间,或计算节点26与客户4之间,或计算节点26之间,例如都 可以使用许多不同的路径遍历物理网络。例如,两个网络设备之间可 能存在多个等成本的不同路径。在一些情况下,可以在每个网络交换 节点处使用被称为多路径路由的路由策略,将属于从一个网络设备到 另一网络设备的网络业务的分组分发到各种可能的路径中。例如,互 联网工程任务组(IETF)RFC 2992“Analysis of an Equal-Cost Multi-Path Algorithm”描述了一种用于沿等成本的多个路径路由分组的路由技术。 RFC 2992的技术分析了一种特定的多路径路由策略,该策略涉及通过 对分组报头字段进行哈希处理来将流指派到仓(bin),该分组报头字 段通过单个确定性路径从特定网络流发送所有分组。
例如,“流”可以由分组的报头中使用的五个值定义,或用于通 过物理网络路由分组的“五元组”,即协议、源IP地址、目的地IP 地址、源端口和目的地端口。例如,协议指定通信协议(诸如TCP或 UDP),并且“源端口”和“目的地端口”是指连接的源端口和目的 地端口。与特定流条目匹配的一组一个或多个分组数据单元(PDU) 表示流。可以使用PDU的任何参数(诸如源和目的地数据链路(例如 MAC)和网络(例如IP)地址、虚拟局域网(VLAN)标签、传输层 信息、多协议标签交换(MPLS)或通用MPLS(GMPLS)标签)、以 及接收该流的网络设备的入口端口对流进行大致分类。例如,流可以 是在传输控制协议(TCP)连接中传输的所有PDU、由特定MAC地址 或IP地址来源的所有PDU、具有相同VLAN标签的所有PDU或在同 一交换端口处接收的所有PDU。
如本文所描述的,每个计算节点26包括相应的虚拟路由器(图1 中的“VR”),其为数据中心10内的对应虚拟网络执行多个路由实 例,并将分组路由到在服务器所提供的操作环境内执行的适当虚拟机。 由计算节点26A的虚拟路由器例如从底层物理网络结构接收的分组可 以包括外部报头,以允许物理网络结构将有效负载或“内部分组”隧 道传输到执行虚拟路由器的计算节点26的网络接口的物理网络地址。 外部报头不仅可以包括服务器的网络接口的物理网络地址,还可以包 括虚拟网络标识符,诸如标识虚拟网络之一以及由虚拟路由器或接口 执行的对应路由实例的虚拟扩展局域网(VXLAN)标签或多协议标签 交换(MPLS)标签。即,MPLS标签可以映射到路由实例或接口。内 部分组包括内部报头,该内部报头的目的地网络地址符合由虚拟网络 标识符标识的虚拟网络的虚拟网络寻址空间。在一些方面中,虚拟路 由器在将从底层物理网络结构接收到的多个隧道传输的分组缓冲并聚 合之后,再传递到该分组的适当路由实例。
在图1的示例中,SDN控制器32学习并将路由和其他信息(诸如 配置信息)分发给数据中心10中的所有计算节点。在从SDN控制器 32接收到路由信息后,在计算节点内部运行的VR代理36通常对带有 转发信息的数据转发元素(虚拟路由器)进行编程。SDN控制器32使用诸如XMPP协议等消息传递协议将路由和配置信息发送到VR代 理36。在XMPP中,SDN控制器32和代理在同一信道上传送路由和 配置。当从VR代理36接收覆盖网络路由(虚拟路由)时,SDN控制 器32充当消息传递协议客户端,并且在这种情况下,VR代理36充当 消息传递协议服务器。相反,当SDN控制器向VR代理36发送路由 (包括从SDN网关或其他计算节点学到的覆盖网络路由以及针对从IP 结构中学到的其他计算节点的底层网络路由)时,SDN控制器32充当 作为消息传递协议客户端的VR代理36的消息传递协议服务器。
图1所示的软件定义联网方法借助于覆盖联网提供计算节点级别 的网络虚拟化。然而,SDN性能需要满足服务提供方的高要求的WAN 服务级别协议(SLA)。例如,对于任何故障用例,一些SLA要求可 能要求网络在SDN控制器、IP结构和SDN控制器之间的SDN集成中达到亚秒级收敛(停机时间为0.5秒)。在网络中,网络设备必须基于 当前的网络拓扑维护路由信息和转发信息,该信息准确反映如何将业 务发送到目的地。收敛是网络中的设备在改变网络拓扑后准确更新其 路由信息和转发信息的过程。例如,由于缺少特征、其他计算OS/OSS/ 内核依赖项的设计限制或产品限制(诸如控制平面缓慢、低端交换机 上的FIB写入速度),一些场景下满足收敛时间要求可能更具挑战性。
收敛可能涉及三个阶段:检测、局部修复和全局修复。在检测中, 节点检测到已发生故障。在图1的示例中,作为一些示例,虚拟机、 物理网络功能(PNF)或IP结构中可能会发生故障。只有在检测之后, 才能强制执行纠正措施,诸如通过对新的转发路径路由更新进行编程。 在虚拟环境中进行检测需要时间。与在链接断开事件可以与检测相关 联的物理环境不同,虚拟环境可能依赖于保持活跃机制来检测故障。 处理快速收敛时,必须限制“检测时间”。
局部修复也可以被称为快速重路由(FRR)或快速收敛。在检测到 故障之后,局部系统可以立即将业务转移到备份路径(如果有)(即, 先前已发出信号的备份)。在这一点上,其他系统尚未采取任何纠正 措施,并且可能根本不了解拓扑变化。
全局修复(也可以被称为网络收敛)发生在对网络中的所有系统 都通知了拓扑并已强制执行纠正措施(如果适用)后,理想的是通过 路由协议传播拓扑变化的信令。全局修复后,网络处于稳定状态,控 制平面中的路由信息与编程到数据转发路径中的转发信息一致。服务 的可用性受计时器、网络能力和设计的约束。从服务可用性的角度来 看,只要网络已经提供了备选转发路径,局部收敛就足够了。这是数 据中心架构中的典型情况,在该架构中,等成本多路径(ECMP)或绑 定提供本机冗余路径。
软件定义网络的物理节点和物理连接被称为底层网络,而将软件 定义网络的虚拟节点逻辑连接以形成的虚拟节点和元素被称为覆盖网 络。在诸如图1的网络系统5等虚拟化环境中,在底层网络中可能发 生不同类型的故障。底层网络可以由物理节点组成,包括SDN网关8、 IP结构20的叶交换机24和脊交换机22、计算节点26、以及这些元素 之间的物理连接(例如,链接)。在图1的示例中,底层网络中可能 存在几处故障点:网关故障、网关到脊链路故障、脊故障、脊到叶链 路故障、叶故障、叶到计算节点链路故障、计算链路故障、计算节点 故障和裸金属服务器(BMS)故障。覆盖网络中也可能存在故障(例 如,诸如虚拟机故障或pod故障等工作负载故障),但是通常可以在 亚秒时间帧内检测到并解决这些故障,因此与一些底层网络故障类型 相比,这可能不是一个大问题。
网关故障描述如下。每个SDN网关8都经由多协议边界网关协议 (MP-BGP)与SDN控制器32的控制节点对等。网络系统5包括两个 SDN网关,以实现高可用性。当实现选项B自主系统(AS)间框架时, 每个SDN网关8都充当:从虚拟路由器的角度来看,对于源自网关以 外的或源自网关的所有前缀,隧道端点(MPLS over UDP、MPLS over GRE或VXLAN)。从远程PE设备12的角度来看,每个SDN网关8 也都充当出口PE(下一跳)。尽管是根据MPLS over UDP进行描述的, 但在一些示例中,分段路由MPLS(SR-MPLS)、MPLS over MPLS或 SRv6都可以用于覆盖网络。
在缺少本公开技术的情况下,在SDN网关8之一发生故障的情况 下,SDN控制器32的控制节点需要BGP保持时间计时器到期以检测 故障并生成到计算节点(虚拟路由器)的路由更新。同时,从计算节 点到骨干的业务将经过ECMP负载平衡到两个SDN网关8。因此,此故障情况的收敛时间将等于BGP保持时间(默认为90秒)。
在服务提供方环境中,可能无法接受对BGP保持时间的依赖以实 现收敛。从技术上讲,该计时器可以减少到3秒,但这不是推荐的配 置。如以下进一步详细描述的,本公开的技术采用故障检测协议来进 行快速对等故障检测。故障检测协议可以是例如双向转发检测(BFD) 协议。BFD协议是一种简单的打招呼(hello)机制,用于检测网络中 的故障。以指定的固定间隔在两个网络设备的转发平面之间发送打招 呼分组。当路由设备在指定的间隔后停止接收答复时,将检测到邻居 故障。BFD的故障检测计时器比BGP的默认故障检测机制具有更短的 时间限制,因此它们提供更快的检测。BFD协议的进一步细节在D.Katz 等人于2010年6月发布在IETF RFC 5880上的“Bidirectional Forwarding Detection(BFD)”中进行了描述,其全部内容通过引用并入 本文。尽管出于使用BFD作为故障检测协议的示例目的进行了描述, 但是在其他示例中,例如,可以使用不同的故障检测协议,诸如无缝BFD(S-BFD)。
底层网络故障的另一示例是计算节点26的故障。如本文所描述的, “计算节点故障”可以包括虚拟路由器的故障,包括在虚拟路由器发 生故障但计算节点本身在一些方面保持操作的情况中。在缺乏本公开 技术的情况下,由于SDN控制器32检测计算节点/虚拟路由器故障较 慢(基于XMPP保持时间,即,SDN控制器32通过与虚拟路由器的 XMPP会话未接收到任何消息的时间),因此SDN控制器32检测到 虚拟路由器的故障会存在较长的延迟。
在计算节点26发生故障的情况下,在缺乏本公开技术的情况下, 可以应用以下序列:(1)首先,计算XMPP保持时间到期:例如3*5=15 秒;(2)接下来,SDN控制器32通过删除来更新其路由表(VPNv4、 EVPN);(3)接下来,SDN控制器32将经由故障的计算节点26可 达的所有地址的删除(通过发送mp_unreach/withdraw消息)传播到 SDN网关8(经由MP-BGP)和相同VN中涉及的计算节点(经由 XMPP)。接下来,SDN网关8和计算节点26更新其转发信息。没有 任何特定特征(例如,多路径/PIC-EDGE),由于应用了线性时间依赖 性,此操作在大规模场景中可能会花费大量时间(路由器可能每秒大 约有2-5K个前缀,而虚拟路由器每秒大约有10K个前缀)。
还有其他底层故障场景,它们的检测时间可能较短,因此不成问 题。示例包括SDN网关8与脊交换机22之间的链路的故障、脊交换 机22的故障、脊交换机22与叶交换机24之间的链路的故障、叶交换 机24的故障、以及叶交换机24和计算节点26之间的链路的故障。
本公开还描述了用于利用路由协议来通过IP结构20的物理节点来 传播针对计算节点的底层网络路由(例如,诸如/32IPv4地址、/128IPv6 地址或超网等前缀)的技术,该IP结构20将计算节点服务器物理地 耦合至执行SDN控制器32的计算节点的服务器设备。IP结构的物理 基础设施将针对计算节点的底层路由传送到SDN控制器。然后,SDN 控制器将到计算节点的底层路由的存在与计算节点的“可达性”或“活 性”相关联,并被配置为在将网络业务转发到与计算节点相关联的覆 盖路由之前通过首先检查所存储的路由信息中是否存在底层路由来执 行下一跳可达性检查。如果计算节点发生故障,则该故障由IP结构节点检测到(例如,使用BFD)并经由IP结构节点被传送给SDN控制 器,然后SDN控制器向其他计算节点、SDN网关或其他设备发送消息 以撤消与发生故障的计算节点相关联的覆盖路由。以这种方式,将覆 盖网络中的路由与底层中的BFD联系在一起,有效地使用“静态”底层路由作为用于控制是否向覆盖网络设备通告或撤消VPN路由的标 志。
根据本公开的技术,IP结构20的节点被配置为分发计算节点路由, 包括将路由传送到SDN控制器32。此外,IP结构20的节点将针对SDN 网关8的路由分发给SDN控制器32。例如,IP结构20经由BGP将虚 拟路由器计算节点的IP地址和SDN网关环回(Loopback)地址传播 到控制节点。本地叶交换机针对虚拟路由器vhost IP地址(即隧道端点) 生成前缀路由条目。计算节点的活性可以首先基于网络接口卡(NIC) 链路状态,然后在第二步中利用面向虚拟路由器的微BFD会话进行进 一步优化,以进行更好的运行状况追踪。
SDN控制器32维护路由表,并使路由状态与IP结构的IGP(这 里可以是例如eBGP)同步,并且SDN控制器32执行下一跳可达性检 查。基于计算IP地址前缀(例如,对于IPv4为/32)的存在,在SDN 控制器32和SDN网关8的控制节点处强制执行下一跳可达性检查。 例如,SDN控制器32可以被配置有控制适当的下一跳是什么的策略。 在一些示例中,下一跳可达性检查可以仅在/32路由(即到唯一设备的 主机路由)上被强制执行。如果针对隧道端点不存在/32下一跳路由, 则针对/32下一跳的所有相关前缀都标记为发生故障,并从虚拟路由器 转发平面撤消。在BMS集成的情况下,该原理也可以适用于任何 VXLAN隧道端点(VTEP)。以这种方式,SDN控制器处底层网络路 由的存在是针对将覆盖网络路由分发给覆盖网络中的对等体的SDN控 制器的触发。
例如,SDN控制器32存储具有针对数据中心10的底层网络的一 组路由的底层路由表和具有针对数据中心的覆盖网络的至少一个虚拟 网络的一组路由的覆盖路由表,其中底层网络包括IP结构20的多个 物理网络交换机、网关路由器(诸如SDN网关8)和在数据中心10 的相应计算节点26上执行的一组虚拟路由器。该技术包括:在SDN 控制器32的底层路由表内,安装到被指派给虚拟路由器中的特定虚拟 路由器的目的地地址的路由,作为到底层网络中的特定虚拟路由器的 可达性状态的指示符;以及利用SDN控制器32并且基于在底层路由 表内到虚拟路由器中的特定虚拟路由器的路由的存在或缺失,控制针 对覆盖网络的至少一个虚拟网络的路由中的一个或多个路由的通告。
本公开的技术可以提供底层网络中的虚拟路由器与IP结构20的更 好集成。出于上述原因,快速收敛是虚拟化环境中的关键问题,可以 使用分阶段的方法来满足短期目的。
以这种方式,以使云联网能够继续操作的方式来配置SDN控制器 32、计算节点26、SDN网关8和IP结构20的节点,即使SDN网关8 或计算节点26发生故障。因此,当计算节点26或SDN网关8中的一 者发生故障时,数据中心10确保客户业务流和在云数据中心内执行的客户应用继续进行而不会中断。
图2是进一步详细地图示了图1的数据中心10的示例实现的框图。 在图2的示例中,数据中心10包括计算节点26A-26X,这些计算节点 包括虚拟路由器42A-42X(统称为“虚拟路由器42”,有时也被称为 “vrouter”)。响应从SDN控制器32接收到的指令,虚拟路由器42 动态地创建和管理可用于应用实例之间通信的一个或多个虚拟网络 (“VN1、VN0”)46。
在一个示例中,虚拟路由器42将虚拟网络作为覆盖网络执行,该 网络提供了将应用的虚拟地址与应用在其上执行的计算节点26A-26X (“计算节点26”)之一的物理地址(例如IP地址)分离的能力。每 个虚拟网络可以使用其自己的寻址和安全方案,并且可以被视为与物 理网络及其寻址方案正交。可以使用各种技术来通过物理网络在虚拟 网络46之内和之间传输分组。
每个虚拟路由器42在管理程序、主机操作系统或每个计算节点26 的其他组件内执行。每个计算节点26表示能够执行虚拟机48的x86 或其他通用或专用服务器。在图2的示例中,虚拟路由器42A在管理 程序40(通常也称为虚拟机管理器(VMM))内执行,管理程序40提供虚拟化平台,该虚拟化平台允许多个操作系统同时在计算节点26 之一上运行。在图2的示例中,虚拟路由器42A管理虚拟网络46,每 个虚拟网络提供用于在由管理程序40提供的虚拟化平台之上执行一个 或多个虚拟机(VM)48的网络环境。每个VM 48与虚拟网络VN0-VN1 之一相关联,并且表示运行客户应用(诸如Web服务器、数据库服务 器、企业应用)或托管用于创建服务链的虚拟化服务的租户VM。在一 些情况下,计算节点26中的任何一个或多个计算节点或另一计算设备 直接托管客户应用,即不作为虚拟机。本文中所引用的虚拟机,例如,VM 48、计算节点26或托管客户应用的单独的计算设备都可以替代地 称为“主机”。
通常,每个VM 48可以是任何类型的软件应用,并且被指派有在 对应虚拟网络46内使用的虚拟地址,其中每个虚拟网络可以是由虚拟 路由器42A提供的不同的虚拟子网。VM 48可以被指派有其自己的虚 拟层3(L3)IP地址,例如,用于发送和接收通信,但是不知道虚拟 机在其上执行的物理计算节点26A的IP地址。以这种方式,“虚拟地 址”是针对应用的地址,其不同于针对底层物理计算机系统的逻辑地 址,例如图2的示例中的计算节点26A。虚拟地址在本文中也可以被 称为“虚拟接口”。
在一种实现中,每个计算节点26包括VR代理36A-36X中的一个 对应的VR代理,该VR代理与SDN控制器32通信,并响应于此而指 导虚拟路由器42,以便控制虚拟网络46的覆盖并协调计算节点26内 的数据分组的路由。通常,每个VR代理36与SDN控制器32通信, 这生成控制分组通过数据中心10的路由传送的命令。
VR代理36在用户空间中执行,并充当VM 48和SDN控制器32 之间的控制平面消息的委托(proxy)。例如,VM 48可以请求经由 VR代理36A使用其虚拟地址发送消息,并且VR代理36A又可以发 送该消息,并请求针对发起第一消息的VM 48的虚拟地址接收对该消 息的响应。在一些情况下,VM 48调用由VR代理36A的应用编程接 口呈现的过程或功能,并且VR代理36A也处理消息的封装,包括寻 址。
在一些示例实现中,每个计算节点26A还包括与编排引擎30直接 通信的编排代理(图2中未示出)。例如,响应于来自编排引擎30的 指令,编排代理传送在相应的计算节点26上执行的特定VM 48的属 性,并且可以创建或终止单独的VM。
在一个示例中,可以将由虚拟网络域内的虚拟机48执行的应用实 例生成或消费的网络分组(例如,层3(L3)IP分组或层2(L2)以 太网分组)封装在物理网络所传输的另一分组(例如,另一IP或以太 网分组)中。在虚拟网络中传输的分组在本文中可以被称为“内部分 组”,而物理网络分组在本文中可以被称为“外部分组”或“隧道分 组”。物理网络分组内的虚拟网络分组的封装和/或解封装可以在虚拟 路由器42内被执行,例如,在每个计算节点26上运行的管理程序或 主机操作系统内。作为另一示例,在第一跳架顶式(TOR)交换机24 处的IP结构20的边缘处执行封装和解封装功能,其是从发起分组的 应用实例中移除的一跳。该功能性在本文中被称为隧道,并且可以在 数据中心10内被使用以创建一个或多个覆盖网络。除了IP-in-IP之外, 其他可以使用的示例隧道协议包括IP over GRE、VxLAN、MPLS over GRE、MPLS over UDP等。
如上所提到的,SDN控制器32提供逻辑上集中的控制器,用于促 进数据中心10内一个或多个虚拟网络的操作。例如,SDN控制器32 维护路由信息库,例如,存储数据中心10的物理网络以及一个或多个 覆盖网络的路由信息的一个或多个路由表。路由信息库可以包括覆盖 网络路由信息和底层网络路由信息,如本文所描述的。类似地,脊交 换机22、叶交换机24和虚拟路由器42维护路由信息,诸如一个或多 个路由和/或转发表。在一个示例实现中,管理程序40的虚拟路由器 42A为每个虚拟网络46实现网络转发表(NFT)44。通常,每个NFT 44存储针对对应虚拟网络46的转发信息,并标识数据分组将在何处转 发以及是否将分组封装在隧道协议中,诸如利用隧道报头来封装,该 隧道报头可以包括针对虚拟网络协议栈的不同层的一个或多个报头。 另外,虚拟路由器42A维护底层路由信息,该底层路由信息存储从SDN 控制器32学到的与计算节点26或SDN网关8中的其他一些相关联的 底层路由。根据本公开的技术,网络转发表44还可以存储与底层路由 相关联的转发信息。
例如,虚拟机VM1-48可以通过内部链路将“内部分组”发送到 虚拟路由器42A。虚拟路由器42A使用NFT1来查找该分组的虚拟网络 目的地网络地址。NFT1为虚拟路由器42A指定出站接口并为分组指定 封装。虚拟路由器30A应用封装以添加隧道报头以生成外部分组,并 在出站接口上输出该外部分组,在这种情况下,向叶交换机24A输出 该外部分组。
例如,路由信息将分组密钥信息(例如,来自分组报头的目的地 IP信息和其他选择信息)映射到虚拟路由器42和IP结构20所提供的 网络内的一个或多个特定的下一跳。在这种情况下,下一跳是链接在 一起的下一跳,其指定在转发分组时将在每个分组上被执行的一组操 作,诸如可以用于泛洪下一跳和多播复制的操作。如图2所示,每个 虚拟网络46为通过IP结构20建立的覆盖网络提供用于封装分组通信 的通信框架。以这种方式,与任何虚拟机48相关联的网络分组可以经 由封装网络作为封装的分组通信进行传输。
每个VR代理36可以通过XMPP会话将消息发送到SDN控制器 32,该消息将虚拟路由传递到计算节点26的VM的虚拟接口(虚拟地 址)。虚拟路由在本文中被称为覆盖网络路由。例如,VR代理36A 发送包含针对计算节点26A的覆盖网络路由的XMPP消息37A。SDN 网关8还可以例如经由BGP会话向SDN控制器32发送消息,该消息 包含针对SDN网关的覆盖网络路由。这可以包括来自“非SDN”周界 的覆盖路由,诸如SDN网关8向SDN控制器32发送经由SP网络6 接收的客户4路由。例如,SDN网关8A将覆盖网络路由37B发送到 SDN控制器32。SDN控制器32接收消息并将虚拟路由存储到覆盖路 由信息,并可以依次将从第一VR代理36接收到的一个或多个覆盖路 由通告给其他VR代理36(经由XMPP)和SDN网关8(例如,经由 BGP),诸如分别经由消息38A、38B。在一些示例中,任何覆盖路由 都可以包括前缀、与计算节点26的服务器相关联的下一跳地址、以及 标签或其他数据,以标识在下一跳服务器处配置的虚拟路由和转发实 例。虚拟路由可以包括路由区分符(distinguisher)(RD)。BGP信令 IP/VPN的更多详细信息在S.Mackie于2016年12月15日发布在网络 工作组互联网草案上的BGP信令终端系统IP/VPN中进行了描述,其 全部内容通过引用并入本文。
然而,当计算节点26之一发生故障或变得不可达时,SDN控制器32需要时间来学习此信息,然后又将撤消故障计算节点的覆盖网络路 由通告给其他计算节点26和SDN网关8。本公开的技术提供了一种机 制,用于使SDN控制器32基于底层网络路由通过从IP结构20中的 设备学习此信息来更快地知晓该故障。本公开还提供了在被告知底层 网络路由已撤消之后用于转发信息的局部修复的技术。这些方面可以 在一些示例中一起使用或独立使用。
根据本公开的技术,叶交换机24中的每一个可以被配置为生成 BGP消息并将其发送到脊交换机22,脊交换机22将底层网络路由通 告给计算节点。例如,叶交换机24A向脊交换机22A发送路由协议消 息45,以将底层网络路由通告给计算节点26A。叶交换机24A可以在 检测到计算节点26A的ARP活动时生成路由协议消息45。到计算节 点26A的底层网络路由可以包括与计算节点26A的服务器相关联的前 缀。
在一些示例中,计算节点26A本身可以执行路由协议过程并运行 到作为BGP对等体的叶交换机24A的BGP会话,并且计算节点26A 可以将BGP消息发送到叶交换机24A,以通告计算节点26A的环回地 址,这又触发叶交换机生成到脊交换机22A的路由协议消息45。用于 在IP结构20内以及在计算节点与IP结构之间传递消息的路由协议可 以是BGP、具有扩展的BGP、胖树路由(Routing in Fat Trees)(RIFT) 协议、ISIS、OSPF或其他路由协议(包括:例如,专有的路由协议)。 在图17中讨论了关于该方法的更多细节。
到计算节点26A的底层网络路由通过IP结构20向上传播(可以 包括图2中未示出的附加级别),直到脊交换机22A发送路由协议消 息47,通过在脊交换机22A与控制节点54A之间的BGP会话51将底 层网络路由通告给SDN控制器32的控制节点54A。尽管出于示例目的仅示出了到控制节点54A的单个BGP会话51,但是在一些示例中, 脊交换机22A还可以具有与控制节点54A的BGP会话,并且类似地, 其他脊交换机22可以具有与一个或多个控制节点的对应BGP会话。
SDN控制器32将XMPP消息发送到计算节点26B-26X,以将学习 到的底层路由通告给计算节点26A。SDN控制器32将BGP消息发送 到SDN网关8,以通告学习到的底层路由。类似地,SDN控制器32 可以将消息发送到计算节点和其他SDN网关,以向经由IP结构20学 习到的底层路由通告给SDN网关8。SDN控制器32和SDN网关8针 对/32路由(或/128IPv6地址或超网)执行下一跳可达性检查,如本文 所述,使得它们仅通告具有经由IP结构20学习到的对应底层网络路 由的覆盖网络路由。
响应于例如经由BFD会话检测到诸如计算节点26A等计算节点的 故障,叶交换机24A将底层网络路由沿IP结构20向上的撤消传播至 SDN控制器32,并从SDN控制器32传播至计算节点26B-26X和SDN 网关8。例如,叶交换机经由在叶交换机和在计算节点上执行的虚拟路 由器之间建立的故障检测协议会话来确定计算节点未响应故障检测协 议会话,并且响应于确定计算节点未响应故障检测协议会话,叶交换 机向脊节点发送撤消与计算节点相关联的底层网络路由的路由撤消消 息。
继而,计算节点26B-26X和SDN网关8更新其转发平面以移除计 算节点26A的下一跳。在一些示例中,更新转发平面可以包括使用正 交活性向量和与前缀无关的收敛的局部修复技术,如下面进一步详细 描述的。
以这种方式,根据本公开的技术,SDN控制器32被配置为基于IP 结构20是否已经通告或撤消了对应底层路由来确定覆盖网络路由是否 可达,因此潜在地通过仅将业务转发到可达的下一跳来减少服务停机 时间和对其客户的干扰。
图2中所示的数据中心10的架构仅出于示例目的而被示出。可以 在图2的示例数据中心10以及本文没有具体描述的其他类型的数据中 心中实现本公开中阐述的技术。本公开中的任何内容都不应被解释为 将本公开的技术局限于图2所示的示例架构。
图3是进一步详细地图示了图2的数据中心的示例实现的框图。 在图3的示例中,SDN控制器32包括一个或多个分析节点50A-50X (统称为“分析节点50”)、一个或多个配置节点52A-52X(统称为 “配置节点52”)和控制节点54A-54X(统称为“控制节点54”)。 通常,节点50、52和52中的每一个可以被实现为单独的软件过程, 并且节点可以被分布在提供用于执行软件的环境的多个硬件计算平台 上。此外,每个节点维护状态数据库56,该状态数据库56可以被存储 在集中式或分布式数据库内。在一些示例中,状态数据库56是NoSQL 数据库。在一些示例中,状态数据库56是数据库集群。
通常,分析节点50的任务是收集、存储、关联和分析来自数据中 心10内的虚拟和物理网络元素的信息。该信息可以包括用于管理数据 中心10的路由和网络配置的统计、日志、事件和错误。分析节点50 将该信息存储在状态数据库56中。
配置节点52将编排引擎30的高级数据模型转换为适合与诸如物 理交换机22、24和VR代理36等网络元素进行交互的低级模型。配 置节点52将SDN控制器32的配置状态的持久副本保持在状态数据库 56(“STATE DATA 56”)内。
控制节点54实现负责维护临时网络状态的逻辑上集中的控制平 面。控制节点54彼此交互,并与网络元素(诸如VR代理36和计算 节点26的虚拟路由器42)进行交互,以确保网络状态最终与编排引擎 30所指定的期望状态一致。通常,控制节点54从配置节点52接收SDN 控制器32的配置状态信息,并经由IBGP相互交换路由,以确保所有 控制节点54都具有相同的网络状态。此外,控制节点54经由XMPP 与计算节点26上的VR代理36交换路由。控制节点54还例如经由 XMPP将诸如路由实例和转发策略等配置状态信息传送给VR代理36, 以安装在相应虚拟路由器42内。在一些示例中,控制节点54可以代 表计算节点26来委托业务。可以通过XMPP接收这些委托请求。此外, 控制节点54经由BGP与SDN网关8交换路由,并且经由Netconf与 服务节点21交换SDN控制器32的配置状态。
配置节点52提供发现服务,客户4可以使用该发现服务来定位网 络内可用的各种服务。例如,如果VR代理36A尝试与控制节点54A 连接,则其使用配置节点52提供的发现服务来发现控制节点54A的IP 地址。在VM 48上执行的客户端可以使用本地配置、DHCP或DNS在 配置节点52内定位服务发现服务器。
在一些示例中,配置节点52呈现与编排引擎30接口连接的北向 API。编排引擎30使用该接口来使用高级数据模型安装配置状态。配 置节点52还包括消息总线,以促进内部组件之间的通信。配置节点52 还包括变换器,该变换器发现编排引擎30的高级模型中的改变,并将 这些改变转换为由SDN控制器32管理的低级数据模型中的对应改变。 配置节点52还包括IF-MAP服务器,该IF-MAP服务器提供南向API 以将计算的低级配置向下推送到控制节点54。此外,配置节点52包括 分布式应用管理器,其用于分配唯一的对象标识符并实现跨数据中心 10的事务。
根据本公开的技术,在SDN网关故障或计算节点故障的情况下, 发生以下事件序列:叶交换机检测隧道端点故障(即,网关和vrouter)。 对于作为隧道端点的SDN网关8,将经由BFD/链路断开来监测这些环 回的可达性,以实现在网关和IP结构(在此情况下为脊设备)之间的 单跳eBGP对等连接。对于vrouter,BFD链路断开检测允许检测计算 节点叶级别的故障。使用微BFD进行增强是可能的。将隧道端点IP 地址经由MP-BGP传播到控制节点。
因此,如果任何隧道端点发生故障,则BGP撤消信息被向上传播 到控制节点,这触发vrouter级别的转发条目的移除。有两种选择可实 现vrouter级别的转发条目的移除。(1)第一种选择是通过快速检测 进行全局修复(仅在控制节点上进行代码改变):在控制节点中实现 下一跳(NH)可达性检查。在隧道端点发生故障的情况下,控制节点 将向所有vrouter代理发送所有前缀的更新。该选择相对于将被更新 (vrouter FIB更新)的前缀数量引入了线性依赖性。在大规模场景下, 将无法满足亚秒级目的,这就是下面建议进行增强(局部修复)的原 因。
(2)第二种选择是局部修复,以便在大规模场景下获得最佳收敛 时间。在这种情况下,所有隧道终结点前缀的可达性信息都会被向上 传播到vrouter代理。如果发生故障,控制节点会通知代理端点丢失(撤 消)。vrouter代理处的新代码允许通过使指向断开的IP隧道的条目无 效(局部修复)来立即更新局部FIB。必须在vrouter数据平面级别下 实现FIB中的适当间接性,以消除由于前缀数量而引起的任何线性依 赖性。这种选择将在下面详细讨论。
图3中所示的数据中心10的架构是仅出于示例目的而被示出。可 以在图3的示例数据中心10以及本文没有具体描述的其他类型的数据 中心中实现本公开中阐述的技术。本公开中的任何内容都不应被解释 为将本公开的技术局限于图3所示的示例架构。
图4是根据本公开技术的更详细地图示了SDN控制器的控制节点 的示例的框图。控制节点54被配置为与多个其他类型的节点通信,包 括配置节点52A-52X(“配置节点52”)、其他控制节点54B-54X、 计算节点62A-62X(“计算节点62”)和网关节点72A-72N(“网关 节点”)。控制节点54还与IP结构20通信,如本文所描述的,IP结 构20可以由例如包括脊交换机和叶交换机的设备组成。控制节点54A 为协议70提供执行的操作环境。协议70可以包括:例如,XMPP过 程70A、NETCONF过程70B、BGP过程70C和IF-MAP过程70D。
控制节点使用IF-MAP从配置节点接收配置状态。控制节点使用 IBGP与其他控制节点交换覆盖网络路由,以确保所有控制节点都具有 相同的覆盖网络状态。控制节点使用XMPP与计算节点上的vRouter 代理交换覆盖网络路由(例如VPN路由)。控制节点还使用XMPP发 送配置状态,诸如路由实例和转发策略。控制节点代表计算节点委托 某些类型的业务。这些委托请求也通过XMPP被接收。控制节点使用 BGP与网关节点(路由器和交换机)交换覆盖网络路由。控制节点还 使用NETCONF发送配置状态。
控制节点54A使用到元数据接入点的接口(IF-MAP)过程70D从 一个或多个配置节点52接收配置信息。IF-MAP过程70D可以包括用 于执行软件指令的电路装置,该软件指令用于根据IF-MAP协议从配 置节点52发送和接收通信。IF-MAP过程70D将从配置节点52接收的 配置信息存储到配置状态66(“CONFIG.STATE 66”)。
控制节点54A使用BGP过程70C与BGP对等体交换BGP消息, 包括控制节点54B-54X和网关节点72。网关节点72可以包括一个或 多个SDN网关,诸如SDN网关8。BGP过程70C可以包括用于执行 软件指令的电路装置,该软件指令用于根据BGP协议与控制节点 54B-54X发送和接收BGP消息。BGP过程70C将从来自网关节点72 和控制节点54B-54X的BGP路由通告中接收到的覆盖网络路由存储到 覆盖路由信息65。BGP过程70C将从来自IP结构20的BGP路由通 告中接收到的底层网络路由存储到底层路由信息67。
控制节点54A根据XMPP使用XMPP过程70A与计算节点交换消 息。控制节点54A经由XMPP会话交换消息。计算节点62可以对应 于图1-图3的计算节点26。XMPP过程70A可以包括用于执行软件指 令的电路装置,该软件指令用于根据XMPP协议与计算节点62交换 XMPP消息。XMPP在P.Saint-Andre于2011年3月发表在IETF RFC 6120上的“Extensible Messagingand Presence Protocol(XMPP):Core” 中有更详细的描述,该文献的全部内容通过引用并入本文。根据上下 文,控制节点54A(更具体地说,控制节点54A的XMPP过程70A) 可以用作相对于计算节点62之一的XMPP客户端或XMPP服务器。 例如,控制节点54A可以充当XMPP服务器,而计算节点62可以是 XMPP客户端,XMPP客户端订阅由控制节点54A公布的信息,诸如来自各个计算节点62的配置状态66的配置信息、以及来自属于各个 计算节点62的覆盖路由信息65或底层路由信息67的路由信息。
作为另一示例,控制节点54A可以充当到一个或多个计算节点62 的作为XMPP服务器的XMPP客户端,其中控制节点54A订阅由计算 节点62公布的信息,诸如由计算节点62从其他源学习到的路由信息。 XMPP过程70A经由XMPP会话从计算节点62A接收覆盖网络路由,并且将覆盖网络路由存储到覆盖路由信息65。由XMPP过程70A学习 到的覆盖网络路由可能被泄漏到BGP过程70C,并且BGP过程70C 又可能向其BGP对等体(例如,其他计算节点或SDN网关)发送BGP 路由通告,该BGP路由通告经由XMPP在从计算节点62学习到的覆 盖路由信息65中通告覆盖网络路由。在一些示例中,控制节点54A的 NETCONF过程70B使控制节点54A能够经由NetConf协议与网关节 点72通信。
根据本公开的技术,下一跳可达性检查过程68对覆盖路由信息65 执行附加的下一跳可达性检查,以确认在底层路由信息67中存在针对 主机地址的对应路由。在一些示例中,下一跳可达性检查过程68仅对 覆盖路由信息65中的主机地址强制执行下一跳可达性检查。下一跳可 达性检查过程68可以将覆盖路由信息65中在底层路由信息67中存在 对应主机地址路由条目的所有条目都标记为“可达的”。备选地或附 加地,下一跳可达性检查过程68可以将覆盖路由信息65中在底层路 由信息67中不存在对应主机地址路由条目的所有条目都标记为“不可 达的”。例如,这可以由覆盖路由信息的条目中的单独标志指示。
图4图示了计算节点26X已发生故障的情况。计算节点故障这种 情况可能很麻烦,因为在标准设计中没有本机备份路径。实际上,要 实现收敛,必须事先在服务级别(即,覆盖/VNF级别)强制执行冗余, 通常使用虚拟IP地址(即,经由托管在不同物理计算节点上的两个单 独的虚拟机接口可达同一VIP)。这可以通过两种不同的方式完成: (1)活跃/活跃(Active-Active,又译为双活):ECMP负载平衡,其 中从具有相同BGP属性的不同vrouter通告相同的前缀,以便强制执行 负载平衡;或(2)单活(Single Active):经由路由偏好管理的主/备 份路由,其可以经由BGP以多种方式完成。可以使用多出口鉴别器 (MED)方法;也可以使用其他选择,诸如局部偏好或自主系统(AS) 路径长度。
并行地,故障转移可能以不同的方式发生,例如:(1)具有标准 标签分配策略的网关(每个下一跳标签):在这种情况下,由于可经 由选项B获得的不同MPLS数据路径,ECMP(或加权多路径)发生 在远程PE设备12的级别。(2)具有每个虚拟路由和转发(VRF)标 签分配策略(vrf-table-label)的网关:在这种情况下,因为向针对VRF 的所有前缀(实际上是路由区分符:VIP)的骨干通告唯一标签,所以 ECMP(或加权多路径)发生在网关级别。
下一节描述了几种不同的用例。针对不同用例的解决方案可能会 有所不同,并且需要物理路由器或SDN控制器32中的特定特征才能 运行。双活(ECMP)用例可以包括:(1)在网关处具有标准选项B 强制执行的ECMP;(2)在网关处具有标准选项A+B强制执行的ECMP;(3)在vrouter处的ECMP。从转发角度来看,此用例类似于网关故 障描述(从vrouter到网关的ECMP)。单活(主/备份)用例可以包括: (1)在网关处具有选项B强制执行的活跃/待机;(2)具有选项A+B 的活跃/待机;(3)在网关处处于vrouter强制执行的活跃/待机。对于 以上任何一种用例,计算节点故障都会导致类似的停机时间,这主要 是由较慢的检测时间造成的。注意,在一些情况下,VNF可能会内置 其自身的故障检测和缓解框架。
如上面提到的,BGP过程70C经由BGP会话从IP结构20接收底 层网络路由,BGP过程70C将底层网络路由存储到底层路由信息67, 并且下一跳可达性检查过程可以更新覆盖路由信息65中的对应覆盖网 络路由,以便向现在在底层路由信息67中具有对应路由的任何覆盖网 络路由添加“可达”标志。XMPP过程70A和BGP过程70C(和/或 NETCONF过程70B)然后可以将覆盖网络路由发送至其他对等体。
在一些示例中,响应于经由控制节点54A与IP结构20之间的BGP 会话学习到计算节点62X已经发生故障,下一跳可达性检查过程68(或 者在一些示例中为BGP过程70C或XMPP过程70A)可以将XMPP 过程70A从计算节点62X学习到的覆盖路由信息65中的任何覆盖网 络路由都可以标记为不可达。在其他示例中,下一跳可达性检查过程 68将从覆盖路由信息65中删除覆盖网络路由,这可能会触发XMPP 过程70A和BGP过程70C将路由撤消消息发送到计算节点62A和网 关节点72。以这种方式,控制节点54A可以更快速地检测底层网络中的故障并将故障通知其他网络设备。
图5A-图5B是根据本公开技术的进一步详细地图示了计算节点的 示例的框图。在图5A-图5B的示例中,计算节点是图4中的计算节点 62A。计算节点62A可以是图1-图3中的计算节点26之一。计算节点 62A托管VM 82A-82N(“VM 82”),并且可以是例如通用x86服务器。VM 82是租户VM,其运行诸如Web服务器、数据库服务器、企 业应用等客户应用或托管用于创建服务链的虚拟化服务。在一个示例 配置中,Linux是主机操作系统(OS)。
计算节点中的两个组件实现虚拟路由器;即,vRouter代理84和 vRouter转发平面90。vRouter转发平面90位于内核(例如,Linux) 中,并且vRouter代理84是本地控制平面。
vRouter代理84是在内核内部运行的用户空间过程。vRouter代理 84充当本地轻量级控制平面,并负责以下功能。vRouter代理84使用 XMPP会话与控制节点54交换诸如路由等控制状态。vRouter代理84 使用XMPP从控制节点54接收低级配置状态,诸如路由实例和转发策 略。vRouter代理84将分析状态,诸如日志、统计和事件,报告给分 析节点50(图3)。vRouter代理84将转发状态安装到vRouter转发平 面90中。vRouter代理84可以与计算节点62A的Nova代理(未示出) 合作发现VM的存在和属性。vRouter代理84对每个新流的第一分组 应用转发策略,并将该流的流条目安装在转发平面的流表(flow table) 中。例如,vRouter代理84可以委托DHCP、ARP、DNS和MDNS中 的一个或多个。在一些实现中可以包括附加的委托。每个vRouter代理 84被连接到至少两个叶交换机24,以实现双活冗余模型中的冗余。
图5B更详细地图示了计算节点62A的vRouter转发平面90。 vRouter转发平面90作为可加载内核过程(例如,在Linux中)运行。 vRouter转发平面90负责以下功能:vRouter转发平面90使封装的分 组能够被发送到覆盖网络并且使解封装的分组能够从覆盖网络被接收。vRouter转发平面90将分组指派给路由实例。从覆盖网络收到的 分组基于MPLS标签或虚拟网络标识符(VNI)被指派给路由实例。 本地虚拟机的虚拟接口绑定到路由实例。vRouter转发平面90在转发 信息库(FIB)(也称为转发表)中进行目的地地址的查找,并将分组 转发到正确的目的地。例如,路由可以是层3IP前缀或层2MAC地址。
可以使用流表96来应用转发策略:vRouter转发平面90将分组与 流表进行匹配并且应用流动作。vRouter转发平面90将没有找到流规 则的分组(即,每个流的第一个分组)发送给vRouter代理84,vRouter 代理84然后将规则安装在流表96中。vRouter转发平面90将某些分 组,诸如DHCP、ARP、MDNS,发送到vRouter代理进行委托。
VRouter代理84使用XMPP过程98来建立与SDN控制器的控制 节点的XMPP会话。vRouter代理84的XMPP过程98从VM 82学习 到虚拟接口(虚拟地址)的覆盖网络路由,并将这些覆盖网络路由作 为针对虚拟接口的虚拟路由存储到FIB 94。XMPP过程98经由XMPP 会话将XMPP消息发送到控制节点54以通告覆盖网络路由。另外, vRouter代理84XMPP过程98接收由SDN控制器的控制节点54A通 告的覆盖网络路由,并且将覆盖网络路由存储到覆盖路由信息104和 一个或多个FIB 94。在一些示例中,vrouter代理84还经由XMPP消 息从SDN控制器学习底层网络路由,并将这些底层网络路由存储到底 层路由信息106。
如下面关于图21A-图22更详细描述的,在一些示例中,FIB 94 可以包括正交活性向量,以表示从SDN控制器接收到的活性状态。在 一些示例中,SDN控制器从IP结构学习活性状态,如本文所描述的。
VRouter代理84可以使用可选的BGP过程102来直接与IP结构 20的叶节点通信,如本文所描述的。在本示例中,计算节点与IP结构 更加紧密地集成在一起,并且直接交换计算节点存储在底层路由信息 106中的底层网络路由。在其他示例中,计算节点可以不包括BGP过 程102,并且可以仅经由XMPP消息从SDN控制器学习底层网络路由。
BFD 108与IP结构的叶节点建立BFD会话/邻接关系,叶节点可 以通过该BFD会话/邻接关系来检测计算节点62A的可达性/活性,如 本文所描述的。在一些示例中,可以通过BGP会话来建立BFD会话, 其中存在BGP过程102。
图6是图示了具有专用子网100A和100B(“子网100”)的一对 叶交换机的概念图。图6图示了每个叶交换机对具有唯一子网100的 边缘路由桥接(ERB)模型。在一些示例中,图6中示出的“脊”可 以表示图1-图2中的脊交换机22,并且图6中示出的“叶”可以表示 图1-图2中的叶交换机24。类似地,vRouter可以表示如图1所示的虚 拟路由器和/或图2-图3中的虚拟路由器42。
如本文所描述的经由IP结构将计算节点状态传播到SDN控制器可 以在缩放、高水平的鲁棒性和收敛速度之间提供良好的折衷。一方面, IP结构和vrouter以基于事件的方式集成。本文所描述的vRouter-IP结 构集成技术符合通过链路聚合组(LAG)接口进行计算节点的部署。 之所以可以使用LAG接口,是因为在一些示例中,vrouter可能不支持 到叶交换机的ECMP连接性。另外,LAG依赖性也可能是由于存在无 法使用ECMP的非SDN组件(例如,编排、部署器、智能网络接口卡 (“smart-NICS”)。在一些示例中,该设计可以为短期部署提供实用 的选择。
以下示例基于具有虚拟机业务优化(VMTO)概念的边缘路由桥接 (ERB)。如图6所示,计算节点经由LAG被连接到IP结构的叶交 换机。每对叶交换机都有自己的子网/VLAN,以便按照以太网交换机 标识符(ESI)冗余方式连接其本地计算节点。集成路由和桥接(IRB) 接口在默认路由表中终止,该路由表授予附接到不同叶交换机对的 vrouter之间的IP连接性。对于IRB,不同的子网将具有不同的VLAN 标识符(VLAN-ID)。vRouters将发送免费的ARP应答,其指示子网 的IP地址。例如,如果子网用192.168.101/24表示,则特定虚拟路由 器的IP地址可以是192.168.101.1。
图7是图示了使用内部网关协议(IGP)将虚拟路由器主机路由重 新分发到IP结构的概念图。在一些示例中,用于该目的的IGP可以是 外部边界网关协议(eBGP)。本公开中描述的技术允许经由BGP传播 主机地址vrouter路由。图7表示以下三个步骤:
(1)Vrouter计算地址生成主机/32(EVPN)路由或前缀,诸如/32 IPv4地址、/128IPv6地址或超网。然后,在叶交换机级别,为子网上 检测到的每个活跃主机创建协议EVPN/32路由(基于ARP活动)。通 过EVPN类型2使该条目在叶交换机之间同步,这导致两个叶交换机 都具有该条目。(2)将主机/32(EVPN)路由条目重新分发给底层路 由(BGP路由),以便通告给脊交换机,以进一步传播到SDN控制器 的控制节点。(3)脊交换机从两个叶交换机接收vrouter主机IP地址。 脊交换机因此存储每个计算节点的两个条目:每个叶交换机一个条目。 将最佳路径发送到控制节点,以进行后续活性评估。如果计算节点发 生故障,则在叶交换机处移除EVPN主机条目,这会触发向脊交换机 (和SDN控制器控制节点)的BGP路由撤消。
在一些示例中,叶交换机可以被配置为将BGP共同体添加到BGP 路由撤消消息以唯一地标识计算节点/vrouter。这允许控制节点基于 BGP共同体过滤掉相关的vrouter路由,以进行下一跳验证。
在一些示例中,叶交换机基于链路/LACP的状态来确定vrouter活 性/可达性。即,叶交换机基于计算节点的NIC的链路状态的链路状态 来确定计算节点未响应BFD会话。在一些情况下,计算节点可能具有 绑定的NIC,其中多个NIC显示为单个NIC。在计算节点关闭事件的 情况下,基于链路/LACP的状态对vrouter活性进行偏置叶交换机确定 可能会有用;然而,如果发生更复杂的故障(示例vrouter核心),其 中NIC/bond处于运行状态,而vrouter代理发生故障,则此方法可能 不会有用。在这种情况下,可以通过在vrouter和这对叶交换机之间使 用微BFD会话来改进收敛时间。在这种情况下,微BFD作为vrouter 服务进行管理。在vrouter发生故障的情况下,BFD邻接关系将降低, 即使NIC链路处于Up状态,这也会使针对计算节点的主机/32路由条 目无效。此改进涉及以下特征:vrouter代理处的微BFD邻接关系,用 于检查成员链路(ESI-LAG成员链路上的单跳BFD);以及叶交换机 处ESI-LAG上的微BFD。
在一些示例中,可以使用可配置的XMPP计时器。为了在vrouter 发生故障的情况下(诸如,在没有上述micro-BFD选项的情况下)提 供一种具有优于15秒的计时器的选项,可配置的XMPP计时器可以提 供一种折衷,以最大程度地缩短短期时间线中的停机时间,从而使保 持时间低至3*1秒。这没有达到亚秒级的目的,但是在没有实现更复 杂的微BFD解决方案的情况下可以提供帮助。
图8是图示了根据本公开技术的网络设备的示例操作的流程图。 出于示例目的,将参照图1-图2来描述图8。计算节点(例如,计算节 点26A)例如经由虚拟路由器代理与SDN控制器(例如,SDN控制器 32)的计算节点之间的XMPP会话来通告覆盖网络路由。SDN控制器维护覆盖路由信息,该覆盖路由信息存储由计算节点或SDN网关直接 向SDN控制器通告的覆盖网络路由(例如,VPN路由)。响应于接收 到覆盖网络路由,SDN控制器32可以执行下一跳可达性检查,以确定 覆盖网络路由的下一跳是否“可达”,即,是否存在到通告覆盖网络路由的虚拟路由器或SDN网关的对应底层网络路由。如果确定覆盖网 络路由是可达的,则SDN控制器32可以如在覆盖路由信息中那样标 记覆盖网络路由(和/或,对于不可达的路由,则相反),并且将该覆 盖网络路由通告给对等体,包括SDN网关8或计算节点26。如果确定 覆盖网络不可达,则SDN控制器32避免向对等体通告覆盖网络路由 (例如,直到接收到对应的底层网络路由并且更新可达性状态时才通 告)。
如本公开中所描述的,IP结构20中的叶节点被配置为在每个叶节 点的转发平面与相应计算节点的虚拟路由器的之间运行故障检测协议 会话,诸如双向转发检测(BFD)。作为其一部分,计算节点与叶交 换机建立BFD会话(306)。叶交换机生成底层路由并将其通告给计 算节点(308)。例如,响应于计算节点检测到ARP活动,叶交换机 可以生成底层路由并将其通告给虚拟路由器。在一些示例中,BFD会 话与在叶交换机和计算节点之间建立的BGP会话相关联,使得BGP 会话的状态与BFD会话的状态联系在一起。在一些示例中,计算节点 执行路由协议过程并作为BGP对等体运行到叶交换机的BGP会话, 并且计算节点可以将BGP消息发送到叶交换机,以通告计算节点的环 回地址,这又触发叶交换机生成到脊交换机的路由协议消息。
IP结构的节点将虚拟路由器的底层网络路由传送到SDN控制器 (310)。例如,脊交换机22A经由BGP会话52发送BGP消息。SDN 控制器然后将底层网络路由存储到底层路由信息(312),并且基于到 计算节点的底层网络路由的存在,更新覆盖路由信息中的虚拟路由器 的“可达性”或“活性”,并将与虚拟路由器相关联的覆盖路由通告 给对等体(313)。
当计算节点的虚拟路由器发生故障或变得不可达时(314),基于 BFD会话,IP结构中的叶节点可以快速检测虚拟路由器发生故障的时 间(316)。如果叶节点检测到虚拟路由器发生故障或不可达,则叶节 点通过向IP结构中的脊节点发送路由协议消息并撤消与虚拟路由器相 关联的底层网络路由来传送该故障(318)。脊节点又经由BGP会话 51将底层网络路由撤消传送给SDN控制器(320),以及响应于接收 到底层路由撤消(322),SDN控制器更新其底层网络路由表,以从底 层路由信息移除针对不可达虚拟路由器的底层网络路由(324)。由于 已将底层网络路由从底层路由信息中移除,因此现在任何依赖于该底 层网络路由的覆盖网络路由都无法通过下一跳可达性检查,所以SDN 控制器更新其覆盖路由信息以从覆盖路由信息移除任何相关的前缀。
SDN控制器然后将消息发送到其他计算节点、SDN网关或其他设 备,以撤消与不可达虚拟路由器相关联的覆盖和底层网络路由(326)。 例如,SDN控制器可以经由XMPP将消息发送到其他计算节点,并且 可以经由BGP将消息发送到SDN网关。
以这种方式,SDN控制器被配置为将覆盖网络路由(VPN路由) 的通告与静态底层网络路由的存在或缺失联系起来。如果存在静态底 层网络路由,则SDN控制器仅将针对给定虚拟路由器的覆盖网络路由 通告给该覆盖的其他虚拟路由器。通过经由BFD触发和控制底层网络 路由的撤消,SDN控制器控制覆盖路由的通告,否则该通告就无法与 BFD的活性检测联系在一起。例如,SDN控制器基于是否针对目的地 存储了底层网络路由,来确定SDN控制器是否可到达该目的地的对应 覆盖网络路由的下一跳,底层网络路由包括由底层网络的IP结构中的 节点通告的路由,并响应于确定覆盖网络路由的下一跳不可达,通过 SDN控制器,避免通告覆盖网络路由,并从先前向其通告覆盖网络路 由的任何网络对等体撤消覆盖网络路由。
虽然未在图8上描绘,但接收到消息的其他计算节点、SDN网关 和其他设备又会更新其存储的路由信息和/或转发平面,以便停止转发 业务到不可达的虚拟路由器。在一些示例中,计算节点和/或SDN网关 将被配置为使用本文所描述的通过前缀无关的收敛的正交活性向量进 行局部修复的技术来更新其转发平面。
图9是图示了在包括SDN网关的自主系统与包括IP结构和SDN 控制器的自主系统之间的外部BGP对等的概念图。底层路由使用BGP 跨具有IP结构和SDN控制器的自主系统所提供的扩展结构提供/32隧 道端点可达性。如本文所使用的,/32隧道端点可以是该前缀,或者例 如是诸如/32IPv4地址、/128IPv6地址或超网等前缀。然而,与控制 节点进行/32环回对等的结构设备不能是隧道端点自身(或连接到 vrouter)。实际上,如果都合并了转发和路由功能,则在发生故障的 情况下路由收敛会很慢,因为发生故障的设备无法发送其自身故障的 指示(仅仅是因为它已经发生了故障)。因此,由于网关是隧道端点, 因此无法在网关和控制节点之间设置用于底层路由的对等操作。为此, 建议与脊设备建立这些对等操作(假设没有vrouter连接到脊)。一种 设计备选方案是本地叶交换机,控制节点附接至叶交换机;然而,与 依赖于脊级别的永久定义的终止相比,这种方法的编排和维护可能更 为复杂。
针对服务的覆盖路由依赖于以下方法。针对服务(EVPN、 VPNv4/v6、路由目标...),使用MP-eBGP多跳会话。没有为结构定义 对等体以保留结构控制平面,其可以专用于隧道端点的路由。注意, 裸金属服务器集成将需要服务前缀路由,这可以利用系列路由目标来 最小化。在本示例中,在控制节点和SDN网关环回之间使用MP-EBGP 多跳会话。
以下描述了SDN网关(例如SDN网关8)的操作。基于/32隧道 端点(计算节点)的存在,SDN网关8可以采用基于路由的检查来关 闭MPLSoUDP隧道。一旦关闭该隧道,由于路由表(RIB)中没有条 目,所以覆盖前缀无效。允许将计算主机路由动态通告到SDN网关的 架构使得使用此技术将计算节点的状态严格绑定到MPLSoUDP隧道的 状态成为可能。可以经由在动态隧道配置节(stanza)中配置策略来实 现此控制。
以下提供了通用配置示例。注意,可以通过在叶交换机重新分发 时将共同体附加到vrouter主机路由并在策略中进行匹配以实现更精细 的方式来增强此原理。
基于主机路由接收来强制执行严格的下一跳验证检查的配置示 例:
Figure BDA0002650883080000361
图10是图示了IP结构的节点向SDN网关通知计算节点故障的系 统的概念图。图10图示了SDN网关和vrouter之间的MPLS over UDP 隧道。在一些示例中,图10中图示的“脊”可以表示图1-图2中的脊 交换机22,并且图10中图示的“叶”可以表示图1-图2中的叶交换机 24。SDN网关可以表示SDN网关8,而vRouter可以表示如图1所示 的虚拟路由器和/或图2-图3中的虚拟路由器42。
在图10的示例中,虚拟计算节点前缀“虚拟IP”123.123.123.123/32 经由虚拟网络“service-ha”中的两个高可用性工作负载可到达。这些 工作负载位于两个不同的计算节点上。在正常操作下,由于不同的路 由区分符,SDN网关从两个计算节点接收覆盖前缀。默认情况下,ECMP 发生在这些目的地。换言之,业务经由IP隧道负载均衡到两个vrouter。在这种情况下,通过多出口鉴别器(MED)实例强制执行主/备份设计: 最低MED优先于最高MED。两种场景都将类似地工作。
图10图示了编号为1-4的步骤。如果发生计算节点故障(“步骤 1”),则结构会将针对vrouter主机IP地址的BGP撤消向上传播到 SDN网关。具体地说,叶交换机检测到计算节点故障(经由BFD检测 到链路断开),并将vrouter主机路由BGP撤消通告给脊(“步骤2”)。脊节点将BGP撤消信息向上传播到SDN网关(“步骤3”)。在SDN 网关级别,基于要求精准匹配的动态隧道策略,网关可以使隧道下一 跳无效并更新转发信息(“步骤4”)。所有业务都会转移到虚拟IP 123.123.123.123(本地或更多PE,具体取决于标签策略)的剩余目的 地。此操作依赖于以下网关配置和设计。对于基于纯MPLS的转发: 此选项依赖于默认的每个前缀标签分配策略(选项B)。撤消信息会 被一直向上传播到发生路径选择的入口PE(远程PE)。远程PE本身 将业务转移到与备份隧道相对应的MPLS标签。
如果是基于IP的转发,则使用“vrf-table-label”配置(根据VRF 标签分配策略)为虚拟网络配置VRF,或者实现在网关和骨干网络之 间建立选项A连接性。在这种情况下,网关会将业务向虚拟IP转移到 备份隧道。
在一些示例中,备选地或附加地,除了上述方法之外或作为上述 方法的备选,可以针对特定用例在战术上部署其他用于快速收敛的方 法,诸如可以在多个位置部署计算节点的公共云。一种用于快速收敛 的示例方法使用端点到端点BFD,可以将其作为上述方法的补充或备 选并入网络。利用该端点到端点BFD方法,在所有隧道端点之间建立 BFD邻接关系。即,在SDN网关和vRouter之间以及在成对的vRouter 之间建立BFD邻接关系。隧道可以是MPLS over UDP隧道。可以在覆 盖内或在底层级别(多跳BFD)发送BFD打招呼消息。
此方法的一个特征是它可以提供独立于底层的纯覆盖解决方案, 因为除了SDN网关之外,在底层级别上不需要任何特定的供应 (provisioning),并且可以仅在vRouter和网关之间管理事情。IP结 构级别不需要特定的自动化,因为这种方法不需要在结构中进行任何 特定的配置。
端点到端点BFD方法涉及网关和vrouter级别的配置。在vrouter 处,将vrouter代理配置为在失去邻接关系的情况下更新其vrouter的转 发信息。这是局部决策。端点处要管理的BFD邻接关系的数量与集群 (或在远程计算的情况下为子集群)中的端点的数量成正比。例如, 假设一个由50个vrouter组成的集群,则每个vrouter必须维护五十个 BFD会话以检测任何远程故障。假设BFD间隔为100毫秒,使用BFD 的端口为50个,则CPU必须每秒处理10*50=500个分组。为了管理 该方法的可伸缩性,在一些示例中,该方法可以包括选择性地将BFD 应用于关键计算(即,其托管关键VM或关键虚拟网络)而不将BFD 应用于非关键计算的选项。在一些示例中,可以根据业务的关键性来 实现更高的BFD计时器。
端点到端点BFD方法是一种多跳BFD策略。因此,应将BFD计 时器设置为高于IP结构的收敛时间,并具有合理的余量以应对意外场 景。实际上,利用ECMP负载平衡设计,除非IP结构基于分段路由, 否则无法假设主路径和备份路径到达两个端点之间的路径非命运共 享。因此,任何结构问题都可能同时影响主路径和备份路径的BFD会 话。因此,必须定义BFD计时器,以使它不会在任何单个结构故障时 到期。注意,当在覆盖层中传输时,实际上可以将BFD配置为单跳BFD (甚至是BFD精简版);然而,由于存在基础结构设备,因此这是一个多跳场景。
除上述方法之外或作为上述方法的备选,可以在网络中合并的另 一种用于快速收敛的示例方法是在SDN控制器与SDN网关(MP-BGP) 或计算节点(XMPP)之间的信令协议会话上运行BFD。这意味着将 在SDN控制器控制节点与隧道端点之间运行BFD,以便检测隧道端点 的任何故障,即SDN控制器控制节点与SDN网关之间的BFD、以及 控制节点与计算节点的vrouter之间的BFD。这将需要在控制节点和 vrouter vhost0接口(即vrouter结构接口)上配置BFD。
此方法还提供了与底层无关的纯覆盖解决方案:除了在SDN网关 处,没有在底层级别进行任何特定的供应,并且必须仅在vRouter和网 关之间管理事情。IP结构级别不需要特定的自动化,因为这种方法不 需要在结构中进行任何特定的配置。在SDN网关处,可能已经配置了 带有BFD的BGP,但是在一些示例中,此方法可能需要在vrouter和 控制节点处进行开发。
多跳与集群稳定性:此方法的一个潜在缺点是由于结构收敛事件 导致的假阳性。这可以一次影响所有BFD会话(例如,一次影响网关 和数十个vrouter),这会导致服务中断以及大量的信令撤消事件。因 此,为了保持集群稳定性,必须以保守的方式选择BFD计时器,以确 保任何瞬态结构问题不会导致任何信令会话中断。换言之,在这种场 景下避免使用主动的BFD计时器(亚秒),以免引起更多的问题。这 种方法的另一个潜在缺点是,收敛是在覆盖/服务级别(撤消)进行管 理的,并且在SDN网关级别存在收敛的线性相关性(前缀越多,收敛 将越慢)。
图11是图示了在SDN网关和脊交换机之间使用多跳eBGP的网络 拓扑的概念图。如本文所描述的,可以通过使控制节点的MP-BGP会 话与结构节点(例如,脊交换机或专用叶交换机,具体取决于上下文) 对等来减少停机时间。实际上,通过区分信令节点(脊交换机)和隧 道端点(网关),可以快速检测网关故障并触发向控制节点的路由撤 消。
有多种设计变型可以实现此目的。例如,自主系统(AS)指派可 以是内部的,也可以是外部的。作为另一示例,可以使用下一跳解析 或BFD。在一些示例中,网络设计可以包括两个BGP自主系统(覆盖): SDN网关AS和由“SDN控制器加IP结构”组成的自主系统。
一个示例可以在网关和脊之间使用单跳eBGP对等操作来动态交 换隧道端点IP地址(例如,用于环回的SAFI 1/1路由——IP隧道可能 不支持IPv6)。另一示例可以在网关环回和脊环回之间使用具有亚秒 级BFD计时器(3*100毫秒计时器)的多跳EBGP,其中TTL设置为 2,以确保多跳对等“黏附”在直接链路上(例如,检测到路由错误)。
图11图示了与同控制节点对等的脊交换机相关的BGP特定的实 现。以下是与SDN网关和SDN控制器对等的脊交换机的示例脊交换 机配置模板:
Figure BDA0002650883080000401
Figure BDA0002650883080000411
Figure BDA0002650883080000421
Figure BDA0002650883080000431
以下是针对与脊交换机对等的SDN网关的示例SDN网关BGP配 置。
Figure BDA0002650883080000432
Figure BDA0002650883080000441
Figure BDA0002650883080000451
图12是图示了在SDN网关(例如,SDN网关8)发生故障的情 况下用于收敛的示例过程的概念图。如果SDN网关发生故障,则会发 生以下事件序列:1.脊交换机和默认SDN网关之间的BFD会话被拆 除。2.这导致脊交换机向所有控制节点发送MP-UNREACH更新消息, 以获取经由有缺陷的SDN网关可达的所有前缀。3.控制节点随后生成 对vrouter的XMPP更新,其中从下一跳列表中移除了有缺陷的SDN 网关(即,单个下一跳=GW2)。4.vrouter代理更新本地数据平面, 移除默认的SDN网关。
以这种方式,SDN控制器控制节点检测到SDN网关故障所花费的 时间不再受BGP保持时间到期的限制,因为现在本地脊交换机是由于 SDN网关和脊交换机之间的BFD会话(300毫秒)才检测到此故障。 因此,收敛时间大大提高了(对于少量前缀,BGP/xmpp传播实际上非 常快)。然而,关于将被更新的前缀数量仍然存在线性依赖性。在高 路由缩放(实际上是标签)的情况下,要满足亚秒级收敛可能存在挑 战。在一些示例中,需要响应于从SDN控制器学习故障而更新其转发 平面的节点可以使用以下描述的PIC技术进行局部修复。
图13是图示了BGP即服务(BGPaas)布置的概念图,其中单个 控制节点提供单点故障。在图13的示例中,vrouters将BGPaas会话委 托到“服务器3”上的控制节点。在一些实现中,诸如在缺乏本公开的 技术的情况下,XMPP保持时间计时器是将计算故障通知给控制节点 的唯一方法。因此,SDN控制器的故障检测为15秒。尽管如此,在 BGPaas实现的情况下,可以将保持时间修改为较低的值(2*3秒,甚 或1*3秒),因此,如果控制节点发生故障,则可以更快地拆除BGPaas 会话。
图13图示了VNF基于两个BGPaas会话实现冗余控制平面的默认 行为。Vrouter处的局部哈希可以将两个BGPaas平衡到同一控制节点 (服务器1),这将成为单点故障(“SPOF”)。因此,在图13中,vrouter执行bgpaas会话到控制节点的非确定性委托。下面介绍在 BGPaas上下文中用于避免单点故障的技术。
图14是图示了使用BGPaas控制节点区域的冗余BGPaas设计的 概念图。控制节点区域的使用允许确定性地将bgpaas锚定到控制节点。 与图12所示的非确定性绑定相反,通过将BGPaas对等体绑定到确定 性控制节点,使用BGPaas控制节点区域允许高可用性选项。图14所 示的方法保证当VNF设置两个冗余BGP对等体时,单个控制节点故 障不会发生。
BGPaas控制节点区域定义BGPaas对等体与控制节点之间的亲和 性。区域可以包含:一个或多个BGPaas对等体;以及一个或多个控制 节点,因此可以在区域内将负载平衡到一组控制节点,以扩展区域。 通常,在具有三个控制节点的部署中,定义了两个区域,每个区域都 映射到唯一的控制节点。随后,将区域附加到VNF BGPaas会话,以 便定义非命运共享架构。
图15是图示了使用主和次控制节点区域来改进VNF路由稳定性 的冗余BGPaas设计的概念图。在一些场景下,每个VNF控制平面VM 可能需要冗余对等,以最大化路由的稳定性。换言之,VNF设计需要 2*2个BGP会话。通过使用主BGPaas区域和次BGPaas区域来支持这种场景,如图15所示,其中主和次BGPaas控制节点区域分别映射到 vrouter网关(例如X.Y.Z.1/24)和vrouter DNS IP地址(例如 X.Y.Z.2/24)。
一些网络实现可能需要将裸金属服务器(BMS)与计算节点虚拟 机集成在一起。以下设计建议是此集成的当前最佳实践。一种方法是 防止BMS和vrouter连接到同一对叶交换机。换言之,裸金属服务器 和vrouter必须连接到不同的叶交换机/服务器,以实现BMS到VM/pod 的正确连接性。
以下描述了IP结构上BMS附接的示例方面。裸金属服务器不应 连接在脊交换机上。这是由于控制节点与脊交换机对等,如本文所描 述的,用于将底层网络路由从IP结构通告到SDN控制器的控制节点。
如果将BMS连接到脊,则这可能导致与网关故障情况类似的收敛 状况,但有以下区别:BMS是远程PE;脊是GW;使用VXLAN代替 MPLS。换言之,在脊故障的情况下,朝向BMS的业务的收敛会受到 影响,并会受BGP保持时间到期的限制:vrouter从两个脊交换机接收BMS MAC/IP EVPN路由(类型2和类型1AD)。如果脊交换机发生 故障,来自发生故障的脊的路由将被保留在RIB中,直到MP-iBGP会 话到期(BGP保持时间)为止。在此时段期间,由于朝向BMS的业务 被封装在到发生故障的脊VTEP的VXLAN中,因此朝向BMS的业务 被路径监测。以这种方式,将BMS耦合到脊会影响针对朝向BMS的 业务的收敛时间。
图16是图示了裸金属服务器被连接在专用叶交换机上的系统的概 念图。即,裸金属服务器连接到被指定仅用于BMS连接且不用于 vrouter连接的叶交换机。脊的故障是无害的,因为BGP路由是冗余的, 并且不影响隧道端点。
连接BMS的叶交换机的故障导致以下动作,在图16中用数字框 表示。1.由于叶脊MP-iBGP/BFD会话(覆盖),脊检测到叶故障。 2.脊通告发生故障的叶EVPN路由。3.控制节点通过经由发生故障的 叶交换机移除路径来更新vrouter。
在脊交换机上实现高吞吐量BMS的方法如下:在一些情况下, CAPEX优化可能需要在脊交换机上放置高吞吐量PNF。此设计的原理 如下:控制节点与针对L3地址族(VPNv6/VPNv4/路由目标)的脊交 换机对等。控制节点与针对族EVPN的专用叶交换机(例如,连接托管控制节点的服务器的叶交换机)对等。这要求在叶交换机级别仔细 定义额外级别的路由反射。没有其他BMS必须被连接到这些叶交换机。 可以在这对叶交换机处连接双宿主Vrouter。
图17是图示了根据本公开的各个方面的使用集成式路由和桥接 (IRB)集成的示例虚拟路由器到叶交换机ECMP附接的逻辑表示的 概念图。该图图示了针对vrouter快速收敛与更紧密的IP结构集成联系 在一起的示例方法,该更紧密的IP结构集成特别是通过ECMP(动态) 计算层3结构集成,其具有以下功能:通过消除LAG连接性来进行 L3集成,而在vrouter处使用ECMP;以及在叶与vrouter之间的动态 路由协议。一种方法是在vrouter代理顶部的计算节点内的路由协议过 程(例如RPD)集成,以便vrouter代理可以直接与结构交互。路由守 护程序集成的引入在链路子网供应中产生了复杂性:在桥域/IRB模式 下,必须用不同的供应以奇/偶方式标识叶交换机:左子网和IRB接口, 与右子网和IRB。可以定义点到点链接模式(通常为/30)而不是桥域, 但是此选项在供应方面也会产生复杂性。这一点的一些可能性包括 IPv6链路本地或未编号的IP接口。
根据IRB模型,VLANs CONTRAIL-COMP-LEFT(192.168.1.0/24) 和CONTRAIL-COMP-RIGHT(192.168.2.0/24)连接针对每个ECMP 成员链路的叶交换机处的计算节点。每个计算节点上的IRB接口都用 于简化。
动态路由发生在叶交换机和vrouter之间,以使底层路由同步。即, 叶交换机和vrouter交换路由协议消息,包括计算节点通过路由协议会 话将其环回地址的底层网络路由通告给叶交换机。用于动态路由的路 由协议必须与结构协议匹配。即,如果BGP是在IP结构的节点之间的 IP结构中使用的路由协议,则BGP也必须是在叶交换机和vrouter之 间使用的路由协议。然而,也可以备选地将BGP以外的不同路由协议 用于两者,诸如RIFT或ISIS。在一些示例中,与提取控制节点BGP 代码相反,叶交换机和vrouter之间的动态路由可以采用容器化路由协 议过程(cRPD)。
图18是图示了SDN网关功能与IP结构的脊功能一起折叠的网络 设计的概念图。即,单个网络设备提供SDN网关功能和脊交换机功能 二者。图18图示了折叠的网关/结构设计的转发概述。尽管此设计不是 前面各节中定义的参考设计,但以下内容考虑了折叠设计中出现的某 些问题。在这种情况下,引入支持MPLSoUDP的脊。
图19是图示了折叠的SDN网关/IP结构设计网络设计的示例信令 概述的概念图,其中SDN网关功能与IP结构的脊功能折叠在一起。 在本示例中,MP-BGP会话在SDN网关/脊交换机与SDN控制器的每 个控制节点VM之间运行。如本文所描述的,MP-BGP会话可以用于传送通过IP结构传播的底层网络路由。
本公开的某些方面解决在底层节点故障的情况下改进检测时间。 实际上,快速收敛的基石是快速检测节点故障的能力。然而,在检测 之后,在数据平面级别更新转发信息可能很耗时,尤其是在路由数量 增加时。因此,有可能的情况是,尽管有快速的检测框架,也可能无 法满足亚秒级的快速收敛的目的。为了提供在检测到故障之后在数据 平面处更新转发信息的可扩展方式,本公开提供了在虚拟路由器处进 行前缀独立收敛的技术,用于局部修复。在一些示例中,这可以结合 上述技术来实现,使得虚拟路由器响应于如上所讨论的检测到底层节 点故障而执行利用前缀独立收敛的局部修复。在其他示例中,下一节中描述的利用前缀独立收敛进行局部修复技术可以独立于上述技术 (诸如在其他情况、上下文或用例中的技术)来实现。
图20A-图20B是图示了虚拟路由器的转发信息库(FIB)结构的 概念图,该结构具有对前缀数量的线性收敛时间依赖性。图20A示出 了网关之一发生故障之前的FIB结构600,而图20B示出了在隧道# 24上的“GW1”发生故障之后的FIB 602,其中只有GW2可通过隧道 #26到达。这是可以在不具有利用前缀独立收敛的局部修复技术的情 况下构造FIB的一个示例。一些虚拟路由器FIB结构可能就是这种情 况,这些结构会生成关于前缀(更准确地说是标签和下一跳元组)数 量的线性收敛时间依赖性。在大规模场景下,SDN网关故障和计算节 点故障会受到线性收敛时间依赖性的影响。
在一些示例中,这种虚拟路由器的FIB更新速度约为每秒10K个 前缀。例如,如果从SDN网关接收到带有唯一标签的50K个VPNv4 前缀,则FIB更新处理将持续5秒钟,这将错过亚秒级的目的。为了 说明该问题,在图20A中描绘了一个示例,在vrouter处从一组网关(GW1和GW2)接收到两个路由。第一个路由:VRF 2中的 100.0.0.4/32。第二条路由:VRF 3中的123.0.0.6/32。
以下情况适用于虚拟路由器必须处理ECMP成员的故障的情况, 诸如ECMP 3的SDN网关故障案例和vrouter故障子案例(vrouter将 业务负载平衡到两个vrouter)。必须利用从网关(MPLS标签和UDP/IP 隧道)接收到的相应MPLS标签在虚拟路由器处将这些路由朝两个网 关进行负载平衡。此要求的高级视图用从隧道上的虚拟路由器到SDN 网关设备的多路径/ECMP路径来表示。
在虚拟路由器的FIB的一些实现中,复合下一跳及其组件NH(子 代)的结构可能使得标签被托管在复合(ECMP)下一跳中,如图20A 所示。因此,必须为每个MPLS服务路径(来自两个网关的一组标签) 定义一个ECMP。针对被转发到同一隧道端点的所有前缀,重新使用 隧道下一跳(这里是SDN网关)。
在SDN网关发生故障的情况下(或相反,在vrouter发生故障的情 况下),这最终是从ECMP NH到单播NH的FIB重写操作。如果网 关发生故障(与上一节相同的示例),则会发生以下动作的序列:1.控 制节点检测到网关发生故障。在一些示例中,网关故障的检测可以如 上面关于图1-图12所描述的那样被检测。2.控制节点更新其底层路 由信息和覆盖路由信息,并用新的下一跳信息公布XMPP更新。将发 生故障的隧道端点从“下一跳”列表中移除。3.vrouter代理接收XMPP 更新,并依次通过重写每个前缀的下一跳信息来更新其转发信息:用 隧道下一跳或用由所有活跃的下一跳组成的另一个复合来替代初始 ECMP复合下一跳(如果只剩下一个NH)。完成此操作所需的时间是 前缀数量的线性函数,因为这些前缀中的每一个都需要下一跳重写, 如图20B所示。利用单个下一跳进行从控制节点到vrouter代理的 XMPP更新(发生故障之前,发送了具有两个网关下一跳的NH列表)。 收敛后的FIB状态如图20B所示:重写每个条目的下一跳,以指向针 对隧道#26的隧道下一跳、隧道GW2。下一跳重写动作的序列在 vrouter代理级别引入了附加的收敛时间。针对10K个前缀,这大约需 要1秒。
上一节中描述的技术提供了将所有隧道端点的状态传播到虚拟路 由器以检测作为底层网络节点的隧道端点的故障的框架。例如,上述 示例中的隧道端点可以是SDN控制器或虚拟路由器。在网关故障的示 例中,控制节点检测到网关发生故障。在一些示例中,控制节点可以 通过从IP结构接收通知来检测到这一点,如上面关于图1-图8所描述 的。本节建议在虚拟路由器级别利用远程隧道端点的状态,以进一步 改进收敛时间。本节提供了在虚拟路由器内强制执行“局部修复”功 能性,因此可以从转发信息的转发路径中移除损坏的路径的技术。
图21A-图21B是图示了根据本公开技术的各个方面的针对转发信 息库中的复合下一跳的示例转发结构的概念图。图21A示出了在网关 之一发生故障之前的FIB 620,而图21B示出了在隧道#24上的“GW1” 发生故障之后的FIB 621,其中只有GW2可通过隧道#26到达。在一 些示例中,转发结构600可以是图5B中的FIB 94A-94C中的一个或多 个FIB的一部分。此结构包括共享的ECMP成员活性向量622,该向 量以正交方式指示ECMP成员的活性状态。在图21A-图21B的示例中, ECMP成员活性向量622与转发路径正交。针对共享覆盖网络隧道端 点下一跳的公共列表的所有复合ECMP下一跳一次创建共享ECMP成 员活性向量622。在本示例中,针对本示例中的复合ECMP下一跳 624A-624B,针对100.0.0.4/32和123.0.0.6/32前缀定义公共向量。如 图21B所示,在隧道下一跳之一发生故障时,仅需要更新共享活性向 量622以反映隧道#22具有活性状态“0”(不是活的),而隧道#24 保持活性状态“1”(活的)。与图20A-图20B的FIB结构相反,在 故障检测之后不需要重写复合下一跳624A和624B。
在转发级别,在图5B的vrouter代理84处实现额外的逻辑,使得 哈希在故障的情况下将排除这些分量下一跳(即,活性[成员]=假)。 在向vrouter代理84通知了SDN网关的故障后,将这个非活跃的子代 从隧道端点下一跳的哈希桶中排除。这个新的转发逻辑是在下一跳重 写操作期间采取的中间步骤(线性时间依赖性)。在快速收敛语义中, 与默认的“全局修复”框架相比,这是一个“局部修复”框架(即更 新的vrouter转发状态),后者是与控制节点FIB更新一致的重写动作。
如图21A-图21B所示,与将MPLS标签与ECMP子代NH一起嵌 入到复合下一跳内相反,如图21A-图21B的FIB结构使用正交活性向 量。在一些示例中,不是使用正交向量,可以与转发路径一致地实现 活性向量,而不是正交地实现活性向量,只要在将转发分解成另一级 别的间接性来考虑活性时不会失去在标签与对应隧道之间的关联性即 可。
当存在许多通告的路由时,诸如在SDN网关(该SDN网关向计 算节点通告许多路由)的上下文中,此活性向量特征可能特别有用。 在虚拟路由器检测到不同计算节点处的另一虚拟路由器发生故障的情 况下,端到端工作流程可能与上面关于网关故障所描述的类似。在一 些示例中,可以在控制节点处实现某种级别的族前优先化(pre-familyprioritization)。
到目前为止,所描述的这个框架假设ECMP案例。然而,在许多 情况下,网络设计依赖于主/备份路由:对于虚拟路由器到虚拟路由器, 可以使用主/备份路由。对于到网关的虚拟路由器,主/备份路由不太可 能发生,因为通常该架构依赖于ECMP。尽管如此,可以针对主/备份 场景(非ECMP)实现类似的逻辑。控制节点向虚拟路由器代理发送 加权的下一跳(最佳/次佳路由)。与上述ECMP情况类似,vrouter代 理会制作加权的复合ECMP下一跳,而不是与活性向量一起制作复合 ECMP下一跳,以便在转发平面中预加载备份路径。仅选择最低权重 进行转发。在一些示例中,加权信息也可以被合并到活性向量中。
以这种方式,该方法包括:由SDN控制器所管理的计算节点的虚 拟路由器代理存储转发信息数据结构,该转发信息数据结构的共享活 性向量与转发路径正交,以指示多个覆盖网络隧道端点下一跳的活性 状态,其中共享活性向量由共享多个覆盖网络隧道端点下一跳的公共 列表的多个复合下一跳的多个成员中的每一个成员共享,并且响应于 由虚拟路由器代理确定正交活性向量指示多个覆盖网络隧道端点下一 跳中的每一个是可达的,将网络业务分发给多个覆盖网络隧道端点下 一跳中的一个或多个。
下面是用两个下一跳通告/32地址的示例,其中加权的下一跳用于 活跃/待机。在本示例中,在故障之前,用两个下一跳来通告 100.0.0.4/32。
Figure BDA0002650883080000531
Figure BDA0002650883080000541
图22是图示了根据本公开技术的网络设备的示例操作的流程图。 出于示例目的,将参照图1-图5来描述图22。由诸如SDN控制器32 等SDN控制器管理的虚拟路由器代理(例如,VR代理36、84)经由 诸如XMPP会话等消息传递协议会话(700)从SDN控制器接收覆盖 网络路由。虚拟路由器代理将覆盖网络路由存储到数据结构,诸如在 虚拟路由器代理执行于其上的计算节点的转发平面中维护的转发信息 库(702)。转发信息库是具有与转发路径正交的共享活性向量的转发 信息数据结构,以指示多个覆盖网络隧道端点下一跳的活性状态,其 中共享活性向量由共享覆盖网络隧道端点下一跳的公共列表的多个复 合下一跳的多个成员中的每一个成员共享,诸如图21A所示的示例。
计算节点接收去往覆盖网络隧道端点可达的目的地的网络业务 (704)。例如,覆盖网络隧道端点可以是SDN网关8或不同计算节 点的另一个虚拟路由器。当根据转发信息转发网络业务时,虚拟代理 检查活性向量(706)。响应于由虚拟路由器代理确定正交活性向量指 示多个覆盖网络隧道端点下一跳中的每一个都是可达的,计算节点包 括针对转发考虑被正交活性向量指示为“活的”或可达的那些隧道端 点下一跳,并将网络业务分发给多个覆盖网络隧道端点下一跳中的一 个或多个(708)。在ECMP场景中,可以通过负载平衡(例如,哈希) 来选择网络隧道端点,或者可以通过在主/备份场景中,基于加权发送 到主(primary)来选择网络隧道端点。
响应于由虚拟路由器从软件定义联网(SDN)控制器接收到多个 覆盖网络隧道端点下一跳之一是不可达的隧道端点下一跳的指示,例 如通过接收覆盖路由撤消(710),虚拟路由器代理更新正交活性向量 以反映不可达的隧道端点下一跳的不可达状态(712),这导致虚拟路 由代理之后从分发网络业务的这组隧道端点下一跳排除不可达的隧道 端点下一跳。
以这种方式,转发信息包括以正交方式指示下一跳的活性状态的 共享活性向量。共享活性向量与转发信息的转发路径正交。针对共享 下一跳的公共列表的所有复合下一跳,一次创建共享活性向量。在转 发级别,在虚拟路由器代理处实现逻辑,使得在发生故障的情况下, 哈希会排除这些组件下一跳。共享活性向量可以用于ECMP复合下一 跳,或用于主/备份场景。
示例1.一种方法,包括:由管理覆盖网络的软件定义联网(SDN) 控制器基于底层网络路由是否针对底层网络中的目的地被存储,确定 针对该目的地的对应覆盖网络路由的下一跳是否由SDN控制器可达, 底层网络路由包括底层网络的互联网协议(IP)结构中的节点所通告 的路由;以及响应于确定针对覆盖网络路由的下一跳是不可达的,避 免由SDN控制器通告覆盖网络路由,并从先前向其通告覆盖网络路由 的任何网络对等体撤消覆盖网络路由。
示例2.根据示例1的方法,其中确定针对该对应覆盖路由的下一 跳是否由SDN控制器可达包括:确定底层路由是否被存储在SDN控 制器所维护的底层路由信息中,其中底层路由信息存储由底层网络的 IP结构通告给SDN控制器的路由。
示例3.根据示例1的方法,其中IP结构中的节点包括脊交换机, 该方法还包括:由SDN控制器经由在SDN控制器与脊交换机之间的 边界网关协议会话,接收到底层网络的活跃隧道端点的多个底层网络 路由,其中底层网络路由包括多个底层网络路由中的一个底层网络路 由,其中活跃隧道端点包括基于在活跃隧道端点和IP结构的叶节点之 间的故障检测协议会话而被指示为可达的隧道端点。
示例4.根据示例3的方法,其中所述故障检测协议会话包括双向 转发检测(BFD)协议会话。
示例5.根据示例1的方法,还包括:由SDN控制器在确定针对 覆盖网络的下一跳是不可达的之前:接收从底层网络的IP结构中的节 点通告的底层网络路由;响应于接收到底层网络路由:确定针对该对 应覆盖网络路由的下一跳可达;将对应覆盖网络路由标记为可达;向 一个或多个计算节点和SDN网关设备通告覆盖网络路由;以及向该一 个或多个计算节点和SDN网关设备通告底层网络路由。
示例6.根据示例1的方法,还包括:由SDN控制器从IP结构中 的节点接收指示因IP结构无法到达目的地而撤消底层网络路由的消 息;由SDN控制器更新所存储的底层路由信息,以移除已撤消的底层 网络路由;由SDN控制器更新所存储的覆盖路由信息,以移除覆盖网 络路由和依赖于底层网络路由的任何其他覆盖网络路由,其中确定针 对对应覆盖网络路由的下一跳是否由SDN控制器可到达包括:因为底 层网络路由已被移除,所以确定下一跳是不可达的,并且其中撤消覆 盖网络路由包括:经由消息传递协议向一个或多个计算节点发送撤消 覆盖网络路由和依赖于底层网络路由的任何其他覆盖网络路由的消 息;以及经由路由协议向一个或多个SDN网关设备发送撤消覆盖网络 路由和依赖于底层网络路由的任何其他覆盖网络路由的消息。
示例7.根据示例6的方法,还包括:由SDN控制器响应于更新 所存储的底层路由表以移除已撤消的底层网络路由:经由消息传递协 议向一个或多个计算节点发送撤消底层网络路由的消息;以及经由路 由协议向一个或多个SDN网关设备发送撤消底层网络路由的消息。
示例8.根据示例1的方法,还包括:由IP结构的叶交换机经由在 叶交换机与底层网络的计算节点之间建立的故障检测协议会话,确定 计算节点未响应故障检测协议会话;以及由叶交换机响应于该确定, 通过IP结构传播撤消针对计算节点的底层网络路由的路由撤消消息, 其中从IP结构中的节点接收指示底层网络路由被撤消的消息包括从脊 交换机接收消息,其中脊交换机基于该传播接收到对应的消息。
示例9.根据示例1的方法,其中针对底层网络路由的目的地包括 由SDN控制器管理的针对虚拟路由器的主机地址,并且其中针对目的 地的对应覆盖网络路由包括由虚拟路由器通告的虚拟专用网络(VPN) 覆盖网络路由。
示例10.一种方法,包括:由软件定义联网(SDN)控制器所管 理的计算节点,将计算节点的虚拟路由器通告为针对覆盖网络虚拟专 用网络(VPN)路由的下一跳;由计算节点在虚拟路由器与底层网络 的互联网协议(IP)结构的叶交换机之间建立故障检测协议会话,以 将虚拟路由器的可达性状态传送给叶交换机;以及仅当故障检测协议 会话向IP结构的叶交换机指示虚拟路由器是可达的时候,才由计算节 点接收去往覆盖网络VPN路由的业务。
示例11.根据示例10的方法,还包括:由计算节点经由在计算节 点与叶交换机之间的边界网关协议(BGP)会话向叶交换机通告到虚 拟路由器的底层网络路由。
示例12.根据示例11的方法,其中建立故障检测协议会话包括: 建立与在计算节点和叶交换机之间的BGP会话相关联的双向转发检测 会话。
示例13.根据示例12的方法,还包括:由在SDN控制器和计算 节点之间的消息传递协议会话上作为消息传递协议客户端操作的计算 节点,接收到由SDN控制器管理的其他计算节点上的其他虚拟路由器 的多个覆盖网络VPN路由;以及响应于SDN控制器从IP结构中的脊 交换机接收到撤消到其他虚拟路由器中的一个虚拟路由器的对应底层 网络路由的消息,由作为消息传递协议客户端操作的计算节点,接收 撤消多个覆盖网络VPN路由中的一个覆盖网络VPN路由的消息。
示例14.根据示例13的方法,还包括:响应于接收到撤消到其他 虚拟路由器的多个覆盖网络VPN路由中的一个覆盖网络VPN路由的 消息,更新独立于该撤消影响到的多个前缀的正交活性向量。
示例15.根据示例10的方法,其中将虚拟路由器通告为针对覆盖 网络VPN路由的下一跳包括:在计算节点的消息传递协议客户端作为 消息传递协议服务器操作时,向SDN控制器通告覆盖VPN路由,其 中覆盖网络VPN路由包括到虚拟接口的虚拟路由。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任 何组合来实现。例如,所描述的技术的各个方面可在一个或多个处理 器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用 集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集 成或离散逻辑电路装置、以及此类组件的任何组合。术语“处理器” 或“处理电路装置”通常可以指单独或与其他逻辑电路装置或任何其 他等效电路装置组合的任何前述逻辑电路装置。包括硬件的控制单元 还可以执行本公开的一种或多种技术。
这样的硬件、软件和固件可以在同一设备内或在单独的设备内实 现以支持本公开中描述的各种操作和功能。另外,所描述的任何单元、 过程或组件可以一起或单独地实现为分立的但可互操作的逻辑设备。 将不同的特征描述为过程或单元旨在突出不同的功能方面中,并且不 一定暗示这种过程或单元必须由单独的硬件或软件组件来实现。而是,可以通过单独的硬件或软件组件来执行与一个或多个过程或单元相关 联的功能性,或者可以将其集成在公共的或单独的硬件或软件组件内。
本公开中描述的技术还可以在包含指令的计算机可读介质(诸如 计算机可读存储介质)中实施或编码。嵌入或编码在计算机可读介质 中的指令可以使可编程处理器或其他处理器例如在执行指令时执行该 方法。计算机可读介质可以包括非瞬态计算机可读存储介质和瞬态通 信介质。有形且非瞬态的计算机可读存储介质可以包括随机存取存储 器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、 可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质或其他计算机可读存储介质。术语“计算机可读存储介质” 是指物理存储介质,而不是信号、载波或其他瞬态介质。
已经描述了本公开的各个方面。这些和其他方面在所附权利要求 的范围内。

Claims (20)

1.一种方法,包括:
由软件定义联网SDN控制器存储底层路由表和覆盖路由表,所述底层路由表具有针对数据中心的底层网络的一组路由,所述覆盖路由表具有针对用于所述数据中心的覆盖网络的至少一个虚拟网络的一组路由,其中所述底层网络包括多个物理网络交换机、网关路由器和在所述数据中心的相应计算节点上执行的一组虚拟路由器;
在所述SDN控制器的所述底层路由表内,安装到被指派给所述虚拟路由器中的特定虚拟路由器的目的地地址的路由,作为对所述底层网络中的所述特定虚拟路由器的可达性状态的指示符;以及
利用所述SDN控制器并且基于在所述底层路由表内到所述虚拟路由器中的所述特定虚拟路由器的所述路由的存在或缺失,控制针对所述覆盖网络的所述至少一个虚拟网络的多个路由中的一个或多个路由的通告。
2.根据权利要求1所述的方法,其中控制所述多个路由中的所述一个或多个路由的通告包括:当所述路由响应于对所述虚拟路由器中的所述特定虚拟路由器的可达性故障的检测而从所述底层网络的所述路由表中被移除时,撤消针对所述底层网络的所述至少一个虚拟网络的所述多个路由中的一个或多个路由。
3.根据权利要求2所述的方法,其中撤消所述一个或多个路由包括:
经由消息传递协议向一个或多个计算节点发送以下消息:撤消针对所述至少一个虚拟网络的所述一个或多个路由和依赖于到被指派给所述虚拟路由器中的所述特定虚拟路由器的所述目的地地址的所述路由的任何其他覆盖网络路由;以及
经由路由协议向一个或多个SDN网关设备发送以下消息:撤消所述覆盖网络路由和依赖于到被指派给所述虚拟路由器中的所述特定虚拟路由器的所述目的地地址的所述路由的任何其他覆盖网络路由。
4.根据权利要求1所述的方法,其中控制所述多个路由中的所述一个或多个路由的通告包括:当所述路由被安装在所述底层路由表内时,通告针对所述覆盖网络的所述至少一个虚拟网络的所述多个路由中的一个或多个路由。
5.根据权利要求1所述的方法,其中控制所述多个路由中的所述一个或多个路由的通告包括:由所述SDN控制器确定针对与所述目的地地址相关联的对应覆盖网络路由的下一跳是否由所述SDN控制器可达,被安装在所述底层路由表内的所述路由包括由所述底层网络的互联网协议IP结构中的节点通告的路由,其中所述覆盖网络路由包括所述覆盖路由表的路由;以及
响应于确定针对所述覆盖网络路由的所述下一跳是不可达的,通过所述SDN控制器,避免通告所述覆盖网络路由,并且从先前向其通告所述覆盖网络路由的任何网络对等体撤消所述覆盖网络路由。
6.根据权利要求1所述的方法,
其中所述底层路由表存储由所述底层网络的IP结构的节点通告给所述SDN控制器的多个路由。
7.根据权利要求6所述的方法,其中所述IP结构中的所述节点包括脊交换机,所述方法还包括:
由所述SDN控制器经由在所述SDN控制器与所述脊交换机之间的边界网关协议会话,接收到所述底层网络的活跃隧道端点的多个底层网络路由,其中存储所述底层路由表包括存储到所述底层路由表的所述多个底层网络路由,
其中所述活跃隧道端点包括基于在所述活跃隧道端点和所述IP结构的叶节点之间的故障检测协议会话而指示为可达的隧道端点。
8.根据权利要求7所述的方法,其中所述故障检测协议会话包括双向转发检测协议会话。
9.根据权利要求1至8中任一项所述的方法,还包括:由所述SDN控制器并且响应于更新所述底层路由表以移除已撤消的底层网络路由:
经由消息传递协议向一个或多个计算节点发送撤消已撤消的所述底层网络路由的消息;以及
经由路由协议向一个或多个SDN网关设备发送撤消已撤消的所述底层网络路由的消息。
10.根据权利要求1至8中任一项所述的方法,其中被指派给所述虚拟路由器中的特定虚拟路由器的所述目的地地址包括针对所述虚拟路由器中的所述特定虚拟路由器的主机地址,并且其中针对所述至少一个虚拟网络的所述多个路由中的所述一个或多个路由包括针对所述目的地地址的覆盖网络路由,所述覆盖网络路由包括由所述虚拟路由器通告的虚拟专用网络覆盖网络路由。
11.一种软件定义联网SDN控制器,包括:
与存储器通信的处理电路装置,所述处理电路装置被配置为:
存储底层路由表和覆盖路由表,所述底层路由表具有针对数据中心的底层网络的一组路由,所述覆盖路由表具有针对用于所述数据中心的覆盖网络的至少一个虚拟网络的一组路由,其中所述底层网络包括多个物理网络交换机、网关路由器和在所述数据中心的相应计算节点上执行的一组虚拟路由器;
在所述SDN控制器的所述底层路由表内,安装到被指派给所述虚拟路由器中的特定虚拟路由器的目的地地址的路由,作为对所述底层网络中的所述特定虚拟路由器的可达性状态的指示符;以及
基于在所述底层路由表内到所述虚拟路由器中的所述特定虚拟路由器的所述路由的存在或缺失,控制针对所述覆盖网络的所述至少一个虚拟网络的多个路由中的一个或多个路由的通告。
12.根据权利要求11所述的SDN控制器,其中控制所述多个路由中的所述一个或多个路由的通告包括:当所述路由响应于对所述虚拟路由器中的所述特定虚拟路由器的可达性故障的检测而从所述底层网络的所述路由表中被移除时,撤消针对所述底层网络的所述至少一个虚拟网络的所述多个路由中的一个或多个路由。
13.根据权利要求12所述的SDN控制器,其中控制所述多个路由中的所述一个或多个路由的通告包括:当所述路由被安装在所述底层路由表内时,通告针对所述覆盖网络的所述至少一个虚拟网络的所述多个路由中的一个或多个路由。
14.一种方法,包括:
在数据中心的底层网络的互联网协议IP结构的叶交换机的路由表内,安装到被指派给在计算节点上执行的虚拟路由器的目的地地址的底层网络路由,其中所述底层路由提供对特定虚拟路由器的可达性状态的指示符;
由所述叶交换机经由在所述叶交换机与所述虚拟路由器之间建立的故障检测协议会话而确定所述虚拟路由器未响应所述故障检测协议会话;以及
响应于确定所述虚拟路由器未响应所述故障检测协议会话,由所述叶交换机向与管理覆盖网络的SDN控制器对等的脊节点发送撤消与所述虚拟路由器相关联的所述底层网络路由的路由撤消消息,以指示与所述虚拟路由器的通信故障。
15.根据权利要求14所述的方法,还包括:
在确定所述虚拟路由器未响应所述故障检测协议会话之前,响应于检测到所述计算节点的地址解析协议活动,由所述叶交换机生成所述底层网络路由。
16.根据权利要求14所述的方法,还包括:
在确定所述虚拟路由器未响应所述故障检测协议会话之前,响应于通过在所述计算节点和所述叶交换机之间的边界网关协议BGP会话接收到通告所述底层网络路由的BGP协议消息,由所述叶交换机生成所述底层网络路由,
其中所述故障检测协议会话与所述BGP会话相关联。
17.根据权利要求14所述的方法,其中确定所述虚拟路由器未响应所述故障检测协议会话包括:基于所述计算节点的网络接口卡的链路状态来进行确定。
18.根据权利要求14所述的方法,其中所述故障检测协议会话包括微双向转发检测会话,即微BFD会话,所述微BFD会话被建立在到所述虚拟路由器的链路上,所述链路作为以太网交换机标识符链路聚合组ESI-LAG的成员链路,其中所述微BFD会话是在所述ESI-LAG的每个成员链路上建立的多个微BFD会话之一。
19.根据权利要求14至18中任一项所述的方法,其中向所述脊节点发送所述路由撤消消息包括:由所述叶交换机向所述路由撤消消息添加边界网关协议BGP共同体,以唯一地标识所述计算节点的所述虚拟路由器。
20.根据权利要求14至18中任一项所述的方法,其中所述故障检测协议包括双向转发检测协议。
CN202010870300.0A 2020-06-04 2020-08-26 软件定义联网分布式系统中的活性检测和路由收敛 Active CN113765829B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311085819.8A CN117278503A (zh) 2020-06-04 2020-08-26 软件定义联网分布式系统中的活性检测和路由收敛

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/893,168 US11870677B2 (en) 2020-06-04 2020-06-04 Liveness detection and route convergence in software-defined networking distributed system
US16/893,168 2020-06-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311085819.8A Division CN117278503A (zh) 2020-06-04 2020-08-26 软件定义联网分布式系统中的活性检测和路由收敛

Publications (2)

Publication Number Publication Date
CN113765829A true CN113765829A (zh) 2021-12-07
CN113765829B CN113765829B (zh) 2023-09-12

Family

ID=72290789

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010870300.0A Active CN113765829B (zh) 2020-06-04 2020-08-26 软件定义联网分布式系统中的活性检测和路由收敛
CN202311085819.8A Pending CN117278503A (zh) 2020-06-04 2020-08-26 软件定义联网分布式系统中的活性检测和路由收敛

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311085819.8A Pending CN117278503A (zh) 2020-06-04 2020-08-26 软件定义联网分布式系统中的活性检测和路由收敛

Country Status (3)

Country Link
US (2) US11870677B2 (zh)
EP (3) EP3920484B1 (zh)
CN (2) CN113765829B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114513449A (zh) * 2022-02-23 2022-05-17 北京慧橙信息科技有限公司 一种域内路由选择优化方法及系统
CN114915536A (zh) * 2022-04-18 2022-08-16 中国人民解放军战略支援部队信息工程大学 基于sdp组件的网络架构及面向新型网络的终端设备安全防护方法
CN115987842A (zh) * 2022-12-15 2023-04-18 浪潮思科网络科技有限公司 基于防火墙旁挂模式的故障定位方法、装置、设备及介质
CN116915837A (zh) * 2023-09-12 2023-10-20 苏州浪潮智能科技有限公司 基于软件定义网络的通信方法及通信系统

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11431652B2 (en) * 2020-07-10 2022-08-30 Dell Products L.P. Automated multi-fabric link aggregation system
US11777848B2 (en) 2020-10-14 2023-10-03 Oracle International Corporation Scalable routing and forwarding of packets in cloud infrastructure
US20220182318A1 (en) 2020-12-04 2022-06-09 Oracle International Corporation Support server high availability with network link bonding for cloud overlay networks
US11570077B2 (en) * 2020-12-16 2023-01-31 Hewlett Packard Enterprise Development Lp Traffic flow trace in a network
US11658933B2 (en) * 2020-12-31 2023-05-23 Juniper Networks, Inc. Dynamically learning media access control and internet protocol addresses
US11522749B2 (en) * 2021-01-11 2022-12-06 Cisco Technology, Inc. Detecting communication pathways affected by session flaps
US11876710B2 (en) * 2021-01-20 2024-01-16 Oracle International Corporation Dynamic IP routing in a cloud environment
US11356355B1 (en) * 2021-03-29 2022-06-07 International Business Machines Corporation Extension to software defined networking to manage storage area networks
US11757782B2 (en) 2021-04-09 2023-09-12 Microsoft Technology Licensing, Llc Architectures for disaggregating SDN from the host
US11588740B2 (en) 2021-04-09 2023-02-21 Microsoft Technology Licensing, Llc Scaling host policy via distribution
US11799785B2 (en) 2021-04-09 2023-10-24 Microsoft Technology Licensing, Llc Hardware-based packet flow processing
US11570097B1 (en) * 2021-07-22 2023-01-31 Vmware, Inc> Overlay broadcast network for management traffic
US11558245B1 (en) 2021-10-29 2023-01-17 Oracle International Corporation Secure bi-directional network connectivity system between private networks
US11736558B2 (en) 2021-10-29 2023-08-22 Oracle International Corporation Transparent mounting of external endpoints between private networks
US20230164064A1 (en) * 2021-11-24 2023-05-25 Google Llc Fast, Predictable, Dynamic Route Failover in Software-Defined Networks
CN114374642B (zh) * 2021-12-29 2023-06-16 中国电信股份有限公司 一种路由信息的维护方法及装置
WO2023200886A1 (en) * 2022-04-14 2023-10-19 Dish Wireless L.L.C. Leveraging a virtual router to bridge between an underlay and an overlay
US11838150B2 (en) 2022-04-14 2023-12-05 Dish Wireless L.L.C. Leveraging a virtual router to bridge between an underlay and an overlay
CN114827015B (zh) * 2022-04-29 2024-04-02 深圳爱捷云科技有限公司 一种数据转发方法和虚拟化云网络架构

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013184846A1 (en) * 2012-06-06 2013-12-12 Juniper Networks, Inc. Physical path determination for virtual network packet flows
WO2015019530A1 (en) * 2013-08-07 2015-02-12 International Business Machines Corporation Switch clusters having layer-3 distributed router functionality
CN104639372A (zh) * 2015-02-13 2015-05-20 中国联合网络通信集团有限公司 基于sdn的覆盖网络和物理网络的关联方法及系统
US20150256407A1 (en) * 2012-10-03 2015-09-10 Nec Corporation Control apparatus, control method thereof, and program
CN105681191A (zh) * 2016-02-25 2016-06-15 武汉烽火网络有限责任公司 基于路由器虚拟化的sdn平台及实现方法
US20160191374A1 (en) * 2014-12-31 2016-06-30 Juniper Networks, Inc. Fast convergence on link failure in multi-homed ethernet virtual private networks
CN106487695A (zh) * 2015-08-25 2017-03-08 华为技术有限公司 一种数据传输方法、虚拟网络管理装置及数据传输系统
US20170237655A1 (en) * 2014-09-28 2017-08-17 Hewlett Packard Enterprise Development Lp Forwarding Data Packets In Software Defined Networks
CN108390833A (zh) * 2018-02-11 2018-08-10 北京邮电大学 一种基于虚拟域的软件定义网络转发控制方法
CN108600415A (zh) * 2018-05-28 2018-09-28 郑州云海信息技术有限公司 一种虚拟网络访问外网的方法、系统及sdn控制器
US10200274B1 (en) * 2017-02-17 2019-02-05 Juniper Networks, Inc. Enhanced traffic flow in software-defined networking controller-based architecture
US20190089627A1 (en) * 2016-03-15 2019-03-21 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for supporting bidirectional forwarding (bfd) over multi-chassis link aggregation group (mc-lag) in internet protocol (ip) multiprotocol label switching (mpls) networks
CN110022262A (zh) * 2018-01-09 2019-07-16 杭州达乎科技有限公司 一种基于sdn网络实现平面分离的方法、系统和装置
CN110430114A (zh) * 2019-07-24 2019-11-08 中国电子科技集团公司第七研究所 一种虚拟路由器及实现sdn网络与传统ip网络互联的方法
CN110891018A (zh) * 2019-11-25 2020-03-17 新华三大数据技术有限公司 网络流量恢复方法、装置、sdn控制器及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594658B (zh) 2009-07-10 2011-06-01 浙江大学 802.11多接口宽带无线mesh网络路由方法
US9154416B2 (en) 2012-03-22 2015-10-06 Brocade Communications Systems, Inc. Overlay tunnel in a fabric switch
WO2015100656A1 (zh) 2013-12-31 2015-07-09 华为技术有限公司 一种实现虚拟机通信的方法和装置
US9634936B2 (en) * 2014-06-30 2017-04-25 Juniper Networks, Inc. Service chaining across multiple networks
US10033622B2 (en) 2015-08-07 2018-07-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controller-based dynamic routing in a software defined network environment
US10237206B1 (en) 2017-03-05 2019-03-19 Barefoot Networks, Inc. Equal cost multiple path group failover for multicast
CN109412952B (zh) 2018-12-13 2019-09-06 北京华三通信技术有限公司 路由信息发布方法及装置
US11153119B2 (en) * 2019-10-15 2021-10-19 Cisco Technology, Inc. Dynamic discovery of peer network devices across a wide area network

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013184846A1 (en) * 2012-06-06 2013-12-12 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US20150256407A1 (en) * 2012-10-03 2015-09-10 Nec Corporation Control apparatus, control method thereof, and program
WO2015019530A1 (en) * 2013-08-07 2015-02-12 International Business Machines Corporation Switch clusters having layer-3 distributed router functionality
US20170237655A1 (en) * 2014-09-28 2017-08-17 Hewlett Packard Enterprise Development Lp Forwarding Data Packets In Software Defined Networks
US20160191374A1 (en) * 2014-12-31 2016-06-30 Juniper Networks, Inc. Fast convergence on link failure in multi-homed ethernet virtual private networks
CN104639372A (zh) * 2015-02-13 2015-05-20 中国联合网络通信集团有限公司 基于sdn的覆盖网络和物理网络的关联方法及系统
CN106487695A (zh) * 2015-08-25 2017-03-08 华为技术有限公司 一种数据传输方法、虚拟网络管理装置及数据传输系统
CN105681191A (zh) * 2016-02-25 2016-06-15 武汉烽火网络有限责任公司 基于路由器虚拟化的sdn平台及实现方法
US20190089627A1 (en) * 2016-03-15 2019-03-21 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for supporting bidirectional forwarding (bfd) over multi-chassis link aggregation group (mc-lag) in internet protocol (ip) multiprotocol label switching (mpls) networks
US10200274B1 (en) * 2017-02-17 2019-02-05 Juniper Networks, Inc. Enhanced traffic flow in software-defined networking controller-based architecture
CN110022262A (zh) * 2018-01-09 2019-07-16 杭州达乎科技有限公司 一种基于sdn网络实现平面分离的方法、系统和装置
CN108390833A (zh) * 2018-02-11 2018-08-10 北京邮电大学 一种基于虚拟域的软件定义网络转发控制方法
CN108600415A (zh) * 2018-05-28 2018-09-28 郑州云海信息技术有限公司 一种虚拟网络访问外网的方法、系统及sdn控制器
CN110430114A (zh) * 2019-07-24 2019-11-08 中国电子科技集团公司第七研究所 一种虚拟路由器及实现sdn网络与传统ip网络互联的方法
CN110891018A (zh) * 2019-11-25 2020-03-17 新华三大数据技术有限公司 网络流量恢复方法、装置、sdn控制器及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
STÉPHANE BETGÉ-BREZETZ; GUY-BERTRAND KAMGA; MAROUA NAIT BALLA; THOMAS CRITON;: "SDN-Based Trusted Path in a Multi-domain Network", 《2016 IEEE INTERNATIONAL CONFERENCE ON CLOUD ENGINEERING WORKSHOP (IC2EW)》 *
唐勇等: "SDN与传统IP网络互联架构的设计与实现", 《计算机工程与科学》 *
唐勇等: "SDN与传统IP网络互联架构的设计与实现", 《计算机工程与科学》, no. 12, 15 December 2017 (2017-12-15) *
邵华;: "基于SDN的光网络虚拟化技术研究", 网络安全技术与应用, no. 06 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114513449A (zh) * 2022-02-23 2022-05-17 北京慧橙信息科技有限公司 一种域内路由选择优化方法及系统
CN114513449B (zh) * 2022-02-23 2024-04-26 北京慧橙信息科技有限公司 一种域内路由选择优化方法及系统
CN114915536A (zh) * 2022-04-18 2022-08-16 中国人民解放军战略支援部队信息工程大学 基于sdp组件的网络架构及面向新型网络的终端设备安全防护方法
CN114915536B (zh) * 2022-04-18 2023-05-16 中国人民解放军战略支援部队信息工程大学 基于sdp组件的网络系统及终端设备安全防护方法
CN115987842A (zh) * 2022-12-15 2023-04-18 浪潮思科网络科技有限公司 基于防火墙旁挂模式的故障定位方法、装置、设备及介质
CN115987842B (zh) * 2022-12-15 2024-03-26 浪潮思科网络科技有限公司 基于防火墙旁挂模式的故障定位方法、装置、设备及介质
CN116915837A (zh) * 2023-09-12 2023-10-20 苏州浪潮智能科技有限公司 基于软件定义网络的通信方法及通信系统
CN116915837B (zh) * 2023-09-12 2024-01-26 苏州浪潮智能科技有限公司 基于软件定义网络的通信方法及通信系统

Also Published As

Publication number Publication date
EP3920484B1 (en) 2023-11-29
US20210385149A1 (en) 2021-12-09
US20230216774A1 (en) 2023-07-06
CN113765829B (zh) 2023-09-12
EP4311193A3 (en) 2024-03-27
CN117278503A (zh) 2023-12-22
EP4311193A2 (en) 2024-01-24
EP4311194A2 (en) 2024-01-24
US11870677B2 (en) 2024-01-09
EP3920484A1 (en) 2021-12-08
EP4311194A3 (en) 2024-03-27

Similar Documents

Publication Publication Date Title
EP3920484B1 (en) Liveness detection and route convergence in software-defined networking distributed system
EP3920483B1 (en) Local repair for underlay failure using prefix independent convergence
US10757006B1 (en) Enhanced traffic flow in software-defined networking controller-based architecture
US20210036951A1 (en) Segment routing with fast reroute for container networking
US11431554B2 (en) Mechanism for control message redirection for SDN control channel failures
US10083026B1 (en) In-service software upgrade of software-defined networking controller
CN114697252B (zh) 计算机网络方法、软件定义网络控制器及存储介质
CN110535760B (zh) 聚合接口的转发检测
US10097372B2 (en) Method for resource optimized network virtualization overlay transport in virtualized data center environments
EP3459225B1 (en) Methods and apparatus for enabling live virtual machine (vm) migration in software-defined networking networks
CN110061912B (zh) 仲裁虚拟节点的冗余控制平面之间的主控权
CN111756566B (zh) 支持和不支持issu装置的混合网络中软件升级部署
CN114039912B (zh) 用于改进路由通告的方法以及软件定义网络控制器
US10447581B2 (en) Failure handling at logical routers according to a non-preemptive mode
Amamou et al. A trill-based multi-tenant data center network
WO2017175033A1 (en) Method and apparatus for enabling non stop routing (nsr) in a packet network

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