Протокол обнаружения сетевых устройств на канальном уровне

23 май, 2005 - 23:00Леонід Бараш

Согласованная работа различных узлов в локальной сети (LAN) требует корректной конфигурации протоколов и приложений, которые выполняются и поддерживаются ими. По мере того как число различных типов устройств в сети растет, сетевым администраторам все труднее становится отслеживать правильность конфигурации каждого из них, одновременно все большее количество времени тратится на то, чтобы обнаружить и устранить проблемы. Стандарт 802.1AB, или Link Layer Discovery Protocol (LLDP), обеспечит решение проблем конфигурации, вызванных расширением LAN.

Общие положения

LLDP определяет стандартный метод для устройств в сети Ethernet, таких как коммутаторы, маршрутизаторы и беспроводные точки доступа, с помощью которого устройства распространяют информацию о себе среди других узлов в сети и сохраняют полученные данные. В частности, LLDP определяет набор общих информационных сообщений (advertisement messages), протокол для их передачи и метод хранения. Множество таких сообщений посылается устройством через локальную сеть с помощью одного пакета в форме поля «тип, длина, значение» (Type Length Value – TLV). Первый параметр указывает на вид данных, второй определяет длину пакета в октетах, а третий содержит непосредственно информацию. Все LLDP-устройства должны обязательно поддерживать сообщения с идентификаторами шасси (chassis ID) и портов (port ID), но, как ожидается, большинство реализаций будет также поддерживать такие параметры, как системное имя (system name), системный дескриптор (system descriptor) и системные возможности (system capabilities). Первые два из них обеспечивают полезную информацию для сбора инвентаризационных данных.

Протокол обнаружения сетевых устройств на канальном уровне

LLDP-пакеты передаются периодически и сохраняются в течение определенного времени. Рекомендованная IEEE частота передачи составляет 30 с, но она может регулироваться. Устройства хранят полученные от соседей данные в информационной базе MIB (Management Information Base), которая предусматривается протоколом SNMP. Она актуальна в течение отрезка времени, определяемого значением поля Time to Live (TTL), содержащегося внутри полученного пакета. Рекомендуемое IEEE значение – 120 с, однако допустимый диапазон – от 0 до 65 000 с. Каждый раз, когда устройство получает пакет, оно сохраняет данные и включает таймер, который сравнивается со значением TTL. При совпадении значений устройство удаляет хранимую информацию. Таким образом сетевые системы управления получают только актуальные данные.

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

Агент LLDP

На сетевом устройстве, которое поддерживает LLDP, должен быть установлен соответствующий агент. Его архитектура просто описывается в терминах SNMP MIB (см. рис.) Информация о локальных (не удаленных) устройствах LAN, передаваемая агентом, сохраняется в базе локальных устройств LLDP local system MIB. В случае, если локальное устройство передает информацию более высокого уровня иерархии – организационного (organization specific information) в формате TLV, она сохраняется в организационной базе локального устройства Organizationally defined local device LLDP. Информация, относящаяся к удаленным устройствам, определяется как удаленная системная информация и хранится в LLDP remote system MIB, а для данных организационного уровня от удаленных устройств предназначается база Organizationally defined remote device LLDP MIB. Следует заметить, что базы организационного уровня не являются обязательными в спецификации протокола.

Как работает агент LLDP

Агент LLDP может оперировать в трех режимах:

  • только передача: агент может только передавать информацию о возможностях и текущем состоянии локальной системы;
  • только прием: агент может только принимать информацию о возможностях и текущем состоянии удаленных систем;
  • передача и прием: агент может передавать информацию о возможностях и статусе локальной системы и принимать аналогичную информацию от удаленных систем.

В типичном случае операции агента реализуются двумя модулями: передающим и приемным. Правда, двухмодульный подход только рекомендуется стандартом, но не является обязательным. При наличии передающего модуля он посылает информацию о локальных устройствах через регулярные отрезки времени. Данные посылаются в формате соответствующих TLV. При запрещении работы модуль передает TLV со значением TTL 0 в информационном поле. Это позволяет удаленным устройствам изъять из своих баз данных информацию, связанную с этим локальным устройством.

Приемный модуль, если он существует, получает информацию от удаленных устройств и обновляет соответствующую базу LLDP MIB. После приема данных запускается таймер для отсчета их времени актуальности, которое определено значением TTL TLV. Информация об удаленных системах стирается из базы при значении TTL 0 в информационном поле TLV.

Протоколом предусматривается передача данных только в одном направлении. То есть LLDP-устройства не обмениваются информацией в режиме запрос–ответ, а также не подтверждают ее получение. Каждый LLDP-пакет должен содержать четыре обязательных TLV:

  • chassis ID TLV: идентифицирует шасси устройств LAN 802;
  • port ID TLV: идентифицирует порт, через который передается LLDP-пакет;
  • TTL TLV: указывает отрезок времени в секундах, в течение которого полученная информация актуальна;
  • end of TLV: определяет конец TLV.

Кроме обязательных, протокол может включать ряд опциональных наборов TLV, на которых мы не будем останавливаться.

Таким образом, сам по себе LLDP не конфигурирует устройства и не управляет трафиком – он только распространяет информацию, относящуюся к конфигурации на уровне 2. И хотя сами устройства не могут запросить данные друг у друга, но приложения по управлению сетью имеют возможность запросить информацию, хранящуюся в базе SNMP MIB, построить текущую физическую топологию сети, а также определить несоответствия в имеющейся конфигурации.