Доброго времени!
Сегодня я закончу заметки, касающиеся суммаризации маршрутов в BGP.
В прошлых статьях, рассмотрели aggregate-address, as-set, summary-only. Помним что делаем as-set? Подставляет номера автономных систем из которых пришли маршруты и после были суммаризованы.
Проверили как работает, действительно все ок.
Но как быть в такой ситуации?
То есть у нас получается, что AS3 не видит сеть AS2, так как отправляется суммаризованный маршрут, а используя AS-SET мы подставляем автономные системы 2 и 3, ну а дальше петля.
Давайте проверим, что отдаем AS1 роутер соседу AS2:
в скобка {2,3 } видим что тут есть наша AS. Ее нам нужно убрать, чтоб маршрут поступил в роутер и был инсталирован, для этого нам понадобится advertise-map.
На агрегирующем роутере AS1 в секции BGP прописываем:
aggregate-address 10.0.0.0 255.255.0.0 as-set summary-only advertise-map ADV-MAP
exit
route-map ADV-MAP permit 10
match ip address 1exit
access-list 1 permit 10.0.3.0 0.0.0.255
Этим мы запретили вставлять двойку в AS-PATH, чтоб маршрут был правильно инсталирован в маршрутизатор AS2 и маршрут от AS3 был получен.
Теперь в AS-PATH мы не видим 2-ку.
Проверяем sh ip bgp на AS2:
Видим, суммаризованный маршрут был установен, что и требовалось.
Резюмируя о advertise-map мы можем сказать, что с помощью него мы можем указать те сети, для кого применять AS-SET (которые попадают в permit access-list), а для кого, не применять (deny).
Advertise-map может применяться так же и на соседе.
Например нам требуется такое условие: Если от роутера AS3 приходит маршрут 10.0.3.0/24, то мы от AS2 10.0.2.0 не отправляем на AS100, а если от AS3 не приходит данный маршрут, то мы отправляем сеть от AS2 к AS100.
Все настраивается на AS1, вот как выглядит настройка:
Давайте разберем настройки. Сначала нас интересует секция BGP.
На соседе у нас прописано: neighbor 1.1.100.100 advertise-map ADVER-MAP non-exist-map AS3, словами можно сказать так, если маршрута из AS3 (описанный access-list) не существует в таблице маршрутизации, значит и ADVER-MAP мы не посылаем.
Давайте проверим как это работает, сначала будем считать что сетка от AS3 приходит нормально:
Маршрут 10.0.3.0/24 есть, значит мы посылаем его на AS100, проверим:
Все правильно, 10.0.2.0/24 мы не видим, так как 10.0.3.0/24 маршрут приходит.
Теперь сделаем так, чтоб 10.0.3.0/24 не приходил на AS1, просто положим интерфейс и проверим тоже самое:
Смотрим, на AS1 не приходит маршрут 10.0.3.0/24 от AS3, по нашему алгоритму должен отправляться маршрут от AS2 — 10.0.2.0/24.
Видим, что все работает.
Так же существует возможность обратная non-exist-map, exist-map, которая работает с точностью да наоборот, не будем на ней останавливаться.
На данный момент это все, что я хотел написать о суммировании маршрутов.