что имеем:
два маршрутизатора с quagga+bgpd, находящиеся в разных местах(за каждым из них своя внутренняя подсеть). Между ними есть линк, но ненадежный. К каждому маршрутизтору есть линк от вышестоящих провайдеров. От каждого провайдера предполагается получать fullview. Естественно есть своя AS и PI.что хочу получить:
При падении одного прова, чтоб трафик шел через соседний наш маршрутизатор(и подключенного к нему прова). Если падает линк между нашими маршрутизаторами, то каждый маршрутизатор пользовал линк от провайдера, к которому он подключен напрямую. Ну и возможность рализовать балансировку нагрузки в будущем между разными провайдерами.
Какие есть идеи:
Устанавливаем iBGP между нашими маршрутизаторами. Разделяем пул PI адресов попалам. На каждом маршрутизаторе напрямую провайдерам анонсируем только одну половину PI. Вторую половину пула PI каждый маршрутизатор получает от соседа (еслди с линком всё впорядке) и также анонсирует провайдеру к которому он напрямую подключен. Запрещаем передавать апдейты между провайдерскими AS чтобы через нас не пошел транзитный трафик. Точнее разрешаем к провайдерам апдейты, которые анонсирует изменения только в нашей AS, остальные - запрещаем.
Какие конфиги получились (IP и номера AS вымышленные):
Маршрутизатор 1
Current configuration:
!
hostname rw-bgpd-1
password pass
enable password pass
!
router bgp 12345 #наша AS
bgp router-id 1.1.1.1
network 1.1.1.0/25 #кусок анонсируемого пула PI
neighbor 1.1.1.129 remote-as 12345 #наш соседний маршрутизатор
neighbor 33.33.33.33 remote-as 20485 #маршрутизатор провайдера
neighbor 33.33.33.33 route-map denyforegin out #запрещаем передавать апдейты между провайдерами
!
route-map denyforegin permit 10 #разрешаем все апдейты касающиеся только нашей AS остальное запрещаем
match as-path 12345
!
line vty
!
end
Маршрутизатор 2
Current configuration:
!
hostname rw-bgpd-2
password pass
enable password pass
!
router bgp 12345 #наша AS
bgp router-id 1.1.1.129
network 1.1.1.128/25 #кусок анонсируемого пула PI
neighbor 1.1.1.1 remote-as 12345 #наш соседний маршрутизатор
neighbor 44.44.44.44 remote-as 44544 #маршрутизатор провайдера
neighbor 44.44.44.44 route-map denyforegin out #запрещаем передавать апдейты между провайдерами
!
route-map denyforegin permit 10 #разрешаем все апдейты касающиеся только нашей AS остальное запрещаем
match as-path 12345
!
line vty
!
end
Вопрос,
1) будет ли всё это работать как задумано?
2) Правильно ли написан route-map разрешающий апдейты касающиеся только нашей AS, остальное запрещающей?
3) Будет передваваться анонс второй половины PI от нашего соседнего маршрутизатора или его надо как-то разрешить явно?