Ошибка во время установления сеанса BGP (состояние подтверждения открытия) - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь установить сеанс bgp на маршрутизатор HP-MSR, используя scapy с python. Я успешен в создании сокета TCP. После этого маршрутизатор отправляет мне одно сообщение BGP Open. В ответ я отправляю сообщение BGP Open и подтверждаю BGP Open маршрутизатора. Маршрутизатор также подтверждает мое сообщение об открытии BGP. Наконец, маршрутизатор может достичь состояния «Открытое подтверждение». Когда он достигает состояния подтверждения открытия, он начинает посылать некоторую ошибку [сообщение повторной передачи TCP, группа: последовательность]. Он остается в состоянии «Открыть подтверждение» до истечения времени удержания.

Случай 1) Когда мой идентификатор bgp ниже, чем идентификатор маршрутизатора. В этом случае маршрутизатор отправляет сообщение Keep alive, но также отправляет ту же ошибку [TCP-сообщение повторной передачи, группа: последовательность]. Когда я отправляю какое-то сообщение активности, я не получаю никакого подтверждения от маршрутизатора, и оно остается в «состоянии подтверждения открытия» до истечения таймера удержания. В этом случае маршрутизатор также отправляет «Разрешение конфликтов подключения», как и ожидалось.

Случай 2) Когда мой идентификатор bgp больше, чем идентификатор маршрутизатора. В этом случае маршрутизатор не отправляет ни одно сообщение активности, ни подтверждение моего. Он продолжает отправлять одно и то же сообщение об ошибке [TCP-сообщение о повторной передаче, группа: последовательность], пока не истечет таймер удержания.

Я полагаю, что маршрутизатор должен следовать ниже диаграмме bgp:

-> syn
syn, ack <-
-> ack
Bgp open <-
-> BGP Open
-------------------- Open Confirm
Keep alive <-
-> Keep alive 
-------------------- Established

Я ожидаю поведения, объясненного на рисунке выше.

...