router id IP.ADDRESS.BGP.ROUTER; log "/var/log/bird.log" all; debug protocols all; debug commands 2; protocol device { # This is neceseary for Bird to work at all. # BTW it's not in the documentation. scan time 60; } # I have a 1.1.64.0/19 netmask, divided in two subnets # so that I can route them separately. protocol static pool1{ route 1.1.64.0/20 via IP.ADDRESS.BGP.ROUTER; } protocol static pool2{ route 1.1.80.0/20 via IP.ADDRESS.BGP.ROUTER; } protocol bgp { local as MY_AS; source address IP.ADDRESS.BGP.ROUTER; multihop 20 via IP.ADDRESS.BGP.ROUTER; neighbor PEER1.IP.ADDRESS as PEER1_AS; import none; export filter { if net ~ [ 1.1.64.0/20+] then { bgp_path.prepend(MY_AS); bgp_path.prepend(MY_AS); bgp_path.prepend(MY_AS); accept; } if net ~ [ 1.1.80.0/20+] then { accept; } reject; }; } protocol bgp { local as MY_AS; source address IP.ADDRESS.BGP.ROUTER; multihop 20 via IP.ADDRESS.BGP.ROUTER; neighbor PEER2.IP.ADDRESS as PEER2_AS; import none; export filter { if net ~ [ 1.1.64.0/20+] then { accept; } if net ~ [ 1.1.80.0/20+] then { bgp_path.prepend(MY_AS); bgp_path.prepend(MY_AS); bgp_path.prepend(MY_AS); accept; } reject; }; }