SRv6 VPN技术白皮书
Copyright © 2023 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
5.1 EVPN L3VPN over SRv6 BE实现过程
5.2 EVPN L3VPN over SRv6 TE实现过程
6.1 EVPN VPWS over SRv6 BE实现过程
6.2 EVPN VPWS over SRv6 TE实现过程
7.1 EVPN VPLS over SRv6 BE实现过程
7.2 EVPN VPLS over SRv6 TE实现过程
9.4.2 MP-EBGP连接方式下采用SRv6 BE转发方式实现过程
9.4.3 MP-EBGP连接方式下采用SRv6 TE转发方式实现过程
10.1 L3VPN over SRv6 Interworking
10.1.1 L3VPN over SRv6 Interworking简介
10.1.2 域内L3VPN over SRv6 Interwoking
10.1.3 L3VPN over SRv6 Option A Interworking
10.1.4 L3VPN over SRv6 Option B Interworking
10.2 L2VPN over SRv6 Interworking
10.2.1 MPLS L2VPN网络(或VPLS网络)与SRv6网络互通
10.2.2 EVPN VPWS over SRv6与EVPN VPWS互通
10.2.3 EVPN VPLS over SRv6与EVPN VPLS网络互通
传统VPN网络中通过部署LDP/RSVP-TE等标签分发协议,在公网中建立虚拟专用通信网络。这种方式部署复杂,维护成本较高。通过在公网部署SRv6 VPN可以解决上述问题。SRv6 VPN是通过SRv6隧道承载IPv6网络中的VPN业务的技术,控制平面采用MP-BGP通告VPN路由信息,数据平面采用SRv6封装方式转发报文。租户的物理站点分散在不同位置时,SRv6 VPN可以基于已有的服务提供商或企业IP网络,为同一租户的不同物理站点提供二层或三层互联。
根据VPN业务种类,SRv6 VPN分为:
· L3VPN业务:IP L3VPN over SRv6和EVPN L3VPN over SRv6
· L2VPN业务:EVPN VPWS over SRv6和EVPN VPLS over SRv6
SRv6 VPN技术具有如下优势:
· 简化维护
仅需要在源节点上控制和维护路径信息,网络中其他节点不需要维护路径信息。
· 智能控制
SRv6基于SDN架构设计,跨越了应用和网络之间的鸿沟,能够更好地实现应用驱动网络。SRv6中转发路径、转发行为、业务类型均可控。
· 部署简单
SRv6基于IGP和BGP扩展实现,无须使用MPLS标签,不需要部署标签分发协议,配置简单。
在SRv6网络中,不需要大规模升级网络设备,就可以部署新业务。在DC(Data Center,数据中心)和WAN(广域网)中,只需网络边界设备及特定网络节点支持SRv6,其他设备支持IPv6即可。
· 易于实现VPN等新业务
SRv6定义了多种类型的SID,不同SID具有不同的作用,指示不同的转发动作。通过不同的SID操作,可以实现VPN等业务处理。
日后,用户还可以根据实际需要,定义新的SID类型,具有很好的扩展性。
BGP overlay服务是指基于BGP的SRv6 VPN业务,以BGP作为控制平面,SRv6作为数据平面,处理L2VPN和L3VPN业务报文。在IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS over SRv6组网中,通过BGP协议报文通告NLRI时可以携带Prefix SID属性。BGP Prefix SID属性用来携带SRv6 SID及其相关的信息,该属性定义了以下2种TLV,以实现L2VPN和L3VPN业务。
· SRv6 service TLV
· SRv6 Service Sub-TLV
SRv6 service TLV用于承载BGP overlay服务的业务类型。
SRv6 service TLV的报文格式如2.1 图1所示。
SRv6 service TLV包含字段如表1所示。
表1 SRv6 service TLV的字段描述表
字段名称 |
长度 |
含义 |
TLV Type |
8比特 |
业务类型: · 5:L3业务类型 · 6:L2业务类型 |
TLV Length |
16比特 |
长度 |
Reserved |
8比特 |
预留值,取值为0 |
SRv6 Service Sub-TLVs |
32比特 |
SRv6业务相关信息,由一系列TLV组成 |
SRv6 Service Sub-TLV用于承载BGP Prefix SID信息。
SRv6 Service Sub-TLV的报文格式如2.2 图2所示。
图2 SRv6 Service Sub-TLV
SRv6 Service Sub-TLV包含字段如表2所示。
表2 SRv6 Service Sub-TLV的字段描述表
字段名称 |
长度 |
含义 |
SRv6 Service Sub-TLV Type |
8比特 |
业务类型,取值为1 |
SRv6 Service Sub-TLV Length |
16比特 |
长度 |
Reserved1 |
8比特 |
预留值,取值为0 |
SRv6 SID Value |
128比特 |
SRv6 SID值 |
SRv6 SID Flags |
8比特 |
标志位,目前无定义 |
SRv6 Endpoint Behavior |
16比特 |
SRv6 SID类型: · End SID · End.X SID · End.T SID · End.DX6 SID · End.DX4 SID · End.DT6 SID · End.DT4 SID · End.DX2 SID · End.DX2V SID · End.DT2U SID · End.DT2M SID |
Reserved2 |
8比特 |
预留值,取值为0 |
SRv6 Service Data Sub-Sub-TLV |
32比特 |
标识SRv6 SID的属性 |
SRv6 BE(Segment Routing IPv6 Best Effort)是指通过IGP协议发布Locator网段,SRv6网络中的节点按最短路径优先算法计算到达Locator网段的最优路由。该路由对应的路径为SRv6 BE路径。
公网BGP路由或者VPN实例的BGP路由迭代到SRv6 BE路径后,可以实现将公网流量或VPN流量引入SRv6 BE路径。
SRv6 TE(Segment Routing IPv6 Traffic Engineering)基于SRv6 TE Policy实现。报文的入口节点通过不同的引流方式,将公网流量或VPN流量引入SRv6 TE Policy转发。SRv6 TE Policy对应的路径为SRv6 TE路径。
如图3所示,IP L3VPN over SRv6通过MP-BGP在IPv6骨干网上发布用户站点的IPv4/IPv6私网路由,使用PE间的SRv6路径承载私网报文,从而实现通过IPv6骨干网连接属于同一个VPN、位于不同地理位置的用户。
IP L3VPN over SRv6中支持以下SRv6 SID:
· End.DT4 SID:用于标识网络中的某个IPv4 VPN实例。End.DT4 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例路由表转发。End.DT4 SID用于IPv4私网用户接入场景。
· End.DT6 SID:用于标识网络中的某个IPv6 VPN实例。End.DT6 SID对应的转发动作是解封装报文,并且查找IPv6 VPN实例路由表转发。End.DT6 SID用于IPv6私网用户接入场景。
· End.DT46 SID:用于标识网络中的某个IPv4 VPN实例或IPv6 VPN实例。End.DT46 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例或IPv6 VPN实例路由表转发。End.DT46 SID用于IPv4私网用户和IPv6私网用户接入场景。
· End.DX4 SID:用于标识网络中的某个IPv4下一跳。End.DX4 SID对应的转发动作是解封装报文,并且将解封后的IPv4报文通过该SID绑定的三层接口转发给特定下一跳。End.DX4 SID用于IPv4私网用户接入场景。
· End.DX6 SID:用于标识网络中的某个IPv6下一跳。End.DX6 SID对应的转发动作是解封装报文,并且将解封后的IPv6报文通过该SID绑定的三层接口转发给特定下一跳。End.DX6 SID用于IPv6私网用户接入场景。
· 各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DT4 SID为例进行说明。
· IPv4 L3VPN over SRv6和IPv6 L3VPN over SRv6的实现过程类似,下文仅以IPv4 L3VPN over SRv6为例进行说明。
IP L3VPN over SRv6 BE路由发布和报文转发过程如图4所示。
PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给P和PE 1。
CE 2的私网路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并为私网路由分配End.DT4 SID 100:1::1,形成VPNv4路由。PE 2通过MP-BGP把VPNv4路由发布给PE 1。
(3) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 1。PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。
(4) CE 1收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 100:1::1,然后为报文封装IPv6报文头。IPv6报文头中的源地址由管理员手工配置,目的地址为End.DT4 SID 100:1::1。
(3) PE 1根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给P。
(4) P根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(5) PE 2收到目的IPv6地址为End.DT4 SID 100:1::1的报文后,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
IP L3VPN over SRv6 TE路由发布和报文转发过程如图5所示。在该组网中,控制器将SRv6 TE Policy相关配置下发到PE 1,PE 1、P和PE 2通过IGP协议在公网发布End SID所在Locator网段的路由。。
PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给P 2、P、P 1和PE 1。
以Color引流方式为例,CE 2的私网路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并为私网路由分配End.DT4 SID 100:1::1,形成VPNv4路由。PE 2通过MP-BGP把携带End.DT4 SID和Color扩展团体属性的VPNv4路由发布给PE 1。
(3) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,同时BGP路由按Color引流方式迭代到SRv6 TE Policy。PE 1将VPNv4路由转换成IPv4路由发布给CE 1。PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。
(4) CE 1收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 100:1::1,且该路由下一跳为SRv6 TE Policy。PE 1为报文添加SRH,封装SRv6 TE Policy的SID List和End.DT4 SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1。
(3) P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P。
(4) P收到报文后,执行如下操作:
¡ 检查SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]的IPv6地址100:1::10。
¡ 根据IPv6头中的目的地址查找路由表,将报文转发给P 2。
(5) P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL减1,IPv6目的地址更新为End.DT4 SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT4 SID,执行End.DT4 SID对应的转发动作,即解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
如图6所示,EVPN L3VPN over SRv6通过MP-BGP在IPv6骨干网上使用EVPN的IP前缀路由发布用户站点的IPv4/IPv6私网路由,使用PE间的SRv6路径承载私网报文,从而实现通过IPv6骨干网连接属于同一个VPN、位于不同地理位置的用户。
EVPN L3VPN over SRv6中支持以下SRv6 SID:
· End.DT4 SID:用于标识网络中的某个IPv4 VPN实例。End.DT4 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例路由表转发。End.DT4 SID用于IPv4私网用户接入场景。
· End.DT6 SID:用于标识网络中的某个IPv6 VPN实例。End.DT6 SID对应的转发动作是解封装报文,并且查找IPv6 VPN实例路由表转发。End.DT6 SID用于IPv6私网用户接入场景。
· End.DT46 SID:用于标识网络中的某个IPv4 VPN实例或IPv6 VPN实例。End.DT46 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例或IPv6 VPN实例路由表转发。End.DT46 SID用于IPv4私网用户和IPv6私网用户接入场景。
· End.DX4 SID:用于标识网络中的某个IPv4下一跳。End.DX4 SID对应的转发动作是解封装报文,并且将解封后的IPv4报文通过该SID绑定的三层接口转发给特定下一跳。End.DX4 SID用于IPv4私网用户接入场景。
· End.DX6 SID:用于标识网络中的某个IPv6下一跳。End.DX6 SID对应的转发动作是解封装报文,并且将解封后的IPv6报文通过该SID绑定的三层接口转发给特定下一跳。End.DX6 SID用于IPv6私网用户接入场景。
· 各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DT4 SID为例进行说明。
· IPv4 EVPN L3VPN over SRv6和IPv6 EVPN L3VPN over SRv6的实现过程类似,下文仅以IPv4 EVPN L3VPN over SRv6为例进行说明。
EVPN L3VPN over SRv6 BE路由发布和报文转发过程如图7所示。
图7 EVPN L3VPN over SRv6 BE实现机制
PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给P和PE 1。
CE 2的私网路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并为私网路由分配End.DT4 SID 100:1::1,形成EVPN的IP前缀路由。PE 2通过MP-BGP把EVPN的IP前缀路由发布给PE 1。
(3) PE 1收到EVPN的IP前缀路由后,将该路由加入到VPN实例A的路由表中,并将EVPN的IP前缀路由转换成IPv4路由发布给CE 1。PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。
(4) CE 1收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 100:1::1,然后为报文封装IPv6报文头。IPv6报文头中的源地址由管理员手工配置,目的地址为End.DT4 SID 100:1::1。
(3) PE 1根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给P。
(4) P根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(5) PE 2收到目的IPv6地址为End.DT4 SID 100:1::1的报文后,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
EVPN L3VPN over SRv6 TE路由发布和报文转发过程如图8所示。在该组网中,控制器将SRv6 TE Policy相关配置下发到PE 1,同时PE 1、P和PE 2通过IGP协议在公网发布End SID所在Locator网段的路由。
图8 EVPN L3VPN over SRv6 TE实现机制
PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给P 2、P、P 1和PE 1。
以Color引流方式为例,CE 2的私网路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并为私网路由分配End.DT4 SID 100:1::1,形成EVPN的IP前缀路由。PE 2通过MP-BGP把携带End.DT4 SID和Color扩展团体属性的EVPN IP前缀路由发布给PE 1。
(3) PE 1收到EVPN的IP前缀路由后,将该路由加入到VPN实例A的路由表中,同时BGP路由按Color引流方式迭代到SRv6 TE Policy。PE 1将EVPN的IP前缀路由转换成IPv4路由发布给CE 1。PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。
(4) CE 1收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 100:1::1,且该路由下一跳为SRv6 TE Policy。PE 1为报文添加SRH,封装SRv6 TE Policy的SID List和End.DT4 SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1。
(3) P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P。
(4) P收到报文后,执行如下操作:
¡ 检查SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]的IPv6地址100:1::10。
¡ 根据IPv6头中的目的地址查找路由表,将报文转发给P 2。
(5) P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL减1,IPv6目的地址更新为End.DT4 SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT4 SID,执行End.DT4 SID对应的转发动作,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
EVPN VPWS over SRv6是指通过SRv6隧道承载EVPN VPWS业务,通过IPv6网络透明传输用户二层数据,实现用户网络穿越IPv6网络建立点到点连接。
如图9所示,PE之间通过EVPN路由发布SRv6 SID,建立SRv6隧道。该SRv6隧道作为PW,封装并转发站点网络之间的二层数据报文。
EVPN VPWS over SRv6通过以下SRv6 SID实现二层数据报文的透明传递:
· End.DX2 SID:表示二层交叉连接的SID,用于标识一个端点。End.DX2 SID对应的转发动作是解封装报文,将解封装后的报文转发到SID对应的AC。
· End.DX2L SID:End.DX2L SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DX2L SID对应的转发动作是解封装报文,将解封装后的报文转发到SID对应的AC。End.DX2L SID主要用于EVPN VPWS over SRv6多归属站点组网。
各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DX2 SID为例进行说明。
EVPN VPWS over SRv6 BE路由发布和报文转发过程如图10所示。
图10 EVPN VPWS over SRv6 BE实现机制
PE间通过BGP EVPN路由建立PW的过程为:
(1) 在PE 1、PE 2上均配置Local service ID来标识与其连接的CE,配置Remote service ID来标识远端PE连接的CE,并为每个Local service ID分配End.DX2 SID,该SID作为PW的入SID。
(2) 本地PE(如PE 1)通过Ethernet Auto-discovery Per EVI路由将Local service ID和为Local service ID分配的End.DX2 SID通告给远端PE(如PE 2)。
(3) PE 2接收到路由后,如果路由中的Export target属性与PE 2本地配置的Import target属性匹配,则PE 2将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则建立一条从PE 2到PE 1的单跳SRv6隧道,PE 1通告的End.DX2 SID作为该SRv6隧道的出SID。
(4) 同时,PE 2也会向PE 1发送Ethernet Auto-discovery Per EVI路由。PE 1将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则建立一条从PE 1到PE 2的单跳SRv6隧道。
(5) 两端PE均发布End.DX2 SID,并在两个方向上均建立单跳SRv6隧道后,两条SRv6隧道组成一条PW,用来承载用户二层数据。该PW称为SRv6 PW。
完成路由发布后,二层报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送二层报文给PE 1。
(2) PE 1从连接CE 1的AC上接收到二层报文后,查找与该AC关联的SRv6 PW(即SRv6隧道),找到对应的End.DX2 SID,即PE 2为PE 1分配的End.DX2 SID。
(3) PE 1为报文封装外层IPv6报文头,目的IPv6地址为End.DX2 SID,源IPv6地址由管理员手工配置。
(4) PE 1根据End.DX2 SID查找IPv6路由表,通过最优IGP路由将报文转发给P。
(5) P根据End.DX2 SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2根据End.DX2 SID查找Local SID表,执行End.DX2 SID对应的转发动作,即解封装报文,根据End.DX2 SID匹配与其关联的AC,并通过该AC将报文转发给CE 2。
EVPN VPWS over SRv6 TE路由发布和报文转发过程如图11所示。在该组网中,控制器将SRv6 TE Policy相关配置下发到PE 1,同时PE 1、P和PE 2通过IGP协议在公网发布End SID所在Locator网段的路由。
图11 EVPN VPWS over SRv6 TE实现机制
以Color引流方式为例,PE间通过BGP EVPN路由建立PW的过程为:
(1) 在PE 1、PE 2上均配置Local service ID来标识与其连接的CE,配置Remote service ID来标识远端PE连接的CE,并为每个Local service ID分配End.DX2 SID,该SID作为PW的入SID。
(2) 本地PE(如PE 1)向远端PE(如PE 2)发布Ethernet Auto-discovery Per EVI路由,该路由中携带本端的Local service ID和为Local service ID分配的End.DX2 SID。在该路由中,还可以携带Color扩展团体属性。
(3) PE 2接收到路由后,如果路由中的Export target属性与PE 2本地配置的Import target属性匹配,则PE 2将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则建立一条从PE 2到PE 1的单跳SRv6隧道,PE 1通告的End.DX2 SID作为该SRv6隧道的出SID。PE 2根据Color属性,将路由迭代到SRv6 TE Policy。
(4) 同时,PE 2也会向PE 1发送Ethernet Auto-discovery Per EVI路由。PE 1接收到路由后,处理方式与PE 2相同。
(5) 两端PE均发布End.DX2 SID,并在两个方向上均建立单跳SRv6隧道后,两条SRv6隧道组成一条PW,用来承载用户二层数据。该PW称为SRv6 PW。
完成路由发布后,二层报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送二层报文给PE 1。
(2) PE 1从连接CE 1的AC上接收到二层报文后,查找与该AC关联的SRv6 PW(即SRv6隧道),找到对应的End.DX2 SID,即PE 2为PE 1分配的End.DX2 SID,并查找到该SID迭代到的SRv6 TE Policy。PE 1为报文添加SRH,封装SRv6 TE Policy的SID List和End.DX2 SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1。
(3) P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P。
(4) P收到报文后,执行如下操作:
¡ 检查SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]的IPv6地址100:1::10。
¡ 根据IPv6头中的目的地址查找路由表,将报文转发给P 2。
(5) P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL减1,IPv6目的地址更新为End.DX2 SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DX2 SID,执行End.DX2 SID对应的转发动作,即解封装报文,根据End.DX2 SID匹配与其关联的AC,并通过该AC将报文转发给CE 2。
如图12所示,当一个站点通过不同的以太网链路连接到多台PE时,这些链路就构成了一个ES(Ethernet Segment,以太网段),并以一个相同的ESI(ES Identifier)标识其属于同一个ES。连接的多台PE组成冗余备份组,可以避免PE单点故障对网络造成影响,从而提高网络的可靠性。目前仅支持双归属。
多归属站点组网支持的冗余备份模式包括:
· 多活冗余模式:冗余备份组中的成员PE均可以转发流量,流量在成员PE之间形成负载分担。
· 单活冗余模式:冗余备份组中的成员PE中仅一台PE转发流量,成员PE上的两条SRv6 PW为主备关系,实现当主SRv6 PW出现故障后,将流量立即切换到备份SRv6 PW,使流量转发得以继续。
冗余备份组中的两台成员PE均向PE 3发布End.DX2 SID,并向PE 3通告多归属站点的冗余备份模式以及在冗余备份组中的状态(主PE或备PE)。不同冗余备份模式下,PE 3的处理有所不同:
· 多活冗余模式下:PE 3将PE 1和PE 2发布的路由作为等价路由,在二者之间进行负载分担。
· 单活冗余模式下:PE 3将主PE发布的路由作为最优路由,仅通过该路由转发报文。
EVPN VPWS over SRv6的FRR功能用于减小AC链路故障或SRv6 PW链路故障对网络造成的影响,提升网络的可靠性和稳定性。EVPN VPWS over SRv6的FRR功能包括Bypass PW和主备PW功能。
如图13所示,在多归属站点组网中,PE 2侧的AC链路故障时,PE 2会向PE 1及PE 3通告本地不可达信息,使流量不再通过PE 1与PE 2之间的SRv6 PW转发,在此期间PE 1发送给PE 2的数据报文无法转发到CE 2,会被丢弃。EVPN VPWS over SRv6通过Bypass PW功能解决该问题。在冗余备份组成员PE间建立Bypass SRv6 PW。当AC链路故障时,PE 2通过Bypass SRv6 PW临时将流量到转发到PE 3,再由PE 3转发到CE 2,从而减少丢包。
图13 Bypass PW功能原理图
如果PE 2和PE 3之间通过End.DX2 SID建立Bypass SRv6 PW,则当PE 2和PE 3侧的AC链路均故障时,PE 2和PE 3会将从对端接收到的报文再次通过Bypass SRv6 PW转发给对端,造成短暂的环路。通过在PE 2和PE 3之间使用End.DX2L SID建立Bypass SRv6 PW,可以解决上述问题。End.DX2L SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到Bypass SRv6 PW,从而避免产生环路。
开启Bypass PW功能后,PE会优选使用End.DX2L SID建立Bypass SRv6 PW;如果不存在End.DX2L SID,则会使用End.DX2 SID建立Bypass SRv6 PW。
如果两个CE之间只存在一条SRv6 PW,则当PE节点、PE与CE之间的链路、或PE之间的SRv6 PW出现故障时,CE之间将无法通信。主备PW功能通过部署主备两条SRv6 PW,实现当主SRv6 PW出现故障后,将流量立即切换到备份SRv6 PW,使得流量转发得以继续。
如图14所示,在两个CE之间建立两条SRv6 PW。正常情况下,CE使用主SRv6 PW与远端CE通信;当PE 1检测出到PE 2的SRv6 PW不可用(可能是PE 2节点故障,也可能是SRv6 PW故障,或PE 2与CE 2之间的链路故障),PE 1将启用备份SRv6 PW,通过备份SRv6 PW将CE 1的报文转发给PE 3,再由PE 3转发给CE 2。CE 2接收到报文后,通过更新MAC地址表项等方式将发送给CE 1的报文切换到备份SRv6 PW转发,从而保证通信不会中断。
图14 主备PW功能原理图
EVPN VPLS over SRv6是指通过SRv6隧道承载EVPN VPLS业务,通过IPv6网络透明传输用户二层数据,实现用户网络穿越IPv6网络建立点到多点连接。
如图15所示,PE之间通过EVPN路由发布SRv6 SID,建立SRv6隧道。该SRv6隧道作为PW,封装并转发站点网络之间的二层数据报文。
EVPN VPLS over SRv6通过以下SRv6 SID实现二层数据报文的透明传递:
· End.DT2M SID:用来传递EVPN VPLS的BUM(Broadcast、Unknown-unicast、Multicast,广播、未知单播和组播)流量。End.DT2M SID对应的转发动作是解封装报文,将解封后的报文在VSI实例内广播泛洪。PE为每个VSI实例分配一个End.DT2M SID。
· End.DT2U SID:用来传递EVPN VPLS已知单播流量。End.DT2U SID对应的转发动作是解封装报文,根据解封后报文的目的MAC地址查找VSI实例的MAC地址表,根据MAC表项将报文转发到对应的出接口。PE为每个VSI实例分配一个End.DT2U SID。
· End.DX2 SID:用来传递EVPN VPLS已知单播流量。End.DX2 SID对应的转发动作是解封装报文,将解封后的报文转发到SID对应的AC。PE为VSI实例中的每个AC分配一个End.DX2 SID。
· End.DT2UL SID:End.DT2UL SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DT2UL SID对应的转发动作是解封装报文,根据解封后报文的目的MAC地址查找VSI实例的MAC地址表,根据MAC表项将报文转发到对应的出接口。End.DT2UL SID主要用于EVPN VPLS over SRv6多归属站点组网。每个VSI实例只会分配一个End.DT2UL SID。
· End.DX2L SID:用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DX2L SID对应的转发动作是解封装报文,将解封后的报文转发到SID对应的AC。End.DX2L SID主要用于EVPN VPLS over SRv6多归属站点组网。PE为VSI实例中的每个多归属AC分配一个End.DX2L SID。
各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DT2M SID和End.DT2U SID为例进行说明。
EVPN VPLS over SRv6 BE路由发布和报文转发过程如图16所示。
图16 EVPN VPLS over SRv6 BE组网示意图
本端PE向远端PE发布EVPN路由时,在EVPN路由中携带本端为VSI分配的End.DT2M SID和End.DT2U SID,从而建立本端PE到远端PE的SRv6隧道。其中:
· End.DT2M SID通过IMET路由发布,用来为BUM流量建立SRv6隧道。
· End.DT2U SID通过MAC/IP发布路由发布,用来为已知单播流量建立SRv6隧道。
两端PE均发布End.DT2M SID和End.DT2U SID,并在两个方向上均建立单跳SRv6隧道后,两条SRv6隧道组成一条PW,用来承载用户二层数据。
完成路由发布后,二层已知单播报文从CE 1到CE 2的转发过程为:
(1) CE 1发送二层报文给PE 1。
(2) PE 1从连接CE 1的AC上接收到二层报文后,在AC关联的VSI中查找MAC地址表,找到对应的SRv6隧道,并获取该隧道的End.DT2U SID,即PE 2分配的End.DT2U SID。
(3) PE 1为报文封装外层IPv6报文头,目的IPv6地址为End.DT2U SID,源IPv6地址由管理员手工配置。
(4) PE 1根据End.DT2U SID查找IPv6路由表,通过最优IGP路由将报文转发给P。
(5) P根据End.DT2U SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2根据End.DT2U SID查找Local SID表,执行End.DT2U SID对应的转发动作,解封装报文,并在End.DT2U SID所属的VSI内查找MAC地址表,根据查表结果将报文转发给CE 2。
完成路由发布后,二层广播、组播和未知单播报文的转发过程为:
(1) CE 1发送二层广播、组播和未知单播报文给PE 1。
(2) PE 1从连接CE 1的AC上接收到二层报文后,在AC关联的VSI中查找所有远端PE分配的End.DT2M SID。
(3) PE 1为报文封装外层IPv6报文头,目的IPv6地址为End.DT2M SID,源IPv6地址为由管理员手工配置。
如果PE 1接收到多个远端PE分配的End.DT2M SID,则为二层报文分别封装每个End.DT2M SID,将该报文转发给所有的远端PE。
(4) PE 1根据End.DT2M SID查找IPv6路由表,通过最优IGP路由将报文转发给P。
(5) P根据End.DT2M SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2根据End.DT2M SID查找Local SID表,执行End.DT2M SID对应的转发动作,即解封装报文,并在End.DT2M SID所属的VSI内广播转发该报文。
EVPN VPLS over SRv6 TE路由发布和报文转发过程如图17所示。在该组网中,控制器将SRv6 TE Policy相关配置下发到PE 1,同时PE 1、P和PE 2通过IGP协议在公网发布End SID所在Locator网段的路由。
图17 EVPN VPLS over SRv6 TE组网示意图
本端PE向远端PE发布EVPN路由时,在EVPN路由中携带本端为VSI分配的End.DT2M SID和End.DT2U SID,从而建立本端PE到远端PE的SRv6隧道。其中:
· End.DT2M SID通过IMET路由发布,用来为BUM流量建立SRv6隧道。
· End.DT2U SID通过MAC/IP发布路由发布,用来为已知单播流量建立SRv6隧道。
两端PE均发布End.DT2M SID和End.DT2U SID,并在两个方向上均建立单跳SRv6隧道后,两条SRv6隧道组成一条PW,用来承载用户二层数据。
当PE采用SR-TE方式转发报文时,PE 2会根据接收到EVPN路由的Color属性和下一跳地址,采用基于Color或隧道策略引流的方式,将该路由迭代到一个SRv6 TE Policy。
完成路由发布后,二层已知单播报文从CE 1到CE 2的转发过程为:
(1) CE 1发送二层报文给PE 1。
(2) PE 1从连接CE 1的AC上接收到二层报文后,在AC关联的VSI中查找MAC地址表,找到对应的SRv6隧道,获取该隧道的End.DT2U SID,即PE 2分配的End.DT2U SID,并查找到该SID迭代到的SRv6 TE Policy。PE 1为报文添加SRH,封装SRv6 TE Policy的SID List和End.DT2U SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1。
(3) P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P。
(4) P收到报文后,执行如下操作:
¡ 检查SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]的IPv6地址100:1::10。
¡ 根据IPv6头中的目的地址查找路由表,将报文转发给P 2。
(5) P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL减1,IPv6目的地址更新为End.DT2U SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT2U SID,执行End.DT2U SID对应的转发动作,即解封装报文,并在End.DT2U SID所属的VSI内查找MAC地址表,根据查表结果将报文转发给CE 2。
完成路由发布后,二层广播、组播和未知单播报文的转发过程为:
(1) CE 1发送二层广播、组播和未知单播报文给PE 1。
(2) PE 1从连接CE 1的AC上接收到二层报文后,在AC关联的VSI中查找所有远端PE分配的End.DT2M SID,并查找到各SID迭代到的SRv6 TE Policy。PE 1为报文添加SRH头,封装SRv6 TE Policy的SID List和End.DT2M SID,然后封装IPv6基本头信息。完成后,将报文转发给P 1。如果PE 1接收到多个远端PE分配的End.DT2M SID,则为二层报文分别封装每个End.DT2M SID及其迭代的SRv6 TE Policy的SID List,将该报文转发给所有的远端PE。
(3) P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P。
(4) P收到报文后,执行如下操作:
¡ 检查SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]的IPv6地址100:1::10。
¡ 根据IPv6头中的目的地址查找路由表,将报文转发给P 2。
(5) P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL减1,IPv6目的地址更新为End.DT2M SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT2M SID,执行End.DT2M SID对应的转发动作,即解封装报文,并在End.DT2M SID所属的VSI内广播转发该报文。
如图18所示,当一个站点通过不同的以太网链路连接到多台PE时,这些链路就构成了一个ES(Ethernet Segment,以太网段),并以一个相同的ESI(ES Identifier)标识其属于同一个ES。连接的多台PE组成冗余备份组,可以避免PE单点故障对网络造成影响,从而提高网络的可靠性。目前仅支持双归属。
多归属站点组网支持的冗余备份模式包括:
· 多活冗余模式:冗余备份组中的成员PE均可以转发流量,流量在成员PE之间形成负载分担。
· 单活冗余模式:冗余备份组中的成员PE中仅一台PE转发流量,成员PE上的两条SRv6 PW为主备关系,实现当主SRv6 PW出现故障后,将流量立即切换到备份SRv6 PW,使流量转发得以继续。
冗余备份组中的两台成员PE均向PE 3发布End.DT2U SID、End.DX2 SID和End.DT2M SID,并向PE 3通告多归属站点的冗余备份模式以及在冗余备份组中的状态(主PE或备PE)。不同冗余备份模式下,PE 3的处理有所不同:
· 多活冗余模式下:PE 3将PE 1和PE 2发布的路由作为等价路由,在二者之间进行负载分担。
· 单活冗余模式下:PE 3将主PE发布的路由作为最优路由,仅通过该路由转发报文。
如图19所示,EVPN VPLS over SRv6多归属站点组网中,CE 1双归属接入PE 1和PE 2,其中PE 1为DF。当PE 1侧的AC故障时,PE 1会删除对应的MAC地址表项,并向PE 2及远端PE通告本地不可达信息撤销MAC地址。此时,已经从远端PE发送到PE 1的数据报文由于没有出接口,会被丢弃。
EVPN VPLS over SRv6通过FRR功能解决该问题。在PE 1上启用FRR功能,使PE 1侧的AC故障时,不删除对应的MAC地址表项,而是将匹配该MAC地址表项的报文通过PE 1与PE 2间的Bypass SRv6 PW转发至PE 2,再由PE 2转发至CE 1,从而减少AC故障导致的丢包。
图19 FRR功能原理图
如果PE 1和PE 2之间通过End.DT2U SID或End.DX2 SID建立Bypass SRv6 PW,则当PE 1和PE 2侧的AC链路均故障时,PE 1和PE 2会将从对端接收到的报文再次通过Bypass SRv6 PW转发给对端,造成短暂的环路。通过在PE 1和PE 2之间使用End.DT2UL SID或End.DX2L SID建立Bypass SRv6 PW,可以解决上述问题。End.DT2UL SID和End.DX2L SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。
开启FRR功能后,PE会优选使用End.DT2UL SID或End.DX2L SID建立Bypass SRv6 PW;如果不存在End.DT2UL SID和End.DX2L SID,则会使用End.DT2U SID或End.DX2 SID建立Bypass SRv6 PW。
如图20所示,公网IP over SRv6通过MP-BGP在IPv6骨干网上发布用户站点的IPv4/IPv6路由,使用PE间的SRv6路径承载用户报文,从而实现通过IPv6骨干网连接位于不同地理位置的用户。
图20 公网IP over SRv6组网示意图
公网IP over SRv6中支持以下SRv6 SID:
· End.DT4 SID:用于标识IPv4公网。End.DT4 SID对应的转发动作是解封装报文,并且查找IPv4公网路由表转发。End.DT4 SID用于IPv4用户接入场景。
· End.DT6 SID:用于标识IPv6公网。End.DT6 SID对应的转发动作是解封装报文,并且查找IPv6公网路由表转发。End.DT6 SID用于IPv6用户接入场景。
· End.DT46 SID:用于标识网络中的IPv4公网或IPv6公网。End.DT46 SID对应的转发动作是解封装报文,并且查找IPv4公网或IPv6公网路由表转发。End.DT46 SID用于IPv4和IPv6 用户接入场景。
· End.DX4 SID:用于标识网络中的某个IPv4下一跳。End.DX4 SID对应的转发动作是解封装报文,并且将解封后的IPv4报文通过该SID绑定的三层接口转发给特定下一跳。End.DX4 SID用于IPv4用户接入场景。
· End.DX6 SID:用于标识网络中的某个IPv6下一跳。End.DX6 SID对应的转发动作是解封装报文,并且将解封后的IPv6报文通过该SID绑定的三层接口转发给特定下一跳。End.DX6 SID用于IPv6用户接入场景。
· 各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DT4 SID为例进行说明。
· 公网IPv4 over SRv6和公网IPv6 over SRv6的实现过程类似,下文仅以公网IPv4 over SRv6为例进行说明。
公网IP over SRv6 BE路由发布和报文转发过程如图21所示。
PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给P和PE 1。
CE 2的路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到路由信息后,PE 2将公网路由存放到公网路由表中。PE 2为公网路由分配End.DT4 SID,PE 2将携带End.DT4 SID的IPv4单播路由发布给PE 1。
(3) PE 1收到IPv4单播路由后,将路由加入到公网路由表中,记录End.DT4 SID信息,并将去掉End.DT4 SID的IPv4单播路由发布给CE 1。
(4) CE 1收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1收到公网IPv4报文以后,匹配目的IPv4前缀,查找到关联的End.DT4 SID。PE 1使用End.DT4 SID A2:1::D100作为目的地址封装成IPv6报文。IPv6报文头中的源地址由管理员手工配置。
(3) PE 1根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给P。
(4) P根据End.DT4 SID 100:1::1查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(5) PE 2收到目的IPv6地址为End.DT4 SID 100:1::1的报文后,查找Local SID表,匹配到End.DT4 SID,执行End.DT4 SID对应的转发动作,解封装报文,并根据End.DT4 SID匹配公网实例,查找公网路由表,将报文发送给CE 2。
公网IP over SRv6 TE路由发布和报文转发过程如图22所示。在该组网中,控制器将SRv6 TE Policy相关配置下发到PE 1,同时PE 1、P和PE 2通过IGP协议在公网发布End SID所在Locator网段的路由。
PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以PE 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给P 2、P、P 1和PE 1。
以Color引流方式为例,CE 2的路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到路由信息后,PE 2将公网路由存放到公网路由表中。PE 2为公网路由分配End.DT4 SID,PE 2将携带End.DT4 SID和Color扩展团体属性的IPv4单播路由发布给PE 1。
(3) PE 2收到IPv4单播路由后,将BGP路由按Color引流方式迭代到SRv6 TE Policy,同时将路由加入到公网路由表中,记录End.DT4 SID信息,并将去掉End.DT4 SID的IPv4单播路由发布给CE 2。PE 1收到PE 2发布的IS-IS路由后,将其学习到路由表中。
(4) CE 1收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1收到公网IPv4报文以后,匹配目的IPv4前缀,查找到关联的End.DT4 SID,且该路由下一跳为SRv6 TE Policy。PE 1为报文添加SRH,封装SRv6 TE Policy的SID List和End.DT4 SID,并封装IPv6基本头信息。完成后,将报文转发给P 1。
(3) P 1根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给P。
(4) P收到报文后,执行如下操作:
¡ 检查SRH头中的SL值,如果SL>0,将SL值减1,目的地址更新为SL指示的地址,即SL=1对应的Segment List [1]的IPv6地址100:1::10。
¡ 根据IPv6头中的目的地址查找路由表,将报文转发给P 2。
(5) P 2根据目的地址查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2收到报文后,使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL减1,IPv6目的地址更新为End.DT4 SID 100:1::1。使用IPv6目的地址100:1::1查找Local SID表,匹配到End.DT4 SID,执行End.DT4 SID对应的转发动作,即解封装报文,并根据End.DT4 SID匹配公网实例,查找公网路由表,将报文发送给CE 2。
SRv6 VPN组网应用中,一个VPN的多个Site可能会连接到属于不同AS号的多个服务提供商网络,或者连接到一个服务提供商的属于不同AS的多个网络。这种VPN跨越多个自治系统的应用方式称为SRv6跨域VPN(Multi-AS VPN)。
SRv6跨域VPN支持以下几种实现方式:
· VPN-to-VPN连接方式:ASBR间建立VPN-to-VPN连接。
· MP-EBGP连接方式:ASBR或PE间通过MP-EBGP发布VPNv4/VPNv6/EVPN路由。
SRv6跨域VPN支持SRv6 BE和SRv6 TE转发方式:
· 对于VPN-to-VPN连接方式,在AS内基于SRv6 BE或SRv6 TE转发报文;在AS间,基于普通IP路由转发报文。
· 对于MP-EBGP连接方式,跨AS建立SRv6 BE或SRv6 TE路径,基于对应路径进行报文转发。
如9.3.1 图23所示,在VPN-to-VPN连接方式组网中,两个AS的ASBR设备直接相连。两个ASBR都作为PE,都把对方当作自己的CE设备,通过EBGP会话向对端发布普通的IPv4/IPv6单播路由。
VPN-to-VPN连接方式的优点是实现简单,两个作为ASBR的PE之间不需要为跨域进行特殊配置。VPN-to-VPN连接方式的缺点是可扩展性差:ASBR需要管理所有VPN的路由,为每个VPN创建VPN实例,导致ASBR上的VPN路由数量过于庞大;ASBR上需要为每个跨域的VPN单独关联接口,提高了对ASBR设备的要求。
图23 VPN-to-VPN连接方式组网示意图
· IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS over SRv6跨域实现方式一致,本文以IP L3VPN over SRv6跨域为例进行说明。
· 在SRv6跨域VPN组网中,各类SRv6 SID的发布过程和转发过程类型,下文仅以End.DT4 SID为例进行说明。
· IPv4 over SRv6跨域VPN和IPv6 over SRv6跨域VPN的实现过程类似,下文仅以IPv4 over SRv6跨域VPN为例进行说明。
· 在VPN-to-VPN连接方式组网中,在AS内,报文转发方式与非跨域组网相同;在AS域间,基于SRv6 BE和SRv6 TE的报文转发方式相同。因此,仅以SRv6 BE方式为例说明VPN-to-VPN连接方式的路由发布和报文转发过程。
VPN-to-VPN连接方式路由发布和报文转发过程如9.3.2 图24所示。
图24 VPN-to-VPN连接方式实现机制
AS域内PE与ASBR之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。以AS 2为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由400:1::/64发布给域内P和ASBR设备。
CE 2的私网路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并为私网路由分配End.DT4 SID 400:1::1,形成VPNv4路由。PE 2通过MP-IBGP把VPNv4路由发布给ASBR 2。
(3) ASBR 2比较Route Target属性,将PE 2发布的VPN路由学习到相应的VPN实例路由表中,并作为IPv4单播路由通过EBGP会话发布给它的CE设备,即ASBR 1。
(4) ASBR 1从它的CE(ASBR 2)接收到IPv4单播路由后,将其加入与接收路由的接口绑定的VPN实例的路由表中。ASBR 1为该路由增加RD和RT属性,并为私网路由分配End.DT4 SID 200:1::1,形成VPNv4路由。ASBR 1通过MP-IBGP把VPNv4路由发布给PE 1。
(5) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 1。
(6) CE 1收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2的报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 200:1::1,然后为报文封装IPv6报文头。IPv6报文头中的源地址由管理员手工配置,目的地址为End.DT4 SID 200:1::1。
(3) PE 1根据End.DT4 SID 100:1::1查找IPv6路由表,在AS 1内通过最优IGP路由将报文转发给ASBR 1。
(4) ASBR 1收到目的IPv6地址为End.DT4 SID 200:1::1的报文后,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给ASBR 2。
(5) ASBR 2从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 400:1::1,然后为报文封装IPv6报文头。IPv6报文头中的源地址由管理员手工配置,目的地址为End.DT4 SID 400:1::1。
(6) ASBR 2根据End.DT4 SID 400:1::1查找IPv6路由表,在AS 2内通过最优IGP路由将报文转发给PE 2。
(7) PE 2收到目的IPv6地址为End.DT4 SID 400:1::1的报文后,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
如9.4.1 图25所示,在MP-EBGP连接方式组网中,MP-EBGP支持以下两种建立方式:
· 两个ASBR通过MP-EBGP交换它们从各自AS的PE接收的VPNv4/VPNv6/EVPN路由。
· 不同AS的PE之间建立多跳MP-EBGP会话,通过该会话直接在PE之间发布路由。
两种MP-EBGP建立方式均支持以下报文转发方式:
· SRv6 BE转发方式:通过路由协议发布不同AS域的PE的Locator网段路由,在域内和域间均使用路由协议计算的最短路径转发报文。
· SRv6 TE转发方式:建立跨AS的SRv6 TE Policy,该SRv6 TE Policy的SID列表由域内的SRv6 SID和域间的SRv6 BGP EPE SID组成。
图25 MP-EBGP连接方式组网示意图
MP-EBGP连接方式下采用SRv6 BE转发方式的路由发布和报文转发过程如9.4.2 图26所示。
图26 MP-EBGP连接方式下采用SRv6 BE转发方式实现机制
在MP-EBGP连接方式组网中,需要跨越AS发布End.DT4 SID所属Locator网段路由。以PE 2->PE 1方向为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由200:1::/64发布给域内P和ASBR设备。ASBR 2通过EBGP将Locator网段路由200:1::/64发布给ASBR 1,同时更新路由下一跳地址为ASBR 2的本机地址。ASBR 1通过IGP协议(以IS-IS路由为例)将Locator网段路由200:1::/64发布给PE 1。
在ASBR间建立MP-EBGP场景中,CE 2的私网路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并为私网路由分配End.DT4 SID 200:1::1,形成VPNv4路由。PE 2通过MP-IBGP把VPNv4路由发布给ASBR 2。
(3) ASBR 2收到PE 2发布的VPNv4路由后,通过MP-EBGP将其发布给ASBR 1。ASBR 2发布路由时,将路由的下一跳更新为本机地址。
(4) ASBR 1收到ASBR 2发布的VPNv4路由后,通过MP-IBGP把VPNv4路由发布给PE 1。ASBR 1发布路由时,将路由的下一跳更新为本机地址。
(5) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 1。
(6) CE 1收到路由后,将其学习到路由表中。
在PE间建立MP-EBGP场景中,CE 2的私网路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并为私网路由分配End.DT4 SID 200:1::1,形成VPNv4路由。PE 2通过MP-EBGP把VPNv4路由发布给PE 1。
(3) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 1。
(4) CE 1收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2的报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 200:1::1,然后为报文封装IPv6报文头。IPv6报文头中的源地址由管理员手工配置,目的地址为End.DT4 SID 200:1::1。
(3) PE 1根据End.DT4 SID 200:1::1查找IPv6路由表,在AS 1内通过最优IGP路由将报文转发给ASBR 1。
(4) ASBR 1收到报文后,据IPv6头中的目的地址查找路由表,将报文转发给ASBR 2。
(5) ASBR 2收到报文后,根据End.DT4 SID 200:1::1查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2收到目的IPv6地址为End.DT4 SID 200:1::1的报文后,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
MP-EBGP连接方式下采用SRv6 TE转发方式的路由发布和报文转发过程如9.4.3 图27所示。在该组网中,控制器将SRv6 TE Policy相关配置下发到PE 1。
图27 MP-EBGP连接方式下采用SRv6 TE转发方式实现机制
在MP-EBGP连接方式组网中,对于ASBR间建立MP-EBGP场景,需要跨越AS发布End.DT4 SID所属Locator网段路由。以PE 2->PE 1方向为例,PE 2通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由400:1::/64发布给域内P和ASBR设备。ASBR 2通过EBGP将Locator网段路由400:1::/64发布给ASBR 1,同时更新路由下一跳地址为ASBR 2的本机地址。ASBR 1通过IGP协议(以IS-IS路由为例)将Locator网段路由400:1::/64发布给PE 1。
在AS 1和AS 2内,各个设备通过IGP协议(以IS-IS为例)发布各自End SID所在Locator网段的路由。
AS域间需要部署BGP EPE,为ASBR分配BGP EPE SID:
· ASBR 1为ASBR 2分配BGP EPE SID 200:1::5,该SID对应的下一跳为ASBR 2。
· ASBR 2为ASBR 1分配BGP EPE SID 300:1::5,该SID对应的下一跳为ASBR 1。
在ASBR间建立MP-EBGP场景中,以Color引流方式为例,CE 2的私网路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并为私网路由分配End.DT4 SID 400:1::1,形成VPNv4路由。PE 2通过MP-EBGP把携带End.DT4 SID和Color扩展团体属性的VPNv4路由发布给ASBR 2。
(3) ASBR 2收到PE 2发布的VPNv4路由后,通过MP-EBGP将其发布给ASBR 1。ASBR 2发布路由时,将路由的下一跳更新为本机地址。
(4) ASBR 1收到ASBR 2发布的VPNv4路由后,通过MP-IBGP把VPNv4路由发布给PE 1。ASBR 1发布路由时,将路由的下一跳更新为本机地址。
(5) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,同时BGP路由按Color引流方式迭代到SRv6 TE Policy。PE 1将VPNv4路由转换成IPv4路由发布给CE 1。
(6) CE 1收到路由后,将其学习到路由表中。
在PE间建立MP-EBGP场景中,以Color引流方式为例,CE 2的私网路由发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并为私网路由分配End.DT4 SID 400:1::1,形成VPNv4路由。PE 2通过MP-EBGP把携带End.DT4 SID和Color扩展团体属性的VPNv4路由发布给PE 1。
(3) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,同时BGP路由按Color引流方式迭代到SRv6 TE Policy。PE 1将VPNv4路由转换成IPv4路由发布给CE 1。
(4) CE 1收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2的报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 400:1::1,且该路由下一跳为SRv6 TE Policy。PE 1为报文添加SRH,封装SRv6 TE Policy的SID List <200:1::2, 200:1::5, 300:1::2, 400:1::2>和End.DT4 SID 400:1::1,然后封装IPv6基本头信息。完成后,将报文转发给ASBR 1。
(3) ASBR 1收到报文后,执行如下操作:
¡ 使用报文的IPv6目的地址200:1::2查找Local SID表,匹配到End SID,将报文SL减1,IPv6目的地址更新为200:1::5。
¡ 使用IPv6目的地址200:1::5查找Local SID表,匹配到BGP EPE SID,执行该SID对应的转发动作,即将报文从指定接口转发到ASBR 2,同时将报文SL减1,IPv6目的地址更新为300:1::2。
(4) ASBR 2收到报文后,执行如下操作:
¡ 使用报文的IPv6目的地址300:1::2查找Local SID表,匹配到End SID,将报文SL减1,IPv6目的地址更新为400:1::2。
¡ 根据IPv6头中的目的地址查找路由表,将报文转发给PE 2。
(5) PE 2收到报文后,执行如下操作:
¡ 使用报文的IPv6目的地址查找Local SID表,匹配到End SID,将报文SL减1,IPv6目的地址更新为End.DT4 SID 400:1::1。
(6) 使用IPv6目的地址400:1::1查找Local SID表,匹配到End.DT4 SID,执行End.DT4 SID对应的转发动作,即解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
SRv6 Interworking是指用户报文需要跨越SRv6网络和MPLS网络传输,即SRv6网络和MPLS网络互通。
当承载VPNv4/VPNv6/EVPN路由的骨干网跨越SRv6网络和MPLS网络时,可以通过L3VPN over SRv6 Interworking来实现SRv6网络和MPLS网络互通。
根据发布的路由类型,L3VPN over SRv6 Interworking分为:
· IP L3VPN over SRv6 Interwoking
· EVPN L3VPN over SRv6 Interwoking
根据组网类型,L3VPN over SRv6 Interworking分为:
· 域内L3VPN over SRv6 Interworking:在同一AS内采用不同的公网承载VPNv4/VPNv6/EVPN路由,即部分PE间部署MPLS网络,部分PE间部署SRv6网络。
· 域间L3VPN over SRv6 Interworking:骨干网跨域多个不同的AS,部分AS内部署MPLS网络,部分AS内部署SRv6网络。
域间L3VPN over SRv6 Interworking支持如下实现方式:
¡ L3VPN over SRv6 Option A Interworking
¡ L3VPN over SRv6 Option B Interworking
在L3VPN over SRv6 Interworking组网中,对于路由发布过程和报文转发过程,IP L3VPN over SRv6 Interwoking和EVPN L3VPN over SRv6 Interwoking的处理方式类似、IPv4私网接入和IPv6私网接入的处理方式类似,下文仅以IPv4 L3VPN over SRv6 Interwoking为例进行说明。
域内L3VPN over SRv6 Interwoking是指在同一AS内,不同PE间采用不同的转发方式(SRv6或MPLS)。如图28所示,使用公网承载L3VPN私网数据时,私网数据需要跨越SRv6网络和MPLS网络。
图28 域内L3VPN over SRv6 Interwoking示意图
域内L3VPN over SRv6 Interwoking路由发布和报文转发过程如图29所示。
图29 域内L3VPN over SRv6 Interwoking实现机制
AS域内PE之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给公网中所有设备。例如,PE 1通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给域内PE 2设备。
CE 2的私网路由2.2.2.2/32发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 3。
(2) PE 3从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 3为私网路由增加RD和RT属性,并由MP-BGP为私网路由分配内层私网标签Lable 1,形成VPNv4路由。PE 3通过MP-IBGP把VPNv4路由发布给PE 2。
(3) PE 2接收到PE 3发布的VPNv4路由后,通过MP-IBGP将VPNv4路由发布给PE 1。PE 2发布该路由时,将路由的下一跳地址改为自身的地址,为路由分配End.DT4 SID 200:1::1,并为End.DT4 SID和MPLS标签Label 1建立关联。
(4) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 1。
(5) CE 1收到路由后,将其学习到路由表中。
CE 1的私网路由1.1.1.1/32发布到CE 1的过程如下:
(1) CE 1使用IGP或BGP,将本站点的私网路由1.1.1.1/32发布给PE 1。
(2) PE 1从CE 1学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 1为私网路由增加RD和RT属性,并由MP-BGP为私网路由分配End.DT4 SID 100:1::1,形成VPNv4路由。PE 1通过MP-IBGP把VPNv4路由发布给PE 2。
(3) PE 2接收到PE 1发布的VPNv4路由后,通过MP-IBGP将VPNv4路由发布给PE 3。PE 2发布该路由时,将路由的下一跳地址改为自身的地址,为路由分配私网标签Label 2,并为End.DT4 SID和MPLS标签Label 2建立关联。
(4) PE 3收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 2。
(5) CE 2收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2的报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 200:1::1,然后为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 2。
(3) PE 2收到报文后,根据End.DT4 SID和MPLS标签Label 1的关联关系,解封装去掉IPv6头,为报文封装私网标签Label 1和PE 2与PE 3间的公网标签,将报文转发到PE 3。
(4) PE 3收到报文后,根据私网标签匹配VPN实例A,查找VPN实例A的路由表,剥离私网标签后将报文发送给CE 2。
完成路由发布后,目的地址为1.1.1.1的报文从CE 2到CE 1的转发过程如下:
(1) CE 2发送目的地址为1.1.1.1的IPv4报文给PE 3。
(2) PE 3从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配1.1.1.1的路由,找到对应的私网标签Label 2,然后为报文封装私网标签和PE 2与PE 3间的公网标签,将报文发送到PE 2。
(3) PE 2收到报文后,根据End.DT4 SID和MPLS标签Label 2的关联关系,解封装去掉私网标签,为报文封装End.DT4 SID 100:1::1,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 1。
(4) PE 1收到报文后,解封装去掉IPv6报文头,并根据End.DT4 SID 100:1::1匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
如图30所示,在L3VPN over SRv6 Option A Interworking组网中,AS 1中部署SRv6网络,AS 2中部署MPLS网络。私网报文需要跨域AS 1和AS 2转发。两个ASBR设备直接相连。ASBR同时作为PE,将对方当作自己的CE设备,通过EBGP会话向对端发布普通的IPv4/IPv6单播路由。
图30 L3VPN over SRv6 Option A Interworking组网示意图
L3VPN over SRv6 Option A Interworking路由发布和报文转发过程如图31所示。
图31 L3VPN over SRv6 Option A Interworking实现机制
在部署SRv6网络的AS域内,PE与ASBR之间需要通过IGP协议将End.DT4 SID所属Locator网段路由发布给该AS内的所有设备。例如,PE 1通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给域内P和ASBR设备。
CE 2的私网路由2.2.2.2/32发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并由MP-BGP为私网路由分配内层私网标签Label 1,形成VPNv4路由。PE 2通过MP-IBGP把VPNv4路由发布给ASBR 2。
(3) ASBR 2比较Route Target属性,将PE 2发布的VPN路由学习到相应的VPN实例路由表中,并将VPNv4路由转换成IPv4单播路由,通过EBGP会话将IPv4单播路由发布给它的CE设备,即ASBR 1。
(4) ASBR 1从它的CE(ASBR 2)接收到IPv4单播路由后,将其加入与接收路由的接口绑定的VPN实例的路由表中。ASBR 1为该路由增加RD和RT属性,并为私网路由分配End.DT4 SID 200:1::1,形成VPNv4路由。ASBR 1通过MP-IBGP把VPNv4路由发布给PE 1。
(5) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 1。
(6) CE 1收到路由后,将其学习到路由表中。
CE 1的私网路由1.1.1.1/32发布到CE 2的过程如下:
(1) CE 1使用IGP或BGP,将本站点的私网路由1.1.1.1/32发布给PE 1。
(2) PE 1从CE 1学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 1为私网路由增加RD和RT属性,并由MP-BGP为私网路由分配End.DT4 SID 100:1::1,形成VPNv4路由。PE 2通过MP-IBGP把VPNv4路由发布给ASBR 1。
(3) ASBR 1比较Route Target属性,将PE 1发布的VPN路由学习到相应的VPN实例路由表中,并将VPNv4路由转换成IPv4单播路由,通过EBGP会话将IPv4单播路由发布给它的CE设备,即ASBR 2。
(4) ASBR 2从它的CE(ASBR 1)接收到IPv4单播路由后,将其加入与接收路由的接口绑定的VPN实例的路由表中。ASBR 2为该路由增加RD和RT属性,并为私网路由分配私网标签Label 2,形成VPNv4路由。ASBR 2通过MP-IBGP把VPNv4路由发布给PE 2。
(5) PE 2收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 2。
(6) CE 2收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2的报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.DT4 SID 200:1::1,然后为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到ASBR 1。
(3) ASBR 1收到目的IPv6地址为End.DT4 SID 200:1::1的报文后,解封装去掉IPv6报文头,并根据End.DT4 SID匹配VPN实例A,查找VPN实例A的路由表,将报文发送给ASBR 2。
(4) ASBR 2从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,为报文封装私网标签Label 1和ASBR 2与PE 2之间的公网标签,将报文发送给PE 2。
(5) PE 2收到报文后,根据私网标签匹配VPN实例A,查找VPN实例A的路由表,剥离私网标签后将报文发送给CE 2。
完成路由发布后,目的地址为1.1.1.1的报文从CE 2到CE 1的转发过程如下:
(1) CE 2发送目的地址为1.1.1.1的IPv4报文给PE 2。
(2) PE 2从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配1.1.1.1的路由,为报文封装私网标签Label 2和ASBR 2与PE 2之间的公网标签,将报文发送给ASBR 2。
(3) ASBR 2收到报文后,根据根据私网标签Label 2匹配VPN实例A,查找VPN实例A的路由表,剥离私网标签后将报文发送给ASBR 1。
(4) ASBR 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配1.1.1.1的路由,找到对应的End.DT4 SID 100:1::1,然后为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 1。
(5) PE 1收到报文后,解封装去掉IPv6报文头,并根据End.DT4 SID 100:1::1匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
如图32所示,在L3VPN over SRv6 Option B Interworking组网中,AS 1中部署SRv6网络,AS 2中部署MPLS网络。私网报文需要跨域AS 1和AS 2转发。两个ASBR设备直接相连。ASBR间通过MP-EBGP交换它们从各自AS的PE接收的VPN路由。
图32 L3VPN over SRv6 Option B Interworking组网示意图
在L3VPN over SRv6 Option B Interworking组网场景中,报文从SRv6网络转发到MPLS网络时,为了实现互通,需要将SRv6 SID(即IPv6地址)与MPLS标签关联。由于SRv6和MPLS网络中的ASBR上不存在VPN实例以及和VPN实例关联的接口,SRv6网络中的ASBR无法为私网路由分配End.DT4 SID等用于标识VPN实例的SRv6 SID,MPLS网络中的ASBR无法将私网路由学习到本地VPN路由表中,转发时会直接丢弃报文。因此,在SRv6网络中的ASBR上需要为私网路由分配一种和标签关联的SRv6 SID,即End.T SID,并通过IGP协议在SRv6网络内通告End.T SID所在Locator网段的路由。End.T SID对应的转发动作为剥掉外层IPv6头,并根据End.T SID查找IPv6 FIB表转发报文。
L3VPN over SRv6 Option B Interworking路由发布和报文转发过程如图33所示。
图33 L3VPN over SRv6 Option B Interworking实现机制
在部署SRv6网络的AS域内,PE与ASBR之间需要通过IGP协议将End.DT4 SID和End.T SID所属Locator网段路由发布给该AS内中所有设备。例如,PE 1通过IGP协议(以IS-IS路由为例)将End.DT4 SID所属Locator网段路由100:1::/64发布给域内P和ASBR设备。
CE 2的私网路由2.2.2.2/32发布到CE 1的过程如下:
(1) CE 2使用IGP或BGP,将本站点的私网路由2.2.2.2/32发布给PE 2。
(2) PE 2从CE 2学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 2为私网路由增加RD和RT属性,并由MP-BGP为私网路由分配内层私网标签Label 1,形成VPNv4路由。PE 2通过MP-IBGP把VPNv4路由发布给ASBR 2。
(3) ASBR 2收到PE 2发布的VPNv4路由后,通过MP-EBGP将其发布给ASBR 1。ASBR 2发布路由时,将路由的下一跳更新为本机地址,为路由分配新的MPLS标签Label 2,并为MPLS标签Label 2和MPLS标签Label 1建立关联。
(4) ASBR 1收到ASBR 2发布的VPNv4路由后,通过MP-IBGP把VPNv4路由发布给PE 1。ASBR 1发布路由时,将路由的下一跳更新为本机地址,为路由分配End.T SID,并为End.T SID和MPLS标签Label 2建立关联。
(5) PE 1收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 1。
(6) CE 1收到路由后,将其学习到路由表中。
CE 1的私网路由1.1.1.1/32发布到CE 2的过程如下:
(1) CE 1使用IGP或BGP,将本站点的私网路由1.1.1.1/32发布给PE 1。
(2) PE 1从CE 1学习到私网路由信息后,将私网路由存放到VPN实例A的路由表中。PE 1为私网路由增加RD和RT属性,并由MP-BGP为私网路由分配End.DT4 SID 100:1::1,形成VPNv4路由。PE 1通过MP-IBGP把VPNv4路由发布给ASBR 1。
(3) ASBR 1收到PE 2发布的VPNv4路由后,通过MP-EBGP将其发布给ASBR 2。ASBR 1发布路由时,将路由的下一跳更新为本机地址,为路由分配私网标签Label 3,并为私网标签Label 3和End.DT4 SID建立关联。
(4) ASBR 2收到ASBR 1发布的VPNv4路由后,通过MP-IBGP把VPNv4路由发布给PE 2。ASBR 2发布路由时,将路由的下一跳更新为本机地址,为路由分配私网标签Label 4,并为私网标签Label 4和私网标签Label 3建立关联。
(5) PE 2收到VPNv4路由后,将该路由加入到VPN实例A的路由表中,并将VPNv4路由转换成IPv4路由发布给CE 2。
(6) CE 2收到路由后,将其学习到路由表中。
完成路由发布后,目的地址为2.2.2.2的报文从CE 1到CE 2的转发过程如下:
(1) CE 1发送目的地址为2.2.2.2的IPv4报文给PE 1。
(2) PE 1从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配2.2.2.2的路由,找到对应的End.T SID 200:1::1,然后为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到ASBR 1。
(3) ASBR 1收到报文后,剥掉外层IPv6头,并根据End.T SID查找IPv6 FIB表转发报文,出标签为Label 2。ASBR 1为报文重新封装MPLS标签Label 2,并将报文转发给ASBR 2。ASBR 1和ASBR 2之间的报文只带一层MPLS标签。
(4) ASBR 2将MPLS标签Label 2替换为Label 1,添加从ASBR 2到PE 2的公网隧道的标签,并将报文转发给PE 2。
(5) PE 2收到报文后,根据私网标签匹配VPN实例A,查找VPN实例A的路由表,剥离私网标签后将报文发送给CE 2。
完成路由发布后,目的地址为1.1.1.1的报文从CE 1到CE 2的转发过程如下:
(1) CE 2发送目的地址为1.1.1.1的IPv4报文给PE 2。
(2) PE 2从绑定了VPN实例A的接口上收到私网报文后,在VPN实例A的路由表中查找匹配1.1.1.1的路由,为报文封装私网标签Label 4和ASBR 2与PE 2之间的公网标签,将报文发送给ASBR 2。
(3) ASBR 2收到报文后,剥离公网标签,将私网标签Label 4替换为Label 3,并将报文发送给ASBR 1。ASBR 1和ASBR 2之间的报文只带一层私网标签。
(4) ASBR 1收到报文后,将私网标签Label 3替换为End.DT4 SID 100:1::1,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 1。
(5) PE 1收到报文后,解封装去掉IPv6报文头,并根据End.DT4 SID 100:1::1匹配VPN实例A,查找VPN实例A的路由表,将报文发送给CE 2。
当承载EVPN路由的骨干网跨越SRv6网络和MPLS网络时,可以通过L2VPN over SRv6 Interworking来实现SRv6网络和MPLS网络互通。
MPLS网络为MPLS L2VPN网络或VPLS网络时,可以通过LDP PW或静态PW接入SRv6 PW功能来实现SRv6网络与MPLS网络的互通。
MPLS网络为EVPN VPWS网络或EVPN VPLS网络时,可以通过如下几种方式实现SRv6网络与MPLS网络的互通:
· 域内L2VPN over SRv6 Interworking:在同一AS内采用不同的公网承载EVPN路由,即部分PE间部署MPLS网络,部分PE间部署SRv6网络。
· 域间L2VPN over SRv6 Interworking:骨干网跨越多个不同的AS,部分AS内部署MPLS网络,部分AS内部署SRv6网络。域间L2VPN over SRv6 Interworking支持如下实现方式:
¡ L2VPN over SRv6 Option A Interworking
¡ L2VPN over SRv6 Option B Interworking
在域内L2VPN over SRv6 Interworking和L2VPN over SRv6 Option B Interworking组网场景中,报文从SRv6网络转发到MPLS网络时,为了实现互通,需要将SRv6 SID(即IPv6地址)与MPLS标签关联。由于SRv6网络和MPLS网络的边界设备上无法分配End.DX2、End.DT2U等类型的SID。因此,在边界设备上需要为EVPN路由分配一种和标签关联的SRv6 SID,即End.T SID,并通过IGP协议在SRv6网络内通告End.T SID所在Locator网段的路由。End.T SID对应的转发动作为剥掉外层IPv6头,并根据End.T SID查找IPv6 FIB表转发报文。
在向SRv6网络演进的过程中,可能会存在基于MPLS的传统MPLS L2VPN网络(也称为VPWS网络)与EVPN VPWS over SRv6网络共存、VPLS网络与EVPN VPLS over SRv6网络共存的情况。LDP PW或静态PW接入SRv6 PW功能,通过将MPLS L2VPN/VPLS网络中的LDP PW或静态PW看作SRv6网络的AC(该PW称为UPW),实现报文在SRv6 PW与UPW之间相互转发,从而实现MPLS L2VPN/VPLS网络与EVPN VPWS/VPLS over SRv6网络的互通。
本功能不仅支持一条LDP PW或静态PW接入一条SRv6 PW,还支持将两条LDP PW或静态PW多归属接入两条SRv6 PW。如图34所示,在MPLS L2VPN网络中,PE 1与PE 2、PE 3分别建立主备LDP PW或静态PW,该PW称为UPW;在EVPN VPWS over SRv6网络中,PE 4与PE 2、PE 3分别建立SRv6 PW。UPW作为SRv6网络中的AC,PE 2或PE 3从UPW接收到报文后,会解除MPLS封装,查找与UPW关联的SRv6 PW,为报文添加SRv6封装,并将其转发给PE 4;PE 2或PE 3从SRv6 PW接收报文的处理方法与此类似。
图34 LDP PW或静态PW接入SRv6 PW组网示意图
域内EVPN VPWS over SRv6 Interworking是指在同一AS内,不同PE间采用不同的转发方式(SRv6或MPLS),用户二层数据跨越SRv6网络和MPLS网络转发。
图35 域内EVPN VPWS over SRv6 Interworking实现机制
如图35所示,域内EVPN VPWS over SRv6 Interworking组网中,路由发布过程为:
(1) PE 3向PE 1发布路由的过程为:
a. PE 3通过MP-IBGP向PE 2发布Ethernet Auto-discovery Per EVI路由,该路由携带Local service ID和为该Local service ID分配的PW标签Label 1。Label 1作为EVPN PW的入标签。
b. PE 2接收到Ethernet Auto-discovery Per EVI路由后,如果路由中的Export target属性与PE 2本地配置的Import target属性相同,则PE 2接收该路由。
c. PE 2通过MP-IBGP向PE 1发布Ethernet Auto-discovery Per EVI路由,将路由的下一跳地址改为自身的地址,为路由分配End.T SID 200:1::1,并为End.T SID 200:1::1和PW标签Label 1建立关联。在发布的路由中,End.T SID作为End.DX2 SID使用。
d. PE 1接收到路由后,如果路由中的Export target属性与PE 1本地配置的Import target属性匹配,则PE 1将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则建立一条SRv6 PW,PE 2通告的End.T SID 200:1::1作为该SRv6 PW的出SID。
(2) PE 1向PE 3发布路由的过程为:
a. PE 1通过MP-IBGP向PE 2发布Ethernet Auto-discovery Per EVI路由,该路由携带Local service ID和为该Local service ID分配的End.DX2 SID 100:1::1。该End.DX2 SID作为SRv6 PW的入SID。
b. PE 2接收到Ethernet Auto-discovery Per EVI路由后,如果路由中的Export target属性与PE 2本地配置的Import target属性相同,则PE 2接收该路由。
c. PE 2通过MP-IBGP向PE 1发布Ethernet Auto-discovery Per EVI路由,将路由的下一跳地址改为自身的地址,为路由分配PW标签Label 2,并为End.DX2 SID 100:1::1和PW标签Label 2建立关联。
d. PE 3接收到路由后,如果路由中的Export target属性与PE 1本地配置的Import target属性匹配,则PE 3将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则PE 2通告的PW标签Label 2作为EVPN PW的出标签。
完成路由发布后,PE 1上将具有SRv6 PW的出入SID,PE 3上将具有EVPN PW的出入PW标签,PE 2上将具有PW标签和SRv6 SID的映射关系,用户二层数据报文可以根据上述信息在MPLS网络和SRv6网络之间转发。
CE 1访问CE 2的报文转发过程如下:
(1) PE 1从AC接收到CE 1发送的报文后,查找与AC关联的SRv6 PW,找到对应的End.DX2 SID 200:1::1(即PE 2通告的End.T SID)。PE 1为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 2。
(2) PE 2接收到报文后,根据End.T SID 200:1::1和PW标签Label 1的关联关系,解封装去掉IPv6头,为报文封装PW标签Label 1和PE 2与PE 3间的公网标签,将报文转发到PE 3。
(3) PE 3接收到报文后,剥离公网标签和PW标签,根据PW标签查找与PW关联的AC,并通过该AC将报文转发给CE 2。
CE 2访问CE 1的报文转发过程如下:
(1) PE 3从AC接收到CE 2发送的报文后,查找与AC关联的EVPN PW,找到对应的PW标签Label 2。PE 3为报文封装PW标签Label 2和PE 3与PE 2间的公网标签,将报文转发到PE 2。
(2) PE 2接收到报文后,根据End.DX2 SID 100:1::1和PW标签Label 2的关联关系,剥离MPLS标签,为报文封装End.DX2 SID 100:1::1,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 1。
(3) PE 1接收到报文后,解封装去掉IPv6报文头,根据End.DX2 SID 100:1::1查找与PW关联的AC,并通过该AC将报文转发给CE 1。
如图36所示,在EVPN VPWS over SRv6 Option A Interworking组网中,AS 1中部署SRv6网络,AS 2中部署MPLS网络。站点网络需要跨越AS 1和AS 2互通。两个ASBR设备直接相连。ASBR同时作为PE,将对方当作自己的CE设备,在ASBR上将AC和PW关联。
图36 EVPN VPWS over SRv6 Option A Interworking组网示意图
EVPN VPWS over SRv6 Option A Interworking路由发布和报文转发过程如图37所示。
图37 EVPN VPWS over SRv6 Option A Interworking实现机制
在部署SRv6网络的AS域内,PE与ASBR之间需要通过IGP协议将End.DX2 SID所属Locator网段路由发布给该AS内的所有设备。例如,PE 1通过IGP协议(以IS-IS路由为例)将End.DX2 SID所属Locator网段路由100:1::/64发布给域内P和ASBR设备。
如图37所示,PE 1和ASBR 1之间需要建立SRv6 PW,PE 2和ASBR 2之间需要建立EVPN PW。EVPN VPWS over SRv6 Option A Interworking组网中,SRv6 PW和EVPN PW的建立过程与EVPN VPWS over SRv6、EVPN VPWS组网中相同,此处不再赘述。
PW建立完成后,CE 1访问CE 2的报文转发过程如下:
(1) PE 1从AC接收到CE 1发送的报文后,查找与AC关联的SRv6 PW,找到对应的End.DX2 SID 200:1::1。PE 1为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到ASBR 1。
(2) ASBR 1接收到报文后,解封装去掉IPv6报文头,根据End.DX2 SID 200:1::1查找与PW关联的AC,并通过该AC将报文转发给它的CE(即ASBR 2)。
(3) ASBR 2从AC接收到ASBR 1发送的报文后,查找与AC关联的EVPN PW,找到对应的PW标签Label 1。ASBR 2为报文封装PW标签Label 1和ASBR 2与PE 2间的公网标签,将报文转发到PE 2。
(4) PE 2接收到报文后,剥离公网标签和PW标签,根据PW标签查找与PW关联的AC,并通过该AC将报文转发给CE 2。
PW建立完成后,CE 2访问CE 1的报文转发过程如下:
(1) PE 2从AC接收到CE 2发送的报文后,查找与AC关联的EVPN PW,找到对应的PW标签Label 2。PE 2为报文封装PW标签Label 2和PE 2与ASBR 2间的公网标签,将报文转发到ASBR 2。
(2) ASBR 2接收到报文后,剥离公网标签和PW标签,根据PW标签查找与PW关联的AC,并通过该AC将报文转发给它的CE(即ASBR 1)。
(3) ASBR 1从AC接收到ASBR 2发送的报文后,查找与AC关联的SRv6 PW,找到对应的End.DX2 SID 100:1::1。ASBR 1为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 1。
(4) PE 1接收到报文后,解封装去掉IPv6报文头,根据End.DX2 SID 100:1::1查找与PW关联的AC,并通过该AC将报文转发给CE 1。
如图38所示,在EVPN VPWS over SRv6 Option B Interworking组网中,AS 1中部署SRv6网络,AS 2中部署MPLS网络。站点网络需要跨越AS 1和AS 2互通。两个ASBR设备直接相连。ASBR间通过MP-EBGP交换它们从各自AS的PE接收的EVPN路由。
图38 EVPN VPWS over SRv6 Option B Interworking组网示意图
图39 EVPN VPWS over SRv6 Option B Interworking实现机制
在部署SRv6网络的AS域内,PE与ASBR之间需要通过IGP协议将End.DX2 SID和End.T SID所属Locator网段路由发布给该AS内中所有设备。例如,PE 1通过IGP协议(以IS-IS路由为例)将End.DX2 SID所属Locator网段路由100:1::/64发布给域内P和ASBR设备。
如图39所示,EVPN VPWS over SRv6 Option B Interworking组网中,PE和ASBR需要通过Ethernet Auto-discovery Per EVI路由发布PW标签或SRv6 SID,路由发布过程为:
(1) PE 2向PE 1发布路由的过程为:
a. PE 2通过MP-IBGP向ASBR 2发布Ethernet Auto-discovery Per EVI路由,该路由携带Local service ID和为该Local service ID分配的PW标签Label 1。Label 1作为EVPN PW的入标签。
b. ASBR 2接收到Ethernet Auto-discovery Per EVI路由后,如果路由中的Export target属性与本地配置的Import target属性相同,则ASBR 2接收该路由。
c. ASBR 2通过MP-EBGP将路由发布给ASBR 1。ASBR 2发布路由时,将路由的下一跳更新为本机地址,为路由分配新的MPLS标签Label 2,并为MPLS标签Label 2和MPLS标签Label 1建立关联。
d. ASBR 1接收到路由后,如果路由中的Export target属性与本地配置的Import target属性相同,则ASBR 1接收该路由。
e. ASBR 1将路由的下一跳更新为本机地址,为路由分配End.T SID 200:1::1,并为End.T SID和MPLS标签Label 2建立关联。ASBR 1通过MP-IBGP将路由发布给PE 1。在该路由中End.T SID作为End.DX2 SID使用。
f. PE 1接收到路由后,如果路由中的Export target属性与PE 1本地配置的Import target属性匹配,则PE 1将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则建立一条SRv6 PW,ASBR 1通告的End.T SID 200:1::1作为该SRv6 PW的出SID。
(2) PE 1向PE 2发布路由的过程为。
a. PE 1通过MP-IBGP向ASBR 1发布Ethernet Auto-discovery Per EVI路由,该路由携带Local service ID和为该Local service ID分配的End.DX2 SID 100:1::1。该End.DX2 SID作为SRv6 PW的入SID。
b. ASBR 1接收到Ethernet Auto-discovery Per EVI路由后,如果路由中的Export target属性与本地配置的Import target属性相同,则ASBR 1接收该路由。
c. ASBR 1通过MP-EBGP将其发布给ASBR 2。ASBR 1发布路由时,将路由的下一跳更新为本机地址,为路由分配PW标签Label 3,并为PW标签Label 3和End.DX2 SID建立关联。
d. ASBR 2接收到路由后,如果路由中的Export target属性与本地配置的Import target属性相同,则ASBR 2接收该路由。
e. ASBR 2通过MP-IBGP将其发布给PE 2。ASBR 2发布路由时,将路由的下一跳更新为本机地址,为路由分配PW标签Label 4,并为PW标签Label 4和私网标签Label 3建立关联。
f. PE 2接收到路由后,如果路由中的Export target属性与PE 1本地配置的Import target属性匹配,则PE 2将接收到的Local service ID与本地配置的Remote service ID比较。若二者相同,则ASBR 2通告的PW标签Label 4作为EVPN PW的出标签。
完成路由发布后,PE 1上将具有SRv6 PW的出入SID,PE 2上将具有EVPN PW的出入PW标签,ASBR 1和ASBR 2上将具有PW标签和SRv6 SID的映射关系,用户二层数据报文可以根据上述信息在MPLS网络和SRv6网络之间转发。
CE 1访问CE 2的报文转发过程如下:
(1) PE 1从AC接收到CE 1发送的报文后,查找与AC关联的SRv6 PW,找到对应的End.DX2 SID 200:1::1(即ASBR 1通告的End.T SID)。PE 1为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到ASBR 1。
(2) ASBR 1接收到报文后,解封装去掉IPv6报文头,并根据End.T SID查找IPv6 FIB表转发报文,出标签为Label 2。ASBR 1为报文重新封装PW标签Label 2,并将报文转发给ASBR 2。ASBR 1和ASBR 2之间的报文只带一层MPLS标签。
(3) ASBR 2将MPLS标签Label 2替换为Label 1,添加从ASBR 2到PE 2的公网隧道的标签,并将报文转发给PE 2。
(4) PE 2接收到报文后,剥离公网标签和PW标签,根据PW标签查找与PW关联的AC,并通过该AC将报文转发给CE 2。
CE 2访问CE 1的报文转发过程如下:
(1) PE 2从AC接收到CE 2发送的报文后,查找与AC关联的EVPN PW,找到对应的PW标签Label 4。PE 2为报文封装PW标签Label 4和PE 2与ASBR 2间的公网标签,将报文转发到ASBR 2。。
(2) ASBR 2收到报文后,剥离公网标签,将私网标签Label 4替换为Label 3,并将报文发送给ASBR 1。ASBR 1和ASBR 2之间的报文只带一层私网标签。
(3) ASBR 1收到报文后,将私网标签Label 3替换为End.DX2 SID 100:1::1,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 1。
(4) PE 1接收到报文后,解封装去掉IPv6报文头,根据End.DX2 SID 100:1::1查找与PW关联的AC,并通过该AC将报文转发给CE 1。
在EVPN VPLS over SRv6 Interworking组网中,BUM流量和已知单播流量的SRv6网络与MPLS网络互通过程类似、不同类型SID的SRv6网络与MPLS网络互通过程类似,下文仅以已知单播流量、End.DT2U SID为例进行说明。
域内EVPN VPLS over SRv6 Interworking是指在同一AS内,不同PE间采用不同的转发方式(SRv6或MPLS),用户二层数据跨越SRv6网络和MPLS网络转发。
图40 域内EVPN VPLS over SRv6 Interworking实现机制
如图40所示,域内EVPN VPLS over SRv6 Interworking组网中,路由发布过程为:
(1) PE 3向PE 1发布路由的过程为:
a. PE 3接收到CE 2发送的报文后,将CE 2的MAC地址学习到VSI实例A的MAC地址表中。
b. PE 3通过MP-IBGP向PE 2发布MAC/IP发布路由,通告CE 2的MAC地址。该路由携带PE 3为VSI实例A分配的PW标签Label 1。Label 1作为EVPN PW的入标签。
c. PE 2接收到路由后,如果路由中的Export target属性与PE 2本地配置的Import target属性相同,则PE 2接收该路由。
d. PE 2通过MP-IBGP向PE 1发布MAC/IP发布路由,将路由的下一跳地址改为自身的地址,为路由分配End.T SID 200:1::1,并为End.T SID 200:1::1和PW标签Label 1建立关联。在发布的路由中,End.T SID作为End.DT2U SID使用。
e. PE 1接收到路由后,如果路由中的Export target属性与PE 1本地配置的Import target属性匹配,则建立一条SRv6 PW,PE 2通告的End.T SID 200:1::1作为该SRv6 PW的出SID。
(2) PE 1向PE 3发布路由的过程为:
a. PE 1接收到CE 1发送的报文后,将CE 1的MAC地址学习到VSI实例A的MAC地址表中。
b. PE 1通过MP-IBGP向PE 2发布MAC/IP发布路由,通告CE 1的MAC地址。该路由携带PE 1为VSI实例A分配的End.DT2U SID 100:1::1。该End.DT2U SID作为SRv6 PW的入SID。
c. PE 2接收到路由后,如果路由中的Export target属性与PE 2本地配置的Import target属性相同,则PE 2接收该路由。
d. PE 2通过MP-IBGP向PE 1发布MAC/IP发布路由,将路由的下一跳地址改为自身的地址,为路由分配PW标签Label 2,并为End.DT2U SID 100:1::1和PW标签Label 2建立关联。
e. PE 3接收到路由后,如果路由中的Export target属性与PE 1本地配置的Import target属性匹配,则PE 2通告的PW标签Label 2作为EVPN PW的出标签。
完成路由发布后,PE 1上将具有SRv6 PW的出入SID,PE 3上将具有EVPN PW的出入PW标签,PE 2上将具有PW标签和SRv6 SID的映射关系,用户二层数据报文可以根据上述信息在MPLS网络和SRv6网络之间转发。
CE 1访问CE 2的报文转发过程如下:
(1) PE 1从AC接收到CE 1发送的报文后,在AC关联的VSI实例内查找MAC地址表,找到对应的End.DT2U SID 200:1::1(即PE 2通告的End.T SID)。PE 1为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 2。
(2) PE 2接收到报文后,根据End.T SID 200:1::1和PW标签Label 1的关联关系,解封装去掉IPv6头,为报文封装PW标签Label 1和PE 2与PE 3间的公网标签,将报文转发到PE 3。
(3) PE 3接收到报文后,剥离公网标签和PW标签,根据PW标签查找与其关联的VSI实例,并在VSI实例内查找MAC地址表,将报文转发给CE 2。
CE 2访问CE 1的报文转发过程如下:
(1) PE 3从AC接收到CE 2发送的报文后,在AC关联的VSI实例内查找MAC地址表,找到对应的PW标签Label 2。PE 3为报文封装PW标签Label 2和PE 3与PE 2间的公网标签,将报文转发到PE 2。。
(2) PE 2接收到报文后,根据End.DT2U SID 100:1::1和PW标签Label 2的关联关系,剥离MPLS标签,为报文封装End.DT2U SID 100:1::1,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 1
(3) PE 1接收到报文后,解封装去掉IPv6报文头,根据End.DT2U SID 100:1::1查找与其关联的VSI实例,并在VSI实例内查找MAC地址表,将报文转发给CE 1。
如图41所示,在EVPN VPLS over SRv6 Option A Interworking组网中,AS 1中部署SRv6网络,AS 2中部署MPLS网络。站点网络需要跨越AS 1和AS 2互通。两个ASBR设备直接相连。ASBR同时作为PE,将对方当作自己的CE设备,在ASBR上将AC和PW关联。
图41 EVPN VPLS over SRv6 Option A Interworking组网示意图
EVPN VPLS over SRv6 Option A Interworking路由发布和报文转发过程如图42所示。
图42 EVPN VPLS over SRv6 Option A Interworking实现机制
在部署SRv6网络的AS域内,PE与ASBR之间需要通过IGP协议将End.DT2U SID所属Locator网段路由发布给该AS内的所有设备。例如,PE 1通过IGP协议(以IS-IS路由为例)将End.DT2U SID所属Locator网段路由100:1::/64发布给域内P和ASBR设备。
如图42所示,PE 1和ASBR 1之间需要建立SRv6 PW,PE 2和ASBR 2之间需要建立EVPN PW。EVPN VPLS over SRv6 Option A Interworking组网中,SRv6 PW和EVPN PW的建立过程与EVPN VPLS over SRv6、EVPN VPLS组网中相同,此处不再赘述。
PW建立完成后,CE 1访问CE 2的报文转发过程如下:
(1) PE 1从AC接收到CE 1发送的报文后,在AC关联的VSI实例内查找MAC地址表,找到对应的End.DT2U SID 200:1::1。PE 1为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到ASBR 1。
(2) ASBR 1接收到报文后,解封装去掉IPv6报文头,根据End.DT2U SID 200:1::1查找与其关联的VSI实例,并在VSI实例内查找MAC地址表,将报文转发给它的CE(即ASBR 2)。
(3) ASBR 2从AC接收到ASBR 1发送的报文后,在AC关联的VSI实例内查找MAC地址表,找到对应的PW标签Label 1。ASBR 2为报文封装PW标签Label 1和ASBR 2与PE 2间的公网标签,将报文转发到PE 2。
(4) PE 2接收到报文后,剥离公网标签和PW标签,根据PW标签查找与其关联的VSI实例,并在VSI实例内查找MAC地址表,将报文转发给CE 2。
PW建立完成后,CE 2访问CE 1的报文转发过程如下:
(1) PE 2从AC接收到CE 2发送的报文后,在AC关联的VSI实例内查找MAC地址表,找到对应的PW标签Label 2。PE 2为报文封装PW标签Label 2和PE 2与ASBR 2间的公网标签,将报文转发到ASBR 2。
(2) ASBR 2接收到报文后,剥离公网标签和PW标签,根据PW标签查找与其关联的VSI实例,并在VSI实例内查找MAC地址表,将报文转发给它的CE(即ASBR 1)。
(3) ASBR 1从AC接收到ASBR 2发送的报文后,在AC关联的VSI实例内查找MAC地址表,找到对应的End.DT2U SID 100:1::1。ASBR 1为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 1。
(4) PE 1接收到报文后,解封装去掉IPv6报文头,根据End.DT2U SID 100:1::1查找与其关联的VSI实例,并在VSI实例内查找MAC地址表,将报文转发给CE 1。
如图43所示,在EVPN VPLS over SRv6 Option B Interworking组网中,AS 1中部署SRv6网络,AS 2中部署MPLS网络。站点网络需要跨越AS 1和AS 2互通。两个ASBR设备直接相连。ASBR间通过MP-EBGP交换它们从各自AS的PE接收的EVPN路由。
图43 EVPN VPLS over SRv6 Option B Interworking组网示意图
图44 EVPN VPLS over SRv6 Option B Interworking实现机制
在部署SRv6网络的AS域内,PE与ASBR之间需要通过IGP协议将End.DT2U SID和End.T SID所属Locator网段路由发布给该AS内中所有设备。例如,PE 1通过IGP协议(以IS-IS路由为例)将End.DT2U SID所属Locator网段路由100:1::/64发布给域内P和ASBR设备。
如图44所示,EVPN VPLS over SRv6 Option B Interworking组网中,PE和ASBR需要通过MAC/IP发布路由通告PW标签或SRv6 SID,路由发布过程为:
(1) PE 2向PE 1发布路由的过程为:
a. PE 2接收到CE 2发送的报文后,将CE 2的MAC地址学习到VSI实例A的MAC地址表中。
b. PE 2通过MP-IBGP向ASBR 2发布MAC/IP发布路由,通告CE 2的MAC地址。该路由携带PE 2为VSI实例A分配的PW标签Label 1。Label 1作为EVPN PW的入标签。
c. ASBR 2接收到路由后,如果路由中的Export target属性与本地配置的Import target属性相同,则ASBR 2接收该路由。
d. ASBR 2通过MP-EBGP将路由发布给ASBR 1。ASBR 2发布路由时,将路由的下一跳更新为本机地址,为路由分配新的MPLS标签Label 2,并为MPLS标签Label 2和MPLS标签Label 1建立关联。
e. ASBR 1接收到路由后,如果路由中的Export target属性与本地配置的Import target属性相同,则ASBR 1接收该路由。
f. ASBR 1通过MP-IBGP将路由发布给PE 1。ASBR 1发布路由时,将路由的下一跳更新为本机地址,为路由分配End.T SID 200:1::1,并为End.T SID和MPLS标签Label 2建立关联。在该路由中,End.T SID作为End.DT2U SID使用。
g. PE 1接收到路由后,如果路由中的Export target属性与PE 1本地配置的Import target属性匹配,则建立一条SRv6 PW,ASBR 1通告的End.T SID 200:1::1作为该SRv6 PW的出SID。
(2) PE 1向PE 2发布路由的过程为。
a. PE 1接收到CE 1发送的报文后,将CE 1的MAC地址学习到VSI实例A的MAC地址表中。
b. PE 1通过MP-IBGP向ASBR 1发布MAC/IP发布路由,通告CE 2的MAC地址。该路由携带PE 1为VSI实例A分配的End.DT2U SID 100:1::1。该End.DT2U SID作为SRv6 PW的入SID。
c. ASBR 1接收到路由后,如果路由中的Export target属性与本地配置的Import target属性相同,则ASBR 1接收该路由。
d. ASBR 1通过MP-EBGP将路由发布给ASBR 2。ASBR 1发布路由时,将路由的下一跳更新为本机地址,为路由分配PW标签Label 3,并为PW标签Label 3和End.DT2U SID建立关联。
e. ASBR 2接收到路由后,如果路由中的Export target属性与本地配置的Import target属性相同,则ASBR 2接收该路由。
f. ASBR 2通过MP-IBGP将路由发布给PE 2。ASBR 2发布路由时,将路由的下一跳更新为本机地址,为路由分配PW标签Label 4,并为PW标签Label 4和Label 3建立关联。
g. PE 2接收到路由后,如果路由中的Export target属性与PE 1本地配置的Import target属性匹配,则ASBR 2通告的PW标签Label 4作为EVPN PW的出标签。
完成路由发布后,PE 1上将具有SRv6 PW的出入SID,PE 2上将具有EVPN PW的出入PW标签,ASBR 1和ASBR 2上将具有PW标签和SRv6 SID的映射关系,用户二层数据报文可以根据上述信息在MPLS网络和SRv6网络之间转发。
CE 1访问CE 2的报文转发过程如下:
(1) PE 1从AC接收到CE 1发送的报文后,在AC关联的VSI实例内查找MAC地址表,找到对应的End.DT2U SID 200:1::1(即ASBR 1通告的End.T SID)。PE 1为报文封装IPv6报文头,并通过SRv6 BE或SRv6 TE方式将报文发送到ASBR 1。
(2) ASBR 1接收到报文后,解封装去掉IPv6报文头,并根据End.T SID查找IPv6 FIB表转发报文,出标签为Label 2。ASBR 1为报文重新封装PW标签Label 2,并将报文转发给ASBR 2。ASBR 1和ASBR 2之间的报文只带一层MPLS标签。
(3) ASBR 2将MPLS标签Label 2替换为Label 1,添加从ASBR 2到PE 2的公网隧道的标签,并将报文转发给PE 2。
(4) PE 2接收到报文后,剥离公网标签和PW标签,根据PW标签查找与其关联的VSI实例,并在VSI实例内查找MAC地址表,将报文转发给CE 2。
CE 2访问CE 1的报文转发过程如下:
(1) PE 2从AC接收到CE 2发送的报文后,在AC关联的VSI实例内查找MAC地址表,找到对应的PW标签Label 4。PE 2为报文封装PW标签Label 4和PE 2与ASBR 2间的公网标签,将报文转发到ASBR 2。
(2) ASBR 2收到报文后,剥离公网标签,将私网标签Label 4替换为Label 3,并将报文发送给ASBR 1。ASBR 1和ASBR 2之间的报文只带一层私网标签。
(3) ASBR 1收到报文后,将私网标签Label 3替换为End.DT2U SID 100:1::1,并通过SRv6 BE或SRv6 TE方式将报文发送到PE 1。
(4) PE 1接收到报文后,解封装去掉IPv6报文头,根据End.DT2U SID 100:1::1查找与其关联的VSI实例,并在VSI实例内查找MAC地址表,将报文转发给CE 1。
在IP L3VPN over SRv6 TE/EVPN L3VPN over SRv6 TE/EVPN VPLS over SRv6 TE/EVPN VPWS over SRv6 TE组网中,公网隧道为SRv6 TE Policy隧道。SRv6 TE Policy的尾节点发生故障,会导致报文转发失败,所以需要为SRv6 TE Policy的尾节点提供保护。
SRv6 TE Policy尾节点保护仅适用于双归属的网络场景,且要求尾节点和对尾节点进行保护的节点上具有相同的转发表项。
如图45所示,在PE 1与PE 3之间部署SRv6 TE Policy,PE 3是SRv6 TE Policy的尾节点,为了增强可靠性,PE 4为PE 3提供保护。
图45 SRv6 TE Policy尾节点保护示意图
在SRv6 TE Policy尾节点保护场景中,End.M SID用于保护指定的Locator,即保护指定Locator段内的SRv6 SID。如果远端设备发布的SRv6 SID在指定Locator段的范围内,则使用End.M SID对该SRv6 SID(称为远端SRv6 SID)进行保护。在不同组网环境中,End.M SID对应的转发动作不同:
(1) IP L3VPN over SRv6 TE/EVPN L3VPN over SRv6 TE尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SID与VPN实例的映射表,找到对应VPN实例,在该VPN实例的路由表中查表转发。
(2) EVPN VPWS over SRv6 TE尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SID与交叉连接的映射表,找到对应交叉连接,通过该交叉连接关联的AC转发报文。
(3) EVPN VPLS over SRv6 TE尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SID与VSI的映射表,找到对应VSI,在该VSI内查找MAC地址表转发。
如图45所示,PE 4从PE 3收到BGP路由后,如果BGP路由中的SRv6 SID在PE 4上End.M SID保护的Locator范围内,则该SRv6 SID为远端SRv6 SID,同时在PE 4上生成远端SRv6 SID与VPN实例/交叉连接/VSI的映射表。
当PE 3故障时,PE 4与PE 3之间邻居中断,会导致PE 4从PE 3收到的BGP路由删除,进而导致远端SRv6 SID与VPN实例/交叉连接/VSI的映射表被删除,造成丢包。为了避免上述情况,可以在PE 4上延迟删除远端SRv6 SID与VPN实例/交叉连接/VSI的映射表,在PE 1感知到PE 3故障并计算出新的转发路径前,保证流量通过PE 4转发,避免丢包。
IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS over SRv6 TE尾节点保护场景的路由发布过程类似,下面以IP L3VPN over SRv6 TE尾节点保护场景为例进行介绍。
如图45所示,P 1上FRR路径的生成过程为:
(1) PE 4通过IS-ISv6路由向邻居P 1发布End.M SID和被保护的Locator,同时PE 4上生成End.M SID的Local SID表。
(2) P 1收到携带End.M SID的路由后,生成到达指定Locator的FRR路由信息,动作为压入End.M SID。该FRR路由对应的转发路径为Mirror FRR路径。
如图45所示,PE 4上远端SRv6 SID与VPN实例的映射表生成过程为:
(1) PE 3收到CE 2发布的私网路由之后,封装成VPNv4路由发送给PE 4,路由携带SRv6 SID、RT、RD信息。
(2) PE 4从PE 3收到VPNv4路由后,获取到该VPN实例对应的SRv6 SID。PE 4使用该SRv6 SID和End.M SID保护的Locator段进行最长匹配。如果匹配上,则该SRv6 SID为远端SRv6 SID,在PE 4上生成远端SRv6 SID与VPN实例的映射表。
IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS over SRv6 TE尾节点保护场景的报文转发过程类似,下面以IP L3VPN over SRv6 TE尾节点保护场景为例进行介绍。
图46 SRv6 TE Policy尾节点保护转发示意图
如图46所示,正常情况下,流量经过路径CE 1-PE 1-P 1-PE 3-CE 2转发。当尾节点PE 3故障时,报文转发过程为:
(1) P 1感知到下一跳PE 3不可达,切换为FRR路径。P 1为报文封装IPv6报文头,其目的地址为End.M SID,然后转发给PE 4。
(2) PE 4接收到报文后,查询Local SID表,匹配到End.M SID。PE 4执行End.M SID对应的转发动作,即解封装报文,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SID与VPN实例的映射表,找到对应VPN实例1。然后,在PE 4上查询VPN实例1的路由表将流量转发给CE 2。
· draft-ietf-idr-bgpls-srv6-ext-05
· draft-ietf-bess-srv6-services-02
· draft-ietf-spring-srv6-network-programming-16
· draft-ietf-rtgwg-segment-routing-ti-lfa-05
· draft-ietf-spring-segment-routing-policy-09
· draft-ietf-6man-spring-srv6-oam-05
· draft-ietf-lsr-isis-srv6-extensions-08
· RFC 8667:IS-IS Extensions for Segment Routing
· RFC 8754:IPv6 Segment Routing Header (SRH)