Доброго времени, сегодня начинаю серию заметок о BGP.
Итак, начнем с того что BGP это основной протокол, который используется в сети интернет. BGP — Border Gateway Protocol.
BGP дистанционно векторный протокол, который используется при маршрутизации между AS (Автономными системами).
BGP используется тогда, когда сервис провайдер предоставляет ту или иную услугу (MPLS VPN и т.д.), так же BGP используется тогда, когда у вас есть выделенный непривязанный к провайдеру блок адресов, и для того чтоб все это работало, Вам необходима своя AS, к которой будет привязана ваша сеть.
На самом деле BGP используется во многих сценариях, по ходу дела мы рассмотрим их.
Перед тем, как настраивать BGP сначала устанавливаются соседские отношения, они так же называются bgp peers (bgp пиринг).
Весь обмен информацией между BGP пирами происходит по протоколу TCP, через порт 179. Поэтому если на пути между роутерами есть какие-то фаерволлы, достаточно просто разрешить tcp/179 и все будет «бегать».
Перед тем как вдаваться в настройку роутера нужно познакомиться с типами сообщений, которые пересылаются между BGP пирами.
Типы сообщений:
- Open сообщение. В этом сообщении указываются такие данные как Hold Time, это максимальное время, которое может пройти между пересылками KEEPALIVE или UPDATE сообщениями.
Так же здесь передается BGP Identifier, это самый старший IP адрес, либо старший лупбек, BGP ID можно и нужно устанавливать с помощью bgp router-id (рассмотрим далее)
Так же в Open сообщении передаются два опциональных параметра. Первый это Optional Parameter Length, здесь указаывается длинна Optional Parameter, если в этом поле значение 0, значит Optional Parameter не используется.
Optional Parameter, содержит например такие данные как аутентификация, которая используется между BGP пирами.
- KEEPALIVE сообщения. Эти сообщения передаются переодически (по умолчанию каждые 60 секунд) между BGP соседями, для проверки соединения между ними (проверяют сессию TCP)
- NOTIFICATION сообщения. Здесь передаются все сообщения об ошибках. Эти сообщения делятся на 6 групп: Ошибка в заголовке, ошибка в Open сообщении (не правильная AS, аутентификация не прошла и так далее), UPDATE ошибки (нет обязательных атрибутов, AS петля и тому подобное), Истечение Hold Time, Finite State MAchine, и другие.
- UPDATE сообщения. В этом сообщении передаются новый маршруты, и маршруты, которые по тем или иным причинам «пропали».
Вот так кратко я описал кратко, те 4 вида сообщений, которые «ходят» между BGP пирами.
Более детально можно прочитать в соответствующем RFC 4271