BGP

протокол граничного шлюза

Алгоритм принятия решений

BGP speaker - это роутер, который обмениваются маршрутами
с другим роутером (тоже с BGP speaker'ом) по протоколу BGP.

Итак, когда BGP speaker принимает updates от нескольких AS, и в каждом из этих updates содержатся различные пути к одной и той же точке в Inet, встает вопрос о выборе оптимального маршрута к этой точке, будь то автономная система, или сеть, или конкретный хост с IP адресом. Выбрав оптимальный путь в некоторую точку, роутер рассказывает совим соседям об этом пути.

Алгоритм выбора оптимального пути базируется на нескольких параметрах (next hop, administrative weights, local preference, origin of the route, path lenght и др.), которые содержатся в update'е, а так же на некоторых других факторах, устанавливаемых при конфигурации BGP peer'ов.

Всякий раз, когда updates передаются через AS, BGP добавляет AS number к update'у. AS path attribute - это список номеров автономных систем, через которые update прошел (а, следовательно, пройдет и дейтаграмма) в процессе достижения своей цели. AS-SET - набор чисел, а именно номеров автономных систем, которые были пройдены update'ом.

Рассмотрим сеть, которая показана на Figure 12-11.

Figure=12-11: AS_path Attribute

На этом рисунке роутер B анонсирует сеть 190.10.0.0 как входящую в AS 200 и в этом случае AS_path равен 200. Когда update о 190.10.0.0 передается в соседнюю AS 300, роутер C добавляет номер своей AS (а именно, 300) к AS_path, и таким образом, когда update достигнет роутера A, два номера AS будут прицеплены к нему: 200 и 300. Таким образом, AS_path attribute для достижения сети 190.10.0.0 из роутера A - это 300, 200. Аналогично, AS_path для достижения сети 170.10.0.0 с роутера B - это 300, 100.
II.2 Origin Attribute

Origin attribute содержит информацию о том, кто является "хозяином" данного пути. То есть кто инициировал запись в таблице BGP маршрутизации о данном конкретном пути.

Origin attribute может принимать одно из трех значений:
IGP - route является _внутренним_ по отношению к данной AS. Это значение
i устанавливается как атрибут записи в таблице маршрутизации в том случае,
когда роутер использует команду "network" для добавления данного
пути в таблицу BGP маршрутизации.
IGP origin type представлен буковкой "i" в результатах shop ip bgp
команды.
EGP - информация о данном пути получена через Exterior Gateway Protocol
e (EGP).
EGP origin type представлен буковкой "e" в выводе show ip bgp.
Incomplete - origin of route неизвестен или получен каким-то третьим
? (не одним из опинанных выше) способом. А так же origin
incomplete имеет место в тех случаях, когда route получен
путем преобразования маршрута (например, полученного из
записи о статической маршрутизации как redistribute static) в BGP.
В этом случае origin attribute выглядит как "?".

Figure=12-12: Origin Attribute

Роутеры конфигурятся следующими командами:
!Router A
router bgp 100
neighbor 190.10.50.1 remote-as 100
neighbor 170.10.20.2 remote-as 300
network 150.10.0.0
redistribute static
!
ip route 190.10.0.0 255.255.0.0 null 0

!Router B
router bgp 100
neighbor 150.10.30.1 remote-as 100
network 190.10.50.0

!Router E
router bgp 300
neighbor 170.10.20.1 remote-as 100
network 170.10.0.0

Исходя из данной конфигурации, получаем следующие значения AS_path и Origin attribute в таблице маршрутизации:

1. в BGP route table на роутере A путь достижения сети 170.10.0.0 имеет AS_path 300 и Origin attribute "IGP" (поскольку для анонсирования своей сети роутер "E" использует команду network 170.10.0.0).

2. в BGP route table на роутере A путь к сети сеть 190.10.50.0 имеет AS_path=пусто, и Origin attribute = "IGP" (по той же причине).

3. в BGP route table на роутере E путь к сети 150.10.0.0: AS_path=100, Orig. attr = "IGP" (по той же причине).

4. в BGP route table на роутере E путь к 190.10.0.0: AS_path=100, Orig. attr. = Incomplete (тк на "A" данная сеть анонсируется через "redistribute route".