router id 10.0.0.10; 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:10::10/128; interface "lan" { }; interface "ebgp_r1" { stub; }; }; } protocol static { import all; route 2001:db8:10::/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:10::/48 blackhole; } protocol bgp ebgp_r1 { table t_r1; local 2001:db8:10:4::10 as 65010; neighbor 2001:db8:10:4::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; } ############################################################################## # iBGP # protocol bgp ibgp_r12 { table t_bgp; igp table master; import none; export all; local 2001:db8:10::10 as 65010; neighbor 2001:db8:10::12 as 65010; } protocol bgp ibgp_r10 { table t_bgp; igp table master; import all; export all; local 2001:db8:10::10 as 65010; neighbor 2001:db8:10::11 as 65010; }