Workshop/BGP-configs
Jump to navigation
Jump to search
Bird
basic configuration
Enable the direct protocol. This will make Bird to learn all of your directly attached routes.
protocol direct { export all; }
In the kernel protocol, uncomment the following line:
# learn; # Learn all alien routes from the kernel
filter configuration
filter in_filter { # do not accept routes for our directly connected network if ( net = 185.117.82.112/29 ) then reject; accept; } filter out_filter { # do not export anything that is not our directly connected network if ( net = 185.117.82.112/29 ) then accept; reject; }
bgp template
template bgp PEERS { debug { states, events }; local as myas; startup hold time 0; import keep filtered; # keep filtered routes in bird, so you can see it in: show route filtered import filter in_filter; export filter out_filter; gateway direct; }
neighbor configuration
protocol bgp bgp_up1 from lab { description "Upstream 1 (cassie) via eth0.111"; neighbor 10.125.11.1 as 65535; source address 10.125.11.2; } protocol bgp bgp_up2 from lab { description "Upstream 2 (beta) via eth0.211"; neighbor 10.126.11.1 as 59851; source address 10.126.11.2; }
Commands cheat sheet
show protocols - list all configured protocols show protocol bgp_up2 - get the status information for protocol bgp_up2 show route export bgp_up2 - list all exported networks to peer bgp_up2 show route for 185.117.82.104 - get the routes for 185.117.82.104 show route filtered - list all prefixes that are filtered show route protocol bgp_up2 - list all prefixes that you receive from peer bgp_up2
Quagga
basic configuration
router bgp 65011
bgp router-id 185.117.82.113 bgp log-neighbor-changes bgp graceful-restart network 185.117.82.112/29
neighbors
prefix lists
Client container
sysctl net.ipv4.ip_forward=1 ip netns add bgp ip link add veth0 type veth peer name veth1 ip link set veth1 netns bgp ip netns exec bgp /bin/bash