Hi! В связи с тем, что наши магистральщики начали вводить ipv6 на опорной сети, а в JunOS 9.1 появилась нормальная поддержка ASN32 - я таки собрался и довел до ума bgpq3 - генератор prefix-list'ов и as-path access-list'ов для Juniper и Cisco. Лежит пока тут: http://mon.eltel.net/~snar/bgpq3-0.1.3.tgz Основные отличия от "классического" bgpq: - код переписан полностью, "с нуля". Из старой версии перенесена не вся функциональность. В частности, не перенесена (и не будет переноситься) возможность создания prefix-list'ов "только по supernet'ам", все равно ей никто не пользуется. Также не планируются к переносу режимы генерации GateD'овских фильтров и standard access-list'ов. - основной режим генерации - prefix-lists (both Juniper & Cisco), генерация extended access-list'ов пока (?) не переносилась. - добавлена поддержка генерации ipv6 prefix-lists, ключ -6, пример: snar@chumadan:~/compile/bgpq3>./bgpq3 -J6 AS-RETN6 policy-options { replace: prefix-list NN { 2001:7fb:fe00::/48; 2001:7fb:fe01::/48; [....] - при генерации as-path filters поддерживается режим генерации для "asn32-safe" раутеров (JunOS 9.1 и выше, Cisco IOS пока не поддерживается), ключ -3: snar@chumadan:~/compile/bgpq3>./bgpq3 -J3f 112 AS-SPACENET policy-options { replace: as-path-group NN { [....] as-path a2 "^112(.)*(35052|41720|43628|44450|196611)$"; (обратите внимание на AS196611 в конце списка - Juniper отказался от поддержки asdot notation, и 32-битные AS'ы (AS3.3 в данном случае) пишутся одним числом) - если ключ -3 не указан - генерится "transitive format", вместо ASN32 подставляется AS23456, как и в "обычном" bgpq. - процесс резолвинга существенно ускорен за счет pipelining'а запросов к irrd. В результате даже довольно "толстые" as-set'ы резолвятся весьма быстро: snar@chumadan:~/compile/bgpq3>time ./bgpq3 AS-WNET > /dev/null real 0m1.878s Отключить этот режим можно с помощью ключа -T, результатом будет "обычная" скорость: snar@chumadan:~/compile/bgpq3>time ./bgpq3 -T AS-WNET > /dev/null real 2m30.645s - полностью переписан режим аггрегирования префиксов (для Cisco), эффективность повысилась процентов на двадцать. Просьба иметь в виду - это initial public release, в том обьеме, в котором тестировалось bgpq - пока не тестировалось. Так что по крайней мере на первое время желательно сравнивать результаты с результатами bgpq, и, если вылезут баги - писать ;) =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Thu, May 29, 2008 at 09:01:15PM +0400, Alexandre Snarskii wrote:
Просьба иметь в виду - это initial public release, в том обьеме, в котором тестировалось bgpq - пока не тестировалось. Так что по крайней мере на первое время желательно сравнивать результаты с результатами bgpq, и, если вылезут баги - писать ;)
Есть джунипер. Нужно генерировать as-path-group. С выводом bgpq не сравнивал, показываю на примере в сравнении с Циско: # ./bgpq3 -Jf 42546 AS-UOS policy-options { replace: as-path-group NN { as-path a0 "^42546(.)*(44532)$"; } } # ./bgpq3 -f 42546 AS-UOS no ip as-path access-list NN ip as-path access-list NN permit ^42546(_42546)*$ ip as-path access-list NN permit ^42546(_[0-9]+)*_(44532)$ Как видите, результат работы в двух случаях - разный. В случае с Джунипером в списке отсутствует "^(42546)+$". -- Kind Regards, Alexander Shikoff AMS1-UANIC =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, May 30, 2008 at 05:19:37PM +0300, Alexander Shikoff wrote:
On Thu, May 29, 2008 at 09:01:15PM +0400, Alexandre Snarskii wrote:
Просьба иметь в виду - это initial public release, в том обьеме, в котором тестировалось bgpq - пока не тестировалось. Так что по крайней мере на первое время желательно сравнивать результаты с результатами bgpq, и, если вылезут баги - писать ;)
Есть джунипер. Нужно генерировать as-path-group. С выводом bgpq не сравнивал, показываю на примере в сравнении с Циско:
# ./bgpq3 -Jf 42546 AS-UOS policy-options { replace: as-path-group NN { as-path a0 "^42546(.)*(44532)$"; } }
Thanks. Fixed. http://mon.eltel.net/~snar/bgpq-0.1.4.tgz snar@mon:~/compile/tmp/bgpq3-0.1.4>./bgpq3 -Jf 42546 AS-UOS policy-options { replace: as-path-group NN { as-path a0 "^42546(42546)*$"; as-path a1 "^42546(.)*(44532)$"; } } =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Thu, May 29, 2008 at 09:01:15PM +0400, Alexandre Snarskii wrote:
Hi!
В связи с тем, что наши магистральщики начали вводить ipv6 на опорной сети, а в JunOS 9.1 появилась нормальная поддержка ASN32 - я таки собрался и довел до ума bgpq3 - генератор prefix-list'ов и as-path access-list'ов для Juniper и Cisco.
Лежит пока тут: http://mon.eltel.net/~snar/bgpq3-0.1.3.tgz
Переехал на новое расположение: http://snar.spb.ru/prog/bgpq3/ там же появились man'ы с html'ем. Из изменений по сравнению с летом: - добавлена поддержка ASN32 для Cisco IOS (только для одной версии, 12.0(32)S12) которая работает только на GSR... И, соответственно, новый флаг -D, который переключает генерацию для Cisco из asplain в asdot notation, ибо, я не знаю, каким местом они думали, но при переключении из asplain в asdot mode нужно переписывать as-path access lists: When the asdot format is enabled as the default, any regular expressions to match 4-byte autonomous system numbers must be written using the asdot format, or else the regular expression match will fail. http://www.cisco.com/en/US/docs/ios/12_0s/release/ntes/120SNEWF.html#wp35216... (на живой технике не тестировалось, GSR'ов у меня нет, и, я надеюсь, не будет). - написан man :) - появилась возможность генерить route-filter'ы для juniper'ов, при этом поддерживается режим "красивой генерации", с модификацией определенного терма и добавлением дополнительных match conditions, например, если нам нужно заматчить все возможные специфики AS20597 приходящие по протоколу bgp с communtiy no-export можно использовать следующую полиси: snar@:~/compile/bgpq3>./bgpq3 -JEAR 32 -M "protocol bgp;\n community no-export" -l PolicyName/TermName AS20597 policy-options { policy-statement PolicyName { term TermName { replace: from { protocol bgp; community no-export; route-filter 81.9.0.0/20 upto /32; route-filter 81.9.32.0/20 upto /32; route-filter 81.9.96.0/20 upto /32; route-filter 81.222.128.0/20 upto /32; route-filter 81.222.192.0/18 upto /32; route-filter 85.249.8.0/21 upto /32; route-filter 85.249.224.0/19 upto /32; route-filter 89.112.0.0/18 prefix-length-range /19-/32; route-filter 89.112.64.0/19 upto /32; route-filter 217.170.64.0/19 prefix-length-range /20-/32; } } } } Остальные изменения - см. CHANGES в комплекте ;) PS: ну и, дык, С Новым Годом ;)
participants (3)
-
Alexander Shikoff
-
Alexandre Snarskii
-
Alexandre Snarskii