Last active
June 25, 2022 14:59
-
-
Save Shikugawa/9e8e9e1d028d45b81e431420d46a0e4c to your computer and use it in GitHub Desktop.
This file contains hidden or 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: R0 | |
image: frrouting/frr:v8.1.0 | |
interfaces: | |
- { name: net0, type: direct, args: C0#net0 } | |
- { name: net1, type: direct, args: R1#net1 } | |
docker_run_extra_args: --entrypoint bash | |
- name: R1 | |
image: frrouting/frr:v8.1.0 | |
net_base: bridge | |
interfaces: | |
- { name: net0, type: direct, args: C1#net0 } | |
- { name: net1, type: direct, args: R0#net1 } | |
docker_run_extra_args: --entrypoint bash | |
- name: C0 | |
image: slankdev/ubuntu:16.04 | |
interfaces: | |
- { name: net0, type: direct, args: R0#net0 } | |
- name: C1 | |
image: slankdev/ubuntu:16.04 | |
interfaces: | |
- { name: net0, type: direct, args: R1#net0 } | |
node_configs: | |
- name: R0 | |
cmds: | |
# bgpdはデフォルトでoffなので、onにする | |
- cmd: sed -i -e 's/bgpd=no/bgpd=yes/g' /etc/frr/daemons | |
- cmd: /usr/lib/frr/frrinit.sh start | |
- cmd: ip addr add 10.3.0.1/24 dev net0 | |
- cmd: ip addr add 10.0.0.1/24 dev net1 | |
- cmd: >- | |
vtysh -c "conf t" | |
# AS番号を指定する。R0はAS100の所属 | |
-c "router bgp 100" | |
# これがないと動かない、frr:v8.1.0ではデフォルトでポリシーを設定する必要がある | |
-c ' no bgp ebgp-requires-policy' | |
# router idを指定する。なんでも良い | |
-c " bgp router-id 1.1.1.1" | |
# BGPネイバーを指定する。 | |
-c " neighbor 10.0.0.2 remote-as 200" | |
# このディレクティブで、広報したいプレフィックスを指定する | |
-c " address-family ipv4 unicast" | |
# 10.3.0.0/24をネイバーに広報する | |
-c " network 10.3.0.0/24" | |
-c "!" | |
- name: R1 | |
cmds: | |
- cmd: sed -i -e 's/bgpd=no/bgpd=yes/g' /etc/frr/daemons | |
- cmd: /usr/lib/frr/frrinit.sh start | |
- cmd: ip addr add 10.4.0.1/24 dev net0 | |
- cmd: ip addr add 10.0.0.2/24 dev net1 | |
- cmd: >- | |
vtysh -c "conf t" | |
-c "router bgp 200" | |
-c ' no bgp ebgp-requires-policy' | |
-c " bgp router-id 2.2.2.2" | |
-c " neighbor 10.0.0.1 remote-as 100" | |
-c " address-family ipv4 unicast" | |
-c " network 10.4.0.0/24" | |
# デフォルトルートをネイバーに広報する | |
-c " neighbor 10.0.0.1 default-originate" | |
-c "!" | |
# C0から送ったパケットはsrc: 10.3.0.1のままなので、SNATする必要がある | |
- cmd: iptables -t nat -A POSTROUTING -s 10.3.0.0/24 -o eth0 -j MASQUERADE | |
- name: C0 | |
cmds: | |
- cmd: ip addr add 10.3.0.2/24 dev net0 | |
- cmd: ip route del default | |
- cmd: ip route add default via 10.3.0.1 | |
- name: C1 | |
cmds: | |
- cmd: ip addr add 10.4.0.2/24 dev net0 | |
- cmd: ip route del default | |
- cmd: ip route add default via 10.4.0.1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment