forked from freifunk-franken/firmware
Fabian Bläse
803e2746df
Bird 2 has a few advantages over babeld. Especially the possiblity to dynamically reload the configuration without restarting the daemon and birds significant performance advantage make it an interesting alternative to babeld for our firmware. This adds the necessary implementation-specific fff-babel-bird2 package, which allows to integrate bird2 into the fff firmware. Signed-off-by: Fabian Bläse <fabian@blaese.de> Acked-by: Christian Dresel <freifunk@dresel.systems>
124 lines
1.9 KiB
Plaintext
124 lines
1.9 KiB
Plaintext
# router id is not required for babeld, but necessary for bird startup
|
|
router id 192.0.2.0;
|
|
|
|
ipv4 table fff4;
|
|
ipv6 sadr table fff6;
|
|
|
|
protocol device {
|
|
scan time 15;
|
|
}
|
|
|
|
# device routes for ipv4 peering address
|
|
protocol direct {
|
|
ipv4 {
|
|
table fff4;
|
|
import filter {
|
|
include "/tmp/bird/include/nat-filter.conf";
|
|
|
|
if (net ~ 10.50.0.0/16 || net ~ 10.83.0.0/16) && net.len = 32 then {
|
|
accept;
|
|
}
|
|
reject;
|
|
};
|
|
};
|
|
}
|
|
|
|
# device routes on loopback interface
|
|
protocol direct {
|
|
ipv4 {
|
|
table fff4;
|
|
import filter {
|
|
include "/tmp/bird/include/nat-filter.conf";
|
|
|
|
if net ~ 10.50.0.0/16 || net ~ 10.83.0.0/16 then {
|
|
accept;
|
|
}
|
|
reject;
|
|
};
|
|
};
|
|
|
|
ipv6 sadr {
|
|
table fff6;
|
|
import filter {
|
|
if net ~ fdff::/64 from ::/0 then {
|
|
reject;
|
|
}
|
|
|
|
# only import GUA + ULA addresses
|
|
if net !~ 2000::/3 from ::/0 || net !~ fc00::/7 from ::/0 then {
|
|
reject;
|
|
}
|
|
|
|
accept;
|
|
};
|
|
import keep filtered;
|
|
};
|
|
|
|
interface "lo";
|
|
}
|
|
|
|
# ipv6 kernel route interface
|
|
protocol kernel {
|
|
ipv6 sadr {
|
|
table fff6;
|
|
import filter {
|
|
# only import routes from kernel with proto static
|
|
if krt_source != 4 then {
|
|
reject;
|
|
}
|
|
|
|
if net ~ fdff::/64 from ::/0 then {
|
|
reject;
|
|
}
|
|
|
|
accept;
|
|
};
|
|
export all;
|
|
preference 200;
|
|
};
|
|
kernel table 10;
|
|
scan time 15;
|
|
learn yes;
|
|
}
|
|
|
|
# ipv4 kernel route interface
|
|
protocol kernel {
|
|
ipv4 {
|
|
table fff4;
|
|
import filter {
|
|
include "/tmp/bird/include/nat-filter.conf";
|
|
|
|
# only import routes from kernel with proto static
|
|
if krt_source = 4 then {
|
|
accept;
|
|
}
|
|
reject;
|
|
};
|
|
export all;
|
|
preference 200;
|
|
};
|
|
kernel table 10;
|
|
scan time 15;
|
|
learn yes;
|
|
}
|
|
|
|
protocol babel {
|
|
# required due to static configuration of global router id.
|
|
# also improves reconnect speed after restart.
|
|
randomize router id yes;
|
|
|
|
ipv4 {
|
|
table fff4;
|
|
import all;
|
|
export all;
|
|
};
|
|
|
|
ipv6 sadr {
|
|
table fff6;
|
|
import all;
|
|
export all;
|
|
};
|
|
|
|
include "/tmp/bird/include/babelpeers.conf";
|
|
};
|