SRv6 BE(Best Effort)承载 VPN 流量时,PE 之间的 P 设备不作为 Endpoint 节点使用;
路由传递流程
PE 配置 SRv6 和 SRv6 VPN,中间节点设备需要支持 IPv6;
PE2 发布 SRv6 Locator 路由给 PE1;
CE 到 PE 的路由信息交换:CE2 把本站点的路由发布给 PE2。CE 与 PE 之间可以使用静态路由、RIP、OSPFv3、IS-IS 或 BGP;
PE2 从 CE2 学习到 VPN 路由信息后,存放到 VPN 实例路由表中。同时,转换成 MP-BGP 路由;
PE 之间路由发布:PE2 通过 MP-BGP 把 VPN 路由发布给出口 PE1,并且 Update 报文中还携带 RT 属性及 SRv6 VPN SID 属性。注意,BGP 分配的 SRv6 VPN SID 是在 SRv6 Locator 范围之内的,所以才使得后续的 IPv6 报文转发成为可能。
PE1 接收 VPN 路由:PE1 收到 VPN 路由后,在下一跳可达并且通过 BGP 的入口策略的情况下,进行私网路由交叉、路由迭代 SRv6 BE 路径、路由优选等动作,决定是否将该路由加入到 VPN 实例路由表。VPN 路由下发同时关联 SRv6 VPN SID;
PE 到 CE 的路由信息交换:CE1 有多种方式可以从 PE1 学习 VPN 路由,包括静态路由、RIP、OSPFv3、IS-IS 和 BGP,与 CE2 到 PE2 的路由信息交换相同;
报文转发流程
头端 PE1 接收到 CE1 发送的普通单播报文后,查找 VPN 实例路由表,该路由的出接口是 SRv6 Policy。PE1 为报文插入 SRH 信息,封装 SRv6 Policy 的 SID List,然后封装 IPv6 报文头信息。完成之后,PE1 将报文对 P1 转发;
中间 P1 根据 SRH 信息逐跳转发;
报文到达尾节点 PE2 之后,PE2 使用报文的 IPv6 DST Address FC03::3 查找 My Local SID 表,命中到 End SID,所以 PE2 将报文 SL 减 1,IPv6 DA 更新为 VPN SID FC03::300;
PE2 使用 VPN SID FC03::300 查找 My Local SID 表,命中到 End.DT4 SID,PE2 解封装报文,去掉 SRH 信息和 IPv6 报文头,使用内层报文目的地址查找 VPN SID FC03::300 对应的 VPN 实例路由表,然后将报文转发给 CE2;