Смекни!
smekni.com

Основы работы компьютерной сети 6 (стр. 29 из 31)

Информационная часть сообщения содержит операцию SNMP и связанные с ней операнды, обозначающие реализации объекта, которые включены в данную транзакцию SNMP.

Сообщения SNMP официально называются протокольными единицами данных (protocol data units - PDU).

Рисунок 101 - Формат пакета SNMP

PDU операций get и set SNMP состоят из следующих частей:

Request-ID (идентификатор запроса).Устанавливает связь между командами и ответами.

Error-status (состояние сбоя).Указывает ошибку и ее тип.

Error-index (индекс ошибки). Устанавливвает связь между ошибкой и конкретной реализацией объекта.

Variable bindings (переменные привязки). Состоят из данных SNMP PDU. Пепеменные привязки устанавливают связь между конкретными переменными и их текущими значениями.

PDU ловушки несколько отличаются от PDU других операций. Они состоят из следующих частей:

Enterprise (предметная область). Идентифицирует тип объекта, генерирующего данную ловушку.

Agent address (адрес агента). Обеспечивает адрес объекта, генерирующего данную ловушку.

Generic trap type (групповой тип ловушки). Обеспечивает групповой тип ловушки.

Specific trap code (специфичный код ловушки). Обеспечивет специфичный код ловушки.

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

Variable bindings (переменные привязки). Обеспечивает перечень переменных, содержащих интересную информацию о ловушке.

Протокол покрывающего дерева Spanning Tree

Поддерживающие алгоритм STA мосты и коммутаторы автоматически создают активную древовидную конфигурацию связей (без петель), находя ее адаптивно с помощью обмена служебными пакетами.

Основные определения

В сети определяется корневой мост (root bridge), от которого строится дерево.

Для каждого моста определяется корневой порт (root port), который имеет кратчайшее из всех портов данного моста расстояние до корневого моста (точнее, до любого из портов корневого моста).

Расстояние до корня (root path cost) определяется как суммарное условное время на передачу данных от порта данного моста до порта корневого моста. Условное время сегмента (designated cost) рассчитывается как время, затрачиваемое на передачу одного бита информации в 10-наносекундных единицах между непосредственно связанными по сегменту сети портами. Так, для сегмента Ethernet это время равно 10 условным единицам, а для сегмента Token Ring 16 Мб/с - 6.25.

Для каждого логического сегмента сети выбирается назначенный мост (designated bridge), один из портов которого будет принимать пакеты от сегмента и передавать их в направлении корневого моста через корневой порт данного моста, а также принимать пакеты для данного сегмента, пришедшие на корневой порт со стороны корневого моста. Назначенный порт сегмента имеет наименьшее расстояние до корневого моста, среди всех портов, подключенных к данному сегменту, он может быть только один. У корневого моста все порты являются назначенными, а их расстояние до корня полагается равным нулю. Корневого порта у корневого моста нет.

Для того, чтобы мосты могли идентифицировать себя и своих ближних и дальних соседей по сети, каждой мост, поддерживающий STA, имеет уникальный идентификатор. Этот идентификатор состоит из двух частей. Младшую часть составляет MAC-адрес моста (6 байт). Старшая часть (2 байта) является приоритетом данного моста, и его может изменять администратор сети по своему усмотрению (напомним, что MAC-адрес устанавливается производителем для обеспечения его всемирной уникальности).

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

Порты внутри каждого моста также имеют свои идентификаторы. Идентификатор порта состоит из 2 байтов, первый из которых (старший) может изменяться администратором и является приоритетом порта, а второй представляет собой порядковый номер порта для данного моста (номера портов начинаются с единицы). Идентификатор порта используется при выборе корневого и назначенного порта моста - если несколько портов имеют одинаковое расстояние до корня, то выбирается тот порт, идентификатор которого меньше.

Инициализация топологии

Для автоматического определения начальной активной конфигурации дерева все мосты сети после их инициализации начинают периодически обмениваться специальными пакетами, называемыми протокольными блоками данных моста - BPDU (Bridge Protocol Data Unit).

Пакеты BPDU помещаются в поле данных кадров канального уровня. Все мосты должны поддерживать общий групповой адрес, с помощью которого кадры, содержащие пакеты BPDU, передаются одновременно всем мостам сети.

Пакет BPDU содержит следующие поля:

Идентификатор версии протокола STA - 2 байта. Мосты должны поддерживать одну и ту же версию протокола STA, иначе может установиться активная конфигурация с петлями.

Тип BPDU - 1 байт. Существует два типа BPDU - конфигурационный BPDU, т.е. заявка на возможность стать корневым мостом, на основании которой происходит определение активной конфигурации, и BPDU уведомления о реконфигурации, которое посылается мостом, обнаружившим событие, требующее проведение реконфигурации - отказ линии связи, отказ порта, изменение приоритетов моста или портов.

Флаги - 1 байт. Один бит содержит флаг изменения конфигурации, второй бит - флаг подтверждения изменения конфигурации.

Идентификатор корневого моста - 8 байтов.

Расстояние до корня - 2 байта.

Идентификатор моста - 8 байтов.

Идентификатор порта - 2 байта.

Время жизни сообщения - 2 байта. Измеряется в единицах по 0.5 с, служит для выявления устаревших сообщений. Когда пакет BPDU проходит через мост, тот добавляет ко времени жизни пакета время его задержки данным мостом.

Максимальное время жизни сообщения - 2 байта. Если пакет BPDU имеет время жизни, превышающее максимальное, то он игнорируется мостами.

Интервал hello, через который посылаются пакеты BPDU.

Задержка смены состояний - 2 байта - минимальное время перехода портов моста в активное состояние. Такая задержка необходима, чтобы исключить возможность временного возникновения альтернативных маршрутов при неодновременной смене состояний портов во время реконфигурации.

У пакета BPDU уведомления о реконфигурации отсутствуют все поля, кроме двух первых.

После инициализации каждый мост сначала считает себя корневым. Поэтому он начинает через интервал hello генерировать через все свои порты сообщения BPDU конфигурационного типа. В них он указывает свой идентификатор в качестве идентификатора корневого моста (и в качестве данного моста также), расстояние до корня устанавливается в 0, а в качестве идентификатора порта указывается идентификатор того порта, через который передается BPDU.

В исходном состоянии каждый мост не только передает BPDU через все свои порты, но и принимает через все порты BPDU, передаваемые другими мостами. Мост в течение интервала установления начальной конфигурации фиксирует значения нескольких своих внутренних переменных:

RI (Root Identifier) - идентификатор корневого моста, в начальный момент работы алгоритма STA каждый мост присваивает этой переменной свой собственный идентификатор.

minRPCi (min Root Path Cost) - наименьшее значение расстояния до корня, встретившееся в пакетах BPDU, принятых от корневого моста по i-му порту. Для каждого порта моста имеется своя переменная minRPCi, начальное значение которой равно максимально допустимому значению расстояния, определяемому форматом переменной.

minBi и minPi - идентификаторы моста и порта, от которого поступил пакет, на основании которого присвоено значение расстояния до корня переменной minRPCi - по две переменные на каждый порт.

При поступлении сообщений на порты, сначала мост сравнивает значение идентификатора корневого моста из BPDU с текущим значением переменной RI. Если это значение больше текущего значения RI, то принятый пакет просто уничтожается. Их равенство говорит о принятии пакета от уже известного корня. Находящееся в пакете расстояние до корня сравнивается с найденным ранее минимальным расстоянием minRPCi, и если новое значение меньше, то оно переписывается в переменную minRPCi данного порта. Затем мост наращивает значение поля расстояния до корня на величину условного времени сегмента, по которому пришел пакет, помещает в поле идентификатора моста свой идентификатор и передает этот пакет на все свои порты, кроме того порта, от которого получен пакет. В переменные minBi и minPi записываются идентификаторы моста, от которого получен пакет BPDU, и его порта. Если же значение идентификатора корневого моста у принятого BPDU меньше текущего, то это значит, что обнаружен мост, у которого больше прав претендовать на звание корневого. Его идентификатор фиксируется в переменной RI, а все значения переменных minRPCi устанавливаются в исходное значение, так как они были вычислены ранее на основании расстояний до моста, на самом деле корнем не являющегося. Затем пакет BPDU обрабатывается точно по тому же алгоритму, что и в предыдущем случае.

После истечения времени установления активной конфигурации у всех мостов происходит фиксация идентификатора корневого моста. Мост, который в течение всего времени процесса установления конфигурации считал себя корневым, окончательно удостоверяется в этом. Все его порты устанавливаются в состояние назначенных.