SRv6 L3VPN 的工作原理
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 控制平面的工作主要流程如下。
① 基础网络连通配置:在 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 转发平面的工作流程如下。
①当 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 控制平面的工主要流程如下。
① 基础网络连通配置:在 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 转发平面的工作流程。
① 当 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 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/d30ea13924eefdde8c987bae8】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论