Модель конечных состояний BGP протокола

Процесс переговоров между BGP-соседями до полной установки соединения происходит в несколько этапов. На рис. 5.8 приведена упрощенная модель конечных состояний (finite state machine — FSM), с помощью которой можно рассматривать основные события, в результате которых генерируются сообщения от одного узла другому и реакцию на них другой стороны.

Ниже приведен список основных состояний модели FSM.

Рис. 5.8. Модель конечных состояний при переговорах по протоколу ВОР между соседними узлами

1. Ожидание (Idle). Это первое состояние, в котором находятся системы перед установлением соединения. В протоколе ВОР ожидается наступление события "Пуск" (Start), инициированного оператором или самой BGP-системой. Администратор вызывает наступление события "Пуск" путем установления BGP- сеанса маршрутизатором или посредством сброса существующего BGP-сеанса. После наступления события "Пуск" BGP-система инициализирует свои ресурсы, сбрасывает таймер повторных попыток установки соединения (ConnectRetry timer), устанавливает транспортное соединение по протоколу TCP и находится в режиме ожидания соединения с удаленной стороной. Затем BGP-система переходит в состояние ведения связи. В случае появления каких-либо ошибок BGP-система возвращается в состояние ожидания.

2. Связь     (Connect).     В     этом     состоянии     BGP-система     ожидает     полного

установлениясоединения транспортным  протоколом. Если TCP-соединение установлено успешно,  то  система  переходит  в  состояние   пересылки сообщения OPEN(OpenSent) (т.е. на этом этапе удаленной системе посылается сообщение об открытии соединения OPEN). Если истекает  время,  заданное таймером повторныхпопыток ConnectRetry timer, то система остается в состоянии "Связь", таймерсбрасывается, и повторно начинается установка соединения транспортным протоколом. При наступлении  каких-либо других событий, инициированных оператором или самой системой, BGP-система возвращается в состояние ожидания.

3. Система активна (Active). На этом этапе BGP-система пытается достичь удаленной системы путем открытия соединения транспортного протокола. Если установлено транспортное соединение, то система переходит в состояние пересылки сообщения OPEN (OpenSent), при  котором  генерируется  и  посылается  сообщение  OPEN. Если истекает интервал времени, заданный таймеромповторных попыток, то система перезапускает таймер и возвращается в состояние "Связь". При этом BGP- система продолжает ожидать появления входящегосоединения от удаленного узла. При наступлении еще каких-либо событий система может вернуться и в состояние ожидания. Таким событием может бытьсобытие "Останов" (Stop), инициированное самой системой или оператором.

Если система находится в состоянии, колеблющимся между состояниями "Связь" и "Система активна", — это признак того, что при установке транспортного TCP- соединения что-то происходит неправильно. Причинами такого состояния может быть большое количество повторных передач пакетов по протоколу TCP или невозможность соседнего узла распознать IP-адрес удаленной стороны.

4. Состояние пересылки сообщения OPEN (OpenSent). В этом состоянии BGP- система ожидает получения сообщения OPEN от удаленной стороны. Полученноесообщение проверяется на целостность. Если в нем содержатся ошибки, такиекак искаженный номер версии протокола или недопустимый номер AS, системаотправляет удаленной стороне сообщение об ошибке NOTIFICATION и возвращается в состояние ожидания. Если ошибок не обнаружено, BGP-система начинает посылать сообщения KEEPALIVE и сбрасывает свой таймер проверки состояния канала (KEEPALIVE timer) в 0. С этого момента оговаривается такжевремя удержания и устанавливается наименьшее его значение из связанных систем. Если согласованное время удержания равно 0, то таймер удержания (Holdtimer) и таймер проверки состояния (KEEPALIVE timer) не перезапускаются.

В состоянии пересылки сообщения OPEN BGP-система путем сравнения собственного номера AS с номером AS удаленной системы выясняет, принадлежит ли маршрутизатор, с которым установлена связь,  к той же автономной системе (внутренний Internal BGP) или это различные AS (внешний External BGP).

При разрыве TCP-соединения система возвращается в состояние "Система активна". При возникновении других событий, таких как истечение времени, заданного таймером удержания, BGP-система посылает сообщение NOTIFICATION, в котором содержится код ошибки, и возвращается в состояние ожидания. Кроме того, в ответ

на событие "Останов", инициированное системой или оператором, BGP-система также переходит в состояние ожидания.

5.            Подтверждение получения сообщения OPEN (OpenConfirm). В этом состоянииBGP-система ожидает поступления сообщения KEEPALIVE. Приняв такое сообщение, система переходит в следующее состояние "Связь установлена"(Established) и переговоры с соседним узлом завершаются. Приняв сообщениеKEEPALIVE, система перезапускает свой таймер удержания (при условии, что оговоренное значение времени ожидания не равно 0). Если же система получает сообщение NOTIFICATION, то она возвращается в состояние ожидания. Система периодически посылает другой стороне сообщения KEEPALIVE с частотой, установленной таймером проверки состояния канала. В случае любого разрыва транспортного соединения или в ответ на событие "Останов", инициированное самой системой или оператором, система также возвращается в состояние ожидания. При наступлении какого-либо другого события система посылает сообщение NOTIFICATION, содержащее код ошибки модели конечных состояний FSM, и возвращается в состояние ожидания.

6.            Связь установлена (Established). Это последнее состояние, в котором находятся соседние узлы при ведении переговоров. В этом состоянии BGP-система начинает обмен пакетами UPDATE со своими соседями. Предположим, что таймер удержания не равен 0. Тогда он будет перезапускаться каждый раз при приеме сообщения UPDATE или KEEPALIVE. Если же система получает сообщение NOTIFICATION (в случае возникновения какой-либо ошибки), то она возвращается в состояние ожидания.

Сообщения   UPDATE   также   проверяются   на   наличие   ошибок,   таких   как

недостающие атрибуты, дублированные атрибуты и другие. При обнаружении ошибки взаимодействующей стороне высылается сообщение NOTIFICATION, и система переводится в состояние ожидания. В состояние ожидания система возвращается также по истечении времени, заданного таймером удержания, при получении уведомления о разрыве транспортного соединения или при наступлении события "Останов", принятого от другого узла или наступившего в результате какого-либо другого события.

Источник: Сэм Хелеби, Денни Мак-Ферсон, Принципы маршрутизации в Internet, 2-е  издание.  : Пер. с англ. М. : Издательский дом «Вильямс», 2001. — 448 с. : ил. — Парал. тит. англ.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100