- 05. LLDP
- 5.2. Конфигурация LLDP
- 5.3. Пример конфигурации LLDP
- Lldp windows 10 настройка
- Содержание
- [править] Описание протокола
- [править] Принципы работы
- [править] Формат кадра LLDP
- [править] LLDP на коммутаторах ProCurve
- [править] Настройки по умолчанию
- [править] Информация о локальном устройстве
- [править] Информация о соседях
- [править] Настройки LLDP
- [править] Включение и выключение LLDP на коммутаторе
- [править] Изменение интервалов
- [править] Изменение режима отправки и получения сообщений LLDP
- [править] Указание управляющего адреса
- [править] Просмотр информации о настройках LLDP
- [править] Статистика LLDP
- [править] LLDP в Linux
- [править] LLDP в FreeBSD
- [править] LLDP в Windows
- [править] Сбор информации об устройствах
- [править] Написание скриптов для сбора информации об устройствах
- [править] Программы для сбора информации об устройствах
- [править] LLDP-MED
- [править] Классы устройств в LLDP-MED
- [править] Настройка LLDP-MED на коммутаторах ProCurve
- [править] Создание voice VLAN
- [править] Обязательные TLV
- [править] Управление PoE с помощью LLDP-MED
- [править] Другие протоколы обнаружения
05. LLDP
LLDP (Link Layer Discovery Protocol, 802.1ab) — протокол канального уровня, позволяющий коммутатору оповещать оборудование, работающее в локальной сети, о своем существовании и передавать ему свои характеристики, а также получать от него аналогичные сведения. Каждое устройство LLDP может отправлять информацию о себе соседям независимо от того, отправляет ли сосед информацию о себе. Устройство хранит информацию о соседях, но не перенаправляет её. Коммутатор может передавать и принимать такую информацию, как: имя порта (Port name), идентификатор порта (PortID), аппаратный адрес (ChassisID), адрес управления (Management address), описание порта (PortDesc), описание устройства (SysDesc).
5.2. Конфигурация LLDP
Включить функцию LLDP и настроить статус порта;
Настроить отправку Trap;
Настроить информацию, передаваемую опционально;
Настроить таблицу соседей;
Вывод информации и отладка.
Включить функцию LLDP и настроить статус порта:
Команда
Описание
! В режиме глобальной конфигурации
Включить LLDP глобально. Команда no отключает эту функцию
! В режиме конфигурации порта
Включить LLDP на порту. Команда no отключает эту функцию
lldp mode (send|receive|both|disable)
! В режиме конфигурации порта
Настроить режим LLDP на порту, send — только отправка, receive — только прием, both — оба направления (по умолчанию)
2. Настроить таймеры:
Команда
Описание
no lldp tx-interval
! В режиме глобальной конфигурации
Настроить интервал отправки LLDP сообщений в секундах. Команда no восстанавливает конфигурацию по-умолчанию — 30 секунд.
no lldp msgTxHold
! В режиме глобальной конфигурации
Настроить количество интервалов tx-interval — время жизни информации о соседе LLDP с момента последнего обновления. Команда no восстанавливает конфигурацию по-умолчанию — 4.
lldp transmit delay
no lldp transmit delay
! В режиме глобальной конфигурации
Задать время в течении которого коммутатор не будет принимать новые LLDP сообщения на порту после получения последнего. Команда no восстанавливает конфигурацию по-умолчанию — 2 секунды.
3. Настроить отправку Trap:
Команда
Описание
! В режиме конфигурации порта
Включить LLDP trap для порта. Команда no отключает эту функцию.
lldp notification interval
no lldp notification interval
! В режиме глобальной конфигурации
Задать время отправки trap после изменения LLDP таблицы. Команда no восстанавливает конфигурацию по-умолчанию — 5 секунд.
4.Настроить информацию, передаваемую опционально:
Команда
Описание
lldp transmit optional tlv [portDesc] [sysName] [sysDesc] [sysCap]
no lldp transmit optional tlv
! В режиме конфигурации порта
Задать LLDP TLV отправляемые опционально:
portDesc — description порта, sysName — имя коммутатора (hostname), sysDesc — описание коммутатора, sysCap — возможности системы. Команда no отключает опциональные tlv
lldp management-address tlv [A.B.C.D]
no lldp management-address tlv
! В режиме конфигурации порта
Передавать в качестве management-address tlv адрес [A.B.C.D]. Команда no отключает эту функцию.
5. Настроить таблицу соседей:
Команда
Описание
lldp neighbors max-num
no lldp neighbors max-num
! В режиме конфигурации порта
Задать максимальное число соседей на порту. Команда no восстанавливает конфигурацию по-умолчанию — 100.
! В режиме конфигурации порта
Задать действие при получении информации от нового соседа при превышении максимального числа соседей. delete — удалить соседа с наименьшим временем жизни, discard — не записывать информацию о новом соседе (по-умолчанию).
6. Вывод информации и отладка:
Команда
Описание
Вывести суммарную информацию о конфигурации LLDP на коммутаторе.
show lldp interface ethernet
Вывести информацию по конфигурации LLDP на порту коммутатора.
show lldp traffic
Вывести суммарную информацию об отправленных и полученных пакетах LLDP.
show lldp neighbors interface ethernet
Вывести информацию о соседях LLDP на интерфейсе
Выводить отладочную информацию о работе протокола LLDP на коммутаторе. Команда no останавливает вывод информации.
debug lldp packets interface ethernet
no debug lldp packets interface ethernet
Выводить отладочную информацию о работе протокола LLDP на порту коммутатора. Команда no останавливает вывод информации.
show debugging lldp
! В Admin режиме
Вывести информацию о состоянии вывода отладки LLDP на коммутаторе.
clear lldp remote-table
! В режиме конфигурации порта
Очистить информацию о соседях LLDP на интерфейсе.
5.3. Пример конфигурации LLDP
2 коммутатора соединены друг с другом одним линком. Порт коммутатора Switch B настроен только для получение LLDP сообщений. Порт коммутатора Switch A должен передавать информацию о описании порта и возможностях системы.
Конфигурация коммутаторов будет выглядеть следующим образом:
Конфигурация коммутатора Switch A:
Lldp windows 10 настройка
Link Layer Discovery Protocol (LLDP) — протокол канального уровня, который позволяет сетевым устройствам анонсировать в сеть информацию о себе и о своих возможностях, а также собирать эту информацию о соседних устройствах.
LLDP это стандартный протокол, который описан в IEEE 802.1AB.
Содержание
[править] Описание протокола
Каждое устройство, на котором включен LLDP, отправляет информацию о себе соседям независимо от того, отправляет ли сосед информацию о себе. При обмене сообщениями LLDP, не используется механизм запрос/ответ.
Устройство, использующее LLDP, хранит информацию о соседях, но не перенаправляет её дальше (независимо от того поддерживает ли устройство протокол LLDP).
Каждое устройство хранит информацию о соседях в MIB. Поэтому эта информация может использоваться различными управляющими хостами с помощью протокола SNMP.
Например, ProCurve Manager использует информацию LLDP для построения топологии сети и сбора инвентарной информации.
Информация об устройстве, которая может передаваться с помощью LLDP:
- Имя устройства (System Name),
- Описание устройства (System Description),
- Идентификатор порта (Port ID),
- Описание порта (Port Description),
- Возможности устройства (System Capabilities),
- Управляющий адрес (Management Address),
- и др.
[править] Принципы работы
Протокол работает только между непосредственно присоединенными устройствами. Это значит, что, например, на рисунке:
- Коммутатор sw4 получит LLDP-информацию от двух соседей core_sw (через два порта) и sw5400;
- Коммутатор core_sw получит LLDP-информацию только от sw4 (но через оба порта);
- Коммутатор sw5400 получит LLDP-информацию только от sw4.
Сообщения LLDP могут передаваться через порты, которые заблокированы STP, но не передаются через порты, которые заблокированы 802.1X.
[править] Формат кадра LLDP
Адрес получателя | Адрес отправителя | LLDP Ethertype | Данные LLDP | |
LLDP multicast адрес | MAC-адрес | 88-СС | LLDPDU | FCS |
6 байт | 6 байт | 2 байта | 1500 байт | 4 байта |
Сообщения LLDP инкапсулируются в Ethernet-кадр и передаются через все активные линки.
Для LLDP зарезервирован multicast MAC-адрес — 01:80:C2:00:00:0E. Это специальный зарезервированный MAC-адрес, который предполагает, что коммутаторы, получившие кадр с таким адресом получателя, не будут его передавать дальше.
LLDP передает информацию в сообщениях, которые называются LLDP Data Unit (LLDPDU).
В сообщениях LLDP содержатся несколько TLV (Type, Value, Length):
- Type — описывает тип информации, которая передается этой частью сообщения (7 бит);
- Length — размер поля Value (9 бит);
- Value — описывает определенную характеристику устройства.
LLDPDU состоит как минимум из четырёх обязательных TLV полей:
- Chassis ID TLV (Type = 1);
- Port ID TLV (Type = 2);
- Time To Live TLV (Type = 3);
- End of LLDPDU TLV (Type = 0).
Между обязательными TLV (после первых трёх и перед последним) могут размещаться другие (опциональные) TLV, например:
- Port Description TLV (Type = 4);
- System Name TLV (Type = 5);
- System Description TLV (Type = 6);
- System Capabilities TLV (Type = 7).
[править] LLDP на коммутаторах ProCurve
Коммутаторы ProCurve поддерживают протоколы LLDP и CDP. Однако, LLDP-сообщения они могут и генерировать и принимать, а CDP — только принимать.
В коммутаторах ProCurve таблицы LLDP и CDP взаимно пополняют друг друга. То есть, командами просмотра соседей обнаруженных по LLDP, можно увидеть и CDP-соседей. И наоборот.
[править] Настройки по умолчанию
По умолчанию на коммутаторах ProCurve включен LLDP, с такими параметрами:
- Режим отправки и получения — коммутатор и отправляет и принимает сообщения LLDP;
- Отправка SNMP-оповещений — выключена;
- Управляющий адрес (Management Address):
- если порт принадлежит только одному VLAN и в нем есть IP-адрес(а) — он анонсирует наименьший IP-адрес,
- если порт принадлежит только одному VLAN и в нем нет IP-адреса — он анонсирует 127.0.0.1,
- если порт принадлежит нескольким VLAN — он анонсирует наименьший IP-адрес из VLAN с наименьшим VID;
- Таймеры:
- Transmit Interval — 30 секунд. Частота отправки LLDP-сообщений соседям;
- Holdtime Multiplier — 4. Множитель, на который умножается Transmit Interval для получения TTL;
- Время жизни (TTL) — 120 секунд. Время в течении которого сосед будет хранить информацию об устройстве;
- Delay Interval — 2 секунды. Интервал, который коммутатор использует для задержки отправки объявлений LLDP, которые отправляются из-за изменений в LLDP MIB;
- Reinit Interval — 2 секунды. Минимальное время, которое порт должен подождать прежде чем он инициализируется снова после выключения LLDP, за которым следует изменение режима передачи сообщений LLDP.;
- Notification Interval — 5 секунды. Интервал между отправкой оповещений об изменении информации LLDP.
[править] Информация о локальном устройстве
Информация об устройстве на котором выполняется команда:
[править] Информация о соседях
Пример топологии (команды выполняются на коммутаторе sw4):
Информация о соседях:
Более подробная информация о соседе на 1 интерфейсе (коммутатор 3 уровня, но в данный момент работает как коммутатор 2 уровня):
Более подробная информация о соседе на 24 интерфейсе (коммутатор 3 уровня):
[править] Настройки LLDP
[править] Включение и выключение LLDP на коммутаторе
По умолчанию на коммутаторе включен LLDP.
Если после отключения LLDP, необходимо его снова включить:
[править] Изменение интервалов
[править] Transmit Interval
Transmit Interval — частота отправки LLDP-сообщений соседям. По умолчанию — 30 секунд.
Настройка transmit interval (из-за используемой команды называется также refresh interval):
Значение refresh-interval должно быть большим чем или равным 4 * delay-interval. Иначе коммутатор выдаст сообщение об ошибке.
Для изменения delay-interval необходимо использовать команду setmib lldpTxDelay.0 -i . По умолчанию delay-interval равен 2 секундам.
[править] Time-to-Live
Time-to-Live (TTL) — время в течении которого сосед будет хранить информацию об устройстве, которое отправило сообщение LLDP. По умолчанию — 120 секунд.
Значение TTL получается по формуле:
Изменение holdtime multiplier (по умолчанию 4):
[править] Delay Interval
Delay Interval — коммутатор использует этот интервал для задержки отправки объявлений LLDP, которые отправляются из-за изменений в LLDP MIB. По умолчанию delay-interval равен 2 секундам.
Если на коммутаторе часто изменяется LLDP MIB, то увеличение интервала может уменьшить количество отправляемых сообщений.
Интервал может быть изменен с помощью управляющего хоста SNMP (NMS) или с помощью команды setmib.
Значение refresh-interval должно быть большим чем или равным 4 * delay-interval. Иначе коммутатор выдаст сообщение об ошибке.
Изменение delay interval:
[править] Reinit Interval
Reinit Interval — минимальное время, которое порт должен подождать прежде чем он инициализируется снова после выключения LLDP, за которым следует изменение режима передачи сообщений LLDP. По умолчанию — 2 секунды.
Изменение reinit interval:
[править] Notification Interval
Notification Interval — интервал между отправкой оповещений об изменении информации LLDP. Если на интерфейсе включена отправка SNMP-сообщений, то частое изменение информации LLDP может привести к большому количеству trap. По умолчанию — 5 секунд.
Изменение notification interval:
[править] Просмотр информации о текущих значениях интервалов
Просмотр информации о текущих значениях интервалов на коммутаторе:
[править] Изменение режима отправки и получения сообщений LLDP
По умолчанию коммутатор и отправляет и принимает сообщения LLDP.
Синтаксис команды изменения режима отправки сообщений LLDP:
- port-list — перечень портов к которым применяется режим,
- txonly — только отправка LLDP-сообщений, входящие сообщения LLDP блокируются,
- rxonly — только получение LLDP-сообщений, исходящие сообщения LLDP блокируются,
- tx_rx — отправка и получение LLDP-сообщений (режим по умолчанию),
- disable — отключение отправки и получения LLDP-сообщений.
Пример перевода порта 3 в режим txonly:
Просмотр информации о текущем режиме портов:
Просмотр информации о текущем режиме порта 2:
[править] Указание управляющего адреса
По умолчанию коммутатор анонсирует управляющий адрес по таким правилам:
- если порт принадлежит только одному VLAN и в нем есть IP-адрес(а) — он анонсирует наименьший IP-адрес,
- если порт принадлежит только одному VLAN и в нем нет IP-адреса — он анонсирует 127.0.0.1,
- если порт принадлежит нескольким VLAN — он анонсирует наименьший IP-адрес из VLAN с наименьшим VID.
Однако, адрес может быть назначен административно.
Назначение IP-адреса, который будет анонсироваться как управляющий
Эта команда не позволяет назначить адрес полученный по DHCP или адрес, который не назначен статически в VLAN на коммутаторе.
Если, например, попытаться назначить несуществующий адрес как управляющий, то коммутатор выдаст такую ошибку:
Просмотр информации о том, какой адрес этот коммутатор анонсирует как управляющий:
Просмотр информации о том, какой адрес сосед анонсирует как управляющий:
[править] Просмотр информации о настройках LLDP
Настройки LLDP на коммутаторе:
Информация о настройках LLDP на интерфейсе, в том числе какие TLV отправляются (на коммутаторе с поддержкой LLDP-MED):
Информация о настройках LLDP на интерфейсе, в том числе какие TLV отправляются (на коммутаторе без поддержки LLDP-MED):
[править] Статистика LLDP
Статистика LLDP (на 23 интерфейсе сейчас соседа нет, но статистика о пакетах осталась):
Информация о статистике на конкретном интерфейсе:
[править] LLDP в Linux
Вообще, lldpd поддерживает не только LLDP, но также и CDP, EDP, SONMP и AgentX SNMP.
Активация соответствующих протоколов выполняется ключами:
Установка lldpd осуществляется принятым в дистрибутиве способом:
Ключи демону в Debian передаются через /etc/default/lldpd:
Запуск демона осуществляется командой:
Просмотреть информацию о LLDP-соседях:
На коммутаторе Linux-машина при этом видна так:
Виден её MAC-адрес, имя хоста, а также интерфейс, которым хост подключен к коммутатору.
Среди расширенных сведений можно увидеть версию ядра и IP-адрес системы.
[править] LLDP в FreeBSD
Поддержка LLDP в FreeBSD осуществляется при помощи программы openlldp, доступной в виде порта. Демон openlldpd отправляет по указанному ему сетевому интерфейсу информацию о системе, пользуясь протоколом LLDP.
Домашний сайт проекта: OpenLLDP (англ.)
[править] LLDP в Windows
Для того чтобы хосты Windows также могли использовать LLDP, необходимо установить LLDP-агент. Например, haneWIN LLDP Agent. Этот агент платный, однако в течении 30дневного периода его можно потестировать бесплатно.
Теперь хост по LLDP получил информацию о коммутаторе, к которому он подключен:
Более подробная информация о коммутаторе:
На коммутаторе Windows-машины с установленным LLDP-агентом видны так:
Более подробная информация:
[править] Сбор информации об устройствах
[править] Написание скриптов для сбора информации об устройствах
Информацию о множестве устройств, обменивающихся информацией по LLDP, можно собрать и представить в виде карты сети.
Вот пример простого скрипта, который обходит коммутаторы по SSH, узнает у них информацию о соседях, полученную по LLDP, и на её основе генерирует описание представления сети в виде graphviz-файла, который после дальнейшей обработки превращается в графическую схему:
В результате получаем схему соединения:
Вручную разобраться в хитросплетениях патчкордов было бы значительно сложнее.
[править] Программы для сбора информации об устройствах
Программа wiremaps пользуясь информацией, которую она может получить через протоколы LLDP, EDP, CDP и SONMP, а также из таблиц FDB и ARP, составляет описание сети и предоставляет его пользователю.
Подробнее о программе:
Нечто похожее делает программа NetDisco. Эта информация доступна через web-интерфейс.
Программа NeDi (Network Discovery and Inventory) собирает информацию с управляемых сетевых устройств и ведет учет и статистику как самих устройств, так и абонентских нод. Использует LLDP, CDP и ARP таблицы для построения наглядной топологии в растровом и векторном виде, а также для автоматического поиска новый управлемых устройств.
Подробнее о программе:
[править] LLDP-MED
Link Layer Discovery Protocol-Media Endpoint Discovery (LLDP-MED) — расширение стандарта LLDP, которое позволяет:
- Автоматически обнаруживать сетевые политики (VLAN, 802.1p, DSCP),
- Использовать более расширенное и автоматическое управление питанием на PoE хостах,
- Отслеживать местоположения устройств и топологию, в том числе таких устройств как IP-телефоны,
- Выполнять инвентаризацию устройств в сети и определение их характеристик
- Отслеживать перемещения устройств и отправлять SNMP-сообщения на соответствующий управляющий хост.
Описан в стандарте ANSI/TIA-1057.
LLDP-MED определяет такие TIA Organizationally Specific TLV:
- LLDP-MED Capabilities TLV (OUI = 00-12-BB, Subtype = 1)
- Network Policy TLV (OUI = 00-12-BB, Subtype = 2)
- Location Identification TLV (OUI = 00-12-BB, Subtype = 3)
- Extended Power-via-MDI TLV (OUI = 00-12-BB, Subtype = 4)
- Inventory — Hardware Revision TLV (OUI = 00-12-BB, Subtype = 5)
- Inventory — Firmware Revision TLV (OUI = 00-12-BB, Subtype = 6)
- Inventory — Software Revision TLV (OUI = 00-12-BB, Subtype = 7)
- Inventory — Serial Number TLV (OUI = 00-12-BB, Subtype = 8)
- Inventory — Manufacturer Name TLV (OUI = 00-12-BB, Subtype = 9)
- Inventory — Model Name TLV (OUI = 00-12-BB, Subtype = 10)
- Inventory — Asset ID TLV (OUI = 00-12-BB, Subtype = 11)
[править] Классы устройств в LLDP-MED
Устройства которые поддерживают LLDP-MED разбиты на три класса:
- Class 1 (generic endpoint devices): Эти устройства поддерживают базовые возможности обнаружения по LLDP, анонсирование сетевых политик (VLAN ID, приоритеты 802.1p и DSCP), управление PoE. Этот класс включает такие устройства как IP call controllers и communication-related сервера.
- Class 2 (media endpoint devices): Эти устройства поддерживают все возможности первого класса, плюс возможности media streaming. Это такие устройства как voice/media gateways, conference bridges, и media servers.
- Class 3 (communication devices): Эти устройства поддерживают все возможности первого и второго классов, плюс идентификацию местоположения, emergency 911 capability, поддержку коммутатора 2го уровня, управление информацией об устройстве. Как правило это IP телефоны или софт-телефоны.
[править] Настройка LLDP-MED на коммутаторах ProCurve
[править] Создание voice VLAN
Для того чтобы LLDP-MED анонсировал в TLV информацию о VLAN, должен быть создан voice VLAN и порт, на котором находится IP-телефон должен быть тегированным в этом VLAN.
Создание voice VLAN:
Просмотр информации о VLAN (метка voice выставлена у VLAN 10):
[править] Обязательные TLV
Для работы LLDP-MED на коммутаторе обязательно должны быть включены такие TVL (они включены по умолчанию):
- capabilities — позволяет коммутатору определить тип подключенного устройства и какие TLV устройство поддерживает;
- network_policy — используется для информирования устройства о номере VLAN (VLAN ID) и настройках QoS, которые ему присвоены. Подключенное устройство использует эту информацию для того чтобы настроить себя для работы в соответствующем VLAN. Если порт принадлежит нескольким voice VLAN, то коммутатор поместит в TLV VLAN с наименьшим VLAN ID.
- location_id — анонсирует настроенную информацию о местоположении устройства;
- poe — коммутатор использует это TLV для того чтобы анонсировать возможности и настройки приоритета PoE для порта. Подключенное устройство использует аналогичное TLV для того чтобы сообщить свои требования к PoE.
- macphy_config — коммутатор и подключенное устройство используют это TLV для того чтобы договариваться о скорости и режиме дуплекса. Поддерживается и в LLDP, но является обязательным только для LLDP-MED.
Информация о TLV на интерфейсе:
Если какие-либо из LLDP-MED TLV были отключены на интерфейсе, то можно их включить с помощью команды:
TLV macphy_config включается так:
[править] Управление PoE с помощью LLDP-MED
Включение/отключение возможности контроля и выделения PoE с помощью LLDP-MED (по умолчанию отключено):
Включить обнаружение PoE с помощью LLDP TLV advertisement:
[править] Другие протоколы обнаружения
Существуют аналогичные LLDP проприетарные протоколы обнаружения (discovery protocols):