Skip to content

Instantly share code, notes, and snippets.

@gdhaworth
Last active January 26, 2022 16:14
Show Gist options
  • Save gdhaworth/53c679e2cf5a5f9ba4ea0f82ecf92816 to your computer and use it in GitHub Desktop.
Save gdhaworth/53c679e2cf5a5f9ba4ea0f82ecf92816 to your computer and use it in GitHub Desktop.
My raspberry pi setup to peer with calico (BGP) using frrouting (in docker) and pass routes to the router (so that metallb can peer directly with the router). `*.conf` and `daemons` go in `/etc/frr`. I used host networking in docker, couldn't find a way to do it without.
router bgp 64512
bgp router-id 10.8.0.10
no bgp ebgp-requires-policy
neighbor 10.8.0.1 remote-as 64567
neighbor 10.8.0.2 remote-as 64512
neighbor 10.8.0.3 remote-as 64512
!
address-family ipv4 unicast
neighbor 10.8.0.2 route-reflector-client
neighbor 10.8.0.3 route-reflector-client
exit-address-family
!
bgpd=yes
ospfd=no
ospf6d=no
ripd=no
ripngd=no
isisd=no
pimd=no
ldpd=no
nhrpd=no
eigrpd=no
babeld=no
sharpd=no
pbrd=no
bfdd=no
fabricd=no
vrrpd=no
pathd=no
vtysh_enable=yes
zebra_options=" -A 127.0.0.1 -s 90000000"
bgpd_options=" -A 127.0.0.1 -n -p 179"
ospfd_options=" -A 127.0.0.1"
ospf6d_options=" -A ::1"
ripd_options=" -A 127.0.0.1"
ripngd_options=" -A ::1"
isisd_options=" -A 127.0.0.1"
pimd_options=" -A 127.0.0.1"
ldpd_options=" -A 127.0.0.1"
nhrpd_options=" -A 127.0.0.1"
eigrpd_options=" -A 127.0.0.1"
babeld_options=" -A 127.0.0.1"
sharpd_options=" -A 127.0.0.1"
pbrd_options=" -A 127.0.0.1"
staticd_options="-A 127.0.0.1"
bfdd_options=" -A 127.0.0.1"
fabricd_options="-A 127.0.0.1"
vrrpd_options=" -A 127.0.0.1"
pathd_options=" -A 127.0.0.1"
#!/bin/bash -ex
docker run --rm \
--name frr \
--network host \
--privileged \
-v /etc/frr:/etc/frr:ro \
-v /lib/modules:/lib/modules:ro \
frrouting/frr:v8.1.0
[Unit]
Description=frrouting in docker
After=docker.service
Requires=docker.service
[Service]
Type=exec
ExecStartPre=-docker kill frr
ExecStartPre=-docker rm frr
ExecStart=/bin/bash /usr/local/bin/frr-docker.sh
ExecStop=docker stop frr
ExecStop=-docker kill frr
Restart=on-failure
[Install]
WantedBy=multi-user.target
service integrated-vtysh-config
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment