log syslog all; #debug protocols {states}; # Include additional bird config files for runtime extendability # This is currently empty and not used. include "/dev/shm/bird_*.conf"; #master4 is implicitly created ipv6 sadr table v6_main; ipv4 table v4_babel_ff; ipv4 table v4_babel_default; protocol device { }; protocol direct { ipv6 sadr { table v6_main; }; ipv4; } protocol babel { randomize router id yes; ipv6 sadr { table v6_main; # Import only /56 location aggregates and default routes import filter { if ! (net.len = 56 || net = ::/0 from 2001:bf7::/32) then reject; if ifname = "eth0.20" then { babel_metric = babel_metric + 512; } if ifname = "ts_wg0" then { babel_metric = babel_metric + 3072; } accept; }; export filter { if net = 2001:bf7:750:5500::/56 from ::/0 then accept; if source = RTS_BABEL then accept; reject; }; }; ipv4 { import filter { if ifname = "eth0.20" then { babel_metric = babel_metric + 512; } if ifname = "ts_wg0" then { babel_metric = babel_metric + 3072; } accept; }; export where source = RTS_BABEL || net ~ [ 10.0.0.0/8{21,32} ]; # Readvertise learned routes and advertise local networks from 10/8 }; # Mesh interfaces interface "eth0.20" { type wireless; }; # Tunnel interfaces provided by tunspace interface "ts_wg0" { type wireless; }; } protocol kernel { ipv6 sadr { table v6_main; import all; export all; }; learn all; # Allow learning loopback route } # Currently not in use but keep for later purposes protocol kernel { ipv4 { import none; export none; }; } # TODO: Get rid of the following when OLSRD is gone protocol kernel { kernel table 10; ipv4 { table v4_babel_ff; import none; export all; }; } protocol pipe { table master4; peer table v4_babel_ff; export where net != 0.0.0.0/0; } protocol kernel { kernel table 11; ipv4 { table v4_babel_default; import none; export all; }; } protocol pipe { table master4; peer table v4_babel_default; export where net = 0.0.0.0/0; }