向用于层2虚拟专用网络的冗余多宿主路由器发信号通知多播信息的制作方法

文档序号:16630304发布日期:2019-01-16 06:30阅读:237来源:国知局
向用于层2虚拟专用网络的冗余多宿主路由器发信号通知多播信息的制作方法

本公开内容涉及计算机网络,并且更具体地涉及递送多播业务。



背景技术:

主要利用数据链路层设备的网络通常被称为层2(l2)网络。数据链路层设备是在开放系统互连(osi)参考模型的第二层(即,数据链路层)内操作的设备。常见l2网络的一个示例是其中端点设备(例如,服务器、打印机、计算机)通过一个或多个以太网交换机或其他l2网络设备而被连接的以太网网络。以太网交换机将以太网帧(也被称为l2通信或l2分组)转发给网络内的设备。当以太网交换机转发以太网帧时,以太网交换机将获知l2网络的l2状态信息,包括网络内的设备的媒体访问控制(mac)地址信息以及通过其可到达设备的物理端口。以太网交换机通常将mac地址信息存储在与其每个物理接口相关联的mac表中。当转发在以太网交换机的入口端口上接收的单个以太网帧时,以太网交换机通常将以太网帧多播到交换机的所有其他物理端口,除非以太网交换机已经获知了通过其可到达目的地mac地址设备的具体物理端口。在这种情况中,以太网交换机将以太网帧的单个副本转发出相关联的物理端口。

服务提供商网络提供层2虚拟专用网络(l2vpn)服务以通过广域网来连接客户网络。示例l2vpn服务包括层2电路和虚拟专用局域网(lan)服务(vpls)。



技术实现要素:

通常,描述了用于向被配置为为多宿主网络设备提供到层2虚拟专用网络的备用连接的网络设备发信号通知感兴趣的多播接收器的指示。例如,中间层3(l3)网络的网络设备可以被配置有层2(l2)虚拟专用网络(l2vpn)(诸如l2电路)或虚拟专用局域网(lan)服务(vpls),以在由中间层3(l3)网络在逻辑上分离的多个l2网络(或“客户网络”)之间提供l2连接。l2网络中的一个l2网络的客户边缘设备(ce)可以利用通过到主pe的主附接电路以及到备用pe的备用附接电路被多宿主到中间l3网络的提供商边缘设备(pe)。主附接电路用于在l2vpn的中间l3网络和ce之间传输网络业务,其中备用附接电路和备用pe用作备份,以在主附接电路出现故障的情况中承担传输网络业务。

ce监听(snoop)来自包括ce的l2网络的主机的多播信令(例如,因特网组管理协议(igmp))业务。响应于从igmp业务确定l2网络的主机正在尝试加入多播组以从多播源接收多播业务,ce生成并且在备用附接电路上向备用pe发送控制平面消息。该消息包括多播组的指示,该指示是用于接收用于多播组的多播业务的感兴趣的主机的指示。备用pe接收该消息并且响应地存储用于多播组的多播转发状态。在主附接电路出现故障的情况中,备用pe使用存储的多播转发状态来快速切换以经由到ce的备用附接电路(现在是主附接电路)开始转发用于多播组的多播业务。

这些技术可以提供一个或多个优点。例如,通过使用显式控制平面消息传送前摄地向备用pe配置多播转发状态,在主附接电路发生故障的情况中,ce和备用pe可以提供从备用pe到ce的多播业务的更加快速的假定。在没有这样的前摄配置的情况中,备用pe必须监听来自主机的后续igmp业务,以确定备用pe要经由备用附接电路向ce转发多播业务,这导致经由l2vpn的用于多播业务的ce的之后的主机的黑洞化(blackholing),直到发生igmp刷新。这些技术可以减少这样的黑洞化。而且,显式控制平面消息传送技术可以提供优于ce经由备用附接电路向备用pe发送冗余igmp业务的优点。例如,由ce生成和发送显式控制平面消息可以减少从ce到备用pe的后续冗余igmp业务。作为另一示例,备用pe接收显式控制平面消息并且可以避免不必要地监听数据平面中的igmp业务。

在一些示例中,一种方法包括:由层3(l3)网络的提供商边缘设备接收用于l3网络的、针对层2(l2)虚拟专用网络(l2vpn)的配置数据,l3网络用于在被连接到l3网络的两个或更多个l2网络之间交换l2分组数据单元(pdu),其中配置数据将提供商边缘设备配置为用于l2vpn的、与两个或更多个l2网络中的本地l2网络的客户边缘设备具有冗余附接电路的邻居;当提供商边缘设备是用于客户边缘设备的备用邻居时,由提供商边缘设备经由冗余附接电路从客户边缘设备接收去往提供商边缘设备的控制平面消息,控制平面消息指示多播组;以及由提供商边缘设备经由用于l2vpn的冗余附接电路并且至少基于控制平面消息来向客户边缘设备转发从l3网络接收的用于多播组的多播业务。

在一些示例中,一种方法包括:由本地层2(l2)网络的客户边缘设备接收用于层3(l3)网络的、针对与层2(l2)虚拟专用网络(l2vpn)的多宿主连通的配置数据,l3网络用于在包括本地l2网络的、被连接到l3网络的两个或更多个l2网络之间交换l2分组数据单元(pdu),其中引用多宿主连通的配置数据向客户边缘设备配置到用于l2vpn的主邻居提供商边缘设备的主附接电路以及配置到用于l2vpn的备用邻居提供商边缘设备的备用附接电路;以及由客户边缘设备响应于监听到指示多播组的多播加入消息来生成并且经由备用附接电路向用于l2vpn的备用邻居提供商边缘设备发送控制平面消息,其中控制平面消息去往用于l2vpn的备用邻居提供商边缘设备。

在一些示例中,一种系统包括:层3(l3)网络的备用邻居提供商边缘设备,其被配置为提供用于l3网络的层2(l2)虚拟专用网络(l2vpn),l3网络用于在被连接到l3网络的两个或更多个l2网络之间交换l2分组数据单元(pdu);两个或更多个l2网络中的本地l2网络的客户边缘设备,客户边缘设备被配置有与到用于l2vpn的主邻居提供商边缘设备的主附接电路以及与到备用邻居提供商边缘设备的备用附接电路的多宿主连通,其中客户边缘设备被配置为响应于对指示多播组的多播加入消息的监听来生成并且经由备用附接电路向备用邻居提供商边缘设备发送控制平面消息,其中控制平面消息去往备用邻居提供商边缘设备,其中备用邻居提供商边缘设备被配置为经由引用l2vpn的备用附接电路并且至少基于控制平面消息向客户边缘设备转发从l3网络接收的用于多播组的多播业务。

在一些示例中,一种客户边缘设备包括被可操作地耦合到存储器的处理电路,存储器包括指令,指令用于引起处理电路:接收用于层3(l3)网络的、针对用于本地层2(l2)网络与l2虚拟专用网络(l2vpn)的多宿主连通的配置数据,l3网络用于在包括本地l2网络的、被连接到l3网络的两个或更多个l2网络之间交换l2分组数据单元(pdu),其中用于多宿主连通的配置数据向客户边缘设备配置到用于l2vpn的主邻居提供商边缘设备的主附接电路以及配置到用于l2vpn的备用邻居提供商边缘设备的备用附接电路;并且响应于监听到指示多播组的多播加入消息,经由备用附接电路向用于l2vpn的备用邻居提供商边缘设备发送控制平面消息,其中控制平面消息去往用于l2vpn的备用邻居提供商边缘设备。

在附图和下面的描述中阐述了这些技术的一个或多个示例的细节。技术的其他特征、目的和优点将从说明书和附图以及权利要求中很清楚。

附图说明

图1至图2是示出根据本文中描述的技术的示例网络系统的框图;

图3是示出根据本公开内容中描述的技术的示例提供商边缘设备的框图;

图4是示出根据本公开内容中描述的技术的示例客户边缘设备的框图;

图5是示出根据本文中描述的技术的多播列表数据结构的框图;以及

图6是示出根据本文中描述的技术的网络系统的示例操作模式的流程图。

在整个说明书和附图中,相同的附图标记表示相同的元素。

具体实施方式

图1至图2是示出根据本文中描述的技术的示例网络系统的框图。如图1至图2所示,网络系统10包括网络12和客户网络14a至14b(“客户网络14”)。网络12可以表示由服务提供商拥有和操作以互连多个边缘网络(诸如客户网络14)的层3(l3)网络。因此,网络12在本文中可以被称为“服务提供商(sp)网络”,或者备选地被称为“中间网络”或“核心网络”,因为网络12用作核心以互连服务于客户网络14的接入网络。

这些服务提供商可以租用网络12的部分以提供交换(或桥接)服务,这些交换服务通过网络12向客户网络14提供l2连接,客户网络14可以租用这些部分或购买由网络12提供的服务以创建互连各种层2(l2)客户网络14的层2虚拟专用网络(l2vpn)。在一些示例中,l2vpn是多点对多点l2服务,诸如虚拟专用局域网(lan)服务(vpls)、以太网专用vpn(epvpn)、以太网虚拟专用lan(evplan)或其他多点对多点l2服务。

在一些示例中,l2vpn是点对点l2服务或l2电路,诸如多协议标签交换(mpls)l2电路、通用路由封装(gre)l2电路、伪线、以太网专用线路(epl)、以太网虚拟专用线路(evpl)、以太网有线服务(ews)、以太网中继服务(ers)、或在网络12中配置的用于使用隧道协议来提供l2连接的其他l2电路。l2电路是使用租用线路、层2连接或使用mpls或服务提供商网络12上的另一隧道技术来传输业务的点对点l2连接。l2电路是用于在服务提供商网络12上的两个客户边缘(ce)设备18之间递送业务的虚拟连接。对之后是数字的层的引用可以指代开放系统互连(osi)模型或传输控制协议(tcp)/因特网协议(ip)模型的特定层。

在所示的实例中,网络12提供l2vpn13以经由服务提供商网络12将客户网络14彼此透明地互连。网络12可以通过透明地模拟这些各种客户网络14之间的直接连接来将l2vpn13提供给客户网络14,从而使得从客户网络14的角度看,每个客户网络14看起来在层2处直接彼此连接。此外,不同的l2vpn实例可以被配置在网络12内的pe16中并且由其实现以用于服务提供商的不同顾客。

客户网络14每个可以表示由大型实体(诸如大学、公司、商业或其他设施或企业)拥有和操作的网络。在一些情况中,单个大型实体可以拥有并且操作两个或更多个客户网络14。然后,实体可以与服务提供商网络12签约(contract)以提供由服务提供商网络12(诸如l2vpn13)提供的服务,以便如上所述透明地互连这些网络14。

每个客户网络14可以根据各种网络协议进行操作,诸如与以太网协议相关的802.3x系列网络协议中的任何协议、802.1x系列无线网络协议中的任何协议、因特网协议(ip)协议和tcp。此外,一个或多个客户网络14可以包括虚拟专用网络(vpn)、大区域网络(lan)或广域网(wan)。客户网络14b包括请求和接收多播业务的主机计算设备19。客户网络14包括服务于多播业务的多播服务器11。多播服务器11可以表示真实或虚拟服务器。在多播业务中递送的内容可以包括例如视频、音频、数据、语音或其任何组合。

虽然为了便于说明的目的而在图1至图2中没有示出,但是每个客户网络14还可以包括各种各样的互连的计算设备或节点,诸如网络服务器、打印服务器、应用服务器、数据服务器、工作站、台式计算机、膝上型计算机、蜂窝或其他移动设备、个人数字助理(pda)和经由无线和/或有线连接而被连接到计算机网络的任何其他设备线缆。

网络12包括驻留在服务提供商网络12的边缘处的多个提供商边缘(pe)设备16a至16c(“pe16”)。虽然本文中主要关于特定网络设备(即,路由器)进行讨论,但是pe16各自可以表示与诸如客户网络14和服务提供商网络12的其他设备中的一个设备等网络接口连接以路由、交换、桥接或以其他方式转发去往或源自网络的网络业务的任何网络设备。例如,在某些情况中,pe16每个可以表示交换机、集线器、桥接设备(例如,以太网桥)或任何其他l2网络设备中的一个或多个,并且在一些情况中可以表示能够执行l2功能的l3网络设备。

每个客户网络14还包括驻留在客户网络14的边缘处的多个客户边缘(ce)路由器18a至18b(“ce18”)中相应的一个路由器。与pe16相似,尽管本文中针对特定网络设备(即,路由器)进行讨论,但是ce18每个可以表示与网络(诸如服务提供商网络12和客户网络14的其他设备)接口连接以桥接、交换或以其他方式转发去往或来自网络的网络业务的任何网络设备。例如,在某些情况中,ce18每个可以表示交换机、集线器、桥接设备(例如,以太网桥)或任何其他l2网络设备中的一个或多个,并且在一些情况中可以表示能够执行l2功能的l3网络设备。

pe16a经由附接电路20耦合到客户网络14a的ce18a。多宿主pe16b至16c为ce18b(和客户网络14b)提供多宿主连通以访问vpn13。附接电路23a耦合ce18b和pe16b。附接电路23b耦合ce18b和pe16c。ac23a、23b和20中的每个是物理或虚拟l2电路,诸如以太网伪线、帧中继数据链路连接、异步传输模式(atm)虚拟路径标识符(vpi)/虚拟信道标识符(vci)、以太网端口、vlan、物理接口上的点对点协议(ppp)连接、来自l2隧道协议(l2tp)隧道的ppp会话、或多协议标签交换(mpls)标签交换路径(lsp)、通用路由封装(gre)隧道、或具有桥接封装的另一接口。伪线是用于承载以太网或802.3协议数据单元(pdu)以提供模拟的以太网服务的l2虚拟电路。以太网或802.3pdu封装在伪线内以提供点对点以太网服务。伪线服务模拟在2005年3月的requestforcomments:3985,networkworkinggroup(bryantandpate,ed.)的“pseudowireemulationedge-to-edge(pwe3)architecture”中被更加详细地描述,其通过引用被并入如同在本文中完全阐述一样。

pe16可以提供用于将ce18彼此透明地互连的一个或多个服务,诸如虚拟专用网络13。继续上述示例,大型实体可以拥有并且操作每个客户网络14并且从服务提供商购买vpls或层2电路以经由服务提供商网络12将这些ce18中的每个透明地彼此互连。在这种情况中,pe16a可以根据虚拟专用网络13模拟到ce18a的直接连接,从而使得ce18a可以像直接连接到ce18b一样操作。同样,pe16b和pe16c每个可以根据虚拟专用网络13模拟到ce18b的直接连接,从而使得ce18b可以像直接连接到ce18a一样操作。在一些情况中,一个或多个ce18可以包括相关联的客户网络14和连接的pe16之间的l2桥,或者以其他方式作为该l2桥来操作。在这样的情况中,vpn13从桥接ce18“获知”客户网络14内的附加设备的多个源l2地址。除了或代替ce18的获知的源l2地址,本文中描述的技术可以关于这些多个源l2地址来应用。

pe16通过使用分别通过服务提供商网络12将pe16a耦合到pe16b、16c的服务链路22a至22b传输l2pdu来模拟l2连接。l2pdu可以传输多播业务。对于vpls式vpn13,服务链路22可以提供“全网状(fullmesh)”,因为vpls提供一组ce18中的每个ce18与相关联的客户网络14之间的逻辑点对点连接。服务链路22在图1至2中示出为虚线以反映这些服务链路可能不是通过单个物理链路将pe16彼此被直接耦合,而是可以通过形成每个服务链路22的一个或多个物理链路和中间网络设备来传送pdu。服务链路22可以是双向的或单向的以适应任何特定形式的互连。每个服务链路22可以被实现为伪线。

每个服务链路22可以在连接相应服务链路端点pe16的分组交换网络(psn)隧道上操作。例如,被封装用于在服务分组中沿着服务链路22a传输的客户l2业务可以被进一步封装用于在建立在pe16a、16b之间建立的传输隧道中进行传输。尽管在本文档中通常描述为lsp,但是传输隧道也可以包括例如gre、l2tp和ipsec隧道。特定psn隧道可以为不同vpn实例的多个服务链路(包括任何服务链路22)递送服务分组。

服务提供商网络12的管理员可以配置和/或pe16可以协作地为vpls实例建立服务链路22,并且一旦建立,pe16开始使用服务链路22模拟客户网络14之间的直接连接,从而实现在客户边缘终止的模拟服务。每个服务链路22端点的每个pe16被配置有标识数据平面中的vpls实例的接收的服务分组的特定伪线标签、以及pe将要附接到服务业务以向接收pe的数据平面指定vpn13实例的服务业务的特定伪线标签。例如,pe16a可以被配置为附接伪线标签“100”以通过psn隧道向pe16b指定服务链路22a业务。pe16a还可以被配置有在附接到在psn隧道中从pe16b接收的服务分组时将业务标识为服务链路22a业务的伪线标签“200”。

ce18经由ac20、23将l2业务转发给相应的pe16,pe16将适当的伪线标签附接到l2业务以生成业务分组并且根据vpn13的所获知的l2桥接信息经由所选择的服务链路22通过服务提供商网络12转发业务分组。接收pe16使用附接的伪线标签来标识vpn13,并且根据vpn13的所获知的l2桥接信息,经由ac20、23将l2业务透明地递送给另一客户网络14。以这种方式,大型实体可以使用服务提供商网络12的vpn13来互连不同并且通常在地理上分离的客户网络14。在一些情况中,网络系统10可以包括附加的客户网络14和相应的ce18,服务提供商网络12提供该ce18的一个或多个vpn实例以便以各种组合来互连ce18。

在一些情况中,服务提供商网络12实现分层vpls或h-vpls,以消除连接每对pe16对全网状服务链路的需求。在这些情况中,特定伪线可以携带由任何数目的pe路由器交换的pdu。再次,在这样的情况中,ce18a至18b可以表示用于服务于例如多租户建筑物或数据中心中的一个或多个客户的多租户单元(mtu)。与租户相关联的客户网络14经由附接电路20、23中的一个连接到相关联的服务mtu(由ce18表示)。因此,mtu提供与由pe16和ce18提供的功能相似的功能,因为mtu经由附接电路接收l2pdu并且根据本文中表示为vpn13的分层vpls将l2pdu智能地切换到远程客户网络。

网络管理系统8经由网络系统10与pe16通信以使用设备管理协议来管理和监督pe16。一个示例性设备协议是简单网络管理协议(snmp),snmp允许网络管理系统8遍历和修改可以将配置和性能数据存储在每个pe16内的管理信息库(mib)。

冗余附接电路23b是多宿主pe16b、16c(特别是pe16c)与ce18b之间的备用连接。冗余附接电路23b可以通过提供对附接电路23a的故障的适当恢复来提高可靠性。ce18b可以被配置有冗余附接电路23配置,从而使得附接电路23a是单个有源附接电路(例如,有源伪线)。例如,pe16a可以从网络管理系统或者从使用ce18b的管理接口(诸如图形用户界面或命令行接口)的管理员/操作员接收这样的配置数据。ce18b被配置有指定pe16b作为主邻居的配置数据,pe16b被ce18b给予偏好,并且ce18b使用与pe16b的附接电路23a来进行客户业务。对于标签分发协议(ldp)信令,pe16b和ce18b交换输入和输出业务的标签。在一些情况中,对于备用附接电路23b,ce18b接受来自备用邻居pe16c的ldp标签通告,但ce18b不向pe16c发送标签通告,这使得附接电路23b处于未完成状态。在这样的情况中,只有当主邻居发生故障时,利用到pe16c的标签通告的、通过ce18b与备用邻居pe16c的附接电路23b才完成。然而,ce18b可以使用来自pe16c的标签通告经由附接电路23b将业务发送到pe16c。ce18b可以确定是否要从主附接电路23a切换到备用附接电路23b。

pe16a可以被配置有指示pe16b和16c是vpn13的ce18b连接的主和备用邻居的配置数据。例如,pe16a可以从nms8或者从使用pe16a的管理接口(诸如图形用户界面或命令行接口)的管理员/操作员接收这样的配置数据。pe16a因此可以将l2pdu复制到pe16b和16c两者以启用正常切换。也就是说,至少在一些示例中,pe16a在任何时间都不具有指定pe16b和16c中的哪个是主邻居的信息,并且因此经由相应的服务链路22a和22b将pdu业务从vpn13的ce18a转发给pe16b和16c两者,以实现冗余和正常切换。

主机19输出多播加入消息24以请求接收多播服务器11输出多播业务17的用于多播组的多播业务17。多播加入消息24包括指定多播组的多播地址。多播加入消息24可以表示因特网组管理协议(igmp)报告消息。例如,igmp可以是igmpv1、igmpv2或igmpv3。包括实现vpn13的pe16的网络系统10将多播加入消息24转发给包括主机19的l2网络的多播路由器,主机19在图1至2的示例中经由包括实现vpn13的pe16的路径可到达。路由器7、pe16a和ce18a中的任何一个都可以表示主机19的多播路由器。然而,主机19的多播路由器是经由vpn13可到达的远程客户网络的一部分。因此,pe16b和pe16c都不是主机19的多播路由器。多播路由器可以被称为igmp路由器。多播加入消息24可以是未经请求的或者响应于针对多播组的感兴趣的接收器的一般查询。

为了减少服务提供商网络13中的多播业务的量,作为vpn13和客户网络14的l2交换机操作的pe16监听多播加入和离开消息以标识多播组的感兴趣的和不再感兴趣的接收器,并且相应地转发多播组的相关联的多播业务。由l2交换设备进行的对多播加入和离开消息的监听可以被称为igmp监听。

在图1至2的示例中,pe16b监听由主机19发出的多播加入消息24。pe16b处理多播加入消息24以确定附接电路23a包括该多播组的感兴趣的接收器。pe16b因此生成多播状态26a以引起pe16b在附接电路23a上转发在vpn13的服务链路22a上接收的多播业务17。pe16a还监听从pe16b转发的多播加入消息24。因此,pe16a经由服务链路22a将输出多播业务17复制到多宿主客户网络14b的主pe16b,并且还经由服务链路22b将输出多播业务17复制到多宿主客户网络14b备用pe16c。然而,因为pe16c是多宿主客户网络14b的备用邻居,所以pe16c不经由备用附接电路23b将经由服务链路22b接收的多播业务17转发给客户网络14b。换言之,pe16c阻止经由服务链路22b接收的vpn13的l2pdu在附接电路23b上转发。

对于用于冗余的单个主动附接电路配置,如在网络系统10的示例中,ce18b仅将多播加入消息24转发给活动邻居pe16b而不转发给备用邻居pe16c。pe16c因此不能监听多播加入消息24并且基于多播加入消息24创建多播状态以引起pe16c在发生到备用附接电路23b和备用邻居16c的切换的情况中在附接电路23b上转发在vpn的服务链路22b上接收的多播业务17,并且备用邻居16c完成附接电路23b并且承担多宿主客户网络14b的主邻居的角色。在切换之后,主机19每个多播刷新操作(例如,igmp报告刷新)输出新的多播加入消息24,由此主机19周期性地刷新其在多播组中的成员资格。然而,因为新的多播加入消息24的时间在切换的时间之后,所以由pe16c在中间时段期间接收的任何多播业务17不经由附接电路23b转发,并且因此不被主机19接收。

根据本公开内容中描述的技术,ce18b监听由客户网络14b的主机19发出的多播加入消息24。响应于从多播加入消息24中确定主机19正在寻求加入多播组以从多播源接收多播业务,ce18b生成并且在备用附接电路23b上向备用邻居pe16c发送控制平面消息25。控制平面消息25包括多播组的指示,并且去往pe16c。例如,控制平面消息25可以包括具有作为pe16c的ip地址的ip目的地地址的ip报头。如下面进一步详细描述的,控制平面消息25可以不是igmp消息。而是,控制平面消息25可以是包括多播组的指示的ldp信令消息。

备用pe16b接收控制平面消息25并且响应地生成和存储用于多播组的多播转发状态26b,其中当pe16b承担多宿主客户网络14b的主邻居的角色并且完成或解除阻止附接电路23b时,多播转发状态26b指示pe16b转发多播组的接收的多播业务17。

在主附接电路23a发生故障的情况中,如图1所示,备用pe16b承担多宿主客户网络14b的主邻居pe16c的角色,如图2所示,并且使用先前存储的多播转发状态26b来快速切换以开始经由附接电路23b(现在是主附接电路)向ce18b转发用于多播组的多播业务17以转发给主机19。

本公开内容的技术可以提供一个或多个优点。例如,通过使用ce18b和pe16c之间的显式控制平面消息前摄地向备用pe16c提供经由附接电路23b可到达的多播组的感兴趣的接收者的指示,ce18b和备用pe16c可以在主附接电路23a发生故障的情况中更快速地承担其从pe16c向ce18b转发多播业务17的任务。结果,否则在等待多播刷新的同时可能会关于多播业务17而出现的主机19的黑洞化的时间可以减少,因为pe16c可以使用多播状态26b开始转发多播业务17而无需等待新的多播加入消息。此外,明确的控制平面消息传送技术可以提供优于其中ce18b经由备用附接电路23b向备用pe16c发送冗余多播加入消息24的替代方案的优点。例如,由ce18生成和发送显式控制平面消息25可以减少从ce18b到备用pe16c的后续冗余多播信令业务。作为另一示例,因为备用pe16c接收显式控制平面消息25,所以pe16c可以避免不必要地监听数据平面中的igmp业务。

图3是示出根据本公开内容中描述的技术的示例提供商边缘设备50(“pe50”)的框图。为了说明的目的,pe50可以在图1至2的示例性网络系统10的上下文中描述,并且特别地可以表示pe16b。此外,尽管关于特定网络设备(例如,路由器)进行描述,但是这些技术可以由可以作为层3网络的提供商边缘设备操作的任何网络设备来实现。

pe50包括控制单元52和经由内部链路62a至62n耦合到控制单元52的一个或多个接口卡56a至56n(“ifc56”)。控制单元52可以包括一个或多个硬件处理器71,包括用于执行存储到计算机可读存储介质(图3中未示出)的软件指令(诸如用于定义软件或计算机程序的那些软件指令)的处理电路,计算机可读存储介质诸如非暂态计算机可读介质,包括存储设备(例如,磁盘驱动器或光驱)或存储器(诸如闪存、随机存取存储器或ram)或任何其他类型的易失性或非易失性存储器,计算机可读存储介质存储引起一个或多个处理器执行本文中描述的技术的指令。备选地或附加地,控制单元52可以包括用于执行本文中描述的技术的专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(asic)、一个或多个专用特殊处理器(assp)、一个或多个现场可编程门阵列(fpga)、或者专用硬件的前述示例中的一个或多个的任何组合。

在这个示例中,控制单元52被分成两个逻辑或物理“平面”以包括第一控制或路由平面54a和第二数据或转发平面54b。也就是说,控制单元52在逻辑上(例如,作为在同一组硬件组件上执行的单独的软件实例)或在物理上(例如,作为静态地以硬件实现该功能或动态地执行软件或计算机程序以实现该功能的单独的物理专用硬件组件)实现两个单独的功能(例如,路由和转发功能)。

控制单元52的控制平面54a执行pe50的路由和控制功能。在这方面,控制平面54a表示实现可以用来确定存储在路由信息库68(“rib68”)中的路由信息的路由协议(图3中未示出)的控制单元52的硬件或硬件和软件的组合。rib68可以包括定义诸如服务提供商网络12等网络的拓扑的信息。控制平面54a的路由过程64可以解析由rib68中的路由信息定义的拓扑以选择或确定通过网络的一个或多个路线。路由过程64然后可以用这些路线的表示来更新数据平面54b,其中数据平面54b将这些路线存储为可以表示转发信息库的转发信息92。

转发或数据平面54b表示根据转发信息92转发网络业务的控制单元52的硬件或硬件和软件的组合。数据平面54b提供由接口卡56经由入站链路58a至58n接收的网络业务的转发。vpls层80、伪线层88(示出为“pw层88”)和数据平面54b的隧道层90处理并且转发与其中pe50根据转发信息92、mac表82和pw表84来参与的l2vpn实例相关联的接收的网络业务。尽管被描述为伪线层,但是伪线层88可以实现本公开内容中描述的其他形式的服务链路。vpn层80、pw层88和隧道层90中的每个表示用于实现层的相应功能的数据平面54b的组件。例如,vpn层80表示用于实现pe50参与的vpn实例(诸如图1至2的vpn13)的l2交换和其他vpn相关功能的硬件或硬件和软件的组合。

隧道层90提供隧道服务以通过分组交换网络向参与vpn实例的附加路由器递送一个或多个伪线。单个隧道可以携带一个或多个伪线。控制平面54a的路由过程64可以执行vpn的伪线下的隧道的建立、维护和拆除信令。由隧道层90实现的隧道可以包括lsp以及gre、l2tp和ipsec隧道。隧道层90从伪线层88接收出站伪线业务和指定的隧道标识符,并且根据指定的隧道输出业务。隧道层90向pw层88递送经由隧道接收的伪线分组。

伪线层88基于分组的相应伪线标签来选择要用于处理所接收的伪线分组的vpn实例。也就是说,在从隧道层90接收到伪线标记的分组时,pw层88从pdu剥离伪线标签并且选择与由标签标识的伪线相关联的vpn实例。换言之,pw层88根据适当的vpn实例使用附接的伪线标签来解复用pdu以供vpn层80处理。伪线层88另外从vpn层80接收出站pdu和伪线身份,将伪线身份映射到伪线的出站伪线标签,将出站伪线标签附接到pdu,并且向隧道层90发送伪线业务以在承载伪线的分组交换网络隧道中输出。

数据平面54b的vpn层80通过作为虚拟交换机或虚拟桥接器操作以通过提供商网络互连多个客户网络、或者连接h-vpls实例的辐条(spoke)和集线器链路来实现pe50参与的一个或多个vpn实例。vpn层80执行l2获知。也就是说,vpn层80从入站pw和入站附接电路接口“获知”vpn的客户设备l2地址(在下文中被称为“mac地址”),并且将这些客户mac地址与vpn的相应的出站pw和出站附接电路接口相关联。对于每个vpn,vpn层80包括存储vpn的伪线标识的相应的一个pw表84、以及将获知的l2地址映射到ifc56的出站接口、到包括在vpn的相应pw表中的伪线身份、或者到表示h-vpls实例的辐条的伪线身份的相应的一个mac表82。

控制平面54a包括网络管理系统8(示出为“nms8”)或者在一些情况中使用命令行或图形用户界面的管理员用来设置配置数据69以定义pe50的操作并且更具体地定义路由过程64的操作的管理接口66(示出为“管理接口66”)。管理接口66可以表示由处理器71执行的过程。使用管理接口66设置的配置数据69可以指定用于使用服务链路(例如,伪线)将客户网络互连到单个以太网域中的l2vpn。例如,网络管理系统8可以将pe50配置为特定vpn实例(诸如图1至2的vpn13)中的参与者。路由过程64可以执行自动发现或其他技术以确定参与vpn13的附加pe路由器或mtu,并且另外执行信令以在pe50与每个附加pe路由器(诸如图1至2的pe16a)之间建立伪线。在h-vpls实例的情况中,路由过程64可以执行信令以与一个或多个其他mtu和/或路由器建立一个或多个辐条和/或一个或多个集线器链路。路由过程64可以执行基于标签分发协议(ldp)和/或基于边界网关协议(bgp)的技术以执行自动发现和信令。

配置数据69可以将pe50指定为多宿主客户网络的备用邻居pe。配置数据69可以定义用于多宿主客户网络的附接电路,并且路由过程64可以创建附接电路的虚拟接口以经由附接电路发送和接收l2pdu。l2pdu可以传输多播业务。

根据本公开内容的技术,接口卡56检测控制平面消息79。由于控制平面消息79去往pe50的网络地址,因此数据平面54b引起pe设备50将控制平面消息79以及pe50经由其接收到控制平面消息79的附接电路的pe50的虚拟接口的指示存储到主存储器。附接电路与在配置数据69中配置的l2vpn相关联。例如,附接电路可以是与图1至2的vpn13相关联的附接电路23b。路由过程64从主机存储器获取控制平面消息79和指示以进行处理。控制平面消息79可以是ldp消息,在这种情况中,路由过程64执行根据本文中的技术而扩展的ldp协议70,以实现控制平面消息79的解释,以处理控制平面消息79。控制平面消息79可以表示图1至2的控制平面消息25的示例实例。

控制平面消息79包括pe50要经由相应的附接电路为l2vpn转发的相应多播组的一个或多个多播地址的列表,pe50经由该相应的附接电路接收到控制平面消息79、相关联的多播业务。路由过程64提取一个或多个多播地址并且基于一个或多个多播地址生成多播状态73。路由过程64从多播状态73生成转发信息,并且将生成的转发信息作为多播状态73'推送到数据平面54b。多播状态73'将一个或多个多播地址中的每个映射到用于l2vpn的附接电路的虚拟接口。

路由过程64还可以经由附接电路接收pe50将要承担多宿主客户网络的活动邻居角色的指示。该指示可以被包括在控制平面消息79中或者在从多宿主客户网络到pe50的单独消息中。例如,控制平面消息79可以是用于完成附接电路并且使得pe50能够将转发等价类(fec)业务映射到包括在ldp映射消息中的标签并且经由附接电路输出用标签标记的fec业务的ldp标签映射消息。

作为pe50将要承担活动邻居角色的指示的结果,路由过程64可以解除阻塞或完成附接电路,从而使得pe50经由附接电路开始向多宿主的客户网络转发vpn的单播和多播业务。

接口卡56接收一个或多个多播地址的多播业务。实现数据平面56b的一个或多个硬件处理器(在下文中被称为数据平面56b)应用包括多播状态73'的转发信息92以将由多播业务指示的多播地址映射到附接电路的虚拟接口。如果多播状态73'指示多播分组的多播地址,则例如数据平面56b因此经由附接电路将多播分组转发给多宿主客户网络。数据平面56b将多播分组递送到接口卡56中的一个接口卡,该接口卡经由出站链路60中的一个出站链路传输多播分组。

图4是示出根据本公开内容中描述的技术的示例客户边缘设备150(“ce150”)的框图。为了说明的目的,ce150下面可以在图1至2的示例性网络系统10的上下文中描述,并且特别地可以表示ce18b。而且,虽然关于特定网络设备(例如,路由器)进行描述,但是这些技术可以由可以作为客户网络的客户边缘设备操作的任何网络设备来实现。

pe150包括控制单元152和经由内部链路162a至162n耦合到控制单元152的一个或多个接口卡156a至156n(“ifc156”)。控制单元152可以包括一个或多个硬件处理器171,包括用于执行存储到计算机可读存储介质(图4中未示出)的软件指令(诸如用于定义软件或计算机程序的软件指令)的处理电路,计算机可读存储介质诸如非暂态计算机可读介质,包括存储设备(例如,磁盘驱动器或光驱)或存储器(诸如闪存、随机存取存储器或ram)或任何其他类型的易失性或非易失性存储器,计算机可读存储介质存储引起一个或多个处理器执行本文中描述的技术的指令。备选地或附加地,控制单元52可以包括用于执行本文中描述的技术的专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(asic)、一个或多个专用特殊处理器(assp)、一个或多个现场可编程门阵列(fpga)、或者专用硬件的前述示例中的一个或多个的任何组合。

在这个示例中,控制单元152被分成两个逻辑或物理“平面”以包括第一控制或路由平面154a和第二数据或转发平面154b。也就是说,控制单元152在逻辑上(例如,作为在同一组硬件组件上执行的单独的软件实例)或在物理上(例如,作为静态地以硬件实现该功能或动态执行软件或计算机程序以实现该功能的单独的物理专用硬件组件)实现两个单独的功能(例如,路由和转发功能)。

控制单元152的控制平面154a执行ce150的路由和控制功能。在这方面,控制平面154a表示实现可以用来确定存储在路由信息库168(“rib168”)中的路由信息的路由协议(在图4中未示出)的控制单元152的硬件或硬件和软件的组合。rib168可以包括定义诸如客户网络14b等网络的拓扑结构的信息。控制平面154a的路由过程164可以解析由rib168中的路由信息定义的拓扑以选择或确定通过网络的一个或多个路线。路由过程164然后可以用这些路线的表示来更新数据平面154b,其中数据平面154b将这些路线存储为可以表示转发信息库的转发信息192。

转发或数据平面154b表示根据转发信息192转发网络业务的控制单元152的硬件或硬件和软件的组合。数据平面154b提供由接口卡156经由入站链路158a至158n接收的网络业务的转发。数据平面154b根据转发信息192处理和转发接收的网络业务。数据平面154b包括获知用于l2交换的mac地址接口绑定的mac表182。

控制平面154a包括网络管理系统(图4中未示出)或者在一些情况中使用命令行或图形用户界面的管理员用来设置配置数据169以定义ce150的操作并且更具体地定义路由过程164的操作的管理接口166(示出为“管理接口166”)。管理接口166可以表示由处理器171执行的过程。使用管理接口166设置的配置数据169可以指定ce150要被多宿主到具有被配置用于ce150的冗余附接电路的vpn。配置数据169可以指定经由附接电路中的一个附接电路可到达的pe是主pe并且通过另一附接电路可到达的pe是备用pe。

配置数据169可以定义用于具有主pe和备用pe的vpn的多宿主的附接电路,并且路由过程164可以为附接电路创建用于经由附接电路发送和接收l2pdu的虚拟接口。l2pdu可以传输多播业务。路由过程164可以执行自动发现和信令以在ce150与多宿主pe路由器(诸如图1至2的pe16b、16c)之间建立附接电路。在h-vpls实例的情况中,路由过程164可以执行信令以与一个或多个其他mtu和/或路由器建立一个或多个辐条和/或一个或多个集线器链路。路由过程164可以执行基于标签分发协议(ldp)和/或基于边界网关协议(bgp)的技术以执行自动发现和信令。

接口卡156检测指定多播组的多播地址的多播加入消息181。多播加入消息181可以表示图1至2的多播加入消息24的示例。多播加入消息181不是去往ce150的网络地址,而是数据平面154b执行多播(例如,igmp)监听以引起ce设备150将多播加入消息181存储到主机存储器。数据平面154b还将转发信息192应用于多播加入消息181以确定多播加入消息181的目的地经由vpn的附接电路可到达。因此,数据平面154b为主动附接电路(例如,附接电路23a)应用适当的封装(例如,pw标签和隧道封装),并且将封装的多点传送加入消息181递送到接口卡156中的一个接口卡,该接口卡156经由主附接电路经由出站链路160中的一个出站链路朝向主多宿主pe传输封装的多点传送加入消息181。

路由过程164还处理多播加入消息181以获取在其中指定的多播地址。路由过程164可以执行诸如igmp等多播协议以解释多播加入消息181以获取多播地址。路由过程164可以生成多播状态以引起ce设备150在客户网络上转发具有多播地址的多播业务以供发出多播加入请求的主机接收。

根据所描述的技术,路由过程164生成控制平面消息183以向vpn的备用多宿主pe公开多播地址。控制平面消息183可以表示图1至2的控制平面消息25的示例实例、以及图3的控制平面消息79的示例实例。

控制平面消息183去往vpn的备用多宿主pe。因此,数据平面154b为备用附接电路(例如,附接电路23b)应用适当的封装(例如,pw标签和隧道封装),并且将封装的控制平面消息183递送到接口卡156中的一个接口卡,该接口卡156经由备用附接电路经由出站链路160中的一个出站链路朝向备用多宿主pe传输封装的控制平面消息183。

图5是示出根据本文中描述的技术的多播列表数据结构的框图。多播列表200是包括多播组的一个或多个多播地址204的列表的数据结构。多播列表200包括指示多播列表包括多播地址列表的类型字段201;指示多播地址的地址族(例如,ipv4或ipv6)的地址族字段202,其中地址族由因特网号码分配机构指定;指示以八位字节为单位的多播列表200的长度的长度字段203;以及一个或多个多播地址204的列表。多播列表200可以被编码为ldp类型长度值消息,其中值是一个或多个多播地址204的列表。

ce18b可以经由备用附接电路23b向pe16c发送包括多播列表200的控制平面消息25,以引起pe16c生成和存储多播状态26b,用于向ce18b分发与一个或多个多播地址204相关联的多播业务。pe16c处理包括多播列表200的控制平面消息25以从字段204中提取一个或多个多播地址并且生成和存储多播状态26b。多播列表200可以被包括在由ce18b发送到pe16c的标签分发协议标签映射消息(根据本公开内容的技术被扩展)中以向pe16c通告附接电路23b的fec标签绑定。关于ldp的更多细节参见2007年10月的internetengineeringtaskforcenetworkworkinggroup的由l.adersson编辑的“ldpspecification”,其全部内容通过引用并入本文(下文中被称为“ldp规范”)。在一些情况中,多播列表200或一个或多个多播组的其他指示可以被包括在边界网关协议消息中,诸如bgpupdate消息。例如,可以包括多播列表200作为包括在作为控制平面消息25的bgpupdate消息中的path属性或mp_reach_nrli。

在一些示例中,控制平面消息25可以包括可以从“ldp规范”扩展以包括多播列表200作为可选参数的ldp标签映射消息。在一些示例中,根据ldp规范,控制平面消息25可以包括ldp地址消息,该ldp地址消息包括代替地址列表tlv的多播列表200。在这样的情况中,多播列表200可以是多播地址列表tlv。在一些示例中,控制平面消息25可以包括类似于ldp地址消息但具有不同类型的ldp多播地址消息,并且还包括多播列表200而不是地址列表tlv。响应于接收到多播留言消息(例如,指示主机19不再希望接收用于多播组的多播业务的igmp报告),ce18b可以发送撤回多播组的多播地址的附加控制平面消息。附加控制平面消息可以是包括一个或多个多播地址的列表(包括多播组的多播地址)的ldp多播地址撤销消息。

基于包括多播列表200的控制平面消息25内的类型字段201或其他指示,pe16c处理多播列表200以从字段204中提取一个或多个多播地址并且生成和存储多播状态26b,如本文中所述。

图6是示出根据本文中描述的技术的网络系统的示例操作模式的流程图。操作模式300关于包括图1至2的客户边缘设备18b(“客户边缘”)和提供商边缘设备16c(“供应商边缘”)的网络系统10来描述。pe16c从管理员或代理(诸如网络管理系统)接收定义l2vpn13的配置数据(302)。ce18b还接收分别定义到主邻居pe16b和备用邻居16c的冗余附接电路23a至23b的配置数据(304)。ce18b可以从可以不同于向pe16c提供配置数据的管理实体的管理员或代理(诸如网络管理系统)接收配置数据。响应于在304接收到配置数据,ce18b可以经由附接电路23b发送能力请求消息,该能力请求消息请求关于备用邻居pe16c是否具有处理包括多播地址列表的控制平面消息(诸如控制平面消息25)的能力的指示(306)。如果pe16c不具有该能力(308的“否”分支),则操作模式300结束。如果pe16c具有该能力(308的“是”分支),则pe18b经由附接电路23b发送包括pe16c具有该能力的指示的能力响应消息(310)。能力请求和响应消息可以是ldp消息,诸如ldp通知消息。例如,ldp通知消息可以是具有分别用于指示能力请求和能力响应的可选参数的ldphello消息。

ce18b监听指定与多播组相关联的多播地址并且指示多播加入消息24的发出者是多播组的感兴趣的接收器的igmp报告或其他多播加入消息24(312)。ce18b响应地生成并且经由备用附接电路23b向pe16c发送指定多播地址的控制平面消息25(314)。如果客户网络14b具有多个多播组的至少一个感兴趣的接收器,则ce18b可以生成和发送包括每个多播组的相应多播地址的控制平面消息25。pe16c接收控制平面消息25,并且响应地基于在控制平面消息25中指定的多播组来生成可用于经由附接电路23b向ce18b转发与多播组相关联的多播业务的多播状态数据26b(316)。

ce18b随后检测主附接电路23a的故障,例如由于将ce18b耦合到pe16b的通信链路和/或网络的故障或者由于活动邻居pe16b的故障而导致的故障,并且执行切换以引起pe16c承担多宿主ce18b的活动邻居的角色(318)。作为多宿主ce18b的活动邻居,pe16c解锁或以其他方式开始向ce18b转发经由附接电路23b从vpn13的网络12接收的l2业务(包括多播业务)。pe16c在vpn13上(例如,在服务链路22b上)从pe16a接收与多播地址相关联的多播业务(320),并且pe16c根据多播状态数据26b经由附接电路23b向ce18b转发多播业务(322)。例如,pe16c将多播状态数据26b应用于多播业务,并且使用在pe16c中配置的附接电路23b的接口来转发多播业务。

本文中描述的技术可以用硬件、软件、固件或其任何组合来实现。被描述为模块、单元或组件的各种特征可以一起在集成逻辑器件中实现,或者分离地实现为离散但可互操作的逻辑器件或其他硬件设备。在一些情况中,电子电路的各种特征可以被实现为一个或多个集成电路装置,诸如集成电路芯片或芯片组。

如果以硬件实现,则本公开内容可以涉及诸如处理器等装置或者诸如集成电路芯片或芯片组等集成电路装置。备选地或附加地,如果以软件或固件实现,则这些技术可以至少部分通过包括指令的计算机可读数据存储介质来实现,这些指令在被执行时引起处理器执行上述方法中的一个或多个。例如,计算机可读数据存储介质可以存储这样的指令以用于由处理器执行。

计算机可读介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括计算机数据存储介质,诸如随机存取存储器(ram),只读存储器(rom),非易失性随机存取存储器(nvram),电可擦除可编程只读存储器(eeprom)、闪存、磁或光学数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。

在一些示例中,计算机可读存储介质可以包括非暂态介质。术语“非暂态”可以指示存储介质没有在载波或传播信号中实施。在某些示例中,非暂态存储介质可以存储可以随时间变化的数据(例如,在ram或高速缓存中)。

代码或指令可以是由处理电路执行的软件和/或固件,处理电路包括一个或多个处理器,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、场可编程门阵列(fpga)或其他等效的集成或离散逻辑电路。因此,本文中使用的术语“处理器”可以是指任何前述结构或适用于实现本文中描述的技术的任何其他结构。另外,在一些方面中,本公开内容中描述的功能可以在软件模块或硬件模块内提供。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1