as-path flter problem
Marcelo Balbinot
marcelo at gegnet.com.br
Sat Jan 4 14:04:24 CET 2020
@Bird development team,
Do you consider implementing regex for path filters?
---
Marcelo Balbinot
IP/MPLS Backbone Manager at AS53062
G G NET Telecomunicações
www.gegnet.com.br
INOC 53062*100
Em 2020-01-03 14:20, Alexander Zubkov escreveu:
> You can filter malformed pathes with something like:
> ! bgp_path ~ [= * 65001 * 65001 * =]
> But the whole expression grows bigger and bigger. Regex-like matches
> would be much easier of course.
>
> On Fri, Jan 3, 2020 at 4:24 PM Marcelo Balbinot <marcelo at gegnet.com.br>
> wrote:
>>
>>
>> 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