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 |    ] 



Reply via email to