当前位置:网站首页>SRv6 L3VPN的工作原理

SRv6 L3VPN的工作原理

2022-08-01 22:15:00 InfoQ

SRv6按承载业务路径划分,可以分为SRv6 BE(Best Effort,尽力而为)和SRv6 TE两种类型。
一、L3VPN over SRv6 BE的工作原理
L3VPN over SRv6 BE是指利用SRv6 BE来承载L3VPN业务,其工作原理包括控制平面的工作流程和转发平面的工作流程两部分内容。
1、L3VPN over SRv6 BE控制平面的工作流程
L3VPN over SRv6 BE控制平面的工作主要流程如下。
null
① 基础网络连通配置:在PE和P节点上完成IPv6地址、IGP、BGP等配置,保证设备基础网络连通。

② VPN配置与Locator路由发布:在PE2节点上配置VPN及SRv6 SID。该节点的SRv6 Locator配置为A2:1::/64,Loopback接口IPv6地址配置为A2:2::100。该节点配置VPN1接入CE2侧的IPv4业务,通过给每个VPN分配一个SID的方式,将该VPN配置的End.DT4 SID设置为A2:1::B100。PE2将Locator前缀路由A2:1::/64及Loopback路由A2:2::100通过IGP发布到域内各节点,各节点形成对应的路由转发表项。

③ 发布私网路由与VPN SID:PE2学习到的来自CE2的私网路由10.1.1.1/32以后,将路由以及对应的VPN SID(在BGP Prefix SID属性中的SRv6 L3 Services TLV中携带)等信息通过BGP通告给远端的PE1。

④ 生成VPN转发表:PE1学习到私网路由10.1.1.1/32及End.DT4 SID的映射关系,将私网路由10.1.1.1/32下发到本机转发表,此路由携带End. DT4 SID信息,下一跳地址为PE2的地址A2:2::100。
2、L3VPN over SRv6 BE转发平面的工作流程
控制平面构建完成之后,就可以支持L3VPN流量的转发了。L3VPN over SRv6 BE转发平面的工作流程如下。
null
①当PE1收到从CE1发往CE2的报文时,PE1会根据报文的入接口绑定的VPN,查找相应的VPN实例路由表,并通过CE2的路由10.1.1.1/32获取远端PE2上VPN的End.DT4 SID信息,然后将原始报文封装一层IPv6报文头往外转发,报文的目的地址为远端PE2上VPN实例的End.DT4 SID。

② 网络中间的转发节点P1和P2可以是SRv6节点,也可以是不支持SRv6的普通IPv6节点。由于报文的目的地址不是本机的SID,也不是本机的接口地址,所以P1和P2节点将按照IPv6目的地址A2:1::B100,采用普通的最长掩码匹配原则查找IPv6路由转发表,最终匹配到IGP发布的SRv6 Locator路由A2:1::/64,P1和P2节点最终将报文沿最短路径转发至PE2。

③ PE2收到目的地址为End.DT4 SID的IPv6报文时,查找本地SID表,命中一个End.DT4 SID,PE2按照End.DT4 SID的功能指令处理报文:弹出外层IPv6报文头,然后使用内层报文的目的地址10.1.1.1,在SID所对应的VPN实例路由表中查找路由,并根据路由将报文转发到CE2。

由此可见,部署SRv6来支持VPN对现网的改动很小,只需将PE节点升级至支持SRv6即可。因此在现网向SRv6演进的方案中,初始阶段一般只需升级PE节点支持SRv6 VPN,然后再按需进行部分节点升级,支持松散路径的TE,最后才需要全网演进到SRv6,支持严格路径的TE。
二、L3VPN over SRv6 TE的工作原理
1、L3VPN over SRv6 Policy控制平面的工作流程
L3VPN over SRv6 Policy控制平面的工主要流程如下。
null
① 基础网络连通配置:在PE和P节点上完成IPv6地址、IGP、BGP等配置,保证设备基础网络连通。

② 配置与发布SRv6 Locator:在PE3节点上配置相关的SRv6 SID。该节点的 SRv6locator 配置为 A2:1::/64,Loopback 接口 IPv6地址配置为 A2:2::124。PE3将Locator 前 缀 路 由 A2:1::/64及 Loopback 路 由A2:2::124通过IGP发布到域内各节点,各节点形成对应的路由转发表项。此外,PE3还需要将Locator和SID等信息通过BGP-LS通告给控制器。

③ 配置VPN与发布SID:在PE3上配置VPN1,接入CE2侧IPv6业务,并为连接CE2的三层邻接配置End.DX6 SID A2:1::C100。

④ 通告VPN路由:PE3学习到来自CE2的IPv6地址为2000::1的私网路由,并将这些私网路由、VPN SID、下一跳以及可选的Color属性(用来匹配不同的业务需求)等信息通过BGP通告给远端的PE。

⑤ 配 置 与 发 布 SRv6 SID:配 置 P2的 SRv6 locator 为 A1:2::/64, Locator路由通过IGP发布,其他节点学习到此路由以后,将生成A1:2::/64网段的路由转发表项。为P2与P4之间的链路配置End.X SID A1:2::100,并通过BGP-LS通告给控制器。

⑥ 下发控制器算路:控制器通过BGP-LS收集到网络拓扑和SID等信息,结合业务需求,计算出SRv6 Policy路径,然后通过BGP将SRv6 Policy信息下发给头节点PE1。其中TE路径需经过P2到P4的链路,所以Segment List中包含对应的End.X SID A1:2::100。头节点PE1存储该SRv6 Policy的相关信息,包括Color属性、Endpoint地址以及途经P2到P4链路的SRv6 Segment List A1:2::100等。

⑦ 头节点PE1学习到PE3通告的私网路由,利用该私网路由携带的Color属性和下一跳迭代SRv6 Policy。迭代成功后,私网路由的出接口设置为SRv6 Policy隧道接口。

2、L3VPN over SRv6 Policy转发平面的工作流程
控制平面构建完成之后,就可以进行L3VPN over SRv6 Policy转发了。L3VPN over SRv6 Policy转发平面的工作流程。
null
① 当PE1收到从CE1发往CE2的报文时,PE1上会根据报文的入接口绑定的VPN,查找相应的VPN实例路由表,从而获取到远端VPN实例的End.DX6 SID信息,并根据转发表项中的信息确定该VPN路由的出接口为SRv6 Policy隧道,PE1在原始报文中封装一层SRH及IPv6报文头后往外转发。该SRH中将携带两个SRv6 SID,包括节点P2到节点P4链路的End.X SID A1:2::100及目的PE3上VPN1中私网路由2000::1对应的End.DX6 SID A2:1::C100。报文从PE1发出时,SRH中指针指向下一跳A1:2::100,对应的外层IPv6报文目的地址为该指针指向的A1:2::100。

② 节点P2收到目的地址是End.X SID的IPv6报文时,查找本地SID表,命中一个End.X SID,节点P2需要执行End.X SID的指令:处理携带了SRH的IPv6报文头,指针偏移指向下一跳A2:1::C100,对应的外层IPv6报文头目的地址替换为指针指向的A2:1::C100,并按照End.X SID A1:2::100指示的出接口沿节点P2到节点P4的链路转发至节点P4。

③ 节点P4可以是普通IPv6转发节点,收到的目的地址是End.DX6 SID A2:1::C100的IPv6报文时,由于报文的目的地址不是本机的SID,也不是本机的接口地址,所以节点P4将按照IPv6目的地址A2:1::C100,采用普通的最长掩码匹配原则查找IPv6路由转发表,最终匹配到IGP发布的SRv6 Locator路由A2:1::/64,节点P4将IPv6报文沿最短路径转发至PE3。

④ PE3收到目的地址是End.DX6 SID A2:1::C100的IPv6报文时,查找本地SID表,命中一个End.DX6 SID,PE3按照End.DX6 SID的功能指令处理报文,弹出该IPv6报文头,恢复原始报文,并按照End.DX6 SID A2:1::C100指示的出接口将报文转发到CE2。

原网站

版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://xie.infoq.cn/article/d30ea13924eefdde8c987bae8