Соседство¶
Коротко¶
BGP-сессия устанавливается поверх TCP:179. Соседи обмениваются OPEN, согласовывают параметры, затем UPDATE с маршрутами.
Типы сообщений¶
OPEN - первое сообщение после TCP handshake:
- BGP version (4)
- Local AS number
- Hold Time (по умолчанию 180 сек)
- BGP Identifier (Router ID)
- Capabilities (MP-BGP, route refresh и др.)
UPDATE - обмен маршрутной информацией:
- Withdrawn Routes - отзыв маршрутов
- Path Attributes - атрибуты пути
- NLRI - анонсируемые префиксы
KEEPALIVE - поддержание сессии:
- Отправляется каждые ⅓ от Hold Time (по умолчанию 60 сек)
- Если 3 KEEPALIVE пропущены - сессия падает
NOTIFICATION - ошибка, сессия закрывается:
- Hold Timer Expired
- Cease (административный сброс)
- Bad AS, Bad Router ID и др.
FSM (Finite State Machine)¶
- Idle - начальное состояние, ничего не делает
- Connect - ждет TCP-соединение
- Active - пытается установить TCP
- OpenSent - отправил OPEN, ждет ответ
- OpenConfirm - получил OPEN, ждет KEEPALIVE
- Established - сессия установлена, обмен маршрутами
Коллизия: если оба инициируют TCP - остается соединение от роутера с большим Router ID.
Аутентификация¶
MD5 - подпись TCP-сегментов общим ключом. Защита от спуфинга.
Примеры конфигурации¶
eBGP¶
Juniper
Huawei
iBGP (через loopback)¶
Juniper
Huawei
eBGP multihop¶
Для соседства через loopback между AS (TTL > 1).