as-path flter problem

Marcelo Balbinot marcelo at gegnet.com.br
Fri Jan 3 16:24:41 CET 2020


Hi! Thanks for the sugestion...

It works with this malformed path restriction.

But I get the feeling of not being perfect! :)

Regex for AS-PATH filters would be ideal!

Or maybe a bgp_path.uniq method like bgp_path.last and bgp_path.first

bgp_path.uniq could remove all repeated ASes. Then the if would be 
simple.

[]'s

---
Marcelo Balbinot
IP/MPLS Backbone Manager at AS53062
G G NET Telecomunicações
www.gegnet.com.br
+55 49 3561 4300
+55 49 9 9923 9347
INOC 53062*100

Em 2020-01-02 17:10, Alexander Zubkov escreveu:
> Hi,
> 
> Maybe something like this will work:
> bgp_path ~ [= 65001 * =] && bgp_path ~ [= * 65001 65002 * =] &&
> bgp_path ~ [= * 65002 65003 * =] && bgp_path ~ [= * 65003 =]
> It will though pass some malformed pathes like 65001 65999 65001 65002 
> 65003.
> 
> On Thu, Jan 2, 2020 at 2:36 PM Marcelo Balbinot <marcelo at gegnet.com.br> 
> wrote:
>> 
>> 
>> Hello
>> I'm having difficulty using as-path math expressions
>> 
>> Look at my case.
>> correct as-path: 65001 65002 65003
>> 
>> I would like to validate if the as-path of the received prefix 
>> conforms
>> to the as-path above. But, I would like to allow prepend of all ASes,
>> so:
>> 65001 65001 65002 65003 is valid
>> 65001 65002 65002 65003 is valid
>> 65001 65002 65003 65003 is valid
>> 65001 65001 65002 65002 65002 65003 65003 is valid
>> 65001 65999 65002 65003 is NOT valid
>> 
>> The best expression I found was
>> if (bgp_path ~ [= 65001* 65002* 65003* =]) then
>> 
>> but it considers the path '65001 65999 65002 65003' to be valid
>> 
>> With regex that would be easier, but with bird bgpmask I couldn't 
>> solve
>> it.
>> 
>> Any suggestion?
>> 
>> 
>> --
>> Marcelo Balbinot
>> IP/MPLS Backbone Manager at AS53062
>> G G NET Telecomunicações
>> www.gegnet.com.br
>> INOC 53062*100
>> 



More information about the Bird-users mailing list