BGP

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

Основы BGP

Роутеры, которые принадлежат одной и той же AS и обмениваются BGP update'ами, работают по Internal BGP (IBGP); роутеры, которые принадлежат разным AS и тоже обмениваются BGP update'ами, работают по External BGP (EBGP). Команды для конфигурации IBGP и EBGP одинаковы, исключая команду конфигурации роутера "neighbor ebgp-multihop" (которая описана в разделе "2" External BGP" этой главы). Поэтому везде, где мы будем упоминать о IBGP и EBGP, это будет делаться в контексте, что routing updates происходят либо в пределах одной AS, либо между AS.

На рисунке 12-1 демонстрируется различие между EBGP и IBGP.

Figure=12-1: EBGP, IBGP, and Multiple ASs

Перед тем, как обмениваться информацией о маршрутах с внешними AS, BGP должен гарантировать, что сети _внутри его_ AS достижимы. Это обеспечивается комбинацией обмена информацией о маршрутах по IBGP между роутерами внутри AS и передачей информации о маршрутах BGP в один из Interior Gateway Protocols (IGPs), которые работают внутри AS (например, Intereior Gateway Routing Protocol IGRP, Intermediate System-to-Intermediate System IS-IS, Routing Information Protocol RIP и Open Shortest Path First OSPF).

BGP использует TCP в качестве транспортного протокола (port 179). Любые два роутера, между которыми открыто tcp соединение для обмена информацией о маршрутизации, называются "peers" или "neighbors". На приведенном выше рисунке роутеры A и B являются BGP peers, равно как и роутеры B и C, C и D. Routing Information состоит из незакольцованной (loop-free) карты автономных систем. Заметим, что внутри AS BGP peers не являются подключенными непосредственно друг к другу (грубо говоря, не соединены между собой напрямую проводом).

BGP peers инициируют обмен полными таблицами BGP маршрутизации между собой. Позже они посылают лишь incremental updates. Кроме этого, BGP peers обмениваются keepalive messages (чтобы удостовериться, что связь между ними не потеряна), и notification messages (сообщениями об ошибках и другой служебной информацией).

Для простой конфигурации роутеров на приведенном выше рисунке используются следующие команды:
! Router A
router bgp 100
neighbor 129.213.1.1 remote-as 200
! Router B
router bgp 200
neighbor 219.213.1.2 remote-as 100
neighbor 175.220.1.2 remote-as 200
! Router C
router bgp 200
neighbor 175.220.212.1 remote-as 200
neighbor 192.208.10.1 remote-as 300
! Router D
router bgp 300
neighbor 192.208.10.2 remote-as 200

Как видно из приведенной выше конфигурации, router bgp global configuration команды присваивают роутеру номер его AS и включают обмен BGP маршрутами между автономными системами.

Команда конфигурации neighbor [ip address] remote-as [AS] добавляет запись в таблицу маршрутизации BGP, и в этой записи говорится о том, что peer идентифицируется его IP адресом внутри его автономной системы. Для роутеров, в которых используется EBGP, neighbors обычно соединены напрямую, и IP адрес neighbor'а - это IP адрес сетевого интерфейса граничной с вашим роутером стороны. (Исключением из этого правила является "EBGP Multihop," который описан позднее в этом же параграфе).

Для роутеров, на которых используется IBGP, IP адресом может быть адрес любого из интерфейсов роутера в сети, которая входит в вашу AS.

Некоторые замечания к автономным системам, указанным на Figure 12-1:

* Роутеры A и B обмениваются информацией о маршрутизации по EBGP, а роутеры B и C - по IBGP. Заметим, что EBGP peers соединены непосредственно, а IBGP - нет, но поскольку между ними работает IGP, он позволяет им достигать друг друга и обмениваться информацией.

* Все роутеры, обменивающиеся BGP таблицами внутри AS, должны установить "peers relations" между собой. Это означает, что BGP speakers внутри AS должны быть логически связаны. BGP4 использует два механизма, которые облегчают выполнение требования о полной логической взаимосвязи роутеров внутри AS. Это "Confederations" и "Route Reflectors", которые описываются ниже.

* AS 200 является "транзитом" для AS 100 и AS 300; То есть AS 200 используется для транзитной передачи пакетов между AS 100 и AS 300.