Hello,
We're using BIRD 1.6.4 as Route Server.
Recently we have implemented ROA prefix validation but we have hit the issue
with prefixes that are aggregated only.
What do I mean: When the prefix is aggregate and has something like 1234 { 10,
20 } in AS_PATH in last asn, bgp_path.last value returns zero ( 0 ). As result
of this we just discarding such prefixes.
Our approach is the following:
1) We're using static RoA tables with prefixes for example:
roa table r1234 {
roa 10.10.10.0/24 max 32 as 1234;
roa 10.10.11.0/24 max 32 as 1234;
roa 10.10.12.0/24 max 32 as 1234;
}
2) Then create a different function for each member like this and applying it
on each protocol BGP as latest function:
function AS1234_roa() {
if roa_check(r1234, net, bgp_path.last) = ROA_INVALID then {
print "ROA check failed: invalid prefix - ", net, " origin ASN ", bgp_path.last
, " - AS-PATH", bgp_path , " via ", proto; return false;
}
if roa_check(r1234, net, bgp_path.last) = ROA_UNKNOWN then {
print "ROA check failed: unallowed prefix - ", net, " origin ASN ",
bgp_path.last , " - AS-PATH", bgp_path , " via ", proto; return false;
}
return true;
}
Could someone BIRD developer to suggest some solution for this issue?
Thanks in advance!
Best~
--
---
Javor Kliachev
Senior Engineer IP Services
office: +359 2 974 33 11
mobile: +359 885 98 84 95
[ http://www.neterra.net/ | www.neterra.net ] [
https://bg.linkedin.com/pub/javor-kliachev/11/b46/843 | ]