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"]