用于避免由于非对称MAC获悉的流量泛洪的系统的制作方法

文档序号:22436215发布日期:2020-10-02 10:28阅读:98来源:国知局
用于避免由于非对称MAC获悉的流量泛洪的系统的制作方法

本申请是申请日2017年1月6日、申请号为201710010882.3、发明名称为“用于避免由于非对称mac获悉的流量泛洪的系统”的专利申请的分案申请,其全部内容结合于此作为参考。

相关申请的交叉引用

本申请要求于2016年1月7日提交的印度专利申请201641000591的权益,该申请的全部内容以引用方式并入本文。

本公开总体上涉及计算机网络,并且更具体地涉及在计算机网络内转发网络流量。



背景技术:

计算机网络是可以交换数据和共享资源的互连计算设备的集合。示例网络设备包括在开放系统互连(osi)参考模型的层二(l2)(即数据链路层)内操作的层二设备以及在osi参考模型的层三(l3)(即网络层)内操作的层三设备。计算机网络内的网络设备通常包括控制单元,其为网络设备和用于路由或交换数据单元的转发组件提供控制平面功能。

以太网虚拟专用网络(evpn)可以用于通过中间层三(l3)网络(通常被称为提供方网络)以透明方式(即犹如中间l3网络不存在)扩展两个或多个远程层二(l2)客户网络。具体地,evpn经由中间网络在客户网络之间输送l2通信(诸如以太网数据包或“帧”)。在典型的配置中,与客户网络的客户边缘(ce)网络设备耦接的提供商边缘(pe)网络设备(例如,路由器和/或交换机)定义提供商网络内的标签交换路径(lsp)(也称为伪线)以携带封装的l2通信,犹如这些客户网络直接附接到相同局域网(lan)。在一些配置中,pe网络设备还可以通过互联网协议(ip)基础设施连接,在这种情况下可以在网络设备之间使用ip/通用路由封装(gre)隧道或其他ip隧道。

evpn可以与根据ieee标准802.1ah定义的提供商骨干桥接(pbb)相结合。pbb定义架构和桥接协议,其中提供商骨干桥接网络(pbbn)提供一个或多个不同网络服务提供商的多个提供商桥接网络(pbn)之间的l2连接。此类大面积l2网络连接性例如正在城域网中部署。每个pbn提供一个或多个服务虚拟lan(“s-vlans)以服务l2流量并隔离l2流量与客户网络。用于pbbn的访问交换机通常包括互连由多个pbn支持的s-vlan中的一些或所有的一组骨干边缘桥接(beb)。每个beb提供进一步封装用于通过pbbn输送的l2帧的接口。用于封装来自pbn的l2帧并通过pbbn输送l2流量的vlan被称为骨干vlan(b-vlan),而支持这些vlan的资源通常被认为是pbbn的一部分。以这种方式,pbbn可以被称为在骨干提供商的管理控制下的虚拟桥接局域网。pbb-evpn组合evpn和pbbbeb桥接的功能性,由此使得在evpn中定义的多协议标签交换(mpls)lsp被映射到pbb封装的流量。

在evpn中,由pe路由器中的一个获悉的客户媒体访问控制(c-mac)地址在bgp中通告到在该evpn实例中的所有其他pe路由器。因此,在evpn内的所有pe网络设备暴露于由这些pe网络设备中任一个获悉的所有c-mac地址并且必须存储所有c-mac地址。也就是说,处于这样一种情况,即使用于该evpn实例的pe路由器中的一些不涉及转发至这些c-mac地址的流量或来自这些c-mac地址的流量。即使实现方式不安装用于作为该pe上的活动流量流的一部分的c-mac地址的硬件转发条目,但是设备存储器仍然由于在路由表(rib)中保持c-mac地址的记录而得到消耗。在具有数百万c-mac地址的网络应用中,这引入了并非微不足道的pe资源的浪费。这样,提供商骨干桥接(pbb)-evpn被引入以仅将c-mac地址的可见性范围约束至那些pe路由器,该pe路由器活动地参与将流量转发至这些地址或转发来自这些地址的流量。

在pbb-evpn中,ieee骨干边缘桥接(beb)功能性结合到evpnpe路由器中。mac隧道(mac-in-mac)被用于改进服务实例和以太网中的mac地址可扩展性。pbb-evpn使用pbb的mac-in-mac封装,将客户mac地址(c-mac)与骨干mac地址(b-mac)分离。与e-vpn相比,在pbb-evpn中的pe网络设备使用边界网关协议(bgp)以通告b-mac可到达性,但仍然使用数据平面以获悉远程c-mac至远程b-mac的绑定。因此,在pbb-evpn中,pe网络设备从ce网络设备接收以太网帧,将它们封装在包含一个或多个b-mac地址的pbb头部中,并且通过ip/mpls核心转发该帧。在出口evpnpe网络设备上,在mpls部署后移除pbb头部,并且原始以太网帧传送到目的地ce网络设备。因此,由每个pe路由器存储的mac地址的数量可以减少至直接连接到一个以太网段的pe路由器的c-mac地址的数量。该数量通常比evpn中的每个pe路由器必须存储的c-mac地址的数量小得多。pbb-evpn实现方式的另外示例在2015年9月的互联网工程任务组(ietf),rfc7623的《与以太网vpn(pbb-evpn)结合的提供商骨干桥接》(providerbackbonebridgingcombinedwithethernetvpn(pbb-evpn),rfc7623,internetengineeringtaskforce(ietf),september,2015)内有所描述,其全部内容通过引用并入本文。

在被称为全活动模式的evpn配置中,以太网段包括多个pe网络设备,其提供用于包括一个或多个本地客户设备的第一客户网络的多宿主连接性。然而,在多个pe网络设备中的第一pe对于第二客户网络是单宿主的并且至少第二pe远离第二客户网络的情况下,会出现低效率。因为第二pe路由器远离第二客户网络,所以它可永远不会获悉第二客户网络上的客户设备的c-mac地址。因此,它必须将广播、未知单播和组播(bum)流量发布到在网络上的每个设备,以转发去往第二客户网络上的客户设备的所接收的任何消息。这在即使客户设备可在相同以太网段上从第一pe路由器能够到达的情况下也会发生。



技术实现要素:

总体上,本公开描述了用于避免由于pbb-evpn活动-活动以太网段内的非对称mac获悉的流量泛洪的技术。本文描述的技术使得包括在pbb-evpn的以太段中的特定pe路由器能够通过bgp将用于b-mac路由的扩展组发送至相同以太网段上的远程pe路由器,以通过pe路由器向远程pe路由器通知特定c-mac地址的可到达性。本文描述的技术可以在用于活动-活动以太网段的远程pe路由器处提供用于c-mac地址可到达性的控制平面解决方案。因此,因为所有多宿主的远程pe路由器可以通过本地pe路由器获悉c-mac地址的可到达性,所以可以避免针对多宿主的负载平衡流量的泛洪。

例如,在具有单宿主到第一pe路由器的第一ce网络和多宿主到第一pe路由器和第二pe路由器的第二ce网络的pbb-evpn中,其中第一pe路由器和第二pe路由器在相同以太网段内并且第二pe路由器远离第一ce网络,mac获悉的非对称性可以在第一pe路由器和第二pe路由器之间发生。在常规设备中,每个pe路由器可以仅通过其数据平面获悉用于客户端设备的c-mac。这可增加网络内的bum流量。

假设第一ce网络上的第一客户端设备希望与第二客户端网络上的第二客户端设备通信。第一客户端设备可以将消息传输到第一ce路由器,其将消息转发到第一pe路由器。第一pe路由器可以通过其数据平面获悉第一客户端设备的c-mac,并将该消息转发到第二客户端网络上的第二ce路由器以便转发到第二客户端设备。如果第二客户端设备做出响应,则第二客户端网络上的第二ce路由器可以在第一pe路由器和第二pe路由器之间对消息进行负载平衡。如果第一pe路由器接收了消息,则其可以将单播流量直接传输到第一客户端网络上的第一ce路由器,因为第一pe路由器已经获悉了第一客户端设备的c-mac地址。然而,因为第二pe路由器远离第一客户端网络,所以第二pe路由器可能永远不会获悉第一客户端设备的c-mac地址。因此,每当去往第一客户端设备的消息被负载平衡到第二pe路由器时,第二pe路由器必须将作为bum流量的消息转发到网络上的所有已知pe路由器和ce路由器。即使第一客户端设备通过与第二pe路由器相同的以太网段上的第一pe路由器是可到达的,这仍然是真实的。因此,常规设备浪费宝贵网络资源以发布作为bum流量的这些类型的通信,其中期望更有效网络方案。

根据本公开的技术,当第一pe路由器获悉用于第一客户端设备的c-mac地址时,其可以将用于b-mac路由的扩展组经由bgp发送至第二pe路由器,以通过第一pe路由器向第二pe路由器通知c-mac地址的可到达性。因此,在接收到去往第一客户端设备的消息时,第二pe路由器可以将单播流量传输至第一pe路由器,而不是像常规设备所做的那样,将该消息作为bum流量发布到网络上的所有设备。因此,根据本公开的技术的系统可以减少在pbb-evpn上发生的bum流量泛洪的量并且可以引起更有效地使用网络资源。

在一个示例中,本公开描述了一种方法,其包括:响应于通过包括在提供商骨干桥接以太网虚拟专用网络(pbb-evpn)的以太网段中的第一提供商边缘(pe)路由器从第一客户边缘(ce)路由器接收第一层二(l2)数据消息,执行包括在第一l2数据消息中的客户mac(c-mac)地址的l2获悉;由第一pe路由器将l2控制消息发送至包括在以太网段中的至少另一个pe路由器,该l2控制消息包括在至少另一个pe路由器处未配置的c-mac地址和第一桥接mac(b-mac)地址,该l2控制消息使得至少另一个pe路由器至少部分地基于第一pe路由器通过第一pe路由器的第一b-mac地址获悉c-mac地址的可到达性,并且至少另一个pe路由器各自被配置用于与以太网段相关联的第二b-mac地址;和响应于由第一pe路由器从以太网段中的至少另一个pe路由器接收包括c-mac地址的第二l2数据消息作为单播流量,将第二l2数据消息转发到第一ce路由器。

在另一个示例中,本公开描述一种提供商骨干桥接(pbb)以太网虚拟专用网络(evpn)的第一提供商边缘(pe)路由器,其中该第一路由器包括:控制单元,其具有耦接至存储器的至少一个处理器;其中该控制单元实施软件,该软件被配置成:响应于从第一客户边缘(ce)路由器接收第一层二(l2)数据消息,执行包括在第一l2数据消息中的客户mac(c-mac)地址的l2获悉;将l2控制消息发送至包括在以太网段中的至少另一个pe路由器,该l2控制消息包括在至少另一个pe路由器处未配置的c-mac地址和第一桥接mac(b-mac)地址,l2控制消息使得至少另一个pe路由器至少部分地基于第一pe路由器通过第一pe路由器的第一b-mac地址获悉c-mac地址的可到达性,并且至少另一个pe路由器各自被配置用于与以太网段相关联的第二b-mac地址;以及响应于从以太网段中的至少另一个pe路由器以单播流量接收包括c-mac地址的第二l2数据消息的,将第二l2数据消息转发到第一ce路由器。

在另一个示例中,本公开描述了包括指令的计算机可读介质,该指令使得提供商骨干桥接(pbb)以太网虚拟网络(evpn)的第一提供商边缘(pe)路由器的至少一个可编程处理器能够:响应于从第一客户边缘(ce)路由器接收第一层二(l2)数据消息,执行包括在第一l2数据消息中的客户mac(c-mac)地址的l2获悉;将l2控制消息发送至包括在以太网段中的至少另一个pe路由器,该l2控制消息包括在至少另一个pe路由器处未配置的c-mac地址和第一桥接mac(b-mac)地址,该l2控制消息使得至少另一个pe路由器至少部分地基于第一pe路由器通过第一pe路由器的第一b-mac地址获悉c-mac地址的可到达性,并且至少另一个pe路由器各自被配置用于与以太网段相关联的第二b-mac地址;以及响应于从以太网段中的至少另一个pe路由器以单播流量接收包括c-mac地址的第二l2数据消息,将第二l2数据消息转发到第一ce路由器。

本公开的技术的一个或多个示例的细节在下面的附图和说明书中阐述。本技术的其它特征、目的和优点通过说明书和附图以及权利要求书将是显而易见的。

附图说明

图1是示出根据本公开的技术的示例pbb-evpn的框图。

图2是示出根据本公开的技术的示例提供商边缘路由器的框图。

图3是示出根据本公开的技术的示例提供商边缘路由器操作的流程图。

图4是示出根据本公开的技术的示例提供商边缘路由器操作的流程图。

图5是示出根据本公开的技术的用于b-mac路由的示例扩展组(community)的框图。

具体实施方式

图1是示出根据本公开的技术的示例pbb-evpn的框图。在图1的示例中,系统2是提供商骨干桥接以太网虚拟专用网(pbb-evpn)。pe路由器10a-10e(“pe路由器10”)经由ce路由器8a-8c(“ce路由器8”)向与客户网络6a-6c(“客户网络6”)相关联的客户设备4a-4f(“客户设备4”)提供对服务提供商网络12的访问。通信链路16a-16l可以是以太网、atm或任何其它合适的网络连接。

pe路由器10和ce路由器8在图1的示例中被示为路由器。然而,可以使用参与层二(l2)虚拟专用网络服务(诸如提供商骨干桥接以太网虚拟专用网(pbb-evpn))的交换机或其他合适的网络设备来实现本公开的技术。客户网络6可以是用于企业的地理上分离站点的网络。每个客户网络6还可以包括其他客户设备4a-4f,诸如一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙的安全设备、入侵检测和/或入侵防止设备、服务器、计算机终端、笔记型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动设备、无线接入点、网桥、电缆调制解调器、应用加速器或其他网络设备。图1所示的网络2的配置仅是示例。例如,企业可以包括任何数量的客户网络6。然而,为了便于描述,在图1中仅示出了客户网络6a-6c。

服务提供商网络12表示由服务提供商拥有和操作的公共可访问的计算机网络,该服务提供商通常是大型电信实体或公司。服务提供商网络12通常是大的层三(l3)计算机网络,其中对跟随有数字的层的引用是指在开放系统互连(osi)模型中的对应层。服务提供商网络12是l3网络,意义在于本身支持如在osi模型中所描述的l3操作。公共l3操作包括根据l3协议诸如互联网协议(ip)执行的那些操作。l3在osi模型中也称为“网络层”,并且术语l3可以贯穿本公开与短语“网络层”互换使用。

虽然未示出,但是服务提供商网络12可以耦接到由其他提供商管理的一个或多个网络,并且因此可以形成大规模公共网络基础设施(例如因特网)的一部分。因此,客户网络6可被看作因特网的边缘网络。服务提供商网络12可以向客户网络6内的计算设备提供对因特网的访问,并且可以允许客户网络内的计算设备彼此通信。

虽然为了简化说明而未示出附加网络设备,但是应当理解,系统2可以包括附加网络和/或计算设备,例如一个或多个附加交换机、路由器、集线器、网关、诸如防火墙的安全设备、入侵检测和/或入侵防止设备、服务器、计算机终端、笔记型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动设备、无线接入点、网桥、电缆调制解调器、应用加速器或其他网络设备。此外,虽然系统2的元件示为直接耦接,但是应当理解,沿着网络链路16中的任一个可以包括一个或多个附加网络元件,由此使得系统2的网络元件不直接耦接。

服务提供商网络12通常提供多种住宅和商务服务,包括住宅和商业类数据服务(其通常被称为“因特网服务”,因为这些数据服务准许访问公共可访问网络的集合,称为互联网),住宅和商务类电话和/或语音服务,以及住宅和商务类电视服务。由服务提供商网络12提供的一种此类商务类数据服务包括l2evpn服务。例如,evpn是这样一种服务,即,该服务提供跨接中间l3网络(诸如服务提供商网络12)的l2连接性形式,以将两个l2客户网络诸(如l2客户网络6)互连,该两个l2客户网络通常位于两个不同的地理区域。通常,evpn对于客户网络是透明的,因为这些客户网络并未意识到介入的中间服务提供商网络,而是如同这两个客户网络直接连接并形成单个l2网络一样地工作和操作。这样,evpn允许在各自操作l2网络的两个地理上远离的客户站点之间透明的lan连接形式,并且因此evpn也可被称为“透明lan服务”。关于evpn协议的附加示例信息描述在于2014年7月2日的互联网工程任务组(ietf)的draft-ietf-12vpn-evpn-11的《基于bgpmpls的以太网vpn》(“bgpmplsbasedethernetvpn”,draft-ietf-12vpn-evpn-11),其全部内容通过引用并入本文。

为了配置evpn,服务提供商的网络运营商配置包括在与l2客户网络6相接的服务提供商网络12内的各种设备。evpn配置可以包括evpn实例(evi),其包括一个或多个广播域。通常,evi可以指在pe路由器(诸如pe路由器10a-10e)上的路由和转发实例。因此,如本文进一步描述的,可以在pe路由器10上配置多个evi以用于以太网段,每个evi提供独立的逻辑层二(l2)转发域。以这种方式,可以配置多个evi,每个evi包括以太网段的一个或多个pe路由器。例如,以太网段18a可以包括第一evi和第二evi,第一evi包括pe路由器10a、10b和10e,第二evi仅包括pe路由器10a、10b。在一些示例中,然后,使用以太网标签来标识evi中的特定广播域,例如vlan。pe路由器可以针对每个<esi,以太网标签>组合通告唯一的evpn标签。这种标签分发方法被称为每<esi,以太网标签>标签分发。或者,pe路由器可以针对每个mac地址通告唯一的evpn标签。又如,pe路由器可以针对给定evi中的所有mac地址通告相同的单个evpn标签。这种标签分发方法被称为每evi标签分发。

为了在活动-活动以太网段(例如以太网段18a)中操作,在pe路由器10a、10b和10e上实施的evpn协议触发用于以太网段18a的evpn指定的转发器(df)选择。这可以例如由evpn协议实现,该evpn协议在参与以太网段18a的pe路由器10a、10b和10e中的每一个上实施,该以太网段18a指示路由器以输出通告以太网段标识符(esi)的路由协议消息,其在所有evpn实例(evi)上是唯一的。

图1示出了包括以太网段18a和18b的pbb-evpn环境。在典型的操作中,pe路由器10a-10e使用边界网关协议(bgp)进行通信。pe路由器10可以根据在2015年11月14日的draft-ietf-12vpn-pbb-evpn-10的《与以太网vpn(pbb-evpn)结合的提供商骨干桥接》(providerbackbonebridgingcombinedwithethernetvpn(pbb-evpn),draft-ietf-l2vpn-pbb-evpn-10)中描述的技术使用bgp进行互操作,该文献的全部内容通过引用并入本文。

由每个pe路由器10a-10e使用bgp通告的evpn以太网段路由包括路由区分符和以太网段标识符。在pbb-evpn中,mac路由通告用于通告b-mac地址,而c-mac仅通过数据平面(l2)获悉(例如,mac获悉)而存储。此外,以太网标签id字段503设定为0。esi字段502可以指示以太网段是单宿主段还是多宿主段。esi字段502必须设定为0(针对具有每-i-sid负载平衡的单宿主段或多宿主段),或设定成max-esi(针对具有每流负载平衡的多宿主段)。其余字段的功能如针对evpn所述的。

pbb-evpn使得一个或多个路由器能够在单活动冗余模式或全活动(例如,活动-活动)冗余模式下工作。在单活动冗余模式中,在附接到以太网段的一组pe路由器中,仅单个pe路由器被允许将流量转发至该以太网段/从该以太网段转发流量,然后将以太网段定义成在单活动冗余模式下操作。例如,可以允许pe路由器10b将流量转发至以太网段18a和从以太网段18a转发流量。在全活动冗余模式下,附接到以太网段的所有pe路由器都被允许将流量转发到该以太网段或从该以太网段转发流量。例如,在全活动冗余模式中,允许pe路由器10a、10b和10e中的每一个将流量转发到以太网段18a和从以太网段18a转发流量。如在本公开中进一步描述的,当在全活动冗余模式中操作时,以太网段18a中的pe路由器10a,10b或10e中的一个可以被选为指定转发器,以向/从以太网段18a转发bum流量,同时非指定的转发器可以丢弃用于以太网段18a的此类bum流量。

在不利用pbb的evpn中,pe路由器执行客户/客户端mac(c-mac)地址的mac获悉,并且将bgpmac广播路由中的c-mac通告至evpn中的其他pe路由器。此类bgpmac通告路由指示c-mac经由pe路由器的可到达性,该pe路由器通告bgpmac通告路由。因此,在evpn中,参与相同evpn实例的所有pe路由器暴露于由这些pe路由器中的任何一个获悉的所有c-mac地址,因为由pe路由器中的一个获悉的c-mac被通告给在该evpn实例中的其他pe路由器。在具有数百万个c-mac地址的网络应用中,这引入了pe路由器资源的潜在浪费。因此,pbb-evpn被引入以将c-mac地址的可见性范围约束至活动地涉及将流量转发到这些地址或从这些地址转发流量的那些pe路由器。

为了减少bgpmac通告路由的数量和c-mac表的大小,pbb-evpn依赖于由pbb提供的mac汇总方案。在mac汇总方案中,通过将网络数据包与源骨干mac(b-mac)地址和目的地骨干mac(b-mac)地址封装而通过服务提供商网络12转发网络数据包。pbb-evpn定义独立于c-mac地址空间的b-mac地址的b-mac地址空间,并且经由单个b-mac地址聚集c-mac地址。

每个pe路由器可以维持用于相应地址空间的b-mac转发表和c-mac地址表。pe路由器可以建立b-mac表,其包括b-mac地址和与特定以太网段相关联的pe路由器ip地址的相应组之间的关联。例如,pe路由器的b-mac表中的条目或行可以包括特定以太网段中的pe路由器的b-mac地址和一组标识符(例如,mac或ip地址),其中pe路由器已配置b-mac地址以对应于特定以太网段。每个pe路由器可以与唯一地识别相应pe路由器的mpls标签相关联,并且mpls标签可以与用于相应pe路由器的b-mac表中的相应标识符或条目相关联。

pe路由器可以初始地被配置成将b-mac地址与特定以太网段相关联。例如,pe路由器10a、10b和10e可以各自在以太网段18a中被配置。为了执行该配置,pe路由器10a、10b和10e可以各自存储映射,其表示以太网段18a的标识符和公共b-mac地址(例如,b-mac1)之间的关联。这样,pe路由器10a、10b和10e可以将转发到服务提供商网络12中的出口流量与作为源b-mac地址的b-mac1封装。

在pbb-evpn中,pe路由器在用于从核心每-pbb桥接操作的数据平面中获悉b-mac地址与远程c-mac地址的绑定。例如,pe路由器初始将bgp中的本地b-mac地址可到达性信息通告至相同组服务实例中的所有其他pe路由器,但在数据平面中执行c-mac地址获悉(l2获悉)。在通告可到达性时,每个pe路由器可以通告标识相应pe路由器的mpls标签。例如,如果pe路由器10a从客户网络6c接收网络数据包,则pe路由器10a可以执行c-mac地址获悉,以在pe路由器10a的c-mac表中存储b-mac1和网络数据包的源c-mac地址之间的关联。pe路由器10a可以封装具有作为源b-mac地址的b-mac1和作为目的地b-mac地址的b-mac2的数据包,其中b-mac2与pe路由器10c相关联。在接收到网络数据包时,pe路由器10c可以基于包括在数据包中的源c-mac地址执行mac获悉。如果pe路由器10c在其c-mac表中不包括用于源c-mac地址的条目,则pe路由器10c可以存储包括源c-mac地址和b-mac1之间的关联性的条目。

稍后,如果pe路由器10c从客户网络6a接收网络数据包,则pe路由器10c可以确定数据包的目的地c-mac地址与先前获悉的c-mac地址匹配,该cma-c地址存储在与b-mac1相关联的pe路由器10a的c-mac表中。pe路由器10a可以将数据包和作为源b-mac地址的b-mac2和作为目的地b-mac地址的b-mac1封装。为了将网络数据包转发到与b-mac1相对应的以太网段18a,pe路由器10c在其b-mac表中执行查找。pe路由器10c识别具有b-mac1的条目,并且选择在b-mac表中各自与b-mac1相关联的pe路由器10a、10b或10e中的一个的标识符。如果pe路由器10c选择pe路由器10a作为pe路由器以将网络数据包转发到客户网络6c,则pe路由器10c包括用于pe路由器10a的mpls标签(作为网络数据包头部的一部分),并且使用其用于pe路由器10a的出口接口转发网络数据包。在接收网络数据包时,pe路由器10a基于包括网络数据包中的目的地c-mac地址在c-mac表中执行查找。因为pe路由器10a先前获悉了c-mac地址,所以pe路由器10a使用用于链路16d的接口将网络数据包转发到客户网络6c。

在配置和启动时,pe路由器(诸如pe路由器10a)执行多个操作。例如,pe路由器10a发现pbbi-sid的所有远程pe路由器,在pbbi-sid中包括pe路由器10a。在配置和启动时,pe路由器10a将b-mac地址分配至pbbi-sid中的其它pe路由器,以便指示pe路由器10a经由可与相应以太网段相关联的b-mac地址是可到达的。在配置和启动时,pe路由器10a还可以发现在相同以太网段中的其他pe路由器(例如,在以太网段18a中的pe路由器10b和10e),且执行指定转发器(df)挑选,其负责转发广播、用于给定pbbi-sid的、b-mac地址和/或以太网段的未识别的单播或多播流量(bum)流量。在图1的示例中,pe路由器10a被选择作为df,并且pe路由器10b及10e被选择作为非df或备份df。因此,pe路由器10a可以转发来自用于bmac-1的服务提供商网络12的bum流量,而pe路由器10b和10e不可如此。

如图1所示,ce路由器8可以多宿主和/或单宿主到一个或多个pe路由器10。在evpn中,当pe路由器驻留在相同的物理以太网段上时,当ce路由器耦接到在相同evi上的两个物理上不同的pe路由器时,可以说ce路由器是多宿主的。例如,ce路由器8c分别经由链路16d-16f耦接到pe路由器10a、10b和10e,其中10a、10b和10e能够经由ce路由器8c为l2客户网络6c提供对evpn的访问。在给定的客户网络(诸如客户网络6c)可以经由两个不同并且在一定程度上冗余的链路耦接到服务提供商网络12的情况下,客户网络可以被称为是“多宿主的”。在该示例中,ce路由器8c可以多宿主到pe路由器10a、10b和10e,因为ce路由器8c经由独立并且在一定程度上冗余的链路16d-16f耦接到两个不同的pe路由器,pe路由器10a、10b和10e,其中pe路由器10a、10b和10e每个都能够为l2客户网络6c提供对evpn的访问。多宿主网络通常由网络运营商采用,以便在链路16d、16e和16f中的一个出现故障时改进对由服务提供商网络12提供的evpn的访问。在典型的evpn配置中,只有多宿主的pe10a、10b和10e参与每个esi的df挑选。ce路由器8b经由通信链路16c被单宿主到pe路由器10a。

在活动-活动模式配置中,远程pe10c通常被配置成针对以太网段18a安装mac路由,由此使得到客户网络6c的下行流量在各自包括在以太网段18a中的pe路由器10a、10b和10e之间平衡。在图1的示例pbb-evpn中,pe路由器10a、10b和10e可以以evpn活动-活动模式配置,由此使得pe路由器10c在pe路由器10a、10b和10e之间负载平衡到客户网络6c的下行网络流量。

pbb-evpn可以针对pe路由器10a,10b和10e为源自客户网络6c的流量的执行负载平衡。可以执行该负载平衡以增加服务提供商网络12对客户网络6c的可靠性,以及减少由客户网络6c在单个pe路由器上施加的负荷。虽然理想化地讲,在esi18a上存在pe路由器10a、10b和10e对于客户网络6c是透明的,但在一些情况下,客户网络期望对pe路由器10a、10b和10e执行负载平衡和挑选。然而,因为在pbb-evpn中,pe路由器通过数据平面获悉mac地址,在以太网段中的pe路由器中的每个可以创建非对称的c-mac地址表,但是希望这些pe路由器在段上相同地操作。在pbb-evpn中的负载平衡流量可加剧这些非对称表的问题,因为具有不完整c-mac路由表的pe路由器被视为与具有更完整的c-mac路由表的pe路由器相同,因此在网络中产生低效率,诸如增加的bum流量,其消耗宝贵的网络资源。

evpn可以在多协议标签交换(mpls)配置的网络上操作,并且使用mpls标签来相应地转发网络流量。mpls是用于根据由网络中的路由器维持的路由信息来设计因特网协议(ip)网络内的流量模式的机制。通过利用mpls协议诸如标签分配协议(ldp)或具有流量工程扩展的资源预留协议(rsvp-te),源设备可以请求通过网络到达目的地设备的路径,即标签交换路径(lsp)。lsp定义通过网络的不同路径,以将mpls数据包从源设备传送到目的地设备。使用mpls协议,沿着lsp的每个路由器分配标签并且将该标签沿着路径传播到最近的上游路由器。沿路径的路由器添加或移除标签,并执行其他mpls操作以沿着建立的路径转发mpls数据包。

如图1的示例所示,pe路由器10a-10e和提供商路由器18可以提供用于从客户网络6a至客户网络6c发送网络数据包的mpls核心。pe路由器10a-10e中的每一个实施mpls协议,并且根据在每个相应pe路由器处配置的路由和转发信息将一个或多个mpls标签(即,标签堆栈)应用至网络数据包。如上所述,pe路由器10c可以将由pe路由器10a通告的mpls标签附接到pe路由器10c转发到pe路由器10a的数据包,由此使得该数据包通过服务提供商网络12转发到pe路由器10c。

pbb-evpn与evpn稍有不同之处在于,pbb-evpn在每个pe路由器中实现ieee骨干边缘网桥(beb)功能。使用pbb的mac-in-mac封装,pbb-evpn将c-mac边缘命名空间与b-mac地址命名空间分离。与e-vpn相比,pbb-evpn使用在ip/mpls核心内的bgp来通告b-mac地址可到达性(例如,pe路由器a到pe路由器b),而数据平面获悉仍然用于远程c-mac地址到远程b-mac绑定(例如,pe路由器a经由pe路由器b到ce路由器)。一般来讲,在pbb-evpn中,每个pe路由器从ce路由器接收802.1q以太网帧,将该帧封装在pbb头部中,并使用mpls标签经由ip/mpls核心转发该帧。接下来,pbb封装的帧穿过ip/mpls核心,如上面针对evpn网络所描述的。在出口evpnpe路由器上,在mpls部署后移除pbb头部,并且原始802.1q以太网帧传送到目的地ce路由器。

pbb-evpn需要对evpn的pe路由器进行若干修改。在pbb-evpn中,每个正常桥接操作中,每个pe路由器必须经由数据平面中的附接电路获悉客户/客户端c-mac地址(l2获悉)。然而,在每个pbb桥接操作,每个pe路由器还必须针对从核心接收的流量在数据平面中获悉远程c-mac与b-mac的绑定。另外,每个pe路由器具有唯一地标识设备的一组骨干mac(b-mac)地址,并且pe路由器必须在bgp中将其本地b-mac地址可到达性信息通告给pbb-evpn内的所有其他pe路由器。最后,每个pe路由器必须从远程pe路由器接收bgp通告,并且使用该信息来建立和维持转发表,该转发表将远程b-mac地址与远程peip地址和相关联的mpls标签相关联。pbb实现的另外示例由以下标准提供,ieee标准8802.1q,doi10.1109/ieeestd.2011.6009146的第25章和26章《用于本地和城域网络媒介访问控制(mac)桥接和虚拟桥接局域网的ieee标准》(“ieeestandardforlocalandmetropolitanareanetworks-mediaaccesscontrol(mac)bridgesandvirtualbridgedlocalareanetworks,”clauses25and26,ieeestd802.1q,doi10.1109/ieeestd.2011.6009146,ieee),该标准全部内容通过引用并入本文。

在启动期间,连接到相同以太网段(例如,在多宿主配置中)的每个pe路由器可以自动发现在同一段上的其他pe路由器。这些pe路由器中的每一个可以选择负责转发用于给定pbbi-sid的bum流量的df。此外,每个pe路由器可以使用evpnbgpmac通告路由来分配用于与其所属的本地以太网段相关联的b-mac的可到达性信息。如上所述,在初始evpn路由配置之后,pe路由器从ce路由器接收网络流量并且执行流量的原始c-mac地址的mac获悉。如果pe路由器知道流量的目的地c-mac地址,则它将通过ip/mpls核心转发流量。如果目的地未知,则pe路由器将流量作为bum流量转发到网络上的所有设备。

虽然pbb-evpn在抽象化和数据管理方面提供了优于evpn的许多优点,但是该抽象可导致针对与单宿主的pe路由器通信的远程多宿主pe路由器的不必要bum流量的增加。关于图1,例如,pe路由器10a,10b和10e包括以太网段18a和选择pe路由器10a作为df。例如,在一段时间操作之后,pe路由器10a可以通过pe路由器10a的数据平面获悉客户设备4e的c-mac地址,而pe路由器10a可以通过数据平面获悉客户网络上的客户设备4d的c-mac地址6b。假设客户网络6c上的客户设备4r将网络流量发送到客户网络6b上的客户设备4d,则ce路由器8c可以沿着以太网段18a将该通信转发到服务提供商网络12。客户网络6c可以将流量负载平衡到以太网段18a,在一些示例中,使得源自ce路由器8c的流量的约33%被转发到pe路由器10a,33%到pe路由器10b以及33%到pe路由器10e,但是其他负载平衡方案可以提供不同的分配。

如果pe路由器10a在其数据平面中接收网络流量,则pe路由器10a可以将网络流量(消息)作为已知的单播流量直接发送到在客户网络6b上的ce路由器8b,因为它先前已经获悉了用于ce路由器8b的c-mac地址。然而,如果ce路由器8c将网络流量转发到pe路由器10b或10e,则这些非df路由器必须将网络流量作为bum消息转发到网络上的所有设备,因为它们先前没有获悉用于客户设备4d的c-mac地址。这可导致到服务提供商网络12的bum流量的不必要泛洪。

pe路由器10a可以接收bum流量并且经由ce路由器8b将网络流量转发到客户设备4d。当在客户网络6b上的客户设备4d将返回流量发送到客户设备4e时,ce路由器8b可以将该消息转发到pe路由器10a。因为pe路由器10a先前已经获悉了用于ce路由器8c的c-mac地址,所以其可以将消息直接转发到ce路由器8c。因此,pe路由器10b和10e可以不从客户设备4d接收网络流量并且可以不获悉其c-mac地址。此外,因为pe路由器10a是df,所以pe路由器10b和10e可以丢弃其接收的任何bum消息。因此,如果pe路由器10a转发源自客户设备4d的网络流量,则pe路由器10b和10e可以丢弃它并且从不获悉客户网络6b上的设备的c-mac地址。因此,对于通过pe路由器10b和10e(在该示例中为66%)以转发到客户设备4d的每个网络数据包,pe路由器10b和10e将网络数据包作为bum流量转发到网络上的每个设备。这使用宝贵的网络资源并且可为低效的,特别是因为作为与pe路由器10b和10e相同的以太网段的构件的pe路由器10a已经获悉了ce路由器8b的c-mac地址并且在没有绑定网络的情况下可以将消息单播至其。

因此,以太网段上的每个pe路由器的路由表可以具有相同以太网段内的远程pe路由器对c-mac地址的可到达性的知识。因此,根据本公开的技术,包括在提供商骨干桥接虚拟专用网络的以太网段(pbb-evpn)中的第一pe路由器可以从第一ce路由器接收第一l2数据消息,其中l2数据消息是携带客户数据有效载荷的消息。第一pe路由器然后可以执行包括在第一l2数据消息中的c-mac地址的l2获悉。

另外,根据本公开的技术,第一pe路由器可以将l2控制消息发送到包括在以太网段中的至少另一个pe路由器,其中l2控制消息为网络中的对等体之间交换的以用于配置网络的消息。l2控制消息可以包括c-mac地址和与pbb-evpn的以太网段相对应的b-mac地址。此外,l2控制消息可以使至少另一个pe路由器至少部分地基于b-mac地址与以太网段的对应性,通过第一pe路由器获悉c-mac地址的可到达性。在一些示例中,l2控制消息可为用于b-mac路由的扩展组。

在另外的示例中,第一pe路由器可以使用bgp协议以将l2控制消息发送到包括在以太网段中的至少另一个pe路由器。在另外的示例中,l2控制消息可以具有从用于pe路由器10a的多宿主esi值自动导出的路由目标,由此使得l2控制消息由配置有相同esi值的多宿主pe路由器自动导入。在另外的示例中,l2数据消息可以标识远程b-mac,在其后获悉远程c-mac地址,使得至少另一个pe路由器能够在表示与第一pe路由器的核心连接的正确伪接口内安装c-mac地址。关于图1的示例网络,pe路由器10a可以将用于b-mac路由的扩展组发送到pe路由器10b和10e,从而经由pe路由器10a通知它们ce路由器8b可到达性。

另外,根据本公开的技术,第一pe路由器可以从以太网段中的至少另一个pe路由器接收作为单播流量的第二l2数据消息。第二l2数据消息可以包括第一l2控制消息的起源的c-mac地址,其中相同地址是第二l2数据消息的目的地c-mac地址。因此,第一pe路由器可以将第二l2数据消息转发到第一ce路由器。关于图1的示例网络,pe路由器10b和10e可以将去往ce路由器8b的单播流量转发到pe路由器10a,而非将bmu流量发布到整个网络。

根据本文中的技术的扩展组还可以实现从pe路由器移除c-mac地址。例如,如果本地pe路由器接收了指示特定b-mac已经被撤销的b-mac路由,则本地pe路由器可以删除与撤销的b-mac相关联的所获悉的c-mac地址。另外,如果本地pe路由器接收了具有“删除”操作的用于b-mac路由的扩展组,则本地pe路由器可以删除由扩展组指示的c-mac地址。另外,如果删除远程pe的配置,例如,以太网段的esi或esib-mac被重置、删除或改变,则本地pe路由器可以删除与重新配置的远程pe路由器相关联的所获悉的c-mac地址。

因此,由本公开描述的用于b-mac路由的扩展组可以补救上述问题,其中pbb-evpn上的多宿主ce路由器和单宿主ce路由器之间的不一致流量生成对于远离单宿主ce路由器的pe路由器过量的bum流量,因为这些远程pe路由器从不获悉客户网络6b中的客户设备的c-mac地址。因为pe路由器的路由表是对称建立的,所以远程pe路由器获悉在其以太网段内的远程c-mac地址的可到达性,并且可以通过本地pe路由器发送已知的单播流量,而非发布bum流量。因此,可以极大减少bmu流量的量,该bmu流量在具有多宿到以太网段的第一客户端路由器和单宿到相同以太网段的远程pe的第二客户端路由器的pbb-evpn上发布。本公开的技术也可以改善收敛问题。下面更详细地描述本公开的b-mac路由的扩展组的示例实现方式。

图2是示出根据本公开的一种或多种技术的在pbb-evpn内的示例pe路由器的框图。通常,pe路由器200可以基本上类似于图1的pe10a-e进行操作。在该示例中,pe路由器200包括接口卡226a-226n(“ifc226”),其经由输入链路228a-228n(“输入链路228”)接收数据包并经由输出链路230a-230n(“输出链路230”)发送数据包。ifc226通常经由多个接口端口耦接到链路228、230。pe路由器200还包括控制单元202,其确定接收到的数据包的路由(route,路径)并且相应地经由ifc226转发数据包。

控制单元202可以包括路由引擎204和数据包转发引擎222。路由引擎204操作作为用于路由器200的控制平面,并且包括提供用于执行多个并发进程的多任务操作环境的操作系统。路由引擎204例如执行软件指令以执行一个或多个控制平面网络协议212。例如,协议212可以包括用于与其他路由设备交换路由信息和用于更新路由信息206的一个或多个路由协议,诸如边界网关协议(bgp)220。路由信息206可以描述其中pe路由器200驻留的计算机网络的拓扑,并且还可以包括通过计算机网络中的共享树的路由。路由信息206描述计算机网络内的各种路由以及用于每个路由的适当的下一跳(即沿着每个路由的相邻路由设备)的各种路由。路由引擎204分析所存储的路由信息206并且生成用于转发引擎222的转发信息224。转发信息224可以例如将用于特定多播组的网络目的地与特定下一跳和相应ifc226以及输出链路230的物理输出端口相关联。转发信息224可以是编程到专用转发芯片中的基数树、一系列表、复杂数据库、链接列表、基数树、数据库、平面文件或各种其他数据结构。

如图2所示,转发信息224包括b-mac表234。b-mac表234包括表示b-mac地址和以太网段之间的映射或关联的数据。例如,b-mac表234包括作为密钥的b-mac地址和包括在与b-mac地址对应的以太网段中的pe路由器的标识符的列表。转发信息224还包括c-mac表232。c-mac表232包括表示c-mac地址和b-mac地址之间的映射或关联的数据。在一些示例中,c-mac表232包括作为密钥的c-mac地址和作为对应值的b-mac地址,反之亦然。转发信息224还可以包括混叠数据238。混叠数据238可以包括表示b-mac地址和以太网段的标识符之间的映射或关联的数据。

转发信息还可以包括查找结构236。查找结构236可以在给定密钥(诸如地址)的情况下提供一个或多个值。在一些示例中,一个或多个值可为一个或多个下一跳。下一跳可实现为微代码,其在被执行时执行一个或多个操作。一个或多个下一跳可以是“链接的”,由此使得一组链接的下一跳在被执行时针对相应不同下一跳执行一组操作。此类操作的示例可以包括使用由一个或多个下一跳标识的接口和/或接口将一个或多个服务应用于数据包,丢弃数据包和/或转发数据包。

此外,路由引擎204执行evpn协议216,其操作以与其他路由器通信以建立和维持evpn,诸如图1的pbb-evpn,以便通过中间网络输送l2通信,从而通过中间网络逻辑地扩展以太网。evpn协议216可以例如与在远程路由器上执行的evpn协议通信以建立用于evpn的伪线,并且维持将l2c-mac地址和b-mac地址与特定伪线相关联的c-mac地址表232。当实施evpn时,可以通过与远程pe设备交换包含c-mac地址的bgp消息,在控制平面中执行l2mac获悉。evpn协议216将记录在c-mac表232和b-mac表234中的信息传送到转发引擎222,以便配置转发信息224。以这种方式,转发引擎222可以编程有每个伪线和输出接口之间的关联性以及经由那些伪线可到达的特定源c-mac地址。关于evpn协议的其他示例信息描述于2014年7月2日的互联网工程任务组(ietf)的draft-ietf-12vpn-evpn-11的《基于bgpmpls的以太网vpn》(“bgpmplsbasedethernetvpn”,draft-ietf-12vpn-evpn-11,july2,2014,),其全部内容通过引用并入本文。

在示例实施例中,bgp220和evpn218根据本文所描述的技术操作,以便每个evi路由通告和/或接收以太网a-d,该evi路由已经被扩展为携带本文所描述的evpnmhpe状态扩展组数据结构。即,响应于来自evpn协议216的指令,bgp协议220针对指定用于每个{esi,evi}的主pedf和备份df的每个evi路由生成输出bgp以太网a-d。此外,bgp220可以类似地被配置成针对这顶此类信息的每个evi路由接收bgp以太网a-d,并且可以提取此类信息并将选择传递到evpn216。

在示例实施例中,pbb218和evpn216可以根据本文描述的技术操作,以便在使用mpls214将消息转发到mpls核心之前将输入的ce路由器消息与pbb头部封装。另外,pbb218和evpn216可以与mpls214一起操作以在移除pbb头部并将该消息转发到ce路由器以传送到客户端设备之前,从mpls核心接收消息。

根据本公开的技术,示例pe路由器200可以避免由于pbb-evpn活动-活动以太网段内的非对称mac获悉引起的流量泛洪。例如,ifc226a可以沿着一个或多个输入链路228a-228n从ce路由器接收消息。ifc226a可以将所接收的消息传递到转发引擎222以进行处理。转发引擎222可以在转发信息表224中存储所接收的消息的目的地c-mac和所接收的消息的至少一部分。所接收的消息的至少一部分可以被传递到路由引擎204。路由引擎204可以针对指示消息的起源的c-mac地址解析所接收的消息。

如果路由引擎204确定原始c-mac地址没有列在c-mac表232内,则路由引擎204可以将c-mac地址添加到c-mac表232。如果c-mac地址是新的,则bgp协议204可以向b-mac表234查询用于ip/mpls核心内的已知pe路由器的b-mac地址的列表。bgp协议220结合mpls协议214可以生成用于包含原始c-mac地址的b-mac路由的扩展组,并且沿着输出链路230a-230n将用于b-mac路由的扩展组传输到由b-mac表234的b-mac地址指定的每个pe路由器。

路由引擎可以搜索c-mac表232以确定所接收的消息的目的地c-mac地址可由pe路由器200到达。如果找到c-mac地址,则转发引擎222可以使用转发信息224沿ifc226的输出链路230a-230n中的一个将所接收的消息发送到目的地c-mac地址。如果目的地c-mac地址不在c-mac表232内,则路由引擎204可以在b-mac表234中搜索映射到目的地c-mac地址的b-mac地址。如果找到b-mac地址,则pbb协议218和mpls214可以操作以封装所接收的消息。然后,转发引擎222可以使用转发信息224将所接收的消息沿着ifc226的输出链路230a-230n中的一个发送到对应b-mac地址。如果在c-mac表232或b-mac表234中找不到与所接收的消息的目的地c-mac地址相对应的地址,则转发引擎222可以将所接收的消息作为bum流量转发到c-mac表232和b-mac表234内的每个地址。

图2中所示的路由器200的架构仅出于示例目的示出。在本公开中阐述的技术可以在图2的示例路由器以及本文没有具体描述的其他类型的路由器中实现。在其他示例中,路由器200可以按各种方式配置。在一个示例中,控制单元202的一些功能可以分配在ifc226内。在另一示例中,控制单元202可以包括作为从属路由器操作的多个数据包转发引擎。本公开中的任何内容都不应被解释成将本公开的技术限制于图2所示的示例架构。

图3是示出根据本公开的技术的示例提供商边缘路由器操作的流程图。相对于如图1所描述的pe路由器10a,以示例目的示出根据本公开的技术的示例操作。根据本公开的技术,pe路由器10a可以从ce路由器10b接收客户网络数据包(300)。pe路由器10a可以确定客户网络数据包的源c-mac地址是否包括在pe路由器10a的mac路由表或c-mac路由表中(302)。如果不是,则pe路由器10a可以通过将源c-mac地址存储在其c-mac路由表中来获悉c-mac地址(304)。此外,pe路由器10a可以将包括根据本公开的技术描述的扩展组的l2控制消息(诸如b-mac路由)传输到ip/mpls核心内的一个或多个pe路由器,以经由包括在扩展组中的源b-mac通过pe路由器向其以太网段内的远程pe路由器通知c-mac地址的可到达性(306)。

pe路由器10a稍后可以从pe路由器10e接收后续客户网络数据包。pe路由器10a可以确定客户网络数据包的目标c-mac是否在pe路由器10a的c-mac路由表内(308)。在pe路由器10a的c-mac路由表内存在目的地c-mac指示了目标路由器可由pe路由器10a到达,例如,pe路由器10a到图1中的ce路由器8b。如果客户网络数据包的目的地c-mac在pe路由器10a的c-mac路由表内,则pe路由器10a可以将客户网络数据包发送到目的地(316)。否则,pe路由器10a可以将网络流量作为bum流量转发到所有已知的pe和ce路由器(312)。这样,可以看出,根据本公开技术的用于b-mac路由的扩展组可以保持pe路由器的路由表在以太网段内一致。因为路由表保持一致,所以可以极大减少由pe路由器针对单宿到相同以太网段的远程pe的客户端路由器发布的bum流量。

图4是示出根据本公开的技术的示例提供商边缘路由器操作的流程图。关于如图1所描述的pe路由器10e,以示例目的示出根据本公开的技术的示例操作。pe路由器10a可以从远程pe路由器(400)接收用于b-mac路由的扩展组。关于图1和图2,例如,pe路由器10e可以沿着输入链路228从pe路由器10a经由ifc226接收b-mac路由的此类扩展组。pe路由器10e可以检查路由信息206以确定pe路由器10e的以太网段的esi是否等同于用于b-mac路由的扩展组的esi(402)。如果esi不等同,则pe路由器10e可以丢弃用于b-mac路由的扩展组(404)。在这种情况下,包括在扩展组中的c-mac地址可以不由pe路由器10e安装。例如,图1中的pe路由器10c可以丢弃从pe路由器10a接收的用于b-mac路由的扩展组,因为它们不在相同以太网段内。如果esi是等同的,则pe路由器可以在其路由表中安装扩展组中描述的所更新的mac地址(406)。例如,在图1中的pe路由器10e可以针对从pe路由器10a接收的b-mac路由安装由扩展组描述的mac地址,以描述客户设备4c的可到达性,因为这两个pe路由器10a和10e均在相同以太网段内。相对于图1和图2,pe路由器10e的转发引擎222可以将客户备4c的c-mac地址安装在转发信息224的c-mac表232内。此外,pe路由器10e的转发引擎222可以在转发信息224的b-mac表234内安装与pe路由器10a的ip地址相关联的b-mac地址。在一些示例中,pe路由器10e的转发引擎222可以进一步将与pe路由器10a的ip地址相关联的b-mac地址与客户设备4c的c-mac地址交叉链接或关联,以经由pe路由器10a指示客户设备4c的可到达性。

因此,只有在与发布用于b-mac路由的扩展组的pe路由器相同的以太网段内的那些pe路由器可以安装由该mac帧更新描述的c-mac地址。以这种方式,在pbb-evpn中的pe路由器可以建立与相同以太网段中的其他pe路由器的路由表一致的路由表,同时忽略其以太网段之外的c-mac地址。因此,根据本公开的技术可以极大减少由pe路由器针对单宿到pbb-evpn内的相同以太网段的远程pe的客户端路由器发布的bum流量。另外,本公开的技术避免了evpn面临的扩展性问题,其中每个pe路由器必须跟踪和管理对于整个evpn已知的每个c-mac。

图5是示出根据本公开的技术的可以附接到b-mac路由的示例扩展组的框图。典型的evpnmac路由包括rd字段501,以太网段标识符(esi)字段502,以太网标签id字段503,mac地址长度字段504,mac地址字段505,ip地址长度字段506,ip地址字段507,mpls标签1字段508和mpls标签2字段509。rd字段501包括pe的ip地址(通常是环回地址),后面是唯一于pe路由器的号码。esi字段502设定成以太网段的10个八位字节的esi,并且可以指示以太网段是单宿主的还是多宿主的段。以太网标签id字段503可为零或可以表示有效的以太网标签id。mac地址长度字段504以比特为单位,并且被设定为48。mac地址字段505指定由mac路由描述的c-mac。ip地址字段507是可选的。默认情况下,ip地址长度字段506设定为0,并且从路由中省略ip地址字段。当有效的ip地址需要被通告时,其然后被编码在ip地址字段507中。当存在ip地址时,ip地址长度字段506以比特为单位,并且被设定成32或128比特。mpls标签1字段508与通告pe所通告的mac地址相关联。mpls标签1字段被编码为3个八位字节,其中高阶20位包含标签值。mpls标签2字段509是可选字段。如果它存在,则其被编码为3个八位字节,其中高阶20位包含标签值。

在pbb-evpn中,mac路由用于b-mac地址。因此,pbb-evpnmac路由与evpnmac路由略有不同。例如,在pbb-evpn中,mac地址字段505包含b-mac地址而非c-mac地址。此外,以太网标签id字段503设定为0。esi字段502可以指示以太网段是单宿主段还是多宿主段。esi字段502可以要么设定为0(针对具有每-i-sid负载平衡的单宿主段或多宿主段)要么设定成max-esi(针对具有每流负载平衡的多宿主段)。可以不准许用于esi字段502的所有其他值。其余字段的功能如针对evpn所述的。

根据本公开的技术,扩展组包括可以预先添加或增补到l2控制消息的若干附加字段(诸如pbb-evpn的b-mac路由)。例如,用于b-mac路由500的扩展组包括op字段510、isid字段512、esi列表字段514、b-mac地址字段516和c-mac地址518。op字段510可以被设定成“添加”或“删除”命令。“添加”命令促使pe路由器将条目添加到其mac地址路由表中,该表用于数据平面中获悉的mac地址。“删除”命令使pe路由器从mac地址路由表中删除mac地址(例如,响应于mac地址老化)。isid字段512包含服务id,在该服务id上,单宿主的、单活动或异构的活动-活动以太网段提供服务。esi列表514是用于给定服务/isid的活动-活动以太网段的列表。以太网段标识符(esi)的该列表可以用于导入和编程客户c-mac可到达性。以太网段标识符可以用于标识evpn或pbb-evpn中的多宿主段。根据本公开的技术,在一个示例中,esi列表514可以用于为针对相同以太网段配置的远程pe路由器安装c-mac地址。在该示例中,用于b-mac路由的扩展组可以被发送到所有已知的pe路由器,并且具有esi列表514内的esi的那些pe路由器可以在扩展组内安装c-mac地址,并且不具有esi列表514内的esi的那些pe路由器可以忽略扩展组。b-mac地址字段516描述了单宿主、单活动或异构活动-活动以太网段设备的b-mac地址。在c-mac地址字段518中描述的c-mac地址可经由该b-mac地址到达。c-mac地址字段518描述在数据平面中已经获悉的c-mac地址。对于远程pe,该c-mac地址可经由在b-mac地址字段516内包含的b-mac地址到达。参考图1和图2作为示例,路由引擎204可以使用存储在pe路由器内的信息(包括转发信息和所获悉的mac地址)以建立扩展组。例如,pe路由器10a的路由引擎204可以选择待在扩展组中使用的操作数510(诸如“添加”或“删除”)以便从远程pe路由器的c-mac地址表中添加或移除c-mac地址。在另外的示例中,pe路由器10a的路由引擎204可以使用路由信息206来生成以太网段18a(514)的isid和与扩展组的pe路由器10a(514)相关联的esi列表。在另外的示例中,pe路由器10a的路由引擎204可以使用转发信息224(诸如c-mac表232和b-mac表234)以提供用于与pe路由器10a(516)相关联的b-mac地址的值和用于与扩展组中使用的客户设备4c(518)相关联的c-mac地址的值。路由引擎204可以使用bgp协议220来将扩展组增补或预先附加到l2控制消息,诸如b-mac路由。pe路由器10a可以沿着ifc226的输出链路230将包括扩展组的l2控制消息发送到pe路由器10e。

路由引擎204可以将扩展组预先添加或增补到b-mac路由以创建单个l2控制消息。转发引擎222可以沿着ifc226的输出链路230将扩展组和b-mac路由(route,路径)转发到以太网段中的远程pe路由器。

本公开中描述的技术可以至少部分地以硬件、软件、固件或它们的任何组合中实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,一个或多个处理器包括一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或任何其它等效集成或分立逻辑电路,以及此类组件的任何组合。术语“处理器”或“处理电路”通常可以指任何前述逻辑电路,单独地或与其它逻辑电路组合或任何其它等同电路。包括硬件的控制单元还可以执行本公开的一个或多个技术。

此类硬件、软件和固件可以在相同设备内或在独立设备内实现,以支持在本公开中描述的各种操作和功能。此外,所描述的单元、模块或组件中的任一者可一起实现或单独实现成分立的但可互操作的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,但不一定意味着此类模块或单元必须由独立硬件或软件组件实现。相反,与一个或多个模块或单元相关联的功能性可以由独立硬件或软件组件执行,或者集成在公共或独立硬件或软件组件中。

本公开中描述的技术也可以在包含指令的计算机可读介质(诸如计算机可读存储介质)中实施或编码在计算机可读介质中。例如当执行指令时,在计算机可读存储介质中嵌入或编码的指令可以使可编程处理器或其他处理器执行该方法。计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪存、硬盘、cd-rom、软盘、盒式磁带、磁性介质、光介质或其它计算机可读介质。

除了上述之外或作为上述的替代,描述以下示例。在任何以下实施例中描述的特征可与本文所述的任何其它实施例一起使用。

示例1.一种方法,包括:响应于通过包括在提供商骨干桥接以太网虚拟专用网络(pbb-evpn)的以太网段中的第一提供商边缘(pe)路由器从第一客户边缘(ce)路由器接收第一层二(l2)数据消息,执行包括在所述第一l2数据消息中的客户mac(c-mac)地址的l2获悉;由所述第一pe路由器将l2控制消息发送至包括在所述以太网段中的至少另一个pe路由器,所述l2控制消息包括所述c-mac地址和在所述至少另一个pe路由器处未配置的第一桥接mac(b-mac)地址,所述l2控制消息使得所述至少另一个pe路由器至少部分地基于所述第一pe路由器通过所述第一pe路由器的所述第一b-mac地址获悉所述c-mac地址的可到达性,并且所述至少另一个pe路由器各自被配置用于与所述以太网段相关联的第二b-mac地址;和响应于由所述第一pe路由器从所述以太网段中的所述至少另一个pe路由器接收包括所述c-mac地址的作为单播流量的第二l2数据消息,将所述第二l2数据消息转发到所述第一ce路由器。

示例2.根据示例1所述的方法,其中,所述至少另一个pe路由器不与所述第一b-mac地址相关联,其中,所述第一pe路由器和所述第一ce路由器各自与所述第二b-mac地址相关联。

示例3.根据示例2所述的方法,其中,所述第一pe路由器和所述至少另一个pe路由器各自被配置有与所述第一b-mac地址相关联的公共以太网段标识符。

示例4.根据示例1所述的方法,其中,所述l2控制消息包括扩展组,其中所述扩展组包括:所述c-mac地址;所述第一b-mac地址;指示在所述至少另一个pe路由器处的c-mac地址的添加或删除操作的操作数;指示包括所述第一b-mac地址的服务实例的服务实例标识符(isid)和以太网段标识符(esi)的列表。

示例5.根据示例1所述的方法,其中,所述c-mac地址指示所述第一l2数据消息的源。

示例6.根据示例1所述的方法,其中,所述第一b-mac地址是源b-mac地址,并且其中执行l2获悉还包括:确定所述c-mac地址是否在所述第一pe路由器的mac路由表内;以及在确定所述c-mac地址不在所述mac路由表内时,在所述mac路由表内安装与所述第一b-mac地址相关联的所述c-mac地址。

示例7.根据示例1所述的方法,还包括:从所述第一pe路由器的c-mac表中检索所述c-mac地址,其中所述c-mac地址对应于所述第一l2数据消息的源;至少部分地基于所述c-mac地址从所述c-mac表中检索所述第一b-mac地址;以及生成具有包括所述c-mac地址和所述第一b-mac地址的扩展组的所述l2控制消息。

示例8.一种提供商骨干桥接(pbb)以太网虚拟专用网络(evpn)的第一提供商边缘(pe)路由器,所述第一路由器包括:控制单元,其具有耦接至存储器的至少一个处理器;其中所述控制单元执行软件,所述软件被配置成:响应于从第一客户边缘(ce)路由器接收第一层二(l2)数据消息,执行包括在所述第一l2数据消息中的客户mac(c-mac)地址的l2获悉;将l2控制消息发送至包括在所述以太网段中的至少另一个pe路由器,所述l2控制消息包括c-mac地址和在所述至少另一个pe路由器处未配置的第一桥接mac(b-mac)地址,所述l2控制消息使得所述至少另一个pe路由器至少部分地基于所述第一pe路由器通过所述第一pe路由器的所述第一b-mac地址获悉所述c-mac地址的可到达性,并且所述至少另一个pe路由器各自被配置用于与所述以太网段相关联的第二b-mac地址;和响应于从所述以太网段中的所述至少另一个pe路由器接收包括所述c-mac地址的作为单播流量的第二l2数据消息,将所述第二l2数据消息转发到第一ce路由器。

示例9.根据示例8所述的pe路由器,其中,所述至少另一个pe路由器不与所述第一b-mac地址相关联,其中,所述第一pe路由器和所述第一ce路由器各自与所述第二b-mac地址相关联。

示例10.根据示例9所述的pe路由器,其中,所述第一pe路由器和所述至少另一个pe路由器各自被配置有与所述第一b-mac地址相关联的公共以太网段标识符。

示例11.根据示例8所述的pe路由器,其中,所述l2控制消息包括扩展组,其中所述扩展组包括:所述c-mac地址;所述第一b-mac地址;指示在所述至少另一个pe路由器处的c-mac地址的添加或删除操作的操作数;指示包括所述第一b-mac地址的服务实例的服务实例标识符(isid)和以太网段标识符(esi)的列表。

示例12.根据示例8所述的pe路由器,其中,所述c-mac地址指示所述第一l2数据消息的源。

示例13.根据示例8所述的pe路由器,其中,所述第一b-mac地址是源b-mac地址,并且其中被配置成执行l2获悉的所述软件还被配置成:确定所述c-mac地址是否在所述第一pe路由器的mac路由表内;以及在确定所述c-mac地址不在所述mac路由表内时,在所述mac路由表内安装与所述第一b-mac地址相关联的所述c-mac地址。

示例14.根据示例8所述的pe路由器,其中,所述软件还被配置成:

从所述第一pe路由器的c-mac表中检索所述c-mac地址,其中所述c-mac地址对应于所述第一l2数据消息的源;至少部分地基于所述c-mac地址从所述c-mac表中检索所述第一b-mac地址;以及生成具有包括所述c-mac地址和所述第一b-mac地址的扩展组的所述l2控制消息。

示例15.一种包括指令的计算机可读介质,所述指令使得提供商骨干桥接(pbb)以太网虚拟网络(evpn)的第一提供商边缘(pe)路由器的至少一个可编程处理器能够:响应于从第一客户边缘(ce)路由器接收第一层二(l2)数据消息,执行包括在所述第一l2数据消息中的客户mac(c-mac)地址的l2获悉;将所述l2控制消息发送至包括在所述以太网段中的至少另一个pe路由器,所述l2控制消息包括所述c-mac地址和在所述至少另一个pe路由器处未配置的第一桥接mac(b-mac)地址,所述l2控制消息使得所述至少另一个pe路由器至少部分地基于所述第一pe路由器通过所述第一pe路由器的所述第一b-mac地址获悉所述c-mac地址的所述可到达性,并且所述至少另一个pe路由器各自被配置用于与以所述太网段相关联的第二b-mac地址;和响应于从所述以太网段中的所述至少另一个pe路由器接收包括所述c-mac地址的作为单播流量的第二l2数据消息,将所述第二l2数据消息转发到所述第一ce路由器。

示例16.根据示例15所述的计算机可读介质,其中,所述至少另一个pe路由器不与所述第一b-mac地址相关联,其中,所述第一pe路由器和所述第一ce路由器各自与所述第二b-mac地址相关联。

示例17.根据示例16所述的计算机可读介质,其中,所述第一pe路由器和所述至少另一个pe路由器各自被配置有与所述第一b-mac地址相关联的公共以太网段标识符。

示例18.根据示例15所述的计算机可读介质,其中,所述l2控制消息包括扩展组,其中所述扩展组包括:

所述c-mac地址;所述第一b-mac地址;指示在所述至少另一个pe路由器处的c-mac地址的添加或删除操作的操作数;指示包括所述第一b-mac地址的服务实例的服务实例标识符(isid)和以太网段标识符(esi)的列表。

示例19.根据示例15所述的计算机可读介质,其中,所述第一b-mac地址是源b-mac地址,并且其中用于使得所述第一pe路由器的所述至少另一个可编程处理器执行l2获悉的所述指令还被配置成使得所述第一pe路由器的所述至少一个可编程处理器用于:确定所述c-mac地址是否在所述第一pe路由器的mac路由表内;以及在确定所述c-mac地址不在所述mac路由表内时,在所述mac路由表内安装与所述第一b-mac地址相关联的所述c-mac地址。

示例20.根据示例15所述的计算机可读介质,其中,所述指令还被配置成使得所述第一pe路由器的所述至少另一个可编程处理器用于:从所述第一pe路由器的c-mac表中检索所述c-mac地址,其中所述c-mac地址对应于所述第一l2数据消息的源;至少部分地基于所述c-mac地址从所述c-mac表中检索所述第一b-mac地址;以及生成具有包括所述c-mac地址和所述第一b-mac地址的扩展组(extendedcommunity)的所述l2控制消息。

此外,在上述任何一个示例中阐述的任一个具体特征可以组合到所描述技术的有益示例中。即,任何一个具体特征通常可应用于本发明的所有示例。已经描述了本发明的各种示例。

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