Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lesson_3_Dyn_IP

.pdf
Скачиваний:
14
Добавлен:
21.02.2016
Размер:
5.7 Mб
Скачать

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

Active Neighbor – 15.0.0.1, это значение Router ID маршрутизатора, чьи пакеты Hello были получены, в течении интервала Router Dead Interval.

Далее R1, согласно с алгоритмом работы OSPF, отправляет следующий пакет OSPF типа Database Description в адрес R3.

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

Данный тип пакета соответствует номеру 2, и используется при инициализации отношений смежности между маршрутизаторами. Для пакетов DD значение поля Interface MTU устанавливается равным размеру максимальной дейтаграммы IP, которая может быть передана интерфейсом без фрагментации. Для пакетов DD, передаваемых через виртуальные соединения устанавливается Interface MTU=0.

Дополнительные возможности OSPF сообщаются соседу через поле Options пакета DD. Маршрутизатор должен поддерживать такой же набор дополнительных возможностей в процедурах Database Exchange и лавинной рассылки, как и его сосед. Флаг E- устанавливается, только если подключенная сеть не относится к тупиковой области. Неиспользуемые биты поля Options должны иметь нулевое значение. Передача пакетов DD зависит от состояния соседа. В состоянии ExStart (Начало работы) маршрутизатор передает только пустые пакеты DD с установленным и битами I, M и MS, пакеты повторяются с интервалом RxmtInterval. Приведенный выше пример пакета описывает состояние маршрутизатора ExStart, при этом значение байта Flags соответствует 00000111dec , т.е. биты I=1, M=1, MS=1. Значение MS=1 соответствует ведущему маршрутизатору, 0 –ведомому. I=1 означает первый по порядку пакет в сессии. М=1 говорит о том, что следует ожидать еще пакеты типа DD в данной сессии.

В состоянии Exchange (обмен информацией), пакеты DD содержат информацию о состоянии каналов, содержащейся в базе данных маршрутизатора. Каждая запись LSA в базе данных области, при переходе

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

соседа в состояние Exchange, указывается в списке Database Summary соседа. Каждый новый пакет DD копирует свой порядковый номер из структуры данных о соседе и далее содержит начальную часть списка Database Summary. Описанные элементы удаляются из списка после подтверждения приема содержащего их пакета. В состоянии Exchange момент передачи пакетов DD определяется ролью маршрутизатора (ведущий или ведомый):

-Master - пакеты DD передаются, если a) ведомый маршрутизатор подтвердил прием предыдущего пакета DD, указав его номер в отклике, или b) прошло RxmtInterval секунд без подтверждения приема предыдущего пакета (заново передается прежнийпакет).

-Slave - пакеты DD передаются только в ответ на получение пакета DD от ведущего маршрутизатора. Если получен новый пакет DD, в ответ передается новый отклик DD, в противном случае снова передается предыдущий пакет DD.

Аналогичный пакет отправляет R3 в адрес R1

После открытия сессии обмена пакетами DD, маршрутизаторы переходят в состояние Exchange (Обмен информацией), при этом каждый последующий пакет DD содержит заголовок LSA (Link State Advertisiment) с соотвествующим типом объявлений маршрутной информации, рассылаемой маршрутизатором.

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

R1 отправляет R3 пакет DD содержащий Router-LSA

Обратите внимание, в данном пакете поле флаги не содержит отметок, т.е. маршрутизатор R1 является подчиненным (Slave) в текущем взаимодействии.

Заголовок LSA содержит следующую информацию:

-LS age – время в секундах с момента генерации LSA – 1 (секунда)

-Options – опции – 0х02 (ExternalRoutingCapability)

-LS type – тип объявления – 1 , соответствует Router-LSA (Объявление от маршрутизатора). Этот тип LSA описывают состояние и стоимость каналов

(интерфейсов) маршрутизатора в данную область.

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

-Link State ID – идентификатор состояния соединения, в случае анонса типа Router-LSA, содержит IP адрес интерфейса-источника анонса

-Advertising Router – объявляющий маршрутизатор – содержит Router ID маршрутизатора источника LSA.

-LS Sequence number – порядковый номер анонса – 0х80000001, служит для обнаружения дублей анонсов

-LS Checksum – контрольная сумма LSA

-Length – длина

Аналогичный пакет отправляет R3 в адрес R1

Обратите внимание, в данном пакете поле флаги содержит отметку MS, т.е. маршрутизатор R3 является главным (Master) в текущем взаимодействии.

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

На каждом из маршрутизаторов входящий пакет DD ассоциируются с соседним маршрутизатором и своим интерфейсом принявшим данный пакет. Отказ или прием пакета для дальнейшей обработки зависит от состояния соседнего маршртизатора. Различают следующие состояния:

Down - пакет должен отбрасываться. Attempt - пакет должен быть отброшен.

Init - механизм состояний соседа должен активизироваться событием 2- WayReceived, что ведет к немедленному переходу в состояние 2-Way или ExStart. Если новым состоянием является ExStart, обработка текущего пакета должна продолжаться для случая ExStart, описанного ниже.

2-Way - пакет следует игнорировать, так как пакеты DD используются только для организации отношений смежности. При смене DR типичным случаем для соседа в этом состоянии будет передача пакета DD для маршрутизатора; это означает наличие кратковременного рассогласования тождественности DR.

ExStart - если принятый пакет соответствует одному из приведенных ниже условий, механизм состояний соседа должен активизироваться событием NegotiationDone (переход в транзитное состояние Exchange), поле Options должно быть сохранено в структуре данных о соседе (Neighbor Options), а пакет должен быть воспринят для последующей обработки.

- Биты I, M и MS установлены, остальные поля пакеты пусты и з начение Router ID у соседа больше, чем у принявшего пакет маршрутизатора. Маршрутизатор в данном случае является ведомым, бит master/slave устанавливается в slave и в структуре данных о соседе устанавливается порядковый номер DD, заданный ведущим маршрутизатором.

- Биты I и MS не установлены, порядковый номер DD для пакета равен порядковому номеру DD в структуре данных о соседе (подтверждение) и значение Router ID у соседа меньше, чем у принявшего пакет маршрутизатора (данный маршрутизатор является ведущим).

Exchange - дубликаты пакетов DD отбрасываются ведущим маршрутизатором и заставляют ведомый заново передавать последний пакет DD. Для пакетов, не являющихся дубликатом выполняются следующие действия:

-Если состояние бита MS не соответствует состоянию master/slave для соединения, генерируется событие SeqNumberMismatch для соседа и обработка пакета прекращается.

-Если бит I установлен, для соседа генерируется событие Seq Number Mismatch и обработка пакета прекращается.

-Если поле Options показывает другой набор дополнительных возможностей OSPF по сравнению со значением полученным от соседа ранее

(записан в поле Neighbor Options структуры данных о соседе), для соседа генерируется событие Seq Number Mismatch и обработка пакета прекращается.

- Пакеты DD должны обрабатываться в соответствии с их порядковыми номерами. Если маршрутизатор является ведущим, следующий порядковый номер принятого пакета должен совпадать с номером в структуре данных о соседе. Иначе для соседа генерируется событие SeqNumberMismatch и обработка пакета прекращается.

Loading или Full - в этих состояниях маршрутизатор передает или принимает всю последовательность пакетов DD. Дубликаты возможны только для

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

принимаемых пакетов, Поле Options в пакетах должно соответствовать дополнительным возможностям OSPF, ранее объявленным соседним маршрутизатором (этот параметр хранится в поле опций структуры данных Neighbor). Прием любых других пакетов, включая пакеты с установленным битом I, должен сопровождаться генерацией события SeqNumberMismatch. Для маршрутизатора возможна рассинхронизация полных отношений смежности путем перехода назад в состояние ExStart. Это заставит смежный маршрутизатор обрабатывать сообщение SeqNumberMismatch и вернуться в состояние ExStart. Ведущий маршрутизатор должен отбрасывать дубликаты, а ведомый – повторять в ответ передачу последнего пакета DD.

Когда маршрутизатор принимает пакет DD со следующим порядковым номером, этот пакет воспринимается и обрабатывается. Для каждой перечисленной записи LSA проверяется корректность типа LS. Если тип LS неизвестен (т. е., не относится к типам 1 – 5) или запись является AS-external- LSA (тип 5), а сосед связан с тупиковой областью, для соседа генерируется событие SeqNumberMismatch и обработка пакета прекращается. В остальных случаях маршрутизатор ищет LSA в своей базе данных. Если такой записи нет или существует более старая версия то запись LSA помещается в список Link state request для ее последующего запроса (немедленно или спустя некоторое время) с помощью Link State Request.

Для пакетов DD со следующим порядковым номером, кроме перечисленных выше операций, маршрутизатор выполняет еще ряд действий в зависимости от своей роли – ведущий или ведомый:

Master - увеличивается порядковый номер DD в базе данных о соседе. Если маршрутизатор уже передал все пакеты DD и принятый пакет не содержит флага M, для соседа генерируется событие ExchangeDone . В остальных случаях ведомому маршрутизатору передается новый пакет DD.

Slave - порядковый номер DD в структуре данных о соседе устанавливается в соответствии с порядковым номером DD в принятом запросе. Ведомый маршрутизатор должен передать в ответ пакет DD. Если в принятом пакете не установлен бит M и переданный ведомым маршрутизатором пакет также не содержит флага M, для соседа генерируется событие ExchangeDone. Обратите внимание, ведомый маршрутизатор всегда генерирует это событие раньше ведущего.

Если поле Interface MTU в пакете DD показывает, что размер дейтаграммы IP превышает возможности маршрутизатора (требует фрагментации), пакет DD отбрасывается.

В соответствии с описанной выше логикой работы, главный (Master) маршрутизатор R3, после приема последнего пакета DD от R1, содержащего следующую информацию – [тип маршрутизатора Slave; тип LS – Router-LSA (1- корректно)], выполняет поиск в своей базе данных записи соответствующей данной LSA, т.е. Router-LSA от R1. Однако такой записи пока еще быть не может, т.к. взаимодействие только началось, и поиск заканчивается неудачей. Следуя логике описанного выше алгоритма, маршрутизатор R3 подготавливает запрос Link state request, в который и цитируется запись LSA type 1, полученная от маршрутизатора R1. Данный запрос помещается в очередь и отправляется в адрес R1.

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

Аналогично поступает и маршрутизатор R1, не найдя соответствий в своей базе данных записи Router-LSA с идентификатором 15.0.0.3, маршрутизатор генерирует запрос LSR в адрес R3.

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

Как известно, пакеты LSR служат для запроса последней версии базы данных у соседнего маршрутизатора. Маршрутизатор, передающий запрос LSR, ассоциирует данный экземпляр запрашиваемого фрагмента базы данных с идентификатором маршрутизатора-получатетеля запроса. Экземпляры идентифицируются порядковым номером, возрастом и контрольной суммой, но эти поля не указываются в самом пакете LSR.

Каждый запрошенный анонс LSA сопровождается указанием типа, а также значениями Link State ID и Advertising Router. Эти параметры уникально описывают LSA, но не конкретный экземпляр анонса.

При состояниии соседа – Exchange, список запросов состояний каналов содержит те LSA, которые нужно получить от соседнего маршрутизатора. Для запроса LSA маршрутизатор сначала отправляет соседу список запросов, помещенный в пакет LSR. Когда соседний маршрутизатор отвечает на эти запросы пакетами Link State Update, соответствующие элементы удаляются из списка запросов и передается следующий пакет LSR. Этот процесс продолжается, пока список запросов не будет исчерпан. Записи из списка LSA, которые уже были запрошены, но еще не получены, помещаются в пакет LSR для повторной передачи по истечении интервала RxmtInterval. В любой момент времени может сохраняться по крайней мере один необработанный пакет LSR. Когда список запросов исчерпан и соседний маршрутизатор находится в состоянии Loading (передан и принят полный набор пакетов DD от соседа) для него генерируется событие Loading Done.

Таким образом, для маршрутизатора-получателя LSR, принятые пакеты содержат списки LSA, которые требует соседний маршрутизатор. Пакеты LSR

КОМПЬЮТЕРНАЯ АКАДЕМИЯ «ШАГ» 2009

должны восприниматься, если сосед находится так же в состояниях Exchange, Loading или Full. Для всех остальных состояний соседа пакеты LSR должны игнорироваться. Каждая запись LSA, указанная в пакете LSR, должна отыскиваться в базе данных маршрутизатора и копироваться в пакет Link State Update (LSU) для передачи соседу. Если LSA не удается найти в базе данных, это говорит о наличии ошибки в процессе Database Exchange и ведет к генерации события BadLSReq.

В соответствии с приведенным выше алгоритмом обработки пакетов LSR, маршрутизатор R3 отправляет в адрес R1 пакет типа Link State Update.

Проанализируем данный пакет, используя значения основных полей заголовка

OSPF и тела пакета Update.

Message type – 4, что соответствует Link State Update

Number of LSA – 1, количество LSA в данном пакете Link State Update

LS age – 104, количество секунд в течении которых существует данная LSA Flags – 0x02, или 00000010bin , что в соответствии с форматом LSA означает

флаг E (External), т.е. флаг для граничных маршрутизаторов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]