BGP Huawei ничем не отличается в плане установления соседства от других вендоров. Теория везде одна.
BGP Huawei (в том числе на оборудовании Huawei) формирует TCP сессию с соседними роутерами, называемыми peers. BGP использует finite-state machine (FSM), чтобы содержать таблицу всех BGP Huawei peers и их актуальный статус. BGP Huawei сессия имеет следующие статусы:
Idle
Connect
Active
OpenSent
OpenConfirm
Established
Вот этот рисунок иллюстрирует BGP Huawei FSM и статусы, приведенные в порядке, используемом для установления BGP Huawei сеанса.
Idle
Idle это первая ступень BGP Huawei FSM. BGP Huawei обнаруживает старт процесса (конфигурация соседа в bgp процессе) и пытается начать TCP соединение с BGP Huawei peer и также слушает запросы на навое соединения от peer роутера.
Если случается ошибка BGP Huawei откатывается назад к Idle статусу на некоторое время: ConnectRetryTimer равен 60 секундам и должен достичь 0, прежде чем попытка соединение может быть начата снова. Дальнейшие сбои приводят к тому, что ConnectRetryTimer удваивается по сравнению с предудущим таймеров, то есть в дальнейшем для выхода из статуса Idle потребуется в два раза больше времени.
Connect
В состоянии Connect BGP Huawei инициирует TCP-соединение. Если трехстороннее TCP рукопожатие завершено, установленный процесс сеанса BGP Huawei сбрасывает ConnectRetryTimer и отправляет сообщение Open соседу; затем он меняется на состояние OpenSent.
Если ConnectRetryTimer достигает 0 до завершения этого этапа, новое TCP соединение BGP Huawei выполняет попытку подключения, ConnectRetryTimer сбрасывается, а состояние пемяется на Аctive. Если получен какой-либо другой ввод, состояние меняется на Idle.
На этом этапе сосед с более высоким IP-адресом управляет соединением. Маршрутизатор, инициирующий запрос, использует динамический порт источника, но порт назначения всегда 179.
Рисунок ниже показывает установленную BGP Huawei сессию, используя команду display tcp status, чтобы показать активные TCP сессии между роутерами. Нужно обратить внимание, что TCP источник-порт BGP Huawei всегда 179, а порт назначения может быть любым.
<IPS1>display tcp status
TCPCB Tid/Soid Local Add:port Foreign Add:port VPNID State
17322164 107/5 0.0.0.0:0 0.0.0.0:0 0 Closed
1d383664 59 /1 0.0.0.0:23 0.0.0.0:0 -1 Listening
17319d94 107/1 0.0.0.0:179 8.1.1.1:0 0 Listening
17321384 107/3 0.0.0.0:179 8.8.8.3:0 0 Listening
1731fc64 107/0 8.1.1.2:179 8.1.1.1:50872 0 Time_Wait
17320c94 107/2 8.1.1.2:64440 8.1.1.1:179 0 Established
Active
В Active состоянии BGP Huawei начинает новое трехстороннее TCP рукопожатие. Если подключение устанавливается, отправляется сообщение Open, hold timer установливается на 4 минуты, и состояние переходит на OpenSent. Если эта попытка TCP-соединения не удается, состояние возвращается в состояние Connect, и ConnectRetryTimer сбрасывается
OpenSent
В состоянии OpenSent сообщение Open было отправлено от исходного маршрутизатора и теперь ожидается сообщения Open от другого маршрутизатора. После того, как исходный маршрутизатор получает сообщение OPEN от другого маршрутизатора, оба сообщения OPEN проверяются на наличие ошибок:
• Версии BGP Huawei должны совпадать.
• Исходный IP-адрес сообщения OPEN должен совпадать с IP-адресом, который настроен для соседа.
• Номер AS в сообщении OPEN должен соответствовать тому, что настроен для сосед.
• Идентификаторы BGP Huawei (RID) должны быть уникальными. Если RID не существует, это условие не выполняется.
• Параметры безопасности (такие как пароль и TTL) должны быть установлены соответствующим образом.
Если в сообщениях OPEN нет ошибок, hold time согласовывается (с использованием наменьшего значения на роутерах), и отправляется сообщение KEEPALIVE (при условии, что значение не установлен на 0). Затем состояние подключения изменяется на OpenConfirm. Если есть ошибка в сообщении OPEN, то отправляется сообщение NOTIFICATION, и состояние возвращается в режим Idle.
Если TCP получает сообщение об отключении, BGP Huawei закрывает соединение, сбрасывает ConnectRetryTimer и устанавливает состояние Active. Любое другое вмешательство в этот процесс приводит к переходу в состояние Idle.
OpenConfirm
В состоянии OpenConfirm BGP Huawei ожидает сообщения KEEPALIVE или NOTIFICATION. При получении сообщения KEEPALIVE от соседа состояние изменяется к Established. Если hold timer истекает, происходит событие остановки, или роутер получает cообщение NOTIFICATION, то состояние переходит в Idle.
Established
В состоянии Established сеанс BGP Huawei считается установленным. BGP соседи обмениваются маршрутами с использованием сообщений UPDATE. Получение роутером сообщений UPDATE и KEEPALIVE приводит к сбрасыванию hold timer. Если hold timer истекает, то BGP Huawei переводит соседа обратно в состояние Idle.