Last active
June 27, 2022 16:39
-
-
Save Shikugawa/441741f3c43559560fdfaeb336e94cd5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nodes: | |
- name: C1 | |
image: alpine:latest | |
interfaces: | |
- { name: net1, type: direct, args: R1#net1 } | |
- name: C2 | |
image: alpine:latest | |
interfaces: | |
- { name: net2, type: direct, args: R1#net2 } | |
- name: C3 | |
image: alpine:latest | |
interfaces: | |
- { name: net3, type: direct, args: R2#net3 } | |
- name: C4 | |
image: alpine:latest | |
interfaces: | |
- { name: net4, type: direct, args: R2#net4 } | |
- name: R1 | |
image: frrouting/frr:v8.1.0 | |
docker_run_extra_args: --entrypoint bash | |
interfaces: | |
- { name: net1, type: direct, args: C1#net1 } | |
- { name: net2, type: direct, args: C2#net2 } | |
- { name: net0, type: direct, args: R2#net0 } | |
sysctls: | |
- sysctl: net.ipv6.conf.all.disable_ipv6=0 | |
- sysctl: net.ipv6.conf.default.disable_ipv6=0 | |
- sysctl: net.ipv4.ip_forward=1 | |
- name: R2 | |
image: frrouting/frr:v8.1.0 | |
docker_run_extra_args: --entrypoint bash | |
interfaces: | |
- { name: net3, type: direct, args: C3#net3 } | |
- { name: net4, type: direct, args: C4#net4 } | |
- { name: net0, type: direct, args: R1#net0 } | |
sysctls: | |
- sysctl: net.ipv6.conf.all.disable_ipv6=0 | |
- sysctl: net.ipv6.conf.default.disable_ipv6=0 | |
- sysctl: net.ipv4.ip_forward=1 | |
node_configs: | |
- name: C1 | |
cmds: | |
- cmd: ip addr add 10.0.1.1/24 dev net1 | |
- cmd: ip route add default via 10.0.1.2 | |
- name: C2 | |
cmds: | |
- cmd: ip addr add 10.0.2.1/24 dev net2 | |
- cmd: ip route add default via 10.0.2.2 | |
- name: C3 | |
cmds: | |
- cmd: ip addr add 10.0.3.1/24 dev net3 | |
- cmd: ip route add default via 10.0.3.2 | |
- name: C4 | |
cmds: | |
- cmd: ip addr add 10.0.4.1/24 dev net4 | |
- cmd: ip route add default via 10.0.4.2 | |
- name: R1 | |
cmds: | |
- cmd: ip addr add 10.0.0.1/24 dev net0 | |
- cmd: ip addr add 10.0.1.2/24 dev net1 | |
- cmd: ip addr add 10.0.2.1/24 dev net2 | |
- cmd: ip link add dev vrf10 type vrf table 10 | |
- cmd: ip link set vrf10 up | |
- cmd: ip link add dev vrf20 type vrf table 20 | |
- cmd: ip link set vrf20 up | |
- cmd: ip link set dev net1 master vrf10 up | |
- cmd: ip link set dev net2 master vrf20 up | |
- cmd: ip link add link net0 name net0.100 type vlan id 100 | |
- cmd: ip link set dev net0.100 up | |
- cmd: ip link add link net0 name net0.200 type vlan id 200 | |
- cmd: ip link set dev net0.200 up | |
- cmd: ip link set dev net0.100 master vrf10 up | |
- cmd: ip link set dev net0.200 master vrf20 up | |
- cmd: sed -i -e 's/bgpd=no/bgpd=yes/g' /etc/frr/daemons | |
- cmd: /usr/lib/frr/frrinit.sh start | |
- cmd: >- | |
vtysh -c 'conf t' | |
-c 'interface net0.100 vrf vrf10' | |
-c ' ip address 10.0.0.1/24' | |
-c '!' | |
-c 'interface net0.200 vrf vrf20' | |
-c ' ip address 10.0.0.1/24' | |
-c '!' | |
-c 'interface net1 vrf vrf10' | |
-c ' ip address 10.0.1.2/24' | |
-c '!' | |
-c 'interface net2 vrf vrf20' | |
-c ' ip address 10.0.2.2/24' | |
-c '!' | |
-c 'ip prefix-list OUT_PL1 permit 10.0.1.0/24' | |
-c 'ip prefix-list OUT_PL2 permit 10.0.2.0/24' | |
-c 'ip prefix-list IN_PL1 deny 10.0.3.0/24' | |
-c 'ip prefix-list IN_PL2 permit 10.0.4.0/24' | |
-c '!' | |
-c 'route-map OUT_RM1 permit 10' | |
-c ' match ip address prefix-list OUT_PL1' | |
-c '!' | |
-c 'route-map OUT_RM2 permit 10' | |
-c ' match ip address prefix-list OUT_PL2' | |
-c '!' | |
-c 'route-map IN_RM1 permit 10' | |
-c ' match ip address prefix-list IN_PL1' | |
-c '!' | |
-c 'route-map IN_RM2 permit 10' | |
-c ' match ip address prefix-list IN_PL2' | |
-c '!' | |
-c 'router bgp 65001 vrf vrf10' | |
-c ' no bgp ebgp-requires-policy' | |
-c ' bgp router-id 10.0.0.1' | |
-c ' neighbor 10.0.0.2 remote-as 65002' | |
-c ' neighbor 10.0.0.2 route-map OUT_RM1 out' | |
-c ' neighbor 10.0.0.2 route-map IN_RM1 in' | |
-c ' address-family ipv4 unicast' | |
-c ' redistribute connected' | |
-c ' exit-address-family' | |
-c '!' | |
-c 'router bgp 65001 vrf vrf20' | |
-c ' no bgp ebgp-requires-policy' | |
-c ' bgp router-id 10.0.0.1' | |
-c ' neighbor 10.0.0.2 remote-as 65002' | |
-c ' neighbor 10.0.0.2 route-map OUT_RM2 out' | |
-c ' neighbor 10.0.0.2 route-map IN_RM1 in' | |
-c ' address-family ipv4 unicast' | |
-c ' redistribute connected' | |
-c ' exit-address-family' | |
-c '!' | |
- cmd: vtysh -c 'write mem' | |
- name: R2 | |
cmds: | |
- cmd: ip addr add 10.0.0.2/24 dev net0 | |
- cmd: ip addr add 10.0.3.2/24 dev net3 | |
- cmd: ip addr add 10.0.4.1/24 dev net4 | |
- cmd: ip link add dev vrf10 type vrf table 10 | |
- cmd: ip link set vrf10 up | |
- cmd: ip link add dev vrf20 type vrf table 20 | |
- cmd: ip link set vrf20 up | |
- cmd: ip link set dev net3 master vrf10 up | |
- cmd: ip link set dev net4 master vrf20 up | |
- cmd: ip link add link net0 name net0.100 type vlan id 100 | |
- cmd: ip link set dev net0.100 up | |
- cmd: ip link add link net0 name net0.200 type vlan id 200 | |
- cmd: ip link set dev net0.200 up | |
- cmd: ip link set dev net0.100 master vrf10 up | |
- cmd: ip link set dev net0.200 master vrf20 up | |
- cmd: sed -i -e 's/bgpd=no/bgpd=yes/g' /etc/frr/daemons | |
- cmd: /usr/lib/frr/frrinit.sh start | |
- cmd: >- | |
vtysh -c 'conf t' | |
-c 'interface net0.100 vrf vrf10' | |
-c ' ip address 10.0.0.2/24' | |
-c '!' | |
-c 'interface net0.200 vrf vrf20' | |
-c ' ip address 10.20.255.2/24' | |
-c '!' | |
-c 'interface net3 vrf vrf10' | |
-c ' ip address 10.0.3.2/24' | |
-c '!' | |
-c 'interface net4 vrf vrf20' | |
-c ' ip address 10.0.4.2/24' | |
-c '!' | |
-c 'ip prefix-list PL1 permit any' | |
-c '!' | |
-c 'route-map RM1 permit 10' | |
-c ' match ip address prefix-list PL1' | |
-c '!' | |
-c 'router bgp 65002 vrf vrf10' | |
-c ' no bgp ebgp-requires-policy' | |
-c ' bgp router-id 10.0.0.2' | |
-c ' neighbor 10.0.0.1 remote-as 65001' | |
-c ' neighbor 10.0.0.1 route-map RM1 out' | |
-c ' address-family ipv4 unicast' | |
-c ' redistribute connected' | |
-c ' exit-address-family' | |
-c '!' | |
-c 'router bgp 65002 vrf vrf20' | |
-c ' no bgp ebgp-requires-policy' | |
-c ' bgp router-id 10.0.0.2' | |
-c ' neighbor 10.0.0.1 remote-as 65001' | |
-c ' neighbor 10.0.0.1 route-map RM1 out' | |
-c ' address-family ipv4 unicast' | |
-c ' redistribute connected' | |
-c ' exit-address-family' | |
-c '!' | |
- cmd: vtysh -c 'write mem' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment