router id 10.0.0.20; log "/var/log/bird/bird6.log" all; debug protocols { states, routes, filters, interfaces } protocol kernel { import none; export all; } protocol device { # defaults... } protocol ospf { area 0 { # BIRD ignores the IPv6 lo because it has no link local address stubnet 2001:db8:20::20/128; interface "ebgp_r1" { stub; }; interface "ebgp_r11" { stub; }; }; } protocol static { import all; route 2001:db8:20::/48 blackhole; } ############################################################################## # BGP table # # Use this routing table to gather external routes received via BGP which we # want push to the kernel via our master table and to other routers in our AS # via iBGP or even to other routers outside our AS again (transit), which can # be connected here or to a router elsewhere on the border of our AS. table t_bgp; protocol pipe p_master_to_bgp { table master; peer table t_bgp; import all; # default export none; # default } ############################################################################## # eBGP R1 # table t_r1; protocol static originate_to_r1 { table t_r1; import all; # originate here route 2001:db8:20::/48 blackhole; } protocol bgp ebgp_r1 { table t_r1; local 2001:db8:0:5::20 as 65020; neighbor 2001:db8:0:5::1 as 65000; import all; export all; } protocol pipe p_bgp_to_r1 { table t_bgp; peer table t_r1; import where proto = "ebgp_r1"; export none; } ############################################################################## # eBGP R11 # table t_r11; protocol static originate_to_r11 { table t_r11; import all; # originate here route 2001:db8:20::/48 blackhole; } protocol bgp ebgp_r11 { table t_r11; local 2001:db8:10:6::20 as 65020; neighbor 2001:db8:10:6::11 as 65010; import all; export all; } protocol pipe p_bgp_to_r11 { table t_bgp; peer table t_r11; import where proto = "ebgp_r11"; export none; }