Table of Contents

SRv6 - vpnv4 && vpnv6

Lab Topology


Containerlab definition

srv6-frr4.clab.yaml
name: srv6-frr4
mgmt:
  network: clab-mgmt-net
  ipv4-subnet: 172.99.20.0/24
  ipv6-subnet: ""

topology:
  nodes:
    rr1:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - rr1/daemons:/etc/frr/daemons
        - rr1/frr.conf:/etc/frr/frr.conf
        - rr1/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - ip link add dummy0 type dummy
        - ip link set dummy0 up

    rr2:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - rr2/daemons:/etc/frr/daemons
        - rr2/frr.conf:/etc/frr/frr.conf
        - rr2/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - ip link add dummy0 type dummy
        - ip link set dummy0 up

    p1:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - p1/daemons:/etc/frr/daemons
        - p1/frr.conf:/etc/frr/frr.conf
        - p1/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - ip link add dummy0 type dummy
        - ip link set dummy0 up

    p2:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - p2/daemons:/etc/frr/daemons
        - p2/frr.conf:/etc/frr/frr.conf
        - p2/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - ip link add dummy0 type dummy
        - ip link set dummy0 up

    p3:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - p3/daemons:/etc/frr/daemons
        - p3/frr.conf:/etc/frr/frr.conf
        - p3/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - ip link add dummy0 type dummy
        - ip link set dummy0 up

    p4:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - p4/daemons:/etc/frr/daemons
        - p4/frr.conf:/etc/frr/frr.conf
        - p4/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - ip link add dummy0 type dummy
        - ip link set dummy0 up

    p5:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - p5/daemons:/etc/frr/daemons
        - p5/frr.conf:/etc/frr/frr.conf
        - p5/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - ip link add dummy0 type dummy
        - ip link set dummy0 up

    p6:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - p6/daemons:/etc/frr/daemons
        - p6/frr.conf:/etc/frr/frr.conf
        - p6/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - ip link add dummy0 type dummy
        - ip link set dummy0 up

    pe1:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - pe1/daemons:/etc/frr/daemons
        - pe1/frr.conf:/etc/frr/frr.conf
        - pe1/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - sleep 4
        - ip link add dummy0 type dummy
        - ip link set dummy0 up
        - ip link add clienta type vrf table 10
        - ip link add clientb type vrf table 11
        - ip link set eth2 master clienta
        - ip link set eth3 master clientb
        - ip link set clienta up
        - ip link set clientb up

    pe4:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - pe4/daemons:/etc/frr/daemons
        - pe4/frr.conf:/etc/frr/frr.conf
        - pe4/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - sleep 4
        - ip link add dummy0 type dummy
        - ip link set dummy0 up
        - ip link add clienta type vrf table 10
        - ip link add clientb type vrf table 11
        - ip link set eth2 master clienta
        - ip link set eth3 master clientb
        - ip link set clienta up
        - ip link set clientb up

    pe3:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - pe3/daemons:/etc/frr/daemons
        - pe3/frr.conf:/etc/frr/frr.conf
        - pe3/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - sleep 4
        - ip link add dummy0 type dummy
        - ip link set dummy0 up
        - ip link add clienta type vrf table 10
        - ip link add clientb type vrf table 11
        - ip link set eth2 master clienta
        - ip link set eth3 master clientb
        - ip link set clienta up
        - ip link set clientb up

    pe6:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - pe6/daemons:/etc/frr/daemons
        - pe6/frr.conf:/etc/frr/frr.conf
        - pe6/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - sleep 4
        - ip link add dummy0 type dummy
        - ip link set dummy0 up
        - ip link add clienta type vrf table 10
        - ip link add clientb type vrf table 11
        - ip link set eth2 master clienta
        - ip link set eth3 master clientb
        - ip link set clienta up
        - ip link set clientb up

    cpe-ca-1:
      kind: linux
      image: quay.io/frrouting/frr:10.5.1
      cmd: bash -c "/usr/lib/frr/frrinit.sh start && tail -f /dev/null"
      sysctls:
        net.ipv4.ip_forward: 1
        net.ipv4.conf.all.forwarding: 1
        net.ipv6.conf.all.forwarding: 1
        net.ipv6.conf.default.forwarding: 1
        net.ipv6.seg6_flowlabel: 1
        net.ipv6.conf.default.seg6_enabled: 1
        net.ipv6.conf.all.seg6_enabled: 1
        net.vrf.strict_mode: 1
      binds:
        - cpe-ca-1/daemons:/etc/frr/daemons
        - cpe-ca-1/frr.conf:/etc/frr/frr.conf
        - cpe-ca-1/vtysh.conf:/etc/frr/vtysh.conf
      exec:
        - ip link add dummy0 type dummy
        - ip link set dummy0 up
        - ip link add clienta type vrf table 1001
        - ip link set clienta up

    clienta-1:
      kind: linux
      image: alpine:latest
      exec:
        - ip -4 addr add 192.168.31.2/24 dev eth1
        - ip link set dev eth1 up
        - ip -4 route del default
        - ip -4 route add 0.0.0.0/0 via 192.168.31.1

    clienta-3:
      kind: linux
      image: alpine:latest
      exec:
        - ip -4 addr add 192.168.33.2/24 dev eth1
        - ip link set dev eth1 up
        - ip -4 route del default
        - ip -4 route add 0.0.0.0/0 via 192.168.33.1

    clienta-4:
      kind: linux
      image: alpine:latest
      exec:
        - ip -4 addr add 192.168.34.2/24 dev eth1
        - ip link set dev eth1 up
        - ip -4 route del default
        - ip -4 route add 0.0.0.0/0 via 192.168.34.1

    clienta-6:
      kind: linux
      image: alpine:latest
      exec:
        - ip -4 addr add 192.168.36.2/24 dev eth1
        - ip link set dev eth1 up
        - ip -4 route del default
        - ip -4 route add 0.0.0.0/0 via 192.168.36.1

    clientb-1:
      kind: linux
      image: alpine:latest
      exec:
        - ip -4 addr add 192.168.41.2/24 dev eth1
        - ip link set dev eth1 up
        - ip -4 route del default
        - ip -4 route add 0.0.0.0/0 via 192.168.41.13

    clientb-3:
      kind: linux
      image: alpine:latest
      exec:
        - ip -4 addr add 192.168.43.2/24 dev eth1
        - ip link set dev eth1 up
        - ip -4 route del default
        - ip -4 route add 0.0.0.0/0 via 192.168.43.1

    clientb-4:
      kind: linux
      image: alpine:latest
      exec:
        - ip -4 addr add 192.168.44.2/24 dev eth1
        - ip link set dev eth1 up
        - ip -4 route del default
        - ip -4 route add 0.0.0.0/0 via 192.168.44.1

    clientb-6:
      kind: linux
      image: alpine:latest
      exec:
        - ip -4 addr add 192.168.46.2/24 dev eth1
        - ip link set dev eth1 up
        - ip -4 route del default
        - ip -4 route add 0.0.0.0/0 via 192.168.46.1

  links:
    - endpoints: ["p1:eth1", "p2:eth1"]
    - endpoints: ["p1:eth2", "p4:eth2"]
    - endpoints: ["p2:eth2", "p3:eth2"]
    - endpoints: ["p2:eth3", "p5:eth3"]
    - endpoints: ["p3:eth1", "p6:eth1"]
    - endpoints: ["p6:eth2", "p5:eth2"]
    - endpoints: ["p5:eth1", "p4:eth1"]

    - endpoints: ["p1:eth3", "pe1:eth1"]
    - endpoints: ["p4:eth3", "pe4:eth1"]
    - endpoints: ["p3:eth3", "pe3:eth1"]
    - endpoints: ["p6:eth3", "pe6:eth1"]

    - endpoints: ["p2:eth4", "rr1:eth1"]
    - endpoints: ["p5:eth4", "rr2:eth1"]

    - endpoints: ["pe1:eth2", "clienta-1:eth1"]
    - endpoints: ["pe1:eth3", "clientb-1:eth1"]

    - endpoints: ["pe3:eth2", "clienta-3:eth1"]
    - endpoints: ["pe3:eth3", "clientb-3:eth1"]

    - endpoints: ["pe4:eth2", "clienta-4:eth1"]
    - endpoints: ["pe4:eth3", "clientb-4:eth1"]

    - endpoints: ["pe6:eth2", "clienta-6:eth1"]
    - endpoints: ["pe6:eth3", "clientb-6:eth1"]

Configurations

p1/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname p1
!
ip router-id 172.16.0.1
!
interface eth1
 description "to p2 - eth1"
 ipv6 address 2001:db8:12::1/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to p4 - eth2"
 ipv6 address 2001:db8:14::1/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth3
 description "to pe1 - eth3"
 ipv6 address 2001:db8:1a::1/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface lo
 ipv6 address 2001:db8:1::1/128
 ipv6 router isis SR
 isis passive
exit
!
router isis SR
 net 49.0000.0000.0000.0001.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  static-sids
   sid 2001:db8:1::1/128 locator locator0 behavior uN
  exit
  !
 exit
 !
 srv6
  locators
   locator locator0
    prefix 2001:db8:1::/48
   exit
   !
  exit
  !
 exit
 !
exit
!
p2/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname p2
!
ip router-id 172.16.0.2
!
interface eth1
 description "to p1 - eth1"
 ipv6 address 2001:db8:12::2/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to p3 - eth2"
 ipv6 address 2001:db8:23::2/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth3
 description "to p5 - eth3"
 ipv6 address 2001:db8:25::2/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth4
 description "to rr1 - eth1"
 ipv6 address 2001:db8:2101::1/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface lo
 ipv6 address 2001:db8:2::1/128
 ipv6 router isis SR
 isis passive
exit
!
router isis SR
 net 49.0000.0000.0000.0002.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  static-sids
   sid 2001:db8:2::1/128 locator locator0 behavior uN
  exit
  !
 exit
 !
 srv6
  locators
   locator locator0
    prefix 2001:db8:2::/48
   exit
   !
  exit
  !
 exit
 !
exit
!
p3/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname p3
!
ip router-id 172.16.0.3
!
interface eth1
 description "to p6 - eth1"
 ipv6 address 2001:db8:36::3/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to p2 - eth2"
 ipv6 address 2001:db8:23::3/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth3
 description "to pe3 - eth1"
 ipv6 address 2001:db8:3a::1/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface lo
 ipv6 address 2001:db8:3::1/128
 ipv6 router isis SR
 isis passive
exit
!
router isis SR
 net 49.0000.0000.0000.0003.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  static-sids
   sid 2001:db8:3::1/128 locator locator0 behavior uN
  exit
  !
 exit
 !
 srv6
  locators
   locator locator0
    prefix 2001:db8:3::/48
   exit
   !
  exit
  !
 exit
 !
exit
!
p4/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname p4
!
ip router-id 172.16.0.4
!
interface eth1
 description "to p5 - eth1"
 ipv6 address 2001:db8:45::4/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to p1 - eth2"
 ipv6 address 2001:db8:12::4/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth3
 description "to pe4 - eth1"
 ipv6 address 2001:db8:4a::1/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface lo
 ipv6 address 2001:db8:4::1/128
 ipv6 router isis SR
 isis passive
exit
!
router isis SR
 net 49.0000.0000.0000.0004.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  static-sids
   sid 2001:db8:4::1/128 locator locator0 behavior uN
  exit
  !
 exit
 !
 srv6
  locators
   locator locator0
    prefix 2001:db8:4::/48
   exit
   !
  exit
  !
 exit
 !
exit
!
p5/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname p5
!
ip router-id 172.16.0.5
!
interface eth1
 description "to p4 - eth1"
 ipv6 address 2001:db8:45::5/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to p6 - eth2"
 ipv6 address 2001:db8:56::5/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth3
 description "to p2 - eth3"
 ipv6 address 2001:db8:25::5/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth4
 description "to rr2 - eth1"
 ipv6 address 2001:db8:5102::1/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface lo
 ipv6 address 2001:db8:5::1/128
 ipv6 router isis SR
 isis passive
exit
!
router isis SR
 net 49.0000.0000.0000.0005.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  static-sids
   sid 2001:db8:5::1/128 locator locator0 behavior uN
  exit
  !
 exit
 !
 srv6
  locators
   locator locator0
    prefix 2001:db8:5::/48
   exit
   !
  exit
  !
 exit
 !
exit
!
p6/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname p6
!
ip router-id 172.16.0.6
!
interface eth1
 description "to p3 - eth1"
 ipv6 address 2001:db8:36::6/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to p5 - eth2"
 ipv6 address 2001:db8:56::6/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth3
 description "to pe6 - eth1"
 ipv6 address 2001:db8:6a::1/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface lo
 ipv6 address 2001:db8:6::1/128
 ipv6 router isis SR
 isis passive
exit
!
router isis SR
 net 49.0000.0000.0000.0006.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  static-sids
   sid 2001:db8:6::1/128 locator locator0 behavior uN
  exit
  !
 exit
 !
 srv6
  locators
   locator locator0
    prefix 2001:db8:6::/48
   exit
   !
  exit
  !
 exit
 !
exit
!
rr1/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname rr1
!
ip router-id 172.16.0.101
!
interface eth1
 description "to p2 - eth4"
 ipv6 address 2001:db8:2101::2/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface lo
 ipv6 address 2001:db8:101::1/128
 ipv6 router isis SR
 isis passive
exit
!
router bgp 65577
 neighbor PE peer-group
 neighbor PE remote-as 65577
 neighbor PE password cisco123
 neighbor PE update-source 2001:db8:101::1
 neighbor PE capability extended-nexthop
 neighbor 2001:db8:b::1 peer-group PE
 neighbor 2001:db8:b::1 description "PE1"
 neighbor 2001:db8:d::1 peer-group PE
 neighbor 2001:db8:d::1 description "PE3"
 neighbor 2001:db8:e::1 peer-group PE
 neighbor 2001:db8:e::1 description "PE4"
 neighbor 2001:db8:10::1 peer-group PE
 neighbor 2001:db8:10::1 description "PE6"
 !
 segment-routing srv6
  locator locator0
 exit
 !
 address-family ipv4 vpn
  neighbor PE activate
  neighbor PE route-reflector-client
  neighbor PE next-hop-self
  neighbor PE soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 unicast
  neighbor PE activate
  neighbor PE route-reflector-client
  neighbor PE next-hop-self
  neighbor PE soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 vpn
  neighbor PE activate
  neighbor PE route-reflector-client
  neighbor PE next-hop-self
  neighbor PE soft-reconfiguration inbound
 exit-address-family
exit
!
router isis SR
 net 49.0000.0000.0000.0101.00
 segment-routing srv6
  locator locator0
 exit
exit
!
rr2/frr.conf
!
frr version 10.5.1_git
frr defaults traditional
hostname rr2
!
ip router-id 172.16.0.102
!
interface eth1
 description "to p5 - eth4"
 ipv6 address 2001:db8:5102::2/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface lo
 ipv6 address 2001:db8:102::1/128
 ipv6 router isis SR
 isis passive
exit
!
router bgp 65577
 neighbor PE peer-group
 neighbor PE remote-as 65577
 neighbor PE password cisco123
 neighbor PE update-source 2001:db8:102::1
 neighbor PE capability extended-nexthop
 neighbor 2001:db8:b::1 peer-group PE
 neighbor 2001:db8:b::1 description "PE1"
 neighbor 2001:db8:d::1 peer-group PE
 neighbor 2001:db8:d::1 description "PE3"
 neighbor 2001:db8:e::1 peer-group PE
 neighbor 2001:db8:e::1 description "PE4"
 neighbor 2001:db8:10::1 peer-group PE
 neighbor 2001:db8:10::1 description "PE6"
 !
 segment-routing srv6
  locator locator0
 exit
 !
 address-family ipv4 vpn
  neighbor PE activate
  neighbor PE next-hop-self
  neighbor PE soft-reconfiguration inbound
  neighbor PE route-reflector-client
 exit-address-family
 !
 address-family ipv6 unicast
  neighbor PE activate
  neighbor PE next-hop-self
  neighbor PE soft-reconfiguration inbound
  neighbor PE route-reflector-client
 exit-address-family
 !
 address-family ipv6 vpn
  neighbor PE activate
  neighbor PE next-hop-self
  neighbor PE soft-reconfiguration inbound
  neighbor PE route-reflector-client
 exit-address-family
exit
!
router isis SR
 net 49.0000.0000.0000.0102.00
 segment-routing srv6
  locator locator0
 exit
exit
!
end
pe1/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname pe1
!
ipv6 route 2001:db8:e:2::/128 2001:db8:1a::1 segments 2001:db8:1::1/2001:db8:2::1/2001:db8:5::1/2001:db8:4::1
ip router-id 172.16.0.11
!
vrf clienta
exit-vrf
!
vrf clientb
exit-vrf
!
interface eth1
 description "to p1 - eth3"
 ipv6 address 2001:db8:1a::2/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to clienta-1 - eth1"
 ip address 192.168.31.1/24
exit
!
interface eth3
 description "to clientb-1 - eth1"
 ip address 192.168.41.1/24
exit
!
interface lo
 ipv6 address 2001:db8:b::1/128
 ipv6 router isis SR
 isis passive
exit
!
router bgp 65577
 neighbor RR peer-group
 neighbor RR remote-as 65577
 neighbor RR password cisco123
 neighbor RR update-source 2001:db8:b::1
 neighbor 2001:db8:101::1 peer-group RR
 neighbor 2001:db8:101::1 description "RR1"
 neighbor 2001:db8:102::1 peer-group RR
 neighbor 2001:db8:102::1 description "RR2"
 !
 segment-routing srv6
  locator locator0
 exit
 !
 address-family ipv4 vpn
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 unicast
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 vpn
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
exit
!
router bgp 101 vrf clienta
 bgp router-id 172.16.0.11
 no bgp ebgp-requires-policy
 no bgp default ipv4-unicast
 no bgp network import-check
 sid vpn per-vrf export auto
 !
 address-family ipv4 unicast
  redistribute connected
  rd vpn export 172.16.0.11:65500
  rt vpn both 65000:101
  export vpn
  import vpn
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute connected
  rd vpn export 172.16.0.11:65500
  rt vpn both 65000:101
  export vpn
  import vpn
 exit-address-family
exit
!
router bgp 102 vrf clientb
 bgp router-id 172.16.0.11
 no bgp ebgp-requires-policy
 no bgp default ipv4-unicast
 no bgp network import-check
 sid vpn per-vrf export auto
 !
 address-family ipv4 unicast
  redistribute connected
  rd vpn export 172.16.0.11:65501
  rt vpn both 65000:102
  export vpn
  import vpn
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute connected
  rd vpn export 172.16.0.11:65501
  rt vpn both 65000:102
  export vpn
  import vpn
 exit-address-family
exit
!
router isis SR
 net 49.0000.0000.0000.0011.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  locators
   locator locator0
    prefix 2001:db8:b::/48
   exit
   !
  exit
  !
 exit
 !
exit
!
pe3/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname pe3
!
ip router-id 172.16.0.13
!
vrf clienta
exit-vrf
!
vrf clientb
exit-vrf
!
interface eth1
 description "to p3 - eth3"
 ipv6 address 2001:db8:3a::2/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to clienta-3 - eth1"
 ip address 192.168.33.1/24
exit
!
interface eth3
 description "to clientb-3 - eth1"
 ip address 192.168.43.1/24
exit
!
interface lo
 ipv6 address 2001:db8:d::1/128
 ipv6 router isis SR
 isis passive
exit
!
router bgp 65577
 neighbor RR peer-group
 neighbor RR remote-as 65577
 neighbor RR password cisco123
 neighbor RR update-source 2001:db8:d::1
 neighbor RR capability extended-nexthop
 neighbor 2001:db8:101::1 peer-group RR
 neighbor 2001:db8:101::1 description "RR1"
 neighbor 2001:db8:102::1 peer-group RR
 neighbor 2001:db8:102::1 description "RR2"
 !
 segment-routing srv6
  locator locator0
 exit
 !
 address-family ipv4 vpn
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 unicast
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 vpn
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
exit
!
router bgp 101 vrf clienta
 bgp router-id 172.16.0.13
 no bgp ebgp-requires-policy
 no bgp default ipv4-unicast
 no bgp network import-check
 sid vpn per-vrf export auto
 !
 address-family ipv4 unicast
  redistribute connected
  rd vpn export 172.16.0.13:65500
  rt vpn both 65000:101
  export vpn
  import vpn
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute connected
  rd vpn export 172.16.0.13:65500
  rt vpn both 65000:101
  export vpn
  import vpn
 exit-address-family
exit
!
router bgp 102 vrf clientb
 bgp router-id 172.16.0.13
 no bgp ebgp-requires-policy
 no bgp default ipv4-unicast
 no bgp network import-check
 sid vpn per-vrf export auto
 !
 address-family ipv4 unicast
  redistribute connected
  rd vpn export 172.16.0.13:65501
  rt vpn both 65000:102
  export vpn
  import vpn
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute connected
  rd vpn export 172.16.0.13:65501
  rt vpn both 65000:102
  export vpn
  import vpn
 exit-address-family
exit
!
router isis SR
 net 49.0000.0000.0000.0013.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  locators
   locator locator0
    prefix 2001:db8:d::/48
   exit
   !
  exit
  !
 exit
 !
exit
!
pe4/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname pe4
!
ipv6 route 2001:db8:b:2::/128 2001:db8:4a::1 segments 2001:db8:4::1/2001:db8:5::1/2001:db8:2::1/2001:db8:1::1
ip router-id 172.16.0.14
!
vrf clienta
exit-vrf
!
vrf clientb
exit-vrf
!
interface eth1
 description "to p4 - eth3"
 ipv6 address 2001:db8:4a::2/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to clienta-4 - eth1"
 ip address 192.168.34.1/24
exit
!
interface eth3
 description "to clientb-4 - eth1"
 ip address 192.168.44.1/24
exit
!
interface lo
 ipv6 address 2001:db8:e::1/128
 ipv6 router isis SR
 isis passive
exit
!
router bgp 65577
 neighbor RR peer-group
 neighbor RR remote-as 65577
 neighbor RR password cisco123
 neighbor RR update-source 2001:db8:e::1
 neighbor RR capability extended-nexthop
 neighbor 2001:db8:101::1 peer-group RR
 neighbor 2001:db8:101::1 description "RR1"
 neighbor 2001:db8:102::1 peer-group RR
 neighbor 2001:db8:102::1 description "RR2"
 !
 segment-routing srv6
  locator locator0
 exit
 !
 address-family ipv4 vpn
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 unicast
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 vpn
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
exit
!
router bgp 101 vrf clienta
 bgp router-id 172.16.0.14
 no bgp ebgp-requires-policy
 no bgp default ipv4-unicast
 no bgp network import-check
 sid vpn per-vrf export auto
 !
 address-family ipv4 unicast
  redistribute connected
  rd vpn export 172.16.0.14:65500
  rt vpn both 65000:101
  export vpn
  import vpn
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute connected
  rd vpn export 172.16.0.14:65500
  rt vpn both 65000:101
  export vpn
  import vpn
 exit-address-family
exit
!
router bgp 102 vrf clientb
 bgp router-id 172.16.0.14
 no bgp ebgp-requires-policy
 no bgp default ipv4-unicast
 no bgp network import-check
 sid vpn per-vrf export auto
 !
 address-family ipv4 unicast
  redistribute connected
  rd vpn export 172.16.0.14:65501
  rt vpn both 65000:102
  export vpn
  import vpn
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute connected
  rd vpn export 172.16.0.14:65501
  rt vpn both 65000:102
  export vpn
  import vpn
 exit-address-family
exit
!
router isis SR
 net 49.0000.0000.0000.0014.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  locators
   locator locator0
    prefix 2001:db8:e::/48
   exit
   !
  exit
  !
 exit
 !
exit
!
pe6/frr.conf
frr version 10.5.1_git
frr defaults traditional
hostname pe6
!
ip router-id 172.16.0.16
!
vrf clienta
exit-vrf
!
vrf clientb
exit-vrf
!
interface eth1
 description "to p6 - eth3"
 ipv6 address 2001:db8:6a::2/64
 ipv6 router isis SR
 isis network point-to-point
exit
!
interface eth2
 description "to clienta-6 - eth1"
 ip address 192.168.36.1/24
exit
!
interface eth3
 description "to clientb-6 - eth1"
 ip address 192.168.46.1/24
exit
!
interface lo
 ipv6 address 2001:db8:10::1/128
 ipv6 router isis SR
 isis passive
exit
!
router bgp 65577
 neighbor RR peer-group
 neighbor RR remote-as 65577
 neighbor RR password cisco123
 neighbor RR update-source 2001:db8:10::1
 neighbor RR capability extended-nexthop
 neighbor 2001:db8:101::1 peer-group RR
 neighbor 2001:db8:101::1 description "RR1"
 neighbor 2001:db8:102::1 peer-group RR
 neighbor 2001:db8:102::1 description "RR2"
 !
 segment-routing srv6
  locator locator0
 exit
 !
 address-family ipv4 vpn
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 unicast
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
 !
 address-family ipv6 vpn
  neighbor RR activate
  neighbor RR next-hop-self
  neighbor RR soft-reconfiguration inbound
 exit-address-family
exit
!
router bgp 101 vrf clienta
 bgp router-id 172.16.0.16
 no bgp ebgp-requires-policy
 no bgp default ipv4-unicast
 no bgp network import-check
 sid vpn per-vrf export auto
 !
 address-family ipv4 unicast
  redistribute connected
  rd vpn export 172.16.0.16:65500
  rt vpn both 65000:101
  export vpn
  import vpn
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute connected
  rd vpn export 172.16.0.16:65500
  rt vpn both 65000:101
  export vpn
  import vpn
 exit-address-family
exit
!
router bgp 102 vrf clientb
 bgp router-id 172.16.0.16
 no bgp ebgp-requires-policy
 no bgp default ipv4-unicast
 no bgp network import-check
 sid vpn per-vrf export auto
 !
 address-family ipv4 unicast
  redistribute connected
  rd vpn export 172.16.0.16:65501
  rt vpn both 65000:102
  export vpn
  import vpn
 exit-address-family
 !
 address-family ipv6 unicast
  redistribute connected
  rd vpn export 172.16.0.16:65501
  rt vpn both 65000:102
  export vpn
  import vpn
 exit-address-family
exit
!
router isis SR
 net 49.0000.0000.0000.0016.00
 segment-routing srv6
  locator locator0
 exit
exit
!
segment-routing
 srv6
  locators
   locator locator0
    prefix 2001:db8:10::/48
   exit
   !
  exit
  !
 exit
 !
exit
!