CN116319529A - 软件定义网络中的辅助复制 - Google Patents

软件定义网络中的辅助复制 Download PDF

Info

Publication number
CN116319529A
CN116319529A CN202310302013.3A CN202310302013A CN116319529A CN 116319529 A CN116319529 A CN 116319529A CN 202310302013 A CN202310302013 A CN 202310302013A CN 116319529 A CN116319529 A CN 116319529A
Authority
CN
China
Prior art keywords
multicast
route
controller
virtual
replication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310302013.3A
Other languages
English (en)
Inventor
A·苏亚纳拉亚纳
Y·玛利亚潘
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
Publication of CN116319529A publication Critical patent/CN116319529A/zh
Pending legal-status Critical Current

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/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • 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
    • 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/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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/20Network management software packages
    • 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/54Organization of routing tables
    • 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/16Multipoint routing

Landscapes

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

Abstract

本公开的实施例涉及软件定义网络中的辅助复制。软件定义联网(SDN)控制器被配置为从架顶(TOR)交换机接收第一多播路由和第二多播路由。响应于确定第一多播路由是辅助复制路由,SDN控制器被配置为将由第一多播路由指明的第一下一跳添加到针对广播、未知单播和多播(BUM)业务的下一跳列表。响应于确定第二多播路由不是辅助复制路由,SDN控制器被配置为避免将由第二多播路由指明的第二下一跳添加到下一跳列表。在添加第一下一跳之后,SDN控制器被配置为在虚拟路由器处供应下一跳列表。

Description

软件定义网络中的辅助复制
本申请是申请日为2020年2月5日、申请号为202010080471.3,发明名称为“软件定义网络中的辅助复制”的发明专利申请的分案申请。
技术领域
本公开大体上涉及计算机网络,更具体地涉及针对分布式应用的多播。
背景技术
计算机网络是交换数据并且共享资源的互连计算设备的集合。在基于分组的网络中,计算设备通过将数据分成称为分组的小块来传递数据。网络内的某些设备(诸如,路由器)维护路由信息,该路由信息描述了通过网络的路由。通过这种方式,可以在网络上将分组从源设备单独地路由传送到目的地设备。目的地设备从分组中提取数据,并且将数据组装成其原始形式。
客户设备可以连接至由数据中心提供的服务。例如,典型的数据中心包括为数据中心的客户托管应用和服务的设施。例如,数据中心托管所有基础设施设备,诸如,联网和存储***、冗余电源和环境控制。在典型的数据中心中,存储***和应用服务器的集群经由高速交换结构互连,该高速交换结构由一层或多层的物理网络交换机和路由器提供。更复杂的数据中心向位于各种物理托管设施中的订户支持设备提供遍布世界各地的基础设施。
软件定义联网(SDN)平台可以在数据中心中被使用,并且在一些情况下,可以使用逻辑上集中且物理上分布的SDN控制器以及虚拟路由器中的分布式转发平面,该虚拟路由器将网络从数据中心中的物理路由器和交换机扩展到在虚拟化服务器中被托管的虚拟覆盖网络中。SDN控制器提供虚拟化网络的管理、控制和分析功能,并且通过与虚拟路由器进行通信来编制虚拟路由器。
使用多播,网络将多播分组分发到可能位于不同子网上并且被配置为多播组的成员的感兴趣的接收器的集合。在一些示例中,分发多播分组的网络可以包括虚拟专用网络(VPN),其可以用于以透明的方式(即,好像该网络不存在)将两个或更多个远程层2(L2)客户网络(例如,源VPN站点和接收器VPN站点)扩展通过诸如互联网等中间层3(L3)网络(通常称为提供方网络)。特别地,VPN经由网络在客户网络之间运输L2通信,诸如,“帧”。
SDN平台可以使用辅助多播复制,其选择节点来执行复制。例如,SDN平台可以将广播、未知单播和多播(BUM)业务定向到单个以太网VPN(EVPN)核心复制器,而不是将BUM业务发送到所有提供方边缘(PE)。通过这种方式,辅助多播复制可以帮助将BUM业务转发缩放到被连接至架顶(TOR)交换机的端点。
SDN平台可以使用针对VPN协议的边缘复制多播(ERMVPN),其使用边缘复制多播树(ERM树)提供边缘复制多播。例如,SDN平台可以使用例如多协议标签交换(MPLS)标签为每个多播组构造ERM树,以标识每一跳处的ERM树。ERM树中的节点可以充当VPN转发,其具有针对特定组的本地接收。通过这种方式,ERMVPN可以帮助将BUM业务转发缩放到跨集群中的不同服务器(例如,虚拟路由器)分布的虚拟机(VM)和/或容器。
发明内容
通常,本公开描述了用于将BUM业务转发缩放到被连接至架顶(TOR)交换机的端点以及单个环境内的虚拟机(VM)和/或容器的技术。在一些实例中,将BUM业务转发到TOR交换机可能符合辅助复制协议,诸如,Rabadan等人于2018年10月19日在BESS工作组的draft-ietf-bess-evpn-optimized-ir-06中发表的“Optimized Ingress Replication solutionfor EVPN(针对EVPN的优化的入口复制解决方案)”中描述的辅助复制协议(在本文中称为“辅助复制技术”或简称为“AR技术”),其全部内容通过引用并入本文(在下文中,称为“优化的IR草案”)。
在一些实例中,将BUM业务转发到VM和/或容器可能符合边缘复制多播协议,诸如,P.Marques等人于2012年6月在网络工作组的draft-marques-l3vpn-mcast-edge-01中发表的“Edge multicast replication for BGP IP VPNs(针对BGP IP VPN的边缘多播复制)”中描述的针对VPN协议的边缘复制多播(在本文中称为“ERMVPN技术”),其全部内容通过引用并入本文。数据中心外部的源VPN站点可以包括入口多播路由设备,例如,提供方边缘(PE)设备,在一些实例中,它可以实现用于VPN的多播协议,诸如,E.Rosen等人于2012年2月在互联网工程任务组的征求评论文件6513中发表的“Multicast in MPLS/BGP IP VPNs(MPLS/BGP IP VPN中的多播)”中描述的边界网关协议(BGP)/多协议标签交换(MPLS)互联网协议(IP)虚拟专用网络(VPN)服务(其支持被称为多播VPN(MVPN)的多播),其全部内容通过引用并入本文,以通过L3 VPN网络发送多播业务。通过这种方式,源VPN站点可以向多播组的接收器发送可能源自多播源设备的多播业务。
如本公开中进一步描述的,控制器(例如,软件定义联网(SDN)控制器)可以有助于将BUM业务转发缩放到被连接至TOR交换机的端点以及单个环境内的VM和/或容器。例如,响应于确定多播路由是辅助复制路由,SDN控制器可以将下一跳添加到针对广播、未知单播和多播(BUM)业务的下一跳的列表,并且响应于确定多播路由不是辅助复制路由,避免添加下一跳。通过这种方式,可以减少下一跳列表中的下一跳数目,这有助于改善缩放。
在一个示例中,一种方法包括:由包括一个或多个设备的数据中心的SDN控制器从TOR交换机接收第一多播路由和第二多播路由,该一个或多个设备各自包括在其上配置的一个或多个虚拟路由器;响应于确定第一多播路由是辅助复制路由,由SDN控制器将由第一多播路由指明的第一下一跳添加到针对BUM业务的下一跳列表;响应于确定第二多播路由不是辅助复制路由,避免由SDN控制器将由第二多播路由指明的第二下一跳添加到针对BUM业务的下一跳列表;以及在添加第一下一跳之后,由SDN控制器在一个或多个虚拟路由器中的虚拟路由器处提供下一跳列表。
在另一示例中,一种包括一个或多个设备的数据中心的SDN控制器,该一个或多个设备各自包括在其上配置的一个或多个虚拟路由器,SDN控制器被配置为:从TOR交换机接收第一多播路由和第二多播路由;响应于确定第一多播路由是辅助复制路由,将由第一多播路由指明的第一下一跳添加到针对BUM业务的下一跳列表;响应于确定第二多播路由不是辅助复制路由,避免将由第二多播路由指明的第二下一跳添加到针对BUM业务的下一跳列表;以及在添加第一下一跳之后,在一个或多个虚拟路由器中的虚拟路由器处提供下一跳列表。
在又一示例中,一种在其上存储有指令的计算机可读存储介质,该指令在被执行时,使得包括一个或多个设备(各自包括在其上配置的一个或多个虚拟路由器)的数据中心的SDN控制器:从TOR交换机接收第一多播路由和第二多播路由;响应于确定第一多播路由是辅助复制路由,将由第一多播路由指明的第一下一跳添加到针对BUM业务的下一跳列表;响应于确定第二多播路由不是辅助复制路由,避免将由第二多播路由指明的第二下一跳添加到针对BUM业务的下一跳列表;以及在添加第一下一跳之后,在一个或多个虚拟路由器中的虚拟路由器处提供下一跳列表。
在下面的附图和描述中阐述本公开的技术的一个或多个示例的细节。本技术的其他特征、目的和优点将通过描述和附图以及通过权利要求而变得明显。
附图说明
图1是图示了可以实现本文描述的技术的示例的示例网络的框图。
图2是进一步详细地图示了根据本公开所描述的技术的图1的数据中心的示例实现的框图。
图3是进一步详细地图示了根据本公开所描述的技术的图1至图2的SDN控制器的示例的框图。
图4是进一步详细地图示了根据本公开所描述的技术的图3的SDN控制器的控制节点的示例的框图。
图5是进一步详细地图示了根据本公开所描述的技术的图1至图4的设备的示例的框图。
图6是图示了根据本公开所描述的技术的网络设备的示例操作的流程图。
相同的附图标记在整个附图和描述中指代相同的元件。
具体实施方式
图1是图示了可以实现本文描述的技术的示例的示例网络2的框图。图1的示例中的网络2包括彼此互连并且经由服务提供方网络8与关联于一个或多个客户设备4(“客户设备4”)的客户网络6互连的数据中心10A至10X(统称为“数据中心10”)。
在图1的示例中,网络2包括客户网络6,该客户网络6经由服务提供方网络8向一个或多个客户提供与数据中心10的连接性。例如,客户可以表示企业、政府、住宅订户或移动订户。例如,客户设备4可以是个人计算机、膝上型计算机或与客户相关联的其他类型的计算设备。另外,客户设备4可以包括经由无线电接入网(RAN)访问服务提供方网络8的数据服务的移动设备。示例移动订户设备包括移动电话、具有例如3G或4G无线卡的膝上型或台式计算机、具有无线功能的上网本、视频游戏设备、寻呼机、智能电话、个人数据助理(PDA)等。每个客户设备4可以运行各种软件应用,诸如,文字处理和其他办公支持软件、web浏览软件、支持语音呼叫、视频游戏、视频会议和电子邮件的软件等。在图1的示例中,客户网络6可以独立于其他网络操作,诸如,服务提供方网络8和数据中心10。
服务提供方网络8向被附接至客户网络6的客户设备4提供基于分组的连接性,以用于访问数据中心10。服务提供方网络8可以被耦合至由其他提供方管理的一个或多个网络,因此可以形成一部分大型公共网络基础设施,例如,互联网。服务提供方网络8表示层3(L3)网络,其中对后接数字的层的引用是指开放***互连(OSI)模型中的对应层。服务提供方网络是L3网络,因为如OSI模型中所描述的,它本质上支持L3操作。常见的L3操作包括根据L3协议(诸如,互联网协议(IP))执行的那些操作。L3在OSI模型中也称为“网络层”并且在TCP/IP模型中也称为“IP层”,并且贯穿本公开,术语L3可以与“网络层”和“IP”互换使用。服务提供方网络8还可以实现多协议标签交换(MPLS)转发,并且在这种实例中,可以被称为MPLS网络或MPLS骨干网。服务提供方网络8可以备选地被称为“MPLS/IP核心网”。尽管服务提供方网络8被图示为数据中心10与客户网络6之间的单个网络,但是服务提供方网络8可以包括多个服务提供方网络,用以连接一个或多个客户设备4与数据中心10。
服务提供方网络8的提供方边缘(PE)设备11经由服务提供方网络8向客户设备4提供对数据中心10A的访问。PE设备11可以通过服务提供方网络8利用VPN技术将客户网络6和数据中心10互连。在图1的示例中,PE设备11可以表示路由器、交换机或其他合适的网络设备,其在VPN站点之间跨服务提供方网络8提供多播,如下面进一步描述的。
每个数据中心10可以例如托管基础设施设备,诸如,联网和存储***、冗余电源和环境控制。在一些示例中,每个数据中心10可以表示许多地理上分布的网络数据中心之一。在一些示例中,每个数据中心10可以是单独的网络服务器、网络对等方或其他。如图1的示例所图示的,每个数据中心10可以是为客户设备4提供网络服务的设施。例如,网络数据中心可以托管针对多个企业和最终用户的web服务。其他示例服务可以包括数据存储、虚拟专用网络、业务工程、文件服务、数据挖掘、科学计算或超级计算等。客户设备4经由客户网络6和服务提供方网络8连接至网关设备12,以接收与由数据中心10提供的服务的连接性。网关设备12重定向去往和来自提供网络服务的一个或多个数据中心10的业务流。
在该示例中,每个数据中心10包括经由高速交换结构14互连的存储***和应用服务器的集合,例如,设备26A至26N(统称为“设备26”),该高速交换结构14由一层或多层的物理网络交换机和路由器提供。设备26充当数据中心的计算节点和/或服务器。术语“计算节点”和“服务器”在本文中可互换使用,以指代设备26。设备26中的每一个可以提供用于执行一个或多个客户特定的虚拟化实体(诸如,虚拟机(“VM”)、容器等)的操作环境。在一些示例中,设备26可以是裸机服务器(BMS)。
交换结构14由被耦合至架式交换机18A至18N(统称为“架式交换机18”)的分布层的互连的架顶(TOR)交换机16A至16N的集合(统称为“TOR交换机16”)提供。例如,尽管未示出,但是每个数据中心10还可以包括一个或多个非边缘交换机、路由器、集线器、诸如防火墙、入侵检测和/或入侵预防设备等安全设备、服务器、计算机终端、膝上型电脑、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动设备、无线接入点、桥接器、电缆调制解调器、应用加速器或其他网络设备。
在该示例中,TOR交换机16和架式交换机18向设备26提供与IP结构20和服务提供方网络8的冗余(多宿主)连接性。架式交换机18聚合业务流,并且在TOR交换机16之间提供高速连接性。TOR交换机16可以是提供层2(例如,MAC)和/或层3(例如,IP)路由和交换功能性的网络设备。TOR交换机16和架式交换机18可以各自包括一个或多个处理器和存储器,并且能够执行一个或多个软件过程。架式交换机18被耦合至IP结构20,其执行层3路由以经由服务提供方网络8在数据中心10与客户设备4之间路由传送网络业务。
数据中心10可以包括软件定义网络(“SDN”)平台以控制和管理网络行为。在一些情况下,SDN平台包括逻辑上集中且物理上分布的SDN控制器(例如,SDN控制器23)以及虚拟路由器(例如,虚拟路由器28A至28N(统称为“VR 28”))形式的分布式转发平面,该虚拟路由器将网络从数据中心交换结构中的物理路由器和交换机扩展到被托管在虚拟化服务器中的虚拟覆盖网络中。根据本公开的一个或多个示例,SDN控制器23有助于每个数据中心10(诸如,数据中心10A)内的一个或多个虚拟网络的操作。虚拟网络是在数据中心10A的物理网络上方实现的逻辑构造。在一些示例中,虚拟网络可以被实现为虚拟专用网络(VPN)、虚拟LAN(VLAN)等。在一些示例中,SDN控制器23可以响应于从编制引擎22接收到的配置输入来操作,该编制引擎22又响应于从网络管理员21接收到的配置输入来操作。在于2013年6月5日提交的标题为PHYSICAL PATH DETERMINATION FOR VIRTUAL NETWORK PACKET FLOWS(针对虚拟网络分组流的物理路径确定)的国际申请号PCT/US2013/044378(在本文中陈述了其全部内容)中找到了关于与数据中心10A的其他设备或其他软件定义网络结合操作的SDN控制器23的附加信息。
在一些示例中,编制引擎22管理数据中心10的应用层功能,诸如,管理在服务器12上执行的计算、存储、联网和应用资源。例如,编制引擎22可以将虚拟机(VM)附接至租户的虚拟网络,并且通常根据需要来管理VM的启动、迁移和解构。每个虚拟机可以称为虚拟化的应用工作负载(或者仅仅是应用工作负载),并且通常表示虚拟化的执行元件,诸如,VM或容器。编制引擎22可以将租户的虚拟网络连接至一些外部网络,诸如,互联网或VPN。编制引擎22可以将网络服务(例如,负载平衡器)部署在租户的虚拟网络中。
在一些示例中,SDN控制器23是低级控制器,其任务是管理数据中心10A的网络和联网服务,并且特别地,管理在设备26之间提供连接性的交换结构14。SDN控制器23利用一组通信协议来配置和控制交换结构14的路由和交换元件以创建覆盖网络,该覆盖网络通常是指用于在数据中心10A内运输去往和来自设备26的分组的一组隧道。
例如,用以配置网络(例如,交换结构14、IP结构20等)的一种这样的通信协议可以包括诸如可扩展消息与存在协议(XMPP)等消息传递协议。例如,SDN控制器23通过配置数据中心10的物理设备(例如,TOR交换机16、架式交换机18和交换结构14;物理路由器;诸如防火墙和负载平衡器等物理服务节点;以及诸如VM中的虚拟防火墙等虚拟服务)来实现来自编制引擎22的高级请求。SDN控制器23在状态数据库内维护路由、联网和配置信息。SDN控制器23将路由信息和配置信息的适当子集从状态数据库传递到每个设备26上的虚拟路由器(VR)代理,例如,虚拟代理27A至27N(统称为“VA 27”)。
典型地,例如,任何两个网络设备之间(诸如,IP结构20内的网络设备(未示出)之间或者设备26与客户设备4之间或者设备26之间)的业务可以使用许多不同的路径遍历物理网络。分组流(或“流”)可以由分组的报头或“五元组”中使用的五个值定义,即,被用来通过物理网络路由传送分组的协议、源IP地址、目的地IP地址、源端口和目的地端口。例如,协议指定通信协议,诸如,传输控制协议(TCP)或用户数据报协议(UDP),并且源端口和目的地端口是指连接的源端口和目的地端口。与特定流条目匹配的一个或多个分组数据单元(PDU)的集合表示一个流。可以使用PDU的任何参数(诸如,源和目的地数据链路(例如,MAC)和网络(例如,IP)地址、虚拟局域网(VLAN)标记、运输层信息、多协议标签交换(MPLS)或通用MPLS(GMPLS)标签以及接收该流的网络设备的入口端口)对流进行大致分类。例如,流可以是在TCP连接中传输的所有PDU、由特定MAC地址或IP地址发起的所有PDU、具有相同VLAN标记的所有PDU或在同一交换机端口处被接收的所有PDU。
如上面所描述的,设备26中的每一个包括相应的虚拟路由器28,其为数据中心10A内的对应虚拟网络执行多个路由实例,并且将分组路由传送到在设备26所提供的操作环境内执行的适当的VM。例如,设备26A的虚拟路由器28A从底层物理网络结构接收到的分组可以包括外部标头,用以允许物理网络结构将有效负载或“内部分组”隧道传输到针对执行虚拟路由器28A的设备26A的网络接口的物理网络地址。外部报头不仅可以包括设备26A的网络接口的物理网络地址,还可以包括标识其中一个虚拟网络以及由虚拟路由器执行的对应路由实例的虚拟网络标识符,诸如,VxLAN标记或多协议标签交换(MPLS)标签。内部分组包括具有目的地网络地址的内部报头,该目的地网络地址符合针对由虚拟网络标识符标识的虚拟网络的虚拟网络寻址空间。
在图1的示例中,客户设备4可以充当广播、未知单播和多播(BUM)业务的源,例如,多播业务(其在本文中也可以被称为“多播源”或“多播发送方”),以从源VPN站点递送到接收器VPN站点的接收器,例如,数据中心10A。通常,多播网络业务与特定的多播组相关联。更具体地,多播业务通常由特定多播组和该多播组的特定源的唯一组合来指定。例如,诸如内容的特定多播流等多播网络业务可以用(源,组)(即,(S,G))标签唯一地指定,以指定业务的源(S)和业务所属的多播组(G)。
在图1的示例中,网络2可以包括多播虚拟专用网络(MVPN)42,其中路由设备被配置为通过运行层3虚拟专用网络的服务提供方网络8在源与接收器之间发送多播业务。为了支持通过运行层3虚拟专用网络的网络路由传送多播业务,多播路由设备(例如,PE设备11)可以实现例如E.Rosen等人于2006年2月在互联网工程任务组(IETF)的RFC 4364上发表的“BGP/MPLS IP Virtual Private Networks(VPNs)”;以及E.Rosen等人于2012年2月在IETF的RFC 6513上发表的“Multicast in MPLS/BGP IP VPNs”中所描述的多播协议,其每一个的全部内容通过引用并入本文。RFC 6513在本文中称为“MVPN协议”。尽管图1被图示为实现MVPN协议以在VPN中提供多播,但是本文描述的技术也可以适用于服务提供方网络8实现EVPN协议而不是MVPN协议的多播技术的网络。
在图1的示例中,MVPN 42的PE设备11可以实现MVPN协议,以将IP多播业务从其本地源VPN站点(例如,客户网络6)转发到远程接收器VPN站点(例如,数据中心10A)。通过实现MVPN协议,PE设备11可以在服务提供方网络8上分发VPN路由信息,并且使用MPLS将服务提供方网络8上的多播业务转发到远程VPN站点,例如,数据中心10A。即,数据中心10A外部的路由设备使用MVPN协议,以通过运行L3 VPN的服务提供方网络8转发IP多播业务。
作为一个示例,PE设备11可以将提供方多播服务接口(PMSI)实例化,该提供方多播服务接口在服务提供方网络8上提供覆盖网络,以在服务提供方网络8上将多播业务从客户网络6隧道传输(在本文中称为“P隧道”)到数据中心10A。为了将PMSI实例化,PE设备11通常使用例如边界网关协议(BGP)自动发现(AD)过程或其他自动发现技术来发现MVPN实例的其他路由设备,以在路由设备之间建立P隧道。例如,MVPN实例的路由设备可以通告自治***内I-PMSI AD路由(MVPN类型1路由)或自治***间I-PMSI AD路由(MVPN类型2路由)。可以使用例如具有业务工程的资源预留协议(RSVP-TE)标签交换路径(LSP)、协议无关多播(PIM)树、多播标签分发协议(mLDP)点对多点(P2MP)树和/或mLDP多点对多点(MP2MP)LSP来隧道传输多播业务。
MVPN实例的路由设备可以交换用于其本地VPN站点的多播状态信息(例如,加入/离开消息),以使多播业务能够通过P隧道被隧道传输。通常,要求实现MVPN协议的路由设备实现协议无关多播(PIM),以学习VPN站点的多播状态信息,从而为多播状态创建多播分发树。然而,在一些示例中,接收器VPN站点(例如,数据中心10A)未实现PIM。
在图1的示例中,数据中心10A可以包括多播复制网络40,该多播复制网络40基于每个流使用边缘复制多播树(在本文中称为“ERM树”)来提供多播服务。P.Marques于2012年6月在网络工作组的互联网草案的draft-marquest-l3vpn-mcast-edge-01上发表的“Edgemulticast replication for BGP IP VPNs(针对BGP IP VPN的边缘多播复制)”中描述了边缘复制多播的示例,其全部内容通过引用并入本文。以上草案中描述的技术在本文中称为“ERMVPN技术”。
使用ERMVPN技术,为数据中心10A内的覆盖网络构建了边缘复制多播树,该覆盖网络不依赖于底层物理网络来提供多播能力。例如,边缘复制多播树可以指定针对一个或多个节点(例如,VR 28)的复制。设备26的VR 28可以使用边缘复制多播树来为其本地接收器(例如,VM)复制多播业务。即,ERMVPN技术用于在数据中心10A内复制多播业务。
在一些实例中,使用ERMVPN技术来提供更有效的方式复制多播业务。例如,边缘复制多播树在特定节点(例如,VR 28A)必须生成的副本数目上设置了上限,这与入口设备为多播组中的每个接收器生成副本分组的入口复制形成对比。边缘复制多播树可以包括K元树,其中数据中心内的每个虚拟路由器负责生成多达K个副本。针对具有m个接收器的多播组,树的高度大约为“log K(m)”,其中树的高度确定了将分组递送到接收器所需的最大转发跳数。
为了便于边缘复制多播树的配置,SDN控制器23可以基于诸如VM等接收器的多播组成员消息(例如,互联网组管理协议(IGMP)加入/离开消息)来生成边缘复制多播树。于1989年8月发表在互联网工程任务组(IETF)的RFC 1112上的“Host Extensions for IPMulticasting(用于IP多播的主机扩展)”;于1997年11月发表在IETF的RFC 2236上的“Internet Group Messaging Protocol,Version 2(互联网组消息协议版本2)”;于2002年10月发表在IETF的RFC 3376上的“Internet Group Management Protocol,Version 3(互联网组消息协议版本3)”;以及于2006年8月发表在IETF的RFC 4604上的“Using InternetGroup Management Protocol Version 3(IGMPv3)and Multicast Listener DiscoveryProtocol Version 2(MLDv2)for Source-Specific Multicast(针对源特定多播使用互联网组管理协议版本3(IGMPv3)和多播收听者发现协议版本2(MLDv2))”;以及于2016年10月28日发表在draft-sajassi-bess-evpn-igmp-mld-proxy-01上的“IGMP and MLD Proxyfor EVPN(针对EVPN的IGMP和MLD代理)”中描述了IGMP的附加细节,其每一个的全部内容通过引用并入本文。
例如,当在设备26A上供应一个或多个VM时,VM可以向设备26A发送IGMP加入消息,以加入多播组以接收多播业务。设备26A的虚拟代理27A可以监听IGMP消息,将IGMP消息转换为ERMVPN加入消息,并且使用ERMVPN加入消息发送到SDN控制器23(在图1中图示为消息32)。类似地,设备26N的虚拟代理27N可以监听VM的IGMP加入消息,将IGMP消息转换为ERMVPN加入消息,并且使用XMPP将ERMVPN加入消息(在图1中也图示为消息32)发送到SDN控制器23。使用从设备26接收到的多播状态信息,SDN控制器23可以配置被发送到设备26的虚拟代理27的边缘复制多播树,使得设备26的VR 28可以使用边缘复制多播树来执行边缘复制多播。
SDN控制器23可以被配置为与VR 28交换所有叶子交换机(例如,TOR交换机16)和主干交换机(例如,架式交换机18)的BGP/EVPN信息,并且与所有VR 28交换XMPP信息(例如,计算)。这样,SDN控制器23可以被定位成同时递送ERMVPN和EVPN-AR解决方案。
例如,SDN控制器23可以被配置为使用EVPN辅助多播复制(AR)将BUM业务转发缩放到被连接至可能不支持ERMVPN的TOR交换机16的端点(例如,VR 28)。例如,不是在叶子设备(例如,TOR交换机16A)和每个主干设备(例如,架式交换机18)复制BUM业务的情况下使用入口复制,而是叶子设备(例如,TOR交换机16A)和指定的辅助复制设备(例如,架式交换机18A)复制BUM业务。通过这种方式,复制从叶子移动到主干,以提高可伸缩性。
在一些示例中,SDN控制器23可以被配置为使用ERMVPN来缩放向设备26的VM和/或容器的BUM业务转发。例如,SDN控制器23可以计算下一跳列表(在本文中称为“olist”),并且在发送BUM业务时利用olist对VR 28中的每一个进行编程。因此,SDN控制器23可以将所有其他计算节点(例如,VR 28)布置为ERM树,其中olist中的每个计算节点包括父节点和子节点作为用于复制BUM业务的下一跳。
然而,在没有本文描述的技术的情况下,SDN控制器23可能会为每个TOR交换机16构建ERM树,从而导致可伸缩性差。例如,响应于来自TOR交换机16之一的EVPN类型3包容性多播路由,SDN控制器23可以向该olist添加该EVPN类型3包容性多播路由,并且在发送BUM业务时用该olist对VR 28中的每一个进行编程。这样,如果在交换结构14中有数百个TOR交换机16,则每个TOR交换机16(包括不是用于复制BUM业务的指定辅助复制设备的TOR交换机)将是在VR 28的每个vRouter中被编程的olist中的下一跳,从而导致可伸缩性差。
如本文进一步描述的,当使用辅助复制技术(在本文中也简称为“AR”)时,SDN控制器23可以被配置为确保仅将AR下一跳添加到该olist,并且避免将所有其他下一跳(即,非AR下一跳)添加到olist。例如,响应于基于用于应用AR的XMPP信息确定,由TOR交换机16A通告的第一多播路由被指定为用于复制VR 28A的BUM业务的辅助复制路由,并且由TOR交换机16A通告的第二多播路由未被指定为辅助复制路由,则SDN控制器23可以被配置为仅将下一跳用于下一跳列表的第一路由。通过这种方式,减少了VR 28中的每一个为BUM业务复制分组的下一跳的数目,因为VR 28可以仅沿着被指定用于辅助复制的路由复制分组,以用于复制BUM业务(并且复制到相应的父VR和子VR)。这样,本文描述的用于BUM业务转发的技术可以有效地缩放到同一环境中的裸机服务器(例如,TOR叶子)和VM/容器。
图2是进一步详细地图示了图1的数据中心10A的示例实现的框图。在图2的示例中,数据中心10A包括将交换结构14从物理交换机16、18扩展到软件或虚拟路由器28的互连。虚拟路由器28动态地创建和管理可用于应用实例之间的通信的一个或多个虚拟网络42。在一个示例中,虚拟路由器28将虚拟网络执行为覆盖网络,其提供将应用的虚拟地址与应用正在执行的设备26A-26N之一的物理地址(例如,IP地址)解耦的能力。每个虚拟网络可以使用它自己的寻址和安全方案,并且可以被视为与物理网络及其寻址方案正交。各种技术可以用于通过物理网络在虚拟网络42内和虚拟网络42上运输分组。
每个虚拟路由器28可以在管理程序、主机操作***或每个设备26的其他组件内执行。每个设备26可以表示x86或能够执行虚拟机44的其他通用或专用服务器。在图2的示例中,设备26A在管理程序46(通常也称为虚拟机管理器(VMM))内执行,该管理程序46提供虚拟化平台,该虚拟化平台允许多个操作***在设备26之一上并发地运行。在图2的示例中,设备26A管理虚拟网络42,虚拟网络42中的每一个提供用于在由管理程序46提供的虚拟化平台上方执行一个或多个虚拟机(VM)44的网络环境。每个VM 44与虚拟网络VN0-VN2之一相关联,并且可以表示运行客户应用(诸如,web服务器、数据库服务器、企业应用)或托管用于创建服务链的虚拟化服务的租户VM。在一些情况下,设备26或另一计算设备中的任何一个或多个可以直接托管客户应用,即,不作为虚拟机托管。在一些情况下,VM 44中的一些可以表示容器,这是虚拟化执行环境的另一形式。即,虚拟机和容器是用于执行应用工作负载的虚拟化执行环境的示例。
通常,每个VM 44可以是任何类型的软件应用,并且可以被分配用于在对应的虚拟网络42内使用的虚拟地址,其中每个虚拟网络可以是由虚拟路由器28A提供的不同的虚拟子网。VM 44可以被分配例如用于发送和接收通信的其自己的虚拟层3(L3)IP地址,但是可能不知道虚拟机正在执行的物理设备26A的IP地址。通过这种方式,“虚拟地址”是针对应用的地址,该地址不同于针对底层物理计算机***(例如,设备26A)的逻辑地址。
在一种实现中,每个设备26包括虚拟网络(VN)代理27A-27N(统称为“VN代理27”)中的一个对应的虚拟网络代理,其控制虚拟网络42并且协调设备内的数据分组的路由。通常,每个VN代理27与虚拟SDN控制器23通信,该虚拟SDN控制器23生成命令以控制通过数据中心10A的分组的路由。VN代理27可以充当虚拟机44与SDN控制器23之间的控制平面消息的代理。例如,VM 44可以请求经由VN代理27A使用其虚拟地址发送消息,并且VN代理27A又可以发送该消息并请求针对始发第一消息的VM 44的虚拟地址接收对该消息的响应。在一些情况下,VM 44可以调用由VN代理27A的应用编程接口呈现的过程或功能调用,并且VN代理27A也可以处理消息的封装,包括寻址。
在一个示例中,由虚拟网络域内的虚拟机44所执行的应用实例生成或消耗的网络分组(例如,层3(L3)IP分组或层2(L2)以太网分组)可以被封装在由物理网络运输的另一分组(例如,另一IP或以太网分组)中。在虚拟网络中运输的分组在本文中可以称为“内部分组”,而物理网络分组在本文中可以称为“外部分组”或“隧道分组”。
物理网络分组内的虚拟网络分组的封装和/或解封装可以在虚拟路由器28内被执行,例如,在每个设备26上运行的管理程序或主机操作***内被执行。例如,虚拟路由器28可以使用MPLSoUDP或MPLSoGRE通过物理网络在虚拟网络42之内和之上运输分组。
如上面所提到的,SDN控制器23提供逻辑上集中的控制器以用于便于数据中心10A内的一个或多个虚拟网络的操作。例如,SDN控制器23可以维持路由信息库,例如,存储物理网络以及数据中心10A的一个或多个网络的路由信息的一个或多个路由表。类似地,交换机16、18和虚拟路由器28维护路由信息,诸如,一个或多个路由表和/或转发表。在一种示例实现中,管理程序46的虚拟路由器28A为每个虚拟网络42实现网络转发表(NFT)40。通常,每个NFT 40存储对应的虚拟网络42的转发信息并且标识数据分组将在何处被转发以及分组是否被封装在隧道协议中,诸如,利用隧道报头来封装,该隧道报头可以包括针对虚拟网络协议栈的不同层的一个或多个报头。
根据本文描述的技术的方面,在一个示例中,SDN控制器23包括AR模块38,其可以确保仅AR下一跳被添加到下一跳列表,并且避免添加其他下一跳。
AR模块38可以基于从设备26接收的ERM树信息(例如,IGMP加入/离开消息)来便于边缘复制多播树的配置。作为一个示例,VM 44可以向VR 28A发送IGMP加入(或离开)。VR28A终止这些IGMP消息,将该信息转换为ERMVPN消息,并且使用XMPP将ERMVPN消息发送到SDN控制器23。更具体地,VN代理27A可以监听设备26A的VM 44的IGMP加入消息,以请求加入多播组以接收来自多播源的多播业务。VN代理27A可以将IGMP加入消息转换成ERMVPN加入消息,并且使用XMPP将ERMVPN加入消息(例如,消息32)发送到SDN控制器23。类似地,VN代理27N可以监听设备26N的VM 44的IGMP加入消息,以请求加入同一多播组。VN代理27N可以将信息从监听的IGMP加入消息转换为ERMVPN加入消息,并且使用XMPP将ERMVPN加入消息(例如,消息32)发送到SDN控制器23。AR模块38可以使用从VN代理27接收的多播状态信息,并且为设备26的虚拟路由器配置边缘复制多播树,以对属于该多播组的VM 44执行边缘复制多播。
图3是图示了根据本文描述的技术的图1的SDN控制器的示例实现的框图。在图3的示例中,SDN控制器23包括一个或多个分析节点52A-52X(统称为“分析节点52”)、一个或多个配置节点54A-54X(统称为“配置节点54”)和控制节点56A-56X(统称为“控制节点56”)。通常,节点52、54和56中的每一个可以被实现为分离的软件过程,并且节点可以分布在提供用于执行软件的环境的多个硬件计算平台上。而且,每个节点维护状态数据58,其可以被存储在集中式或分布式数据库内。在一些示例中,状态数据库58是NoSQL数据库。在一些示例中,状态数据库58是数据库集群。
通常,分析节点52的任务是收集、存储、关联和分析来自数据中心10内的虚拟和物理网络元件的信息。该信息可以包括用于管理数据中心10的路由和网络配置的统计、日志、事件和错误。分析节点52将该信息存储在状态数据库58中。
配置节点54将编制引擎22的高级数据模型转换成适合于与诸如物理交换机16、18和VR代理27等网络元件交互的低级模型。配置节点54将SDN控制器23的配置状态的持久性副本保持在状态数据库58内。
控制节点56实现负责维持临时网络状态的逻辑上集中的控制平面。控制节点56彼此交互并且与网络元件交互,诸如,设备26的VR代理27和虚拟路由器28(例如,计算节点),以确保网络状态最终与编制引擎22所指定的期望状态一致。通常,控制节点56从配置节点54接收SDN控制器23的配置状态信息,并且经由IBGP彼此交换路由以确保所有控制节点56具有相同的网络状态。进一步地,控制节点56经由XMPP与设备26上的VR代理27交换路由。控制节点56还例如经由XMPP将诸如路由实例和转发策略等配置状态信息传递给VR代理27,以用于安装在相应的虚拟路由器28内。进一步地,控制节点56经由BGP与PE设备11交换路由(例如,MVPN路由),并且经由NETCONF与服务节点21交换SDN控制器32的配置状态。
配置节点54提供发现服务,客户设备4可以使用该发现服务来定位网络内可用的各种服务。例如,如果VR代理27A尝试与控制节点56A连接,则其使用由配置节点54提供的发现服务来发现控制节点56A的IP地址。在VM 44上执行的客户端可以使用本地配置、动态主机配置协议(DHCP)或域名***(DNS)在配置节点54内定位服务发现服务器。
在一些示例中,配置节点54呈现与编制引擎22接口连接的北向应用编程接口(API)。编制引擎22使用该接口来使用高级数据模型安装配置状态。配置节点54还包括消息总线,以便于内部组件之间的通信。配置节点54还包括发现编制引擎22的高级模型中的改变并且将这些改变转换为由SDN控制器23管理的低级数据模型中的对应改变的转换器。配置节点54还包括IF-MAP服务器,其提供南向API以将计算的低级配置向下推送到控制节点56。此外,配置节点54包括分布式应用管理器,其用于分配唯一的对象标识符并且实现跨数据中心10的事务。
根据本公开的技术,每个控制节点56可以被配置为经由XMPP从设备26接收多播组成员消息,例如,IGMP加入消息,基于多播组成员信息和辅助复制路由生成多播复制树(例如,边缘复制多播树),并且将ERM树发送到入口多播路由设备,例如,PE设备11。
作为一个示例,控制节点56与设备26建立XMPP会话,以接收ERMVPN的多播组成员消息。例如,VM 44可以向VR 28A发送IGMP加入(或离开)。VR 28A终止这些IGMP消息,将该信息转换为ERMVPN消息,并且使用XMPP将ERMVPN消息发送到SDN控制器23。更具体地,VN代理27可以监听VM 44的IGMP加入消息,以请求加入多播组以接收多播业务。VN代理27可以将IGMP加入消息转换成XMPP消息,并且将XMPP消息发送到控制节点56A。
如下面在图4中进一步描述的,控制节点56可以包括AR模块,以针对设备26生成多播复制树。AR模块可以生成边缘多播复制树,该边缘多播复制树将下一跳用于辅助复制多播路由,并且避免将下一跳用于其他多播路由。
控制节点56还可以与PE设备11建立BGP会话,以发送标识指定的辅助复制设备的信息。例如,控制节点56可以将EVPN BGP属性用于与优化的IR草案相符合的优化的入口复制。例如,控制节点56可以向PE设备11发送叶子自动发现(AD)路由(例如,路由器通告,诸如,例如MVPN类型4路由/PMSI隧道通告路由),其包括指定每个多播路由是否是辅助复制路由的标签。例如,路由器通告可以包括如优化的IR草案中所描述的隧道类型标志。通过这种方式,控制节点56可以使用针对所有叶子和主干交换机的BGP/EVPN信息来访问指明指定的辅助复制设备的信息,并且还可以访问针对使用XMPP消息交换的设备26的多播复制树。
仅出于示例的目的,示出了图3所图示的SDN控制器23的架构。可以在图3的示例数据中心10以及本文未具体描述的其他类型的数据中心中实现本公开中阐述的技术。本公开中的任何内容都不应该被解释为将本公开的技术限制为图3所图示的示例架构。
图4是进一步详细地图示了根据本公开所描述的技术的图3的控制节点56的示例的框图。控制节点56A被配置为与多种其他类型的节点通信,包括配置节点54A-54X(“配置节点54”)、其他控制节点56B-56X、设备26A-26N和PE设备11。
控制节点56A为协议70提供执行的操作环境。协议70可以包括例如XMPP过程70A、NETCONF协议过程70B、BGP过程70C、IF-MAP过程70D、MVPN协议70E和ERMVPN技术70F。
控制节点56A使用IF-MAP 70D从配置节点54接收配置状态。控制节点56A使用BGP70C与其他控制节点56交换路由,以确保所有控制节点具有相同的网络状态。控制节点56A使用XMPP 70A与设备26上的虚拟路由器代理交换路由。控制节点56A还使用XMPP发送配置状态,诸如,路由实例和转发策略。控制节点56A使用BGP 70C与PE设备11交换路由。控制节点56A还使用NETCONF 70B将配置状态发送到PE设备11。
控制节点56A使用到元数据访问点(IF-MAP)过程70D的接口从一个或多个配置节点54接收配置信息。IF-MAP过程70D可以包括用于执行软件指令的电路装置,该软件指令用于根据IF-MAP协议从配置节点54发送和接收通信。IF-MAP过程70D将从配置节点54接收的配置信息存储到配置状态66(“配置状态66”)。
控制节点56A使用BGP过程70C与BGP对等方(包括控制节点56B-56X和PE设备11)交换BGP消息。BGP过程70C可以包括用于执行软件指令的电路装置,该软件指令用于根据BGP协议与PE设备11和控制节点56B-56X发送和接收BGP消息。BGP过程70C将来自PE设备11(例如,MVPN类型1或类型2AD路由)和控制节点56B-56X的从BGP路由通告接收到的路由信息存储到路由信息65。
控制节点56A根据XMPP使用XMPP过程70A与设备26交换消息。控制节点56A经由XMPP会话64A-64N(“XMPP会话64”)交换消息。图3的设备26可以对应于图1至图3的设备26。XMPP过程70A可以包括用于执行软件指令的电路装置,该软件指令用于根据XMPP协议与设备26交换XMPP消息。在P.Saint-Andre于2011年3月发表在IETF RFC 6120上的“ExtensibleMessaging and Presence Protocol(XMPP):Core(可扩展消息和存在协议(XMPP):核)”中进一步详细地描述了XMPP,其全部内容通过引用并入本文。根据上下文,控制节点56A(更具体地,控制节点56A的XMPP过程70A)可以相对于设备26之一充当XMPP客户端或XMPP服务器。例如,控制节点56A可以充当XMPP服务器,并且设备26可以是XMPP客户端,它们订阅由控制节点56A发布的信息,诸如,来自相应设备26的配置状态66的配置信息以及来自路由信息65的关于相应设备26的路由信息。作为另一示例,控制节点56A可以充当作为XMPP服务器的设备26中的一个或多个的XMPP客户端,其中控制节点56A订阅由设备26发布的信息,诸如,由设备26从其他源学习的路由信息。XMPP过程70A经由XMPP会话64A从设备26A接收路由,并且将该路由存储到路由信息65。XMPP过程70A学习的路由可能会被泄露给BGP过程70C,而BGP过程70C可能又会将它发送到其BGP对等方BGP路由器通告,其经由XMPP通告从设备26学习的路由信息65中的路由。在一些示例中,控制节点56A的NETCONF过程70B使控制节点56A能够经由NETCONF协议与PE设备11通信。
控制节点56A可以包括MVPN模块37,该MVPN模块37管理针对MVPN网络42的MVPN实例和针对多播复制网络40的ERMVPN实例。为了管理MVPN实例,MVPN模块37可以维护MVPN邻居列表,管理用于发现属于给定MVPN实例的设备的本地起源的MVPN AD路由,管理本地起源的叶子AD路由(例如,MVPN类型4路由)。MVPN模块37还可以侦听对MVPN实例的所有改变(例如,MVPN邻居信息),当在虚拟网络中添加或删除MVPN配置时处理初始化或清理,并且经由自省(introspect)提供用于运行时检查的数据。MVPN模块37可以包括例如MVPN信息76,其包括MVPN AD路由,诸如,由同一自治***内的设备(例如,iBGP邻居)交换以参与MVPN实例的AS内I-PMSI AD路由(例如,类型1MVPN AD路由)和/或由不同自治***内的设备(例如,eBGP邻居)交换以参与MVPN实例的AS间I-PMSI(例如,类型2MVPN AD路由),如R.Aggarwal等人于2012年2月在互联网工程任务组(IETF)的RFC 6514上发表的“BGP Encodings andProcedures for Multicast in MPLS/BGP IP VPNs(针对MPLS/BGP IP VPN中的多播的BGP编码和过程)”中所描述的,其全部内容通过引用并入本文。例如,MVPN模块37可以在MVPN信息76中存储属于MVPN实例的路由器(例如,PE设备11)的IP地址。MVPN信息76可以被存储在一系列的表、数据库、列表或各种其他数据结构中。
为了维护ERMVPN实例,MVPN模块37可以维护通过与设备26的XMPP会话接收的多播组成员消息的列表,并且侦听对ERMVPN实例的所有改变(例如,IGMP组成员信息)。例如,MVPN模块37可以在ERMVPN信息78中存储多播组成员消息,例如,IGMP加入消息。这些路由可以作为MVPN源树加入路由(例如,MVPN类型7)被添加到ERMVPN信息78,如在RFC 6514中所描述的。
如先前所描述的,设备26可以各自包括虚拟代理(例如,图1的VA 27),以监听针对VM通告的IGMP加入。设备26的每个虚拟代理可以通过XMPP会话64发送IGMP加入消息。SDN控制器23A可以通过XMPP会话64从设备26接收IGMP加入消息,并且将该信息存储在ERMVPN信息78内。
SDN控制器23A的MVPN模块37可以使用ERMVPN信息78来生成多播复制树75(或者基于对ERMVPN信息78的改变来更新现有的多播复制树75)。例如,SDN控制器23A可以在数据中心10A的每个租户下针对每个<S,G>组合生成多播复制树。SDN控制器23A可以使用例如ERMVPN技术70F来生成多播复制树75。
MVPN模块37可以指示控制节点56A使用XMPP 70A向设备26A的VR代理27A发送配置状态信息,以配置虚拟路由器28A。例如,控制节点56A可以发送配置状态信息,该配置状态信息使虚拟路由器28A通过GRE/UDP隧道从网关12接收多播业务,然后根据多播复制树将多播业务发送到其本地接收器和虚拟路由器28A的父节点,其又将多播业务复制到本地接收器(例如,VM 44)和被指示为其父/子节点的其他虚拟路由器。更具体地,控制节点56A可以发送被发送到设备26A的虚拟路由器28A的XMPP消息,该XMPP消息用包括隧道端点(例如,网关12)的IP地址以及隧道类型(例如,通过GRE/UDP的MPLS)的输入隧道属性进行编码。
图5是进一步详细地图示了根据本公开所描述的技术的图1的设备的示例的框图。计算设备500可以表示图1至图4的设备26中的任何一个。
在图5的示例中,计算设备500包括***总线542,该***总线542耦合计算设备500的硬件环境的硬件组件。***总线542耦合存储器544、网络接口卡(NIC)506A至508B(统称为“NIC 506”)、存储盘507和具有多个处理核508A至508N(统称为“处理核508”)的多核计算环境502。网络接口卡506包括被配置为使用底层物理网络的链路来交换分组的接口。多核计算环境502可以包括任何数目的处理器和任何数目的硬件核,例如,从四个到数千个。每个处理核508各自包括独立的执行单元以执行符合该核的指令集架构的指令。处理核508可以各自被实现为分离的集成电路(IC),或者可以在使用单个IC(即,芯片微处理器)各自被实现的一个或多个多核处理器(或“众核”处理器)内被组合。
盘507表示计算机可读存储介质,该计算机可读存储介质包括以用于存储信息(诸如,处理器可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和/或非易失性介质以及可移除和/或不可移除介质。计算机可读存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、EEPROM、闪速存储器、CD-ROM、数字多功能光盘(DVD)或者其他光学存储装置、磁盒、磁带、磁盘存储装置或者其他磁性存储设备、或者可以用于存储期望信息并且可以由核508访问的任何其他介质。
主存储器544包括一个或多个计算机可读存储介质,该一个或多个计算机可读存储介质可以包括随机存取存储器(RAM),诸如,各种形式的动态RAM(DRAM)(例如,DDR2/DDR3SDRAM)或静态RAM(SRAM)、闪速存储器或可以用于以可以由计算机访问的指令或数据结构的形式承载或存储期望的程序代码和程序数据的任何其他形式的固定或可移除的存储介质。主存储器544提供由可寻址存储器位置组成的物理地址空间。
在一些示例中,存储器544可以表示向多核计算环境502呈现非一致存储器访问(NUMA)架构。即,核508对构成存储器544的各种存储介质的存储器访问时间可能不相等。在一些实例中,核508可以被配置为使用存储器544的为核提供最低存储器延迟的部分来减少整体存储器延迟。
在一些实例中,计算机可读存储介质的物理地址空间可以在一个或多个核508之间被共享(即,共享存储器)。例如,核508A、508B可以经由存储器总线(未示出)被连接至表示由核508A、508B可访问的物理地址空间的一个或多个DRAM包、模块和/或芯片(也未示出)。尽管该物理地址空间可以向存储器544的任何部分的核508A、508B提供最低存储器访问时间,但是存储器544的剩余部分中的至少一些可以由核508A、508B直接访问。核508中的一个或多个也可以包括L1/L2/L3高速缓存或其组合。核508的相应高速缓存为核508提供了任何存储介质的最低延迟存储器访问。
存储器544、NIC 506、存储盘507和多核计算环境502为执行虚拟路由器520和一个或多个虚拟机510A至510N(统称为“VM 510”)的软件栈提供操作环境。虚拟机510可以表示图1至图3的任何虚拟机的示例实例。例如,VM 510是租户VM,其运行客户应用(诸如,web服务器、数据库服务器、企业应用)或托管用于创建服务链的虚拟化服务。在一个示例配置中,Linux是主机操作***(OS)。
计算设备500划分由主存储器544提供的虚拟和/或物理地址空间,并且在虚拟存储器的情况下,通过盘507将其划分为被分配用于运行用户过程的用户空间511以及被保护并且通常无法由用户过程访问的内核空间512。操作***内核(未在图5中示出)可以在内核空间512中执行,并且可以包括例如Linux、伯克利软件发行版(BSD)、另一Unix变体内核或可从微软公司获得的Windows服务器操作***内核。在一些实例中,计算设备500可以执行管理程序(诸如,图2的管理程序46)来管理虚拟机510。示例管理程序包括针对Linux内核的基于内核的虚拟机(KVM)、Xen、可从VMware获得的ESXi、可从微软获得的Windows Hyper-V以及其他开源和专有管理程序。在一些示例中,利用诸如FIB 524等路由信息编程的专用硬件可以执行虚拟路由器520。
Eth0 514A和Eth1 514B表示根据软件设备模型的设备,并且提供设备驱动器软件例程,以用于处理分组以通过对应的NIC 506进行接收/传输。由NIC 506从虚拟网络的底层物理网络结构接收的分组可以包括“外部分组”以允许物理网络结构将有效负载或“内部分组”隧道传输到NIC 506之一的物理网络地址。外部分组不仅可以包括物理网络地址,而且还可以包括多协议标签交换(MPLS)标签或虚拟网络标识符,诸如,VxLAN标记,其标识虚拟网络之一以及对应的路由实例。内部分组包括具有目的地网络地址的内部报头,该目的地网络地址符合由虚拟网络标识符标识的虚拟网络的虚拟网络寻址空间。例如,虚拟路由器转发平面528可以通过Eth1从NIC 506a接收具有外部报头的分组,该外部报头包括利用路由实例522A与虚拟路由器转发平面528相关联的MPLS标签。分组可以具有内部报头,该内部报头具有目的地网络地址,该目的地网络地址是经由抽头接口546A接进路由实例522A的VM510A的目的地地址。
在该示例中,虚拟路由器520包括内核空间512模块:虚拟路由器转发平面528,以及用户空间511模块:虚拟网络代理(VN代理)530。虚拟路由器转发平面528执行“转发平面”或虚拟路由器520的分组转发功能性,并且VN代理530执行虚拟路由器520的“控制平面”功能性。VN代理530可以表示图2的任何VN代理27的示例实例。
虚拟路由器转发平面528负责封装要被发送到覆盖网络的分组,并且解封装要从覆盖网络被接收的分组。虚拟路由器转发平面528将分组分配给路由实例,诸如,针对对应虚拟网络的路由实例522A-522C(统称为“路由实例522”)。从覆盖网络接收到的分组被分配给路由实例。到本地虚拟机(例如,VM 510)的虚拟接口被绑定到路由实例522。
每个路由实例522包括一个对应的转发信息库(FIB)524A至524C(统称为“FIB524”)和流表526A至526C(统称为“流表526”)。尽管被图示为分离的数据结构,但是流表526在一些实例中可以是被实现为单个表或其他关联数据结构的逻辑表,其中针对相应流表526的条目由虚拟网络标识符(例如,诸如VxLAN标记或MPLS标签等VRF标识符)可标识。FIB524包括将目的地地址映射到目的地下一跳的查找表。虚拟路由器转发平面528在FIB 524中执行目的地地址的查找,并且将分组转发到正确的目的地。目的地地址可以包括层3网络前缀或层2MAC地址。
流表526可以便于将策略转发到流。每个流表526包括各自与可以遍历虚拟路由器转发平面528的一个或多个流相匹配的流表条目,并且包括转发策略以用于应用于匹配流。
在该示例中,VN代理530可以是由计算设备500执行的用户空间511过程。VN代理530包括配置数据532、虚拟路由和转发实例配置534(“VRF 534”)以及多播复制树536。例如,VN代理530使用XMPP与一个或多个虚拟网络控制器(例如,图1-图3的SDN控制器23)交换控制信息。控制信息可以包括虚拟网络路由、低级配置状态,诸如,用于安装到配置数据532和VRF 534的路由实例。VN代理530将转发状态安装到虚拟路由器转发平面528中。VN代理530可以接收多播复制树536,其指示虚拟路由器520如何复制从物理网络接收的本地VM(例如,VM 510)的多播业务。例如,VN代理530可以接收将VM 510A和VM 510C指定为多播业务的接收器的多播复制树。
图6是图示了根据本公开的技术的示例操作的流程图。为了方便起见,相对于图1的网络2描述了图6。在图6的示例中,SDN控制器23可以接收针对多播组的一个或多个多播组成员消息(602)。例如,SDN控制器23可以从设备26A接收将设备26A的一个或多个虚拟化实体标识为多播组的接收器的一个或多个多播组成员消息。例如,设备26A的虚拟代理27A可以监听IGMP加入或离开消息,并且经由XMPP将IGMP加入或离开消息发送到SDN控制器23。在一些示例中,SDN控制器23可以接收一个或多个ERMVPN加入消息(例如,使用XMPP)。
SDN控制器23从TOR交换机接收第一多播路由和第二多播路由(604)。例如,SDN控制器23从TOR交换机(例如,TOR交换机16A)接收第一多播路由和第二多播路由的一个或多个路由器通告。在一些示例中,一个或多个路由器通告可以符合边界网关协议(BGP)自动发现(AD)过程。
SDN控制器23可以确定第一多播路由是辅助复制路由(606)。在一些示例中,SDN控制器23可以被配置为从一个或多个路由器通告确定第一指示(例如,辅助复制类型(T)为3-4),该第一指示指明第一多播路由是用与辅助复制路由类型相对应的第一隧道类型来指定的。例如,VR 28中的一个或多个VR可以被配置用于以太网虚拟专用网络辅助的多播复制,在优化的IR草案中指明了其示例。响应于确定第一多播路由是辅助复制路由,SDN控制器23将由第一多播路由指明的第一下一跳添加到针对BUM业务(例如,多播组)的下一跳列表(608)。
SDN控制器23可以确定第二多播路由不是辅助复制路由(610)。在一些示例中,SDN控制器23可以被配置为从一个或多个路由器通告确定第二指示(例如,辅助复制类型(T)为5或6),该第二指示指明第二多播路由是用与辅助复制路由类型不对应的第二隧道类型来指定的。例如,VR 28中的一个或多个VR可以被配置用于以太网虚拟专用网络辅助的多播复制,在优化的IR草案中指明了其示例。响应于确定第二多播路由不是辅助复制路由,SDN控制器23避免将由第二多播路由指明的第二下一跳添加到针对BUM业务(例如,多播组)的下一跳列表(612)。
在一些示例中,SDN控制器23基于多播组成员信息和下一跳列表来生成多播复制树,例如,边缘复制多播树。例如,SDN控制器23的计算节点可以接收XMPP消息,该消息将设备26A的一个或多个VM标识为多播组的接收器,并且可以生成多播复制树,该多播复制树指明虚拟路由器将如何使用下一跳列表来复制针对一个或多个VM的多播业务。多播复制树可以是针对多播组的覆盖分发树。在一些示例中,多播复制树符合ERMVPN技术中描述的边缘复制多播树。
在设备26A接收多播业务之前并且在将第一下一跳添加到下一跳列表之后,SDN控制器23可以在虚拟路由器处供应下一跳列表以发送针对多播组的BUM业务(614)。例如,SDN控制器23可以供应VR 28A以使用下一跳列表针对多播组利用多播复制树来配置VR 28A。在一些实例中,多播复制树可以是针对多播组的覆盖分发树。多播复制树可以是被配置用于ERMVPN的ERM树。
设备26A的虚拟路由器28A可以接收多播复制树,使得虚拟路由器28A可以使用多播复制树来将多播业务复制到本地VM。例如,虚拟路由器28A可以从SDN控制器23的控制节点接收配置状态信息,该配置状态信息使虚拟路由器28A通过GRE/UDP隧道从网关12接收多播业务,然后将多播业务洪泛到在多播复制树中指明的节点(例如,VM 44)。更具体地,控制节点56可以发送被发送到虚拟路由器28A的XMPP消息,该XMPP消息用包括隧道端点(例如,网关12)的IP地址以及隧道类型(例如,GRE/UDP上的MPLS)的输入隧道属性进行编码。
在一些示例中,第一多播路由在TOR交换机与第一架式交换机之间扩展。例如,第一多播路由可以在TOR交换机16A与架式交换机18A之间扩展。在一些示例中,第二多播路由在TOR交换机与第二架式交换机之间扩展。例如,第二多播路由可以在TOR交换机16A与架式交换机18N之间扩展。SDN控制器23可以将第一架式交换机配置为将BUM业务转发到一个或多个虚拟路由器中的指定虚拟路由器。在一些实例中,ERM树中的指定虚拟路由器(例如,森林节点)被配置为复制BUM业务。例如,SDN控制器23可以将架式交换机18A配置为仅将BUM业务转发到VR 28A,该VR 28A被配置为将BUM业务复制到设备26A的每个VM。在一些示例中,SDN控制器23可以将第一架式交换机配置为将BUM业务复制到设备26A的每个VM,并且VR28A将复制的BUM业务转发到设备26A的每个VM。在一些示例中,将第一架式交换机配置为将BUM业务复制到设备26A的每个VM可以缩放至任意大的数目,因为SDN控制器23利用ERMVPN构建了深度为O(logkN)的ERM树,其中子节点的最大数目可以是4。
本公开中所描述的技术可以至少部分地被实现在硬件、软件、固件或其任何组合中。例如,可以在一个或多个处理器内实现所描述的技术的各个方面,该一个或多个处理器包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者任何其他等效的集成或分立逻辑电路装置以及这种组件的任何组合。术语“处理器”或者“处理电路装置”可能通常指单独的或者与其他逻辑电路装置组合的前述逻辑电路装置或者任何其他等效的电路装置中的任何一个。包括硬件的控制单元也可以执行本公开的一种或多种技术。
这种硬件、软件和固件可以被实现在相同的设备内或者分离的设备内以支持本公开中所描述的各种操作和功能。另外,所描述的单元、模块或者组件中的任何一个可以一起或者分离地被实现为分立逻辑设备,而不是互操作逻辑设备。作为模块或者单元的不同特征的描绘旨在强调不同的功能方面,而并不一定意味着这种模块或者单元必须由分离的硬件或软件组件实现。相反,与一个或多个模块或者单元相关联的功能性可以由分离的硬件或软件组件执行,或者被集成在共有的或者分离的硬件或软件组件内。
本公开中所描述的技术也可以在包含指令的计算机可读介质(诸如,计算机可读存储介质)中实施或编码。例如,当指令被执行时,在计算机可读存储介质中嵌入或编码的指令可以使可编程处理器或其他处理器执行方法。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质或者其他计算机可读介质。

Claims (20)

1.一种用于网络管理的控制器,所述控制器包括一个或多个处理器,所述一个或多个处理器被配置为:
接收第一多播路由和第二多播路由;
响应于所述第一多播路由是辅助复制路由的确定,将由所述第一多播路由指明的第一下一跳添加到针对广播、未知单播和多播BUM业务的下一跳列表;
响应于所述第二多播路由不是所述辅助复制路由的确定,避免将由所述第二多播路由指明的第二下一跳添加到针对BUM业务的所述下一跳列表;以及
在添加所述第一下一跳之后,基于所述下一跳列表来配置虚拟路由器。
2.根据权利要求1的控制器,其中为了接收所述第一多播路由和所述第二多播路由,所述控制器被配置为:
接收所述第一多播路由和所述第二多播路由的一个或多个路由器通告。
3.根据权利要求2所述的控制器,其中所述一个或多个路由器通告符合边界网关协议BGP自动发现AD过程。
4.根据权利要求2的控制器,其中所述控制器被配置为:
从所述一个或多个路由器通告确定第一指示,所述第一指示指明所述第一多播路由是用与辅助复制路由类型相对应的第一隧道类型来指定的,并且响应于所述第一指示而确定所述第一多播路由是所述辅助复制路由;以及
从所述一个或多个路由器通告确定第二指示,所述第二指示指明所述第二多播路由是用与所述辅助复制路由类型不相对应的第二隧道类型来指定的,并且响应于所述第二指示而确定所述第二多播路由不是所述辅助复制路由。
5.根据权利要求1所述的控制器,其中所述虚拟路由器被配置用于以太网虚拟专用网络辅助的多播复制。
6.根据权利要求1的控制器,其中所述控制器被配置为:
接收将所述虚拟路由器标识为多播组的源的一个或多个多播组成员消息;并且
其中为了配置所述虚拟路由器,所述控制器被配置为配置所述虚拟路由器以使用所述下一跳列表来复制所述BUM业务。
7.根据权利要求6所述的控制器,其中为了配置所述虚拟路由器,所述控制器被配置为使用所述下一跳列表针对所述多播组用多播复制树配置所述虚拟路由器,其中所述多播复制树是针对所述多播组的覆盖分发树。
8.根据权利要求7所述的控制器,其中所述多播复制树是被配置用于针对虚拟专用联网的边缘复制多播ERMVPN的边缘复制多播ERM树。
9.根据权利要求8所述的控制器,其中所述一个或多个多播组成员消息包括一个或多个ERMVPN加入消息。
10.根据权利要求9所述的控制器,其中为了接收所述一个或多个ERMVPN加入消息,所述控制器被配置为使用可扩展消息与存在协议XMPP来接收所述一个或多个ERMVPN加入消息。
11.根据权利要求1至10中任一项所述的控制器,其中所述第一多播路由包括在架顶TOR交换机与第一架式交换机之间扩展的辅助复制器路由,并且其中所述第二多播路由包括在所述TOR交换机与第二架式交换机之间扩展的普通的包容性提供方多播服务接口I-PMSI包容性多播路由,所述第二架式交换机与所述第一架式交换机不同。
12.根据权利要求11所述的控制器,其中所述控制器还被配置为将所述第一架式交换机配置为将所述BUM业务转发到所述一个或多个虚拟路由器中的指定虚拟路由器,其中所述指定虚拟路由器被配置为复制所述BUM业务。
13.根据权利要求11所述的控制器,其中所述一个或多个虚拟路由器包括多个接收器,并且其中所述控制器还被配置为将所述第一架式交换机配置为将所述BUM业务复制到所述多个接收器。
14.一种用于网络管理的方法,所述方法包括:
由控制器接收第一多播路由和第二多播路由;
响应于确定所述第一多播路由是一辅助复制路由,由所述控制器将由所述第一多播路由指明的第一下一跳添加到针对广播、未知单播和多播BUM业务的下一跳列表;
响应于确定所述第二多播路由不是所述辅助复制路由,由所述控制器避免将由所述第二多播路由指明的第二下一跳添加到针对BUM业务的所述下一跳列表;以及
在添加所述第一下一跳之后,由所述控制器基于所述下一跳列表来配置虚拟路由器。
15.根据权利要求14所述的方法,其中接收所述第一多播路由和所述第二多播路由包括:
接收所述第一多播路由和所述第二多播路由的一个或多个路由器通告。
16.根据权利要求15所述的方法,其中所述一个或多个路由器通告符合边界网关协议BGP自动发现AD过程。
17.根据权利要求15的方法,还包括:
由所述控制器从所述一个或多个路由器通告确定第一指示,所述第一指示指明所述第一多播路由是用与辅助复制路由类型相对应的第一隧道类型来指定的,并且响应于所述第一指示而确定所述第一多播路由是所述辅助复制路由;以及
由所述控制器从所述一个或多个路由器通告确定第二指示,所述第二指示指明所述第二多播路由是用与所述辅助复制路由类型不相对应的第二隧道类型来指定的,并且响应于所述第二指示而确定所述第二多播路由不是所述辅助复制路由。
18.根据权利要求14所述的方法,其中所述虚拟路由器被配置用于以太网虚拟专用网络辅助的多播复制。
19.根据权利要求14至18中任一项所述的方法,还包括:
由所述控制器接收将所述虚拟路由器标识为多播组的源的一个或多个多播组成员消息;并且
其中配置所述虚拟路由器包括配置所述虚拟路由器以使用所述下一跳列表来复制所述BUM业务。
20.一种计算机可读存储介质,所述计算机可读存储介质是用指令编码的,所述指令用于使一个或多个可编程处理器执行根据权利要求1至13中任一项的所述***所述的操作。
CN202310302013.3A 2019-09-30 2020-02-05 软件定义网络中的辅助复制 Pending CN116319529A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962908214P 2019-09-30 2019-09-30
US62/908,214 2019-09-30
US16/684,267 2019-11-14
US16/684,267 US11240144B2 (en) 2019-09-30 2019-11-14 Assisted replication in software defined network
CN202010080471.3A CN112583710B (zh) 2019-09-30 2020-02-05 软件定义网络中的辅助复制

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010080471.3A Division CN112583710B (zh) 2019-09-30 2020-02-05 软件定义网络中的辅助复制

Publications (1)

Publication Number Publication Date
CN116319529A true CN116319529A (zh) 2023-06-23

Family

ID=69526087

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310302013.3A Pending CN116319529A (zh) 2019-09-30 2020-02-05 软件定义网络中的辅助复制
CN202010080471.3A Active CN112583710B (zh) 2019-09-30 2020-02-05 软件定义网络中的辅助复制

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010080471.3A Active CN112583710B (zh) 2019-09-30 2020-02-05 软件定义网络中的辅助复制

Country Status (3)

Country Link
US (2) US11240144B2 (zh)
EP (1) EP3799371B1 (zh)
CN (2) CN116319529A (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11240144B2 (en) 2019-09-30 2022-02-01 Juniper Networks, Inc. Assisted replication in software defined network
US11411857B2 (en) * 2019-11-25 2022-08-09 Cisco Technology, Inc. Multicast performance routing and policy control in software defined wide area networks
US11362849B1 (en) * 2020-11-23 2022-06-14 Cisco Technology, Inc. SD-WAN multicast replicator selection centralized policy
US11895010B2 (en) * 2021-06-29 2024-02-06 VMware LLC Active-active support of multicast streams in virtualized environment
CN113746730B (zh) * 2021-08-25 2023-05-16 新华三大数据技术有限公司 一种路由信息处理方法及装置
WO2024035848A1 (en) * 2022-08-11 2024-02-15 Cisco Technology, Inc. Unicast to multicast service reflection in sd-wan fabric
US20240098026A1 (en) * 2022-09-16 2024-03-21 Juniper Networks, Inc. Load balancing of assisted replication network devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8750288B2 (en) 2012-06-06 2014-06-10 Juniper Networks, Inc. Physical path determination for virtual network packet flows
US8953500B1 (en) * 2013-03-29 2015-02-10 Juniper Networks, Inc. Branch node-initiated point to multi-point label switched path signaling with centralized path computation
US9794079B2 (en) * 2014-03-31 2017-10-17 Nicira, Inc. Replicating broadcast, unknown-unicast, and multicast traffic in overlay logical networks bridged with physical networks
US10103902B1 (en) * 2015-03-05 2018-10-16 Juniper Networks, Inc. Auto-discovery of replication node and remote VTEPs in VXLANs
US10673742B2 (en) * 2015-09-10 2020-06-02 Telefonaktiebolaget Lm Ericsson (Publ) Multicast state reduction via tunneling in a routed system
US10243821B2 (en) * 2015-12-30 2019-03-26 Juniper Networks, Inc. OAM mechanisms for EVPN active-active services
US9935783B2 (en) * 2016-01-07 2018-04-03 Juniper Networks, Inc. System for avoiding traffic flooding due to asymmetric MAC learning and achieving predictable convergence for PBB-EVPN active-active redundancy
US10104139B2 (en) * 2016-03-31 2018-10-16 Juniper Networks, Inc. Selectively signaling selective tunnels in multicast VPNs
US10291497B2 (en) * 2017-03-31 2019-05-14 Juniper Networks, Inc. Session-based traffic statistics logging for virtual routers
WO2018193285A1 (en) * 2017-04-17 2018-10-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for enabling a scalable multicast virtual private network service across a multicast label distribution protocol network using in-band signaling
US10469358B2 (en) * 2017-05-18 2019-11-05 Qualcomm Incorporated Wireless multihop relay
US10623207B2 (en) * 2017-09-25 2020-04-14 Cisco Technology, Inc. Hardware based packet replication at tail end node
US11115330B2 (en) * 2018-03-14 2021-09-07 Juniper Networks, Inc. Assisted replication with multi-homing and local bias
US10805202B1 (en) * 2019-01-25 2020-10-13 Juniper Networks, Inc. Control plane compression of next hop information
US11134015B2 (en) * 2019-07-17 2021-09-28 Arista Networks, Inc. Load balancing through selective multicast replication of data packets
US11240144B2 (en) 2019-09-30 2022-02-01 Juniper Networks, Inc. Assisted replication in software defined network

Also Published As

Publication number Publication date
CN112583710B (zh) 2023-04-07
CN112583710A (zh) 2021-03-30
EP3799371A1 (en) 2021-03-31
US11665088B2 (en) 2023-05-30
US11240144B2 (en) 2022-02-01
US20210099380A1 (en) 2021-04-01
EP3799371B1 (en) 2023-08-23
US20220116312A1 (en) 2022-04-14

Similar Documents

Publication Publication Date Title
US11044211B2 (en) Multicast packet handling based on control information in software-defined networking (SDN) environment
CN112583710B (zh) 软件定义网络中的辅助复制
CN111756612B (zh) 用于虚拟化计算基础设施的方法和***
US10999195B1 (en) Multicast VPN support in data centers using edge replication tree
US10715419B1 (en) Software defined networking between virtualized entities of a data center and external entities
CN107646185B (zh) 用于覆盖环境中的操作维护管理的方法、***及存储介质
US11528213B2 (en) Sharing routes using an in-memory data store in a distributed network system
US10103902B1 (en) Auto-discovery of replication node and remote VTEPs in VXLANs
EP2982097B1 (en) Method and apparatus for exchanging ip packets among network layer 2 peers
US10979246B2 (en) Multicast packet handling in software-defined networking (SDN) environments
US8683023B1 (en) Managing communications involving external nodes of provided computer networks
US11336570B1 (en) Layer three multi-homing for virtual networks
CN114039912B (zh) 用于改进路由通告的方法以及软件定义网络控制器
EP4163787A1 (en) Automatic policy configuration for packet flows
US11296907B2 (en) Systems and methods for transitioning of virtualized transport networks
US11991097B2 (en) Hybrid data plane for a containerized router
US20240031290A1 (en) Centralized service insertion in an active-active logical service router (sr) cluster
US12021740B2 (en) Policy enforcement for bare metal servers by top of rack switches
US20220385570A1 (en) Policy enforcement for bare metal servers by top of rack switches
CN117255019A (zh) 用于虚拟化计算基础设施的***、方法及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination