1、在 SRv6 网络中,建立 l2vpn 邻居,和建立 vpnv4 邻居关系的区别?
在 SRv6 网络中,如果私网之间要建立通信,如果用 MPLS 单域的话,需要两层标签来传递私网路由:第一层是EBGP 和对端的 CE 产生的区分私网实例路由的标签,第二层是公网 IGP 产生的公网标签来走通公网区域。
而在 SRv6 中,要传递私网实例路由,假如我们在公网侧,使用 VPNv4 邻居关系来传递私网实例路由,就出现了私网路由传递到了公网PE侧 A,而当 A 把路由使用自己的环回口 IPv6 做源地址做了包封装回传给了 B,B 收到路由,拆开发现是一条私网路由,但 B 无法判断这个私网地址如果回包,它是否可以走通比如走哪个实例进行转发,于是 B 就把这条私网实例路由归于不优
为了解决这个问题:SRv6 使用了另一种形式来确定私网 ipv4 路由的处理方式:end-dt4,所以,就使用了 SRv6 locator+opcode 的形式,使用这种特殊形式的 IPv6 地址来让私网实例之间进行路由的传递。
那么,要让 vpnv4 邻居传递带实例并且加以区分的路由,需要在 vpnv4 的邻居关系中加上三条:
ipv4-f v OA segment-routing ipv6 locator xx #让 SR 产生一个sid advertise l2vpn evpn peer fc00::1 prefix-sid #带上 sid 走,相当于l2vpn里的 pe fc00::1 advertise encap-type srv6 segment-routing best-effort #因为 vpnv4 路由默认走 MPLS 转发 pe x.x.x.x as xxxx默认就相当于带上了区分实例的 mpls 标签,这时,路由才会被放进 vpn 实例路由表中,下一跳为对方的 IPv6 locator + sid,路由可达且为优
2、为什么在 srv6-te policy 里要用 color 参数呢?
可以区分同一个PE传过来的不同的路由,规划它们走哪条路径!比如说为同一个用户传来的不同的路由选择不同的路径,也相当于可以让用户区分他们的不同业务部署的路径:srv6-te policy x endpoint fc00::5 color 101
当路由的color 和 路径的 color 一致时,srv6-te 的路由策略才可实现,具有意义。
那么如何给同一用户的路由染上color呢?写路由策略,给 BGP 路由打上 community 的 color 属性 ,并且在 BGP l2vpn-family evpn 里加上染色(加 community color 的团体路由宣告:
route-p color101 p n 10 app extcommunity color 0:101 # bgp 65000 l2vpn evpn pe fc00::5 route-p color101 export