书籍来源:《SRv6网络编程:开启IP网络新时代》
这本书已经出了很多年了,但多年之后因为工作需要再来读一遍,除了温习之外,发现自己学到了更多的知识。一边学习一边整理读书笔记,并与大家分享,侵权即删,谢谢支持!
附上汇总贴:SRv6网络编程自学系列 | 汇总_COCOgsta的博客-CSDN博客
SRv6按承载业务路径划分,可以分为SRv6 BE和SRv6 TE两种类型,我们也将SRv6 L3VPN分为L3VPN over SRv6 BE和L3VPN over SRv6 TE两个部分来介绍。
L3VPN over SRv6 BE是指利用SRv6 BE来承载L3VPN业务,其工作原理包括控制平面的工作流程和转发平面的工作流程两部分内容。
L3VPN over SRv6 BE控制平面的工作流程如图5-10所示,主要流程如下。
① 基础网络连通配置:在PE和P节点上完成IPv6地址、IGP、BGP等配置,保证设备基础网络连通。
② VPN配置与Locator路由发布:在PE2节点上配置该节点的SRv6 Locator配置为A2:1::/64,Loopback接口IPv6地址配置为A2:2::100。配置VPN1的End.DT4 SID为A2:1::B100。PE2将Locator前缀路由及Loopback路由通过IGP发布到域内各节点,各节点形成对应的路由转发表项。
③ 发布私网路由与VPN SID:PE2学习到的来自CE2的私网路由10.1.1.1/32以后,将路由以及对应的VPN SID等信息通过BGP通告给远端的PE1。
④ 生成VPN转发表:PE1学习到私网路由10.1.1.1/32及End.DT4 SID的映射关系,将私网路由10.1.1.1/32下发到本机转发表,此路由携带End. DT4 SID信息,下一跳地址为PE2的地址A2:2::100。
图5-10 L3VPN over SRv6 BE控制平面的工作流程
L3VPN over SRv6 BE转发平面的工作流程如图5-11所示,主要流程如下。
① E1会根据报文的入接口绑定的VPN,查找相应的VPN实例路由表,并通过CE2的路由10.1.1.1/32获取远端PE2上VPN的End.DT4 SID信息,然后将原始报文封装一层IPv6报文头往外转发,报文的目的地址为远端PE2上VPN实例的End.DT4 SID。
② 由于报文的目的地址不是本机的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的功能指令处理报文。
图5-11 L3VPN over SRv6 BE转发平面的工作流程
部署SRv6来支持VPN对现网的改动很小,只需将PE节点升级至支持SRv6即可。
下面将以L3VPN over SRv6 Policy为例,介绍VPN流量如何通过指定的SRv6 TE路径进行转发。
L3VPN over SRv6 Policy控制平面的工作流程如图5-12所示,主要流程如下。
① 基础网络连通配置:在PE和P节点上完成IPv6地址、IGP、BGP等配置,保证设备基础网络连通。
② 配置与发布SRv6 Locator:在PE3节点上配置该节点的SRv6 locator 配置为 A2:1::/64,Loopback 接口 IPv6地址配置为 A2:2::124。PE3将 Locator 前 缀 路 由及 Loopback 路 由通过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等信息,通过BGP将SRv6 Policy信息下发给头节点PE1。其中TE路径需经过P2到P4的链路,所以Segment List中包含对应的End.X SID A1:2::100。
⑦ 头节点PE1学习到PE3通告的私网路由,利用该私网路由携带的Color属性和下一跳迭代SRv6 Policy。
图5-12 L3VPN over SRv6 Policy控制平面的工作流程
L3VPN over SRv6 Policy转发平面的工作流程如图5-13所示,主要流程如下。
① PE1上会根据报文的入接口绑定的VPN,查找相应的VPN实例路由表,从而获取到远端VPN实例的End.DX6 SID信息,并确定该VPN路由的出接口为SRv6 Policy隧道,PE1在原始报文中封装一层SRH及IPv6报文头后往外转发。该SRH中将携带两个SRv6 SID。
② 节点P2收到目的地址是End.X SID的IPv6报文时,查找本地SID表,命中一个End.X SID,节点P2需要执行End.X SID的指令。
③ 节点P4可以是普通IPv6转发节点,采用普通的最长掩码匹配原则查找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的功能指令处理报文,将报文转发到CE2。