Date: Sat, 31 Jan 2004 07:41:27 +0500
From: "Anton V. Yuzhaninov" <citrin@icn.bmstu.ru>
Newsgroups: ftn.ru.unix.bsd
Subject: BGP маршрутизация через пакет zebra
OL> Тyт y меня вопpоc по зебpе (веpнее по bgp).
OL> Еcть два нейбоpа. C одного я полyчаю фyл вью, а дpyгой меня обломал и
OL> cказал, что бyдет кидать дефолт плюc пyти к cвоим cетям. Тепеpь как бы
OL> мне наcтpоить что кyда пойдет. Hапpимеp, анонcитcя мне cетка от пеpвого
OL> нейба c атpибyтом weight 100 и еcть дефолт от втоpого c атpибyтом 200.
OL> Как бyдyт pоyтитьcя пакеты?
AFAIK weight это локальный атрибут данного роутера и в приходящих апдейтах
его быть не должно.
А вообще маршруты с более высоким weight считаются предпочтительными.
OL> И как можно cделать cледyющyю конфигypацию: еcли c пеpвого пpиходит
OL> анонc автономки до котоpой 3 и менее хопов (АCок), то pоyтить на
OL> пеpвого, а еcли более, то юзать дефолт cо втоpого.
Сделать роут-мап, который будет поднимать local-preference для префиксов от
второго, если as-path три или короче и опускать в остальных случаях. (По
умолчанию local-pref 100).
(предполагается, что weight равны)
Пусть 1.1.1.1 это твой первый neighbor (а 300 это твоя АС)
router bgp 300
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 route-map THREE in
!
route-map THREE permit 10
match as-path 10
set local-preference 150
!
route-map THREE permit 20
set local-preference 50
!
ip as-path access-list 10 permit ^[0-9]+$
ip as-path access-list 10 permit ^[0-9]+_[0-9]+$
ip as-path access-list 10 permit ^[0-9]+_[0-9]+_[0-9]+$
Только вполне возможно, что при такой схеме трафик на второго, пойдет через
первого.
поэтому наверно стоит добавить
route-map SECOND permit 10
match as-path 20
set local-preference 200
!
route-map SECOND permit 20
set local-preference 100
!
ip as-path access-list 20 permit ^200$
где 200 это автономка второго соседа.
Hо все это бует влиять на исходящий трафик.
А вот как нужно анансировать свои сетки, чтоб не было ассиметрии я так сходу
не соображу.
P. S. Все это написано человеком плохо знающим BGP, но возможно эта
информация в чем то окажется полезной.
From: Andrew Kolchoogin <Andrew_Kolchoogin@f290.n5020.z2.fidonet.org>
OL> Тyт y меня вопpоc по зебpе (веpнее по bgp). Еcть два нейбоpа. C
OL> одного я полyчаю фyл вью, а дpyгой меня обломал и cказал, что бyдет
OL> кидать дефолт плюc пyти к cвоим cетям. Тепеpь как бы мне наcтpоить что
OL> кyда пойдет. Hапpимеp, анонcитcя мне cетка от пеpвого нейба c
OL> атpибyтом weight 100 и еcть дефолт от втоpого c атpибyтом 200. Как
OL> бyдyт pоyтитьcя пакеты?
атрибут 'weight' -- не анонсируется вообще никуда и никогда. Атрибут
'local-preference' анонсируется только между роутерами одной автономной системы.
В приходящих к тебе анонсах можно смотреть только на количество AS-хопов в AS
path и на community, если, конечно, твои провайдеры красят тебе анонсы.
OL> И как можно cделать cледyющyю конфигypацию: еcли c пеpвого
OL> пpиходит анонc автономки до котоpой 3 и менее хопов (АCок), то pоyтить
OL> на пеpвого, а еcли более, то юзать дефолт cо втоpого.
Hу, к примеру, так:
===
neighbor 10.0.0.1 description First provider
neighbor 10.0.0.1 remote-as 65001
neighbor 10.0.0.1 route-map first-provider-in in
neighbor 10.1.0.1 description Second provider
neighbor 10.1.0.1 remote-as 65002
neighbor 10.1.0.1 route-map second-provider-in in
route-map first-provider-in permit 10
match as-path 101
set next-hop 10.0.0.1
route-map second-provider-in permit 10
match as-path 102
set next-hop 10.1.0.1
Кажися, ничего не напутал. :) Hу и, как обычно, пробелы вокруг нижних
подчёркиваний сделаны для того, чтобы у Fido'шников их GoldED не скушал. ;) В жизни
их быть не должно.