使用分段路由的以太网虚拟专用网的制作方法

文档序号:20013058发布日期:2020-02-22 04:42阅读:1030来源:国知局
使用分段路由的以太网虚拟专用网的制作方法

本公开一般涉及通过分组网络发送分组,例如但不限于根据通过分组网络的分组的分段路由。



背景技术:

通信行业正在迅速变化,以适应新兴技术和不断增长的客户需求。该客户对新应用程序和提高性能的现有应用程序的需求正在推动通信网络和系统提供商采用具有更高速度和容量(例如,更大带宽)的网络和系统。为了实现这些目标,许多通信提供商采取的一种通用方法是使用分组交换技术。通常在基于表示网络节点或路径的一个或多个值转发的网络中对分组进行转发。



技术实现要素:

在独立权利要求中陈述了本发明的方面,并且在从属权利要求中陈述了优选特征。一个方面的特征可以单独地或与其它方面组合地应用于每个方面。

尤其公开了与使用互联网协议版本6(ipv6)分段路由(srv6)底层网络和srv6增强型边界网关协议(bgp)信令的以太网虚拟专用网(evpn)相关联的方法、装置、计算机存储介质、机制和装置(bgp)信令。

一个实施例包括:在网络中经由路由协议的特定路由通告消息,来通告与特定互联网协议版本6(ipv6)分段路由(srv6)分段标识符(sid)相关联的特定路由,其中sid包括特定路由器的定位符和表示特定路由器的特定以太网虚拟专用网(evpn)端功能的功能编码,其中特定sid包括到特定路由器的可路由前缀;由特定路由器接收包括特定sid的特定分组;以及响应于接收到的包括特定sid的所述特定分组,特定路由器对特定分组执行特定evpn端功能。

一个实施例包括:由网络中的入口路由器接收对特定路由与特定sid相关联的通告;由入口路由器接收以太网帧;由入口路由器将以太网帧封装到特定分组中;以及由入口路由器将特定分组发送到网络中;其中,所述对特定分组执行特定evpn端功能包括:将以太网帧从分组中解封装,以及从特定路由器发送以太网帧。

在一个实施例中,特定分组包括分段路由报头(srh),该分段路由报头包括特定sid作为当前活动sid。在一个实施例中,路由协议是边界网关协议,并且特定路由通告消息通告bgp路由类型1、2、3或5,并且与包括特定sid的特定srv6-vpn类型长度值(tlv)相关联。在一个实施例中,特定路由通告消息包括通告特定路由与一个或多个bgp基于多协议标签交换(基于mpls)的evpn标签相关联,一个或多个bgp基于mpls的evpn标签用于在mpls分组中使用,以便由特定路由器对相应mpls分组调用相应bgp基于mpls的evpn功能。

一个实施例包括:由入口路由器接收对特定路由与特定sid和所述一个或多个mpls-evpn标签两者相关联的通告;由入口路由器接收以太网帧;由入口路由器将以太网帧封装到特定分组中;以及由入口路由器将特定分组发送到网络中;在一个实施例中,对特定分组执行特定evpn端功能包括从分组中解封装以太网帧,以及从特定路由器发送以太网帧。

一个实施例包括:由第二入口路由器接收对特定路由与特定sid和所述一个或多个mpls-evpn标签两者相关联的通告;由第二入口路由器接收第二以太网帧;由第二入口路由器将第二以太网帧封装到特定mpls分组中;由第二入口路由器将特定mpls分组发送到网络中;以及对特定mpls分组执行所述相应bgp基于mpls的evpn功能,对特定mpls分组执行所述相应bgp基于mpls的evpn功能包括:从特定mpls分组中解封装第二以太网帧,以及从特定路由器发送第二以太网帧。

附图说明

所附权利要求书特别地阐述了一个或多个实施例的特征。从以下结合附图的详细描述中,可以理解(一个或多个)实施例及其优点,其中:

图1a示出了根据一个实施例进行操作的网络;

图1b示出了根据一个实施例的过程;

图1c示出了根据一个实施例的过程;

图1d示出了根据一个实施例的不同的分段路由(sr)分组格式;

图2a示出了根据一个实施例的分组交换设备;

图2b示出了根据一个实施例的装置;

图3a示出了根据一个实施例的srv6类型长度值(tlv);

图3b示出了根据一个实施例的srv6-sid信息;

图3c示出了根据一个实施例的srv6-vpn编码;

图4a示出了根据一个实施例的srv6-增强型边界网关协议(bgp)路由通告消息;以及

图4b示出了根据一个实施例的srv6-增强型边界网关协议(bgp)路由通告消息。

具体实施方式

尤其公开了与使用srv6底层网络和srv6-增强型边界网关协议(bgp)信令的evpn相关联的方法、装置、计算机存储介质、机制和设备(means)。如本文所使用的,分段路由是指srv6。而且,与srv6有关的分段标识符(sid)通常是指ipv6地址,然而,如果在实施例中使用的话,其也包括其他的(一个或多个)srv6编码(例如,sid的紧凑编码)。

如本文所使用的,节点是网络中的设备;路由器(本文也称为分组交换设备)是转发没有明确寻址到其自身的接收到的分组的节点(例如,l2或l3分组交换设备);并且主机是不为路由器的任意节点。

术语“路由”被用于指完全或部分扩展的前缀(例如,10.0.0.1、10.0.*.*、bgp网络层可达性信息(nlri)、evpnnlri),其不同于通过网络的“路径”,该“路径”是指下一跳(例如,下一路由器)或完整路径(例如,经过路由器a然后路由器b,等等)。同样地,本文在没有限定词的情况下使用术语“前缀”是指完全或部分扩展的前缀。

本文描述的实施例包括各种元件和限制,其中没有一个元件或限制被设想为关键元件或限制。权利要求中的每一个均单独地以其整体的方式引用了实施例的方面。此外,所描述的一些实施例可以包括但不仅限于系统、网络、集成电路芯片、嵌入式处理器、asic、方法以及包含指令的计算机可读介质。一个或多个系统、设备、组件等可以包括一个或多个实施例,其可以包括权利要求的由相同或不同的系统、设备、组件等执行的一些元件或限制。处理元件可以是通用处理器、特定-任务处理器、一个或多个处理器的核心、或者其他用于执行相应处理的位于同一地点的资源共享实现方式。下文描述的实施例体现了各个方面和配置,其中附图示出了示例性和非限制性的配置。公开了用于执行方法和处理框操作的计算机可读介质和设备(例如,处理器和存储器或者被配置为执行这种操作的其他装置),并且与实施例的可扩展范围一致。术语“装置”在本文中与器具或设备的通用定义一致地使用。

在附图中示出的步骤、连接以及信号和信息的处理,包括但不限于任意框图和流程图以及消息序列图,通常可以以相同或不同的串行或并行顺序和/或由不同的组件和/或过程、线程等和/或通过不同的连接来执行,并且与其他实施例中的其他功能进行组合,除非这使得实施例失效或者明确或隐含地要求序列(例如,对于读取值、处理所述读取值的序列,必须在处理读取值之前获得该值,尽管可以在读取操作之前、同时和/或之后来执行一些相关联的处理)。此外,除非明确说明,否则本文档中没有描述或引用的内容均不被视为本申请的现有技术。

本文使用术语“一个实施例”来引用特定实施例,其中每个对“一个实施例”的引用均可以指代不同的实施例,并且在描述相关联的特征、元件和/或限制时本文重复使用该术语并不建立每个和每一实施例必须包括的相关联的特征、元件和/或限制的累积集合,尽管实施例通常可以包括所有的这些特征、元件和/或限制。此外,本文通常使用术语“第一”、“第二”等以及“特别的”和“特定”来表示不同的单元(例如,第一小部件(widget)或操作、第二小部件或操作、特别的小部件或操作、特定小部件或操作)。本文使用这些术语并不一定意味着诸如一个单元、操作或事件在另一或又一特征之前发生或到来之类的顺序,而是提供了在元件单元之间进行区分的机制。此外,短语“基于x”和“响应于x”被用于指示从其导出或引起某事的项目“x”的最小集合,其中“x”是可扩展的,并且不一定描述对其执行操作的项目的完整列表等。此外,短语“耦合到”被用于指示两个元件或设备之间的某种程度的直接或间接连接,其中对一个或多个设备进行耦合修改或者不修改耦合的信号或者传送的信息。此外,本文使用术语“或者”来标识对一个或多个、包括所有连接项目的选择。此外,与“包括”、“包含”或“其特征在于”同义的过渡术语“由…组成”是包含式的或开放式的,并且不排除附加、未引用的元件或方法步骤。最后,当在用于执行步骤的方法权利要求中引用时,术语“特别的机器”是指35usc§101机器法定类别内的特别的机器。

尤其公开了与使用srv6底层网络和srv6-增强型边界网关协议(bgp)信令的evpn相关联的方法、装置、计算机存储介质、机制和设备。

图1a示出了根据一个实施例进行操作的网络100。如图所示,网络100包括位于网络110外部的客户端网络101和103(其在一个实施例中是同一网络),网络110包括边缘节点(例如,srv6和/或mpls)111和113以及节点网络112(例如,路由器、主机、网关和服务功能)其中的一些、没有或全部可以是具有sr功能的(sr-capable)节点。响应于接收到本地分组,sr边缘节点111、113标识sr策略(例如,一个或多个分段的列表),通过该策略或向其转发封装了本地分组的sr分组。这些策略可以响应于网络状况、网络编程、路由通告而改变。sr边缘节点111和113还从sr分组中解封装本地分组,并且将本地分组转发到网络101和103中。

图1b示出了根据一个实施例的过程。处理从过程框120开始。在过程框122中,sr网络中的sr节点(例如,路由器)经由一种或多种路由协议和/或经由一种或多种标签分发协议来连续地通告和交换分段和路由信息。在一个实施例中,bgp路由通告包括srv6evpn信息(其包括一个或多个sid)。在一个实施例中,bgp路由通告包括srv6evpn信息(例如,包括一个或多个sid)和mplsevpn信息。在一个实施例中,bgp路由通告包括srv6evpn信息(例如,包括一个或多个sid)和位于每个标签字段mplsevpn信息信令(其通告节点不支持mplsevpn但是支持srv6evpn)中的隐含空值(null)。在过程框124中,sr边缘设备(例如,srv6头端)根据需要来连续地更新其sr策略。图1b的流程图的处理如由过程框129所指示的来完成。

图1c示出了根据一个实施例的由sr边缘路由器执行的过程。处理从过程框130开始。在过程框132中,分组被接收。在过程框134中,基于分组来执行入口查找操作以确定处理信息。如在过程框135中所确定的,如果分组是在外部网络接口上接收到的并且将被发送到srv6或mpls网络中,则处理进行至过程框136,否则处理进行至过程框141。如在过程框141中所确定的,如果分组是在srv6或mpls网络接口上接收到的并且将被发送到外部网络,则处理进行至过程框142,否则处理进行至过程框148,其中分组被正常地处理并且处理进行至过程框149。

在过程框136中继续,根据相应的策略,将接收到的本地分组封装到srv6分组中,该srv6分组具有srv6封装报头(header)(其具有标识evpn端功能的至少一个sid),并且处理进行至过程框138。

在过程框142中继续,本地分组被移除以免被封装到接收到的srv6或mpls分组中;在过程框144中,由接收到的srv6分组中的sid标识的分段路由evpn端功能被执行,或者由mpls标签标识的evpn功能被执行;并且处理进行至过程框145。如在过程框145中所确定的,如果出口查找操作作为所应用的evpn功能的部分来执行,则处理进行至过程框138。否则,在过程框146中,本地分组被从一个或多个相应接口转发作为所应用的evpn功能的部分,并且处理进行到处理框149。

在过程框138中继续,对出站分组执行出口查找操作以确定转发信息,并且分组被相应地转发。处理进行至过程框149。

在过程框149中继续,图1c的流程图的处理如由过程框149所指示的来完成。

图1d示出了根据一个实施例的分段路由(sr)分组160。如图所示,sr分组160(例如,srv6分组)包括sr封装报头162和本地分组169。sr封装报头162包括ipv6报头167和一个或多个sr报头(srh)168。

图2a-图2b及其在本文的讨论提供了根据一个实施例的各种srv6和/或mpls节点的描述。

图2a示出了根据一个实施例的分组交换设备200(例如,具有sr功能的路由器和/或具有mpls功能的路由器)的一个实施例。如图所示,分组交换设备200包括多个线卡(linecard)201和205,每个线卡均具有一个或多个网络接口,用于通过通信链路(例如,可能是链路聚合组的部分)来发送和接收分组,并且具有一个或多个处理元件(其在与使用srv6底层网络和srv6增强型边界网关协议(bgp)信令的evpn相关联的一个实施例中被使用)。分组交换设备200还具有控制平面,该控制平面具有一个或多个处理元件202,用于管理与evpn(其使用srv6底层网络和srv6增强型边界网关协议(bgp)信令)相关联的分组的控制平面和/或控制平面处理。分组交换设备200还包括其他卡204(例如,服务卡、刀片(blade)),其他卡204包括在一个实施例中用于处理(例如,转发/发送、丢弃、操纵、改变、修改、接收、创建、复制、可能利用具有一个或多个服务功能的共享存储器来执行sr网关功能、根据一个或多个服务功能来应用服务)与使用srv6底层网络和srv6-增强型边界网关协议(bgp)信令的evpn相关联的分组的处理元件;以及一些基于硬件的通信机制203(例如,总线、交换结构和/或矩阵等)以允许其不同的实体201、202、204和205进行通信。关于由分组交换设备200接收或从其发送的多个其它特定分组和/或分组流,线卡201和205通常执行入口和出口线卡两者的动作。在一个实施例中,分组的srv6evpn处理由分组交换设备200(例如,在一个或多个线卡201、205上,在服务卡204上)实现。

图2b是在与使用srv6底层网络和srv6增强型边界网关协议(bgp)信令的evpn相关联的一个实施例中使用的装置220的框图。在一个实施例中,装置220执行与本文所示出或以其他方式描述的、和/或在本文另一图中所示出或以其他方式描述的流程图中的一个流程图相对应的一个或多个过程或其部分。

在一个实施例中,装置220包括一个或多个处理器221(通常具有片上存储器)、存储器222(可能是共享存储器)、(一个或多个)存储设备223、(一个或多个)专用组件225(例如,诸如用于执行查找和/或分组处理操作和/或服务功能的经优化硬件、关联存储器、二进制和/或三进制内容-可寻址存储器等)以及用于传送信息(例如,发送和接收分组、用户-界面、显示信息等)的(一个或多个)接口227,其通常经由一个或多个通信机制229(例如,总线、链路、交换结构、矩阵)与通常定制的通信路径进行通信耦合,以满足特定应用程序的需求。

装置220的各种实施例可以包括更多或更少的元件。装置220的操作通常由(一个或多个)处理器221使用存储器222和(一个或多个)存储设备223来控制以执行一个或多个任务或过程。存储器222是一种类型的计算机可读/计算机存储介质,并且通常包括随机存取存储器(ram)、只读存储器(rom)、闪存、集成电路和/或其他存储器组件。存储器222通常存储将由(一个或多个)处理器221执行的计算机可执行指令和/或由(一个或多个)处理器221操纵的用于实现根据实施例的功能的数据。(一个或多个)存储设备223是另一类型的计算机可读介质,并且通常包括固态存储介质、磁盘驱动器、软盘、联网服务、磁带驱动器和其他存储设备。(一个或多个)存储设备223通常存储将由(一个或多个)处理器221执行的计算机可执行指令和/或由(一个或多个)处理器221操纵的用于实现根据实施例的功能的数据。

一个实施例提供了对bgp的新扩展,以允许通告与srv6相关的某些属性和功能,以及端功能(endfunction)以处理srv6evpn分组。

为了支持各种基于srv6的evpn覆盖服务,一个实施例使用任意bgp路由类型来通告sid。为了支持各种基于srv6的evpn覆盖服务,一个实施例使用bgp路由类型1、2、3和/或5来通告sid。

在一个实施例中,在新的srv6-vpnsidtlv中通告这些sid,这些新的srv6-vpnsidtlv是可选的过渡bgp前缀sid属性。该属性用于多种目的。在srv6-vpnsidtlv中通告srv6sid标识:bgp出口路由器是可以经由srv6底层网络到达的。在一个实施例中,接收该bgp路由通告的bgp入口路由器然后将接收到的分组封装到srv6分组中,或者将srv6srh插入到接收到的ipv6分组中。在srv6-vpnsidtlv中通告srv6sid还标识要包括在分组的srh中的一个或多个sid的值。在一个实施例中,支持srv6底层网络的bgp讲者(speaker)经由bgpsrv6属性来按照路由分发sid。

在一个实施例中,bgp讲者(例如,支持基于mpls的evpn和基于srv6的evpn两者的srv6出口路由器)填充路由通告的evpn路由类型中的mpls标签字段,从而向接收该路由通告的bgp入口路由器提供两个不同的底层网络(例如,mpls和srv6)以在其中进行选择从而发送到出口srv6路由器(即,具有mpls和srv6功能两者的路由器)。在一个实施例中,bgp讲者(例如,不支持基于mpls的evpn但支持基于srv6的evpn的srv6出口路由器)将路由通告的evpn路由类型中的mpls标签字段填充到隐含空值,从而向接收该路由通告的bgp入口路由器提供srv6路由信息,并且向该bgp入口路由器通知其不支持基于mpls的evpn。这样,入口和出口路由器不再必须协商底层网络功能,也不使用bgp功能通告来确保它们两者都能够正确地处理这种通告的nlri。

图3a示出了根据一个实施例的srv6类型长度值(tlv)300。如图所示,srv6tlv300包括类型字段301(例如,八位)、指示值字段的长度的长度字段302(例如,十六位)、保留字段303(例如,八位)以及包含srv6sid信息310的值字段。

图3b示出了根据一个实施例的srv6-sid信息310。如图所示,srv6-sid信息310包括sid类型字段311(例如,一个八位字节)和srv6sid320(例如,128位ipv6可路由地址)。在一个实施例中,针对第3层端功能,sid类型字段311被设置为类型1。在一个实施例中,针对第2层端功能,sid类型字段311被设置为类型2。

图3c示出了根据一个实施例的srv6sid320的srv6-vpn编码。如图所示,srv6sid320包括定位符21(标识sid所对应的路由器)、功能322(例如,标识要由路由器执行的处理)以及用于执行处理的可选自变量(argument)323。在一个实施例中,整个srv6320被用于通过网络将分组路由到bgp出口路由器。在一个实施例中,sid320的非完全扩展前缀(例如,定位符321、定位符321加上功能322)被用于通过网络将分组路由到bgp通告路由器。

图4a示出了根据一个实施例的srv6增强型边界网关协议(bgp)路由通告消息400,其通告用于srv6和mpls底层网络两者的bgpevpn路由。如图所示,bgp路由通告消息400包括mplsevpn通告401(其包括(一个或多个)相应mpls标签)和srv6tlv402(其包括标识srv6端功能的sid)。

图4b示出了根据一个实施例的srv6-增强型边界网关协议(bgp)路由通告消息410,其通告用于srv6底层网络而不是用于mpls底层网络的bgpevpn路由。如图所示,bgp路由通告消息410包括mplsevpn通告411(其包括(一个或多个)mpls标签字段中的(一个或多个)隐含空值标签)和srv6tlv402(其包括标识srv6端功能的sid)(例如,位于(图4b的)bgp通告消息410和(图4a的)bgp通告消息400两者中的相同srv6tlv402)。

srv6核心上的以太网自动发现路由

以太网自动-发现(a-d)路由是在rfc7432中定义的类型1路由类型,并且可以被用于实现水平分割过滤、快速收敛和混叠。evpn路由类型1也被用在evpn-vpws中以及evpn灵活的交叉连接中;主要被用于通告点对点服务id。

多归属(multihomed)pe可以利用在rfc7432中定义的所引入的esimpls标签扩展团体(community)来按照以太网分段通告以太网自动发现路由。提供商边缘路由器(pe)可以在evpn类型4es路由交换之后对连接到同一以太网分段的其他pe进行标识。作为同一evi的部分的所有多归属pe和所有远程pe均可以导入自动发现路由。

在一个实施例中,对于srv6核心,evpn路由类型1被编码为如下:

·路由区分符(rd)(例如,八个八位字节),

·以太网分段标识符(例如,十个八位字节),

·以太网标签id(例如,八个八位字节),以及

·mpls标签(例如,三个八位字节)。

对于srv6核心的仅srv6bgp讲者:srv6-vpnsidtlv可以与路由一起通告。

evpn路由类型1(per-esad)

其中:

·bgp下一跳(next-hop):出口pe的ipv6地址

·以太网标签id:所有ffff’s

·mpls标签:总是设置为零值

·扩展团体:esi标签扩展团体

在一个实施例中,srv6-vpntlv与路由通告一起被(或者可以被)通告,并且srv6-vpnsid的行为完全取决于通告的发起者。在一个实施例中,行为是arg.fe2。

evpn路由类型1(per-eviad)

其中:

·bgp下一跳:出口pe的ipv6地址

·以太网标签id:用于vlan感知桥接、evpnvpws和fxc的非零

·mpls标签:隐含空值

在一个实施例中,srv6-vpntlv与路由通告一起被(或者可以被)通告,并且srv6-vpnsid的行为完全取决于通告的发起者。在一个实施例中,该行为是end.dx2、end.dxv2或end.dt2u。

具有srv6核心的mac/ip通告路由(类型2)

evpn路由类型2被用于通过mp-bgp向给定evpn实例中的所有其他pe通告用于单播流量的mac或mac+ip地址可达性。在一个实施例中,对于srv6核心,mac/ip通告路由类型被编码为如下:

·路由区分符(rd)(例如,八个八位字节),

·以太网分段标识符(例如,十个八位字节),

·以太网标签id(例如,八个八位字节),

·mac地址长度(例如,一个八位字节),

·mac地址(例如,六个八位字节),

·ip地址长度(例如,一个八位字节),

·ip地址(例如,零个、四个或十六个八位字节),

·mpls标签1(例如,三个八位字节),以及

·mpls标签2(例如,零或三个八位字节)。

其中:

·bgp下一跳:出口pe的ipv6地址,

·mpls标签1:隐含空值,以及

·mpls标签2:隐含空值。

在一个实施例中,srv6-vpnsidtlv被(或可以被)通告。srv6-vpnsid的行为完全取决于通告的发起者。在一个实施例中,srv6sid的行为如下:

·end.dx2,end.dtu2(路由的第2层部分)以及

·end.dt6/4或end.dx6/4(路由的第3层部分)。

以下描述了在一个实施例中使用的不同类型的类型2通告。第一种类型被用在第2层网关中,而第二种类型被用在evpnirb中。

-仅具有mac的mac/ip通告路由(类型2):

·bgp下一跳:出口pe的ipv6地址,

·mpls标签1:隐含空值,

·mpls标签2:隐含空值,以及

·srv6-vpnsidtlv可以编码end.dx2或end.dtu2行为。

·具有mac+ip的mac/ip通告路由(类型2):

·bgp下一跳:出口pe的ipv6地址,

·mpls标签1:隐含空值,

·mpls标签2:隐含空值,以及

·srv6-vpnsidtlv可以编码第2层end.dx2或end.dtu2行为和第3层end.dt6/4或end.dx6/4行为。

具有srv6核心的包容性多播以太网标签路由

evpn路由类型3被用于通过mp-bgp向给定evpn实例中的所有其他pe通告多播流量可达性信息。

·路由区分符(rd)(例如,八个八位字节),

·以太网标签id(例如,八个八位字节),

·ip地址长度(例如,一个八位字节),以及

·原始路由器的ip地址(例如,4个或16个八位字节)。

其中:

·bgp下一跳:出口pe的ipv6地址,以及

·pmsi隧道属性(根据rfc6514)。

在一个实施例中,srv6-vpntlv与路由通告一起被(或可以被)通告,并且srv6-vpnsid的行为完全取决于通告的发起者。在一个实施例中,该行为是end.dt2m。

在一个实施例中,在隧道类型被设置为入口复制的情况下,pmsi隧道属性(参见rfc6514)是(或可以)包含mpls隐含空值标签。

·标志(例如,1个八位字节),

·隧道类型(例如,1个八位字节),

·mpls标签(例如,3个八位字节),以及

·隧道标识符(例如,变量)。

其中:

·隧道类型(例如,根据rfc6514定义),

·mpls标签:隐含空值,以及

·隧道标识符:出口pe的ip地址。

在一个实施例中,arg.fe2自变量sid被(或可以被)应用于end.dt2m功能sid以在入口pe上创建单个sid。结果end.dt2m(fe2)sid被用作如在rfc7432中所述的evpn水平分割机制。

具有srv6核心的以太网分段路由

在一个实施例中,evpn路由类型4被用来发现参与相同冗余组的pe。其也被用在所指定的转发器(df)选举过程中。在一个实施例中,对于srv6核心,以太网分段路由类型被编码为如下:

·路由区分符(rd)(例如,八个八位字节),

·以太网标签id(例如,八个八位字节),

·ip地址长度(例如,一个八位字节),以及

·原始路由器的ip地址(例如,4个或16个八位字节)。

其中:

·bgp下一跳:出口pe的ipv6地址。

在一个实施例中,srv6-vpntlv与路由一起被通告。在一个实施例中,srv6-vpntlv不随路由一起被通告。该路由的处理没有改变;它仍然被保持为如在rfc7432中所述。

具有srv6核心的ip前缀路由器(类型5)

在一个实施例中,evpn路由类型5被用于通过mp-bgp向给定evpn实例中的所有其他pe通告ip地址可达性。ip地址可以包括主机ip前缀或者任何特定子网。evpn路由类型5在ietf-bess-evpn-前缀-通告-05中定义。在一个实施例中,编码为如下:

·路由区分符(rd)(例如,八个八位字节),

·以太网分段标识符(例如,十个八位字节),

·以太网标签id(例如,八个八位字节),

·ip前缀长度(例如,一个八位字节),

·ip前缀(例如,六个八位字节),

·gw地址(例如,四个或十六个八位字节),以及

·mpls标签(例如,三个八位字节),

其中:

·bgp下一跳:出口pe的ipv6地址,以及

·mpls标签:隐含空值。

在一个实施例中,srv6-vpnsidtlv被(或可以被)通告。srv6-vpnsid的行为完全取决于通告的发起者。在一个实施例中,srv6sid的行为是end.dt6/4或end.dx6/4。

多播相关路由(evpn路由类型6、类型7、类型8)

在一个实施例中,这些路由不需要任何附加的srv6-vpntlv。在一个实施例中,按照evpn路由-类型4,bgp下一跳等于出口pe的ipv6地址。

与本地sid相关联的srv6端功能

下面描述出口路由器响应于接收到包括通告的sid的srv6分组而执行的端功能。端功能通常由sid的功能部分来确定。

end.dx2:具有解封装和第2层交叉连接的端点

一个实施例使用“具有解封装和第2层交叉连接到oif的端点”功能(简称end.dx2)。当n接收到去往s的分组并且s是本地end.dx2sid时,n执行以下操作:

如果nh=srh并且sl>0

丢弃分组;;ref1

否则如果enh=59;;ref2

弹出(外部)ipv6报头及其扩展报头

经由与本地sid相关联的oif来转发结果帧

否则

丢弃分组

其中:

·refl:end.dx2sid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

·ref2:根据rfc2460,下一报头值59被分配给ipv6无下一报头。

当sid为end.dx2功能并且下一报头为59时,以太网帧在有效载荷中,而没有任何附加的报头。

在一个实施例中,end.dx2功能被定制以期望特定vlan格式并且在传出接口上转发之前重写出口vlan报头。在一个实施例中,end.dx2被用于l2vpn点对点用例。

end.dxv2:具有解封装和特定vlanl2表查找的端点

一个实施例使用“具有解封装和特定vlanl2表查找的端点”功能(简称end.dxv2)。当n接收到去往s的分组并且s是本地end.dxv2sid时,n执行以下操作:

如果nh=srh并且sl>0

丢弃分组;;ref1

否则如果ipenh=59;;ref2

弹出(外部)ipv6报头及其扩展报头

在l2表t中查找暴露的内部vlan

经由匹配的表条目来转发

否则

丢弃分组

其中:

·refl:end.dxv2sid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

·ref2:根据rfc2460,下一报头值59被分配给ipv6无下一报头。

当sid为end.dxv2功能并且下一报头为59时,以太网帧在有效载荷中,而没有任何附加的报头。

在一个实施例中,end.dxv2功能被定制以期望特定vlan格式并且在传出接口上转发之前重写出口vlan报头。在一个实施例中,end.dxv2被用于evpn灵活的交叉连接用例。表查找支持dotlq,dotlad具有单标签和双标签。

end.dt2u:具有解封装和特定单播macl2表查找的端点

一个实施例使用“具有解封装和特定单播macl2表查找的端点”功能(简称end.dt2u)。当n接收到去往s的分组并且s是本地end.dt2usid时,n执行以下操作:

如果nh=srh并且sl>0

丢弃分组;;ref1

否则如果enh=59;;ref2

弹出(外部)ipv6报头及其扩展报头

在l2表t中学习暴露的内部macsa;;ref3

在l2表t中查找暴露的内部macda

经由匹配的表条目来转发

否则

丢弃分组

其中:

·refl:end.dt2usid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

·ref2:根据rfc2460,下一报头值59被分配给ipv6无下一报头。

当sid为end.dt2u功能并且下一报头是59时,以太网帧在有效负载中,而没有任何附加的报头。

·ref3:在evpn中,经由控制平面来完成对暴露的内部macsa的学习。

在一个实施例中,end.dt2u被用于evpn桥接单播用例。

end.dt2m:具有解封装和特定l2表泛洪(flooding)的端点

一个实施例使用“具有解封装和特定l2表泛洪的端点”功能(简称end.dt2m)。当n接收到发往s的分组并且s是本地end.dt2msid时,n执行以下操作:

如果nh=srh并且sl>0

丢弃分组;;ref1

否则如果enh=59;;ref2

弹出(外部)ipv6报头及其扩展报头

在l2表t中学习暴露的内部macsa;;ref3

基于l2表t中的所有oif来转发

否则

丢弃分组

其中:

·refl:end.dt2msid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

·ref2:根据rfc2460,下一报头值59被分配给ipv6无下一报头。

当sid为end.dt2u功能并且下一报头是59时,以太网帧在有效负载中,而没有任何附加的报头。

·ref3:在evpn中,经由控制平面来完成对暴露的内部macsa的学习。

end.dt2m被用于evpn桥接bum用例。

arg.fe2:特定于evpnesi过滤的l2自变量

一个实施例使用“特定于evpnesi过滤的l2自变量”(简称arg.fe2),其是end.dt2m端点功能的自变量。arg.fe2自变量被用于从l2表t泛洪中排除特定oif。通过位或运算将arg.fe2sid与end.dt2m功能合并在一起,以形成end.dt2m(fe2)单个sid。在一个实施例中,end.dt2m被用于具有esi过滤用例的evpn桥接。

end.dt2m:具有解封装和具有自变量的特定l2表泛洪的端点

一个实施例使用“具有解封装和具有自变量的特定l2表泛洪的端点”功能(简称end.dt2m(fe2))。当n接收到去往s的分组并且s是本地end.dt2msid时,n执行以下操作:

如果nh=srh并且sl>0

丢弃分组;;ref1

否则如果enh=59;;ref2

弹出(外部)ipv6报头及其扩展报头

在l2表t中学习暴露的内部macsa;;ref3

基于除了由l2表t中的自变量所指定的oif之外的所有oif来转发

否则

丢弃分组

其中

·refl:end.dt2msid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

·ref2:根据rfc2460,下一报头值59被分配给ipv6无下一报头。

当sid为功能end.dt2u并且下一报头是59时,以太网帧在有效负载中,而没有任何附加的报头。

·ref3:在evpn中,经由控制平面来完成对暴露的内部macsa的学习。

end.dt2m(fe2)被用于具有esi过滤用例的evpn桥接。

end.dx6:具有解封装和ipv6交叉连接的端点

一个实施例使用“具有解封装和到ipv6邻接阵列的交叉连接的端点”功能(简称end.dx6)。当n接收到去往s的分组并且s是本地end.dx6sid时,n执行以下操作:

如果nh=srh并且sl>0

丢弃分组;;ref1

否则如果enh=41;;ref2

弹出(外部)ipv6报头及其扩展报头

转发到与sid邻接绑定的第3层;;ref3

否则

丢弃分组

其中:

·refl:end.dx6sid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

·ref2:41指的是如由互联网协议编号的iana分配定义的ipv6封装。

·ref3:基于分组的报头的哈希值(在一个实施例中,至少为sa、da、流标签)进行选择。

一个实施例的end.dx6功能的一个应用是l3vpn用例,其中不需要在出口pe处的特定租户表中进行fib查找。

end.dx4:具有解封装和ipv4交叉连接的端点

一个实施例使用“具有解封装和到ipv4邻接阵列的交叉连接的端点”功能(简称end.dx4)。当n接收到去往s的分组并且s是本地end.dx4sid时,n执行以下操作:

如果nh=srh并且sl>0

丢弃分组;;ref1

否则如果enh=4;;ref2

弹出(外部)ipv6报头及其扩展报头

转发到与sid邻接绑定的第3层;;ref3

否则

丢弃分组

其中:

·refl:end.dx4sid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

·ref2:4指的是如由互联网协议编号的iana分配定义的ipv4封装。

·ref3:基于分组报头的哈希值(在一个实施例中,至少为sa、da、流标签)进行选择。

一个实施例的end.dx4功能的应用之一是l3vpn用例,其中不需要在出口pe处的特定租户表中进行fib查找。

end.dt6:具有解封装和特定ipv6表查找的端点

一个实施例使用“具有解封装和特定ipv6表查找的端点”功能(简称end.dt6)。当n接收到去往s的分组并且s是本地end.dt6sid时,n执行以下操作:

如果nh=srh并且sl>0

丢弃分组;;ref1

否则如果enh=41;;ref2

弹出(外部)ipv6报头及其扩展报头

在ipv6表t中查找暴露的内部ipv6da

经由匹配的表条目来转发

否则

丢弃分组

其中:

·refl:end.dt6sid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

·ref2:41是指由互联网协议编号的iana分配定义的ipv6封装。

一个实施例的end.dt6功能的应用之一是l3vpn用例,其中需要在出口pe处的特定租户表中进行fib查找。请注意,在这种情况下,可以为主ipv6表定义end.dt6,并且end.dt6支持ipv6inipv6解封装的等效物(无vpn/租户影响)。

end.dt4:具有解封装和特定ipv4表查找的端点

一个实施例使用“具有解封装和特定ipv4表查找的端点”功能(简称end.dt4)。当n接收到去往s的分组并且s是本地end.dt4sid时,n执行以下操作:

如果nh=srh并且sl>0

丢弃分组;;ref1

否则如果enh=4;;ref2

弹出(外部)ipv6报头及其扩展报头

在ipv4表t中查找暴露的内部ipv4da

经由匹配的表条目来转发

否则

丢弃分组

其中:

·refl:end.dt4sid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

·ref2:4是指由互联网协议编号的iana分配定义的ipv4封装。

一个实施例的end.dt4功能的应用之一是l3vpn用例,其中需要在出口pe处的特定租户表中进行fib查找。请注意,在这种情况下,可以为主ipv4表定义end.dt4,并且end.dt4支持ipv4inipv6解封装的等效物(无vpn/租户影响)。

t.encaps.l2:利用l2帧的封装进行传输

在一个实施例中,t.encaps.l2对接收到的l2帧(即,接收到的以太网报头及其可选的vlan报头在外部分组的有效载荷中)进行封装。如果在没有srh的情况下推送外部报头,则da必须是类型end.dx2、end.dxv2、end.dt2u或end.dt2m的sid,并且下一报头必须为59(ipv6无下一报头(nonextheader))。接收到的以太网帧跟随ipv6报头及其扩展报头。否则,如果利用srh来推送外部报头,则srh的最后一个sid必须为类型end.dx2、end.dxv2、end.dt2u或end.dt2m,并且srh的下一报头必须为59(ipv6无下一报头)。接收到的以太网帧跟随ipv6报头及其扩展报头。

在一个实施例中,t.encaps.l2如下对接收到的l2帧进行封装。;;ref1

如果在没有srh的情况下推送外部报头

ipv6da必须是类型第2层(layer-2)的sid;;ref2

ipv6下一报头等于59(ipv6无下一报头)

接收到的l2帧跟随ipv6报头

否则(即,利用ipv6+srh推送外部报头)

srh的第0个sid必须为类型第2层的sid;;ref2

srh下一报头等于59(ipv6无下一报头)

接收到的l2帧跟随ipv6报头及其扩展报头

其中:

·ref1:接收到的l2帧=接收到的以太网报头及其可选的vlan报头。

·ref2:4个第2层=end.dx2,end.dx2v,end.dt2u或end.dt2m。

bgpsrv6sid更新的错误处理

在一个实施例中,当bgp讲者接收到包含格式错误的(malformed)srv6-vpnsidtlv的bgp更新消息时,其忽略接收到的bgp属性,并且不将其传递给其他bgp对等方。这等效于rfc7606中指定的属性丢弃动作。在一个实施例中,当丢弃属性时,bgp讲者记录或不记录错误以进行进一步分析。

vpn网络中ipv6分段路由上的bgp信令

下面描述具体的示例和实施例。下面描述的特征可以结合上面描述的特征来实现,并且元件可以被并入到所要求保护的本发明的各个方面中。特别地,该部分描述对bgp的扩展,以允许根据一个实施例通告与srv6相关的某些属性和功能。

a.用于srv6-evpn的bgp

如在[rfc7432]中定义的以太网vpn(evpn)提供了一种构建evpn覆盖的可扩展方法。其主要集中于基于mpls的evpn,但是调出了基于ip的evpn覆盖的可扩展性。其定义了携带前缀和mpls标签属性的4种路由类型。标签对于evpn流量的mpls封装具有特定用途。在[i-d.ietf-bess-evpn-前缀-通告]中定义携带用于evpn的mpls标签信息(并且因此封装信息)的第五种路由类型。其聚焦于evpn第3层。下面讨论的路由类型是:

·以太网自动发现路由

·mac/ip通告路由

·包容性多播以太网标签路由

·以太网分段路由

·ip前缀路由

·选择性多播路由

·igmp加入同步路由

·igmp离开同步路由

为了支持基于srv6的evpn覆盖,在上面的路由类型1、2、3和5中通告sid。根据路由类型,在新的srv6-vpnsidtlv中通告(一个或多个)sid,这些新的srv6-vpnsidtlv是可选的过渡bgp前缀sid属性。该属性用于两个目的;第一,其指示bgp出口设备经由srv6底层是可达的,并且接收该路由的bgp入口设备可以选择封装或插入srv6srh。第二,其指示要包括在srh封装中的一个或多个sid的值。支持srv6底层的bgp讲者可以经由bgpsrv6属性来按照路由分发sid。如果bgp讲者同时支持基于mpls的evpn,则其还可以在evpn路由类型中填充标签值,并且允许bgp入口设备来决定使用哪个封装。如果bgp讲者不支持基于mpls的evpn服务,则evpn路由类型中的mpls标签必须被设置为隐含空值。

b.srv6核心上的以太网自动发现路由

以太网自动发现(a-d)路由是[rfc7432]中定义的类型1路由类型,并且可用于实现水平分割过滤、快速收敛和混叠。evpn路由类型1也用在evpn-vpws中以及evpn灵活的交叉连接中;主要用于通告点对点服务id。

多归属pe可以利用在[rfc7432]中定义的所引入的esimpls标签扩展团体来按照以太网分段通告以太网自动发现路由。pe可以在evpn类型4es路由交换之后对连接到同一以太网分段的其他pe进行标识。作为同一evi的部分的所有多归属pe和所有远程pe可以导入自动发现路由。

对于srv6核心,evpn路由类型1被编码为如下:

对于srv6核心的仅srv6bgp讲者:

·srv6-vpnsidtlv可以用路由通告。

b.1.1.evpn路由类型1(per-esad)

其中:

·bgp下一跳:出口pe的ipv6地址

·以太网标签id:所有ffff

·mpls标签:始终设置为零值

·扩展团体:esi标签扩展团体

srv6-vpntlv可以与路由通告一起被通告,并且srv6-vpnsid的行为完全取决于通告的发起者。实际上,该行为将可能是arg.fe2。

b.1.2.evpn路由类型1(per-eviad)

其中:

·bgp下一跳:出口pe的ipv6地址

·以太网标签id:针对vlan感知桥接、evpnvpws和fxc的非零

·mpls标签:隐含空值

srv6-vpntlv可以与路由通告一起被通告,并且srv6-vpnsid的行为完全取决于通告的发起者。实际上,该行为将可能是end.dx2、end.dv2或end.dt2u。

b.2.具有srv6核心的mac/ip通告路由(类型2)

evpn路由类型2用于通过mp-bgp向给定evpn实例中的所有其他pe通告单播流量的mac或mac+ip地址可达性。

对于srv6核心,mac/ip通告路由类型被编码为如下:

其中:

·bgp下一跳:出口pe的ipv6地址

·mpls标签1:隐含空值

·mpls标签2:隐含空值

可以通告srv6-vpnsidtlv。srv6-vpnsid的行为完全取决于通告的发起者。实际上,srv6sid的行为如下:

·end.dx2,end.dtu2(路由的第2层部分)

·end.dt6/4或end.dx6/4(路由的第3层部分)

下面描述了不同类型的类型2(type-2)通告。第一种类型用于第2层网关,而第二种类型用于evpnirb。

·仅具有mac的mac/ip通告路由(类型2)

obgp下一跳:出口pe的ipv6地址

ompls标签1:隐含空值

ompls标签2:隐含空值

osrv6-vpnsidtlv可以编码end.dx2或end.dtu2行为

·具有mac+ip的mac/ip通告路由(类型2)

obgp下一跳:出口pe的ipv6地址

ompls标签1:隐含空值

ompls标签2:隐含空值

osrv6-vpnsidtlv可以编码第2层end.dx2或end.dtu2行为和第3层end.dt6/4或end.dx6/4行为

b.3.具有srv6核心的包容性多播以太网标签路由

evpn路由类型3用于通过mp-bgp向给定evpn实例中的所有其他pe通告多播流量可达性信息。

其中:

·bgp下一跳:出口pe的ipv6地址

·pmsi隧道属性[rfc6514]

srv6-vpntlv可能与路由通告一起被通告,并且srv6-vpnsid的行为完全取决于通告的发起者。实际上,该行为将可能是end.dt2m。

在隧道类型被设置为入口复制的情况下,pmsi隧道属性[rfc6514]可以包含mpls隐含空值标签。

其中:

·隧道类型:根据[rfc6514]定义,

·mpls标签:隐含空值

·隧道标识符:出口pe的ip地址。

arg.fe2自变量sid可以被应用于end.dt2m功能sid以在入口pe上创建单个sid。结果end.dt2m(fe2)sid用作如在[rfc7432]中描述的evpn水平分割机制。

b.4.具有srv6核心的以太网分段路由

evpn路由类型4被用于发现参与相同冗余组的pe。其也被用在df选举过程中。

对于srv6核心,以太网分段路由类型被编码为如下:

其中:

·bgp下一跳:出口pe的ipv6地址

与以前的路由类型相反,srv6-vpntlv不与路由一起被通告。该路由的处理没有改变;其仍然保持如在[rfc7432]中所描述的。

b.5.具有srv6核心的ip前缀路由器(类型5)

evpn路由类型5被用于通过mp-bgp向给定evpn实例中的所有其他pe通告ip地址可达性。ip地址可以包括主机ip前缀或任何特定子网。evpn路由类型5在[id.ietf-bess-evpn-前缀-通告]中定义。

其中:

·bgp下一跳:出口pe的ipv6地址

·mpls标签:隐含空值

srv6-vpnsidtlv可以被通告。srv6-vpnsid的行为完全取决于通告的发起者。实际上,srv6sid的行为是end.dt6/4或end.dx6/4。

b.6.多播相关路由(evpn路由类型6、类型7、类型8)

这些路由不需要任何附加的srv6-vpntlv。按照evpn路由类型4,bgp下一跳等于出口pe的ipv6地址。

c.与本地sid相关联的srv6端功能

c.1.end.dx2:具有解封装和第2层交叉连接的端点

“具有解封装和第2层交叉连接到oif的端点”功能(简称end.dx2)是端点功能的一种变型。

当n接收到去往s的分组并且s是本地end.dx2sid时,n执行以下操作:

1.如果nh=srh且sl>0

2.丢弃分组

;;ref1

3.否则如果enh=59

;;ref2

4.弹出(外部)ipv6报头及其扩展报头

5.经由与本地sid相关联的oif来转发结果帧

6.否则

7.丢弃分组

ref1:end.dx2sid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

ref2:我们方便地重新使用分配给ipv6无下一报头(rfc2460)的下一报头值59。当sid具有end.dx2功能且下一报头=59时,我们知道有效载荷中有以太网帧,而没有任何其他报头。

可以自定义end.dx2功能,以期望特定vlan格式并且在传出接口上转发之前重新写入出口vlan报头。

end.dx2被用于l2vpn点对点用例。

c.2.end.dv2:具有解封装和特定vlanl2表查找的端点

“具有解封装和特定vlanl2表查找的端点”功能(简称end.dv2)是端点功能的一种变型。

当n接收到去往s的分组并且s是本地end.dv2sid时,n执行以下操作:

1.如果nh=srh且sl>0

2.丢弃分组

;;ref1

3.否则如果enh=59

;;ref2

4.弹出(外部)ipv6报头及其扩展报头

5.在l2表t中查找暴露的内部vlan

6.经由匹配的表条目来转发

7.否则

8.丢弃分组

ref1:end.dv2sid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

ref2:我们方便地重新使用分配给ipv6无下一报头(rfc2460)的下一报头值59。当sid具有end.dv2功能且下一报头=59时,我们知道有效载荷中有以太网帧,而没有任何其他报头。

可以自定义end.dv2功能,以期望特定vlan格式并且在传出接口上转发之前重新写入出口vlan报头。

end.dv2被用于evpn灵活的交叉连接用例。表查找支持dotlq,dotlad具有单标签和双标签。

6.2.end.dt2u:具有解封装和特定单播macl2表查找的端点

“具有解封装和特定单播macl2表查找的端点”功能(简称end.dt2u)是端点功能的一种变型。

当n接收到去往s的分组并且s是本地end.dt2usid时,n执行以下操作:

1.如果nh=srh且sl>0

2.丢弃分组

;;refl

3.否则如果enh=59

;;ref2

4.弹出(外部)ipv6报头及其扩展报头

5.在l2表t中学习暴露的内部macsa;;ref3

6.在l2表t中查找暴露的内部macda

7.经由匹配的表条目来转发

8.否则

9.丢弃分组

refl:end.dt2usid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

ref2:我们方便地重新使用分配给ipv6无下一报头(rfc2460)的下一报头值59。当sid具有end.dt2u功能且下一报头=59时,我们知道有效载荷中有以太网帧,而没有任何其他报头。

ref3:在evpn中,经由控制平面来完成对暴露的内部macsa的学习。

end.dt2u被用于evpn桥接单播用例。

c.3.end.dt2m:具有解封装和特定l2表泛洪的端点

“具有解封装和特定l2表泛洪的端点”功能(简称end.dt2m)是端点功能的一种变型。

当n接收到去往s的分组并且s是本地end.dt2msid时,n执行以下操作:

1.如果nh=srh且sl>0

2.丢弃分组

;;refl

3.否则如果enh=59

;;ref2

4.弹出(外部)ipv6报头及其扩展报头

5.在l2表t中学习暴露的内部macsa;;ref3

6.基于l2表t中的所有oif来转发

7.否则

8.丢弃分组

refl:end.dt2msid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

ref2:我们方便地重新使用分配给ipv6无下一报头(rfc2460)的下一报头值59。当sid具有end.dt2m功能且下一报头=59时,我们知道有效载荷中有以太网帧,而没有任何其他报头。

ref3:在evpn中,经由控制平面来完成对暴露的内部macsa的学习

end.dt2m被用于evpn桥接bum用例。

6.3.arg.fe2:特定于evpnesi过滤的l2自变量

“特定于evpnesi过滤的l2自变量”(简称arg.fe2)是end.dt2m端点功能的自变量。

arg.fe2自变量被用于从l2表t泛洪中排除特定oif。通过位或运算将arg.fe2sid与end.dt2m功能合并,以形成end.dt2m(fe2)单个sid。

end.dt2m被用于具有esi过滤用例的evpn桥接

c.4.end.dt2m:具有解封装和具有自变量的特定l2表泛洪的端点

“具有解封装和具有自变量的特定l2表泛洪的端点”功能(简称end.dt2m(fe2))是端点功能的一种变型。

当n接收到去往s的分组并且s是本地end.dt2msid时,n执行以下操作:

1.如果nh=srh且sl>0

2.丢弃分组

;;ref1

3.否则如果enh=59

;;ref2

4.弹出(外部)ipv6报头及其扩展报头

5.在l2表t中学习暴露的内部macsa;;ref3

6.基于除了由l2表t中的自变量指定的oif之外的所有oif来转发

7.否则

8.丢弃分组

ref1:end.dt2msid必须总是最后的sid,或者其可以是没有srh报头的ipv6分组的目标地址。

ref2:我们方便地重新使用分配给ipv6无下一报头(rfc2460)的下一报头值59。当sid具有end.dt2m功能且下一报头=59时,我们知道有效载荷中有以太网帧,而没有任何其他报头

ref3:在evpn中,经由控制平面来完成对暴露的内部macsa的学习

end.dt2m(fe2)被用于具有esi过滤用例的evpn桥接。

d.encaps.l2:利用l2帧的封装进行传输

当t.encaps封装接收到的ip分组时,t.encaps.l2封装接收到的l2帧(即,接收到的以太网报头及其可选的vlan报头位于外部分组的有效载荷中)。

如果在没有srh的情况下推送了外部报头,则da必须是类型end.dx2,end.dv2,end.dt2u或end.dt2m的sid,并且下一报头必须为59(ipv6无下一报头)。接收到的以太网帧跟随ipv6报头及其扩展报头。

否则,如果外部报头与srh一起推送,则srh的最后的sid必须为类型end.dx2,end.dv2,end.dt2u或end.dt2m,并且srh的下一报头必须为59(ipv6无下一报头)。接收到的以太网帧跟随ipv6报头及其扩展报头。

e.bgpsrv6sid更新的错误处理

当bgp讲者接收到包含格式错误的srv6-vpnsidtlv的bgp更新消息时,其必须忽略接收到的bgp属性,并且不将其传递给其他bgp对等方。这等效于[rfc7606]中指定的属性丢弃动作。当丢弃属性时,bgp讲者可以记录错误以进行进一步分析。

结尾段落

总之,在一个实施例中,使用互联网协议版本6(ipv6)分段路由(srv6)底层网络和srv6增强型边界网关协议(bgp)信令来实现以太网虚拟专用网(evpn)。在路由协议(例如bgp)的特定路由通告消息中通告与特定互联网协议版本6(ipv6)分段路由(srv6)分段标识符(sid)相关联的特定路由。sid包括特定路由器的定位符和表示特定路由器的特定evpn端功能的功能编码,其中特定sid包括到特定路由器的可路由前缀。特定路由器接收包括特定sid的特定分组;并且作为响应,特定路由器对特定分组执行特定evpn端功能。在一个实施例中,特定分组包括分段路由报头(srh),该分段路由报头(srh)包括作为当前活动sid的特定sid。

鉴于本公开的原理可以应用于许多可能的实施例,将理解,本文关于附图/图形描述的实施例及其方面仅是说明性的,并且不应被认为限制本公开的范围。例如,并且如本领域技术人员将显而易见的,许多过程框操作可以被重新排序以在其他操作之前、之后或基本上与其他操作同时执行。而且,在各种实施例中可以使用许多不同形式的数据结构。本文所述的公开内容考虑了所有这些实施例,因为这些实施例可落入所附权利要求及其等同物的范围内。

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