版本记录2026.4.1完成初稿L3VPNv4 over SRv6 BE实验背景R1~R6之间使用ISIS作为IGP协议R1和R6作为PE设备分别使用VPN实例与CE建立IPv4 EBGP邻居关系R1与R6建立VPNv4 IBGP邻居关系。实验需求R7与R8之间的业务能够实现互通中间的承载通道使用SRv6 BE实现。1、R1~R6配置设备和接口的ISIS协议略2、R1和R6配置Locator并在ISIS下发布略3、R1与R6建立VPNv4 IBGP邻居关系PE使用VPN实例与CE之间建立IPv4 EBGP邻居关系以R1的配置为示例R6、PE与CE的配置类似不再赘述[R1]bgp 100[R1-bgp]router-id 1.1.1.1[R1-bgp]peer 6::6 as-number 100[R1-bgp]peer 6::6 connect-interface LoopBack 0[R1-bgp]ipv4-family vpnv4 unicast[R1-bgp-af-vpnv4]peer 6::6 enable[R1]ip vpn-instance vpn.a[R1-vpn-instance-vpn.a]route-distinguisher 65001:1[R1-vpn-instance-vpn.a-af-ipv4]vpn-target 1:1 both[R1]interface GigabitEthernet 3/0/2[R1-GigabitEthernet3/0/2]ip binding vpn-instance vpn.a[R1-GigabitEthernet3/0/2]ip address 10.1.17.1 24[R1]bgp 100[R1-bgp]ipv4-family vpn-instance vpn.a[R1-bgp-vpn.a]peer 10.1.17.7 as-number 65001在R6的3/0/1抓取BGP的update报文控制层分析R6-R1R8的IPv4业务路由通过EBGP邻居关系传递给R6R6为该VPN实例路由添加上RD和RT成为VPNv4路由并通过MP-BGP将VPNv4路由传递给R1与公网IPv4 over SRv6 BE一样在R1上虽然收到路由但是提示下一跳隧道不可达公网IPv4提示的是下一跳不可达因此现在需要打通SRv6 BE隧道[R6]bgp 100[R6-bgp]ipv4-family vpn-instance vpn.a[R6-bgp-vpn.a]segment-routing ipv6 locator R6 //为VPN实例分配SRv6 SID[R6-bgp]ipv4-family vpnv4 unicast[R6-bgp-af-vpnv4]peer 1::1 prefix-sid //向邻居发送带SID的路由[R1]bgp 100[R1-bgp]ipv4-family vpn-instance vpn.a[R1-bgp-vpn.a]segment-routing ipv6 best-effort //R1指定该VPN实例走SRv6 BE隧道完成以上配置后在R6的3/0/1抓包可以发现该VPNv4路由是携带SRv6 SID的此时 R1收到该VPNv4路由后根据RT值远程交叉路由到vpn.a实例表中最后将路由传递给CE。至此控制层的路由传递便完成了。数据层分析R1-R6R7向R1发送一个普通IPv4报文R1从VPN实例接口收到该报文于是根据目的地址查VPN实例的FIB表发现下一跳是SRv6 BE隧道于是使用A6:600::1:0:4的业务SID作为目的地址封装为IPv6报文最后根据最长掩码匹配原则匹配到路由A6:600::/64于是将数据包转发给R2或R3在R1的3/0/0抓包验证数据包的封装中间设备按照最长掩码匹配原则将数据包转发到R6R6收到数据包后使用A6:600::1:0:4查找本地SID表匹配到End.DT4 SID于是解封装IPv6报文头根据该End.DT4 SID匹配到vpn.a实例表于是查找vpn.a的路由表将数据包传递给R8。至此数据转发层便完成了。附录以上实验使用BGP为VPN实例分配SRv6 SID那么是否可以使用静态配置的方式为VPN实例分配SRv6 SID呢答案是肯定的配置方法如下以R6为例[R6]segment-routing ipv6[R6-segment-routing-ipv6]locator R6[R6-segment-routing-ipv6-locator]opcode ::666 end-dt4 vpn-instance vpn.a //静态配置End-DT4的SRv6 SID完成以上配置后R6的Local SID表已经生成上面静态配置的End-DT4 SID此时R1能够收到172网段的路由但是该路由不带SRv6 SID所以继续在R6实施以下配置[R6]bgp 100[R6-bgp]ipv4-family vpnv4[R6-bgp-af-vpnv4]peer 1::1 prefix-sid //向邻居发送带SID的路由完成以上配置后发现R6连路由都不发送给邻居R1为什么会出现这个问题呢原因分析现在R6指定向邻居发送的路由需要带SID但R6连路由都没有发送给对端证明此时通过MP-BGP传递出去的172网段路由是没有带SID的。需要增加以下指令实现[R6]bgp 100[R6-bgp]ipv4-family vpn-instance vpn.a[R6-bgp-vpn.a]segment-routing ipv6 locator R6完成以上配置后R6便发送172网段给邻居了R1收到的路由携带静态配置的SID A6:600::666。从这个实验可以得出两个重要的结论1、peer 1::1 prefix-sid表示向邻居发送带SID的路由若该路由没有带SID则直接丢弃2、segment-routing ipv6 locator R6有两层意思1表示BGP为路由动态分配SRv6 SID2若通过静态方式配置了业务SID也需要通过该指令使BGP携带静态SID的信息L3EVPNv4 over SRv6 BE实验背景R1~R6之间使用ISIS作为IGP协议R1和R6作为PE设备分别使用VPN实例与CE建立IPv4 EBGP邻居关系R1与R6建立EVPN IBGP邻居关系。实验需求R7与R8之间的业务能够实现互通中间的承载通道使用SRv6 BE实现。1、R1~R6配置设备和接口的ISIS协议略2、R1和R6配置Locator并在ISIS下发布略3、R1与R6建立EVPN IBGP邻居关系PE使用VPN实例与CE之间建立IPv4 EBGP邻居关系以R1的配置为示例R6、PE与CE的配置类似不再赘述[R1]ip vpn-instance vpn.a[R1-vpn-instance-vpn.a]route-distinguisher 65001:1[R1-vpn-instance-vpn.a]vpn-target 1:1 both evpn[R1]interface GigabitEthernet 3/0/2[R1-GigabitEthernet3/0/2]ip binding vpn-instance vpn.a[R1-GigabitEthernet3/0/2]ip address 10.1.17.1 24[R1]bgp 100[R1-bgp]router-id 1.1.1.1[R1-bgp]peer 6::6 as-number 100[R1-bgp]peer 6::6 connect-interface LoopBack 0[R1-bgp]l2vpn-family evpn[R1-bgp-af-evpn]peer 6::6 enable[R1-bgp]ipv4-family vpn-instance vpn.a[R1-bgp-vpn.a]peer 10.1.17.7 as-number 65001控制层分析R6-R1R8的IPv4业务路由通过EBGP邻居关系传递给R6完成以上配置后EVPN地址族没有生成任何路由。这是因为在L3VPN场景中VPN实例下的路由会自动转换成VPNv4路由但是在EVPN场景下需要手工指定VPN实例通过EVPN地址族进行转发[R6]bgp 100[R6-bgp]ipv4-family vpn-instance vpn.a[R6-bgp-vpn.a]advertise l2vpn evpn //指定VPN实例路由通过EVPN地址族进行转发完成以上配置后依然没有生成任何的EVPN路由类比之前的实验在R6为VPN实例分配SRv6 SID并设置向邻居发送带SID的路由[R6]bgp 100[R6-bgp]ipv4-family vpn-instance vpn.a[R6-bgp-vpn.a]segment-routing ipv6 locator R6 evpn[R6-bgp]l2vpn-family evpn[R6-bgp-af-evpn]peer 1::1 advertise encap-type srv6完成以上配置后依然没有生成任何的EVPN路由继续在R6添加以下配置[R6]bgp 100[R6-bgp-vpn.a]segment-routing ipv6 best-effort evpn[R6-bgp]l2vpn-family evpn[R6-bgp-af-evpn]peer 1::1 advertise encap-type srv6完成以上配置后依然没有生成任何的EVPN路由继续在R6添加以下配置[R6]bgp 100[R6-bgp-vpn.a]segment-routing ipv6 best-effort evpn至此使用display bgp evpn all routing-table可以看到EVPN的5类路由prefix route,使用display bgp evpn all routing-table prefix-route 0:172.16.10.0:24可以查看指定5类路由的详细信息。从以下输出可见R6已经生成evpn的5类路由并携带SRv6 SID 发送给邻居。但是此时R1是没有收到任何EVPN路由的类比之前的实验在R1做如下配置[R1]bgp 100[R1-bgp]ipv4-family vpn-instance vpn.a[R1-bgp-vpn.a]segment-routing ipv6 best-effort evpn完成以上配置后R1可以接收到邻居发送过来的EVPN路由。不同于VPNv4场景会直观的显示VPNv4路由有没有被下载到VPN实例表在EVPN场景下需要额外检查VPN的实例表路由至此控制层的路由传递便完成了。从上面的分析过程可以看到在EVPN场景segment-routing ipv6 best-effort evpn这个指令有两个功能1使能基于EVPN路由携带的SID属性迭代进SRv6 BE隧道。2使能SRV6模式下的EVPN L3VPN功能。在R6的3/0/1抓取BGP的update报文数据层分析与L3VPNv4 over SRv6 BE一致略笔者有话说SRv6 BE系列课程到这里就讲解完毕了实际上应该加上二层EVPN over SRv6 BE内容才算完整。但是写着写着发现太复杂篇幅太大这部分内容打算后面有时间再开一个系列吧。