Upload
khohol
View
686
Download
12
Embed Size (px)
DESCRIPTION
LLDP description
Citation preview
LLDP Материал из Xgu.ru
Автор: Наташа Самойленко
Link Layer Discovery Protocol (LLDP) — протокол канального уровня, который позволяет сетевым устройствам анонсировать в сеть информацию о себе и о своих возможностях, а также собирать эту информацию о соседних устройствах.
LLDP это стандартный протокол, который описан в IEEE 802.1AB.
Если вы хотите чтобы Kemari побыстрее интегрировали в код Xen, прочитайте это сообщение [1] (http://lists.xensource.com/archives/html/xen-devel/2009-07/msg00431.html) и ответьте на него в список рассылки xen-devel письмом вида "I'm using (no using) Kemari and I want it to be integrated (but I would if it was integrated)". Хорошая вещь. Поддержим.
Содержание 1 Описание протокола
1.1 Принципы работы 1.2 Формат кадра LLDP
2 LLDP на коммутаторах ProCurve 2.1 Настройки по умолчанию 2.2 Информация о локальном устройстве 2.3 Информация о соседях 2.4 Настройки LLDP
2.4.1 Включение и выключение LLDP на коммутаторе 2.4.2 Изменение интервалов
2.4.2.1 Transmit Interval 2.4.2.2 Time-to-Live 2.4.2.3 Delay Interval 2.4.2.4 Reinit Interval 2.4.2.5 Notification Interval 2.4.2.6 Просмотр информации о текущих значениях интервалов
2.4.3 Изменение режима отправки и получения сообщений LLDP 2.4.4 Указание управляющего адреса
2.5 Просмотр информации о настройках LLDP 2.6 Статистика LLDP
3 LLDP в Linux 4 LLDP в FreeBSD 5 LLDP в Windows 6 Сбор информации об устройствах
6.1 Написание скриптов для сбора информации об устройствах 6.2 Программы для сбора информации об устройствах
7 LLDP-MED 7.1 Настройка LLDP-MED на коммутаторах ProCurve
7.1.1 Создание voice VLAN 7.1.2 Обязательные TLV
8 Другие протоколы обнаружения 9 Дополнительная информация
Page 1 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Описание протокола Каждое устройство, на котором включен 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 инкапсулируются в Ethernet-кадр и передаются через все активные линки.
10 Материалы по сетевым устройствам ProCurve на Xgu.ru
Несколько коммутаторов на которых включен LLDP
Page 2 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Для 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, с такими параметрами:
Режим отправки и получения — коммутатор и отправляет и принимает сообщения LLDP; Отправка SNMP-оповещений — выключена;
Формат кадра LLDP
Формат LLDP Data Unit (LLDPDU)
Page 3 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Управляющий адрес (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# show lldp info local-device LLDP Local Device Information Chassis Type : mac-address Chassis Id : 00 16 b9 10 60 00 System Name : sw4 System Description : ProCurve J8692A Switch 3500yl-24G, revision K.13.51,... System Capabilities Supported:bridge, router System Capabilities Enabled:bridge Management Address : LLDP Port Information Port | PortType PortId PortDesc -------- + -------- -------- -------- 1 | local 1 1 2 | local 2 2 ...... 22 | local 22 22 23 | local 23 23 24 | local 24 24
Информация о соседях
Пример топологии (команды выполняются на коммутаторе sw4):
Page 4 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Информация о соседях:
sw4(config)# show lldp info remote-device LLDP Remote Devices Information LocalPort | ChassisId PortId PortDescr SysName --------- + ------------------------- ------ --------- ---------------------- 1 | 00 15 60 ea 4e 00 1 1 core_sw 7 | 00 15 60 ea 4e 00 3 3 core_sw 24 | 00 17 08 ca eb 00 5 A5 sw5400
Более подробная информация о соседе на 1 интерфейсе (коммутатор 3 уровня, но в данный момент работает как коммутатор 2 уровня):
sw4(config)# show lldp info remote-device 1 LLDP Remote Device Information Detail Local Port : 1 ChassisType : mac-address ChassisId : 00 15 60 ea 4e 00 PortType : local PortId : 1 SysName : core_sw System Descr : ProCurve J4906A Switch 3400cl-48G, revision M.10.30, ROM ... PortDescr : 1 System Capabilities Supported : bridge, router System Capabilities Enabled : bridge Remote Management Address Type : all802 Address : 00 15 60 ea 4e 00
Более подробная информация о соседе на 24 интерфейсе (коммутатор 3 уровня):
sw4(config)# show lldp info remote-device 24 LLDP Remote Device Information Detail Local Port : 24 ChassisType : mac-address ChassisId : 00 17 08 ca eb 00 PortType : local PortId : 5 SysName : sw5400 System Descr : ProCurve J8697A Switch 5406zl, revision K.13.23, ROM K.12... PortDescr : A5 System Capabilities Supported : bridge, router System Capabilities Enabled : bridge, router
Page 5 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Remote Management Address Type : ipv4 Address : 10.1.67.1
Настройки LLDP
Включение и выключение LLDP на коммутаторе
По умолчанию на коммутаторе включен LLDP.
Отключение LLDP:
sw4(config)# no lldp run
Если после отключения LLDP, необходимо его снова включить:
sw4(config)# lldp run
Изменение интервалов
Transmit Interval
Transmit Interval — частота отправки LLDP-сообщений соседям. По умолчанию — 30 секунд.
Настройка transmit interval (из-за используемой команды называется также refresh interval):
sw4(config)# lldp refresh-interval <5-32768>
Time-to-Live
Time-to-Live (TTL) — время в течении которого сосед будет хранить информацию об устройстве, которое отправило сообщение LLDP. По умолчанию — 120 секунд.
Значение TTL получается по формуле:
refresh-interval * holdtime-multiplier
Изменение holdtime multiplier (по умолчанию 4):
sw4(config)# lldp holdtime-multiplier <2-10>
Значение refresh-interval должно быть большим чем или равным 4 * delay-interval. Иначе коммутатор выдаст сообщение об ошибке.
Для изменения delay-interval необходимо использовать команду setmib lldpTxDelay.0 -i <1-8192>. По умолчанию delay-interval равен 2 секундам.
Page 6 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Delay Interval
Delay Interval — коммутатор использует этот интервал для задержки отправки объявлений LLDP, которые отправляются из-за изменений в LLDP MIB. По умолчанию delay-interval равен 2 секундам.
Если на коммутаторе часто изменяется LLDP MIB, то увеличение интервала может уменьшить количество отправляемых сообщений.
Интервал может быть изменен с помощью управляющего хоста SNMP (NMS) или с помощью команды setmib.
Изменение delay interval:
sw4(config)# setmib lldpTxDelay.0 -i <1-8192>
Reinit Interval
Reinit Interval — минимальное время, которое порт должен подождать прежде чем он инициализируется снова после выключения LLDP, за которым следует изменение режима передачи сообщений LLDP. По умолчанию — 2 секунды.
Изменение reinit interval:
sw4(config)# setmib lldpReinitDelay.0 -i <1-10>
Notification Interval
Notification Interval — интервал между отправкой оповещений об изменении информации LLDP. Если на интерфейсе включена отправка SNMP-сообщений, то частое изменение информации LLDP может привести к большому количеству trap. По умолчанию — 5 секунд.
Изменение notification interval:
sw4(config)# setmib lldpnotificationinterval.0 -i <1-3600>
Просмотр информации о текущих значениях интервалов
Просмотр информации о текущих значениях интервалов на коммутаторе:
sw4# show lldp config LLDP Global Configuation LLDP Enabled [Yes] : Yes LLDP Transmit Interval [30] : 30 LLDP Hold time Multiplier [4] : 4 LLDP Delay Interval [2] : 2
Значение refresh-interval должно быть большим чем или равным 4 * delay-interval. Иначе коммутатор выдаст сообщение об ошибке.
Page 7 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
LLDP Reinit Interval [2] : 2 LLDP Notification Interval [5] : 5 .....
Изменение режима отправки и получения сообщений LLDP
По умолчанию коммутатор и отправляет и принимает сообщения LLDP.
Синтаксис команды изменения режима отправки сообщений LLDP:
sw4(config)# lldp admin-status <port-list> <txonly | rxonly | tx_rx | disable>
Параметры команды:
port-list — перечень портов к которым применяется режим, txonly — только отправка LLDP-сообщений, входящие сообщения LLDP блокируются, rxonly — только получение LLDP-сообщений, исходящие сообщения LLDP блокируются, tx_rx — отправка и получение LLDP-сообщений (режим по умолчанию), disable — отключение отправки и получения LLDP-сообщений.
Пример перевода порта 3 в режим txonly:
sw4(config)# lldp admin-status 3 txonly
Просмотр информации о текущем режиме портов:
sw4# show lldp config LLDP Global Configuation LLDP Enabled [Yes] : Yes LLDP Transmit Interval [30] : 30 LLDP Hold time Multiplier [4] : 4 LLDP Delay Interval [2] : 2 LLDP Reinit Interval [2] : 2 LLDP Notification Interval [5] : 5 LLDP Port Configuration Port | AdminStatus NotificationEnabled ----- + ----------- ------------------- 1 | Tx_Rx False 2 | Tx_Rx False 3 | TxOnly False 4 | Tx_Rx False 5 | Tx_Rx False .....
Просмотр информации о текущем режиме порта 2:
sw4(config)# sh lldp config 2 LLDP Port Configuration Detail Port : 2 AdminStatus [Tx_Rx] : Tx_Rx
Page 8 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
....
Указание управляющего адреса
По умолчанию коммутатор анонсирует управляющий адрес по таким правилам:
если порт принадлежит только одному VLAN и в нем есть IP-адрес(а) — он анонсирует наименьший IP-адрес, если порт принадлежит только одному VLAN и в нем нет IP-адреса — он анонсирует 127.0.0.1, если порт принадлежит нескольким VLAN — он анонсирует наименьший IP-адрес из VLAN с наименьшим VID.
Однако, адрес может быть назначен административно.
Назначение IP-адреса, который будет анонсироваться как управляющий
sw4(config)# lldp config <port-list> ipAddrEnable <ip-address>
Просмотр информации о том, какой адрес этот коммутатор анонсирует как управляющий:
sw4(config)# sh lldp info local-device LLDP Local Device Information Chassis Type : mac-address Chassis Id : 00 16 35 b2 16 00 System Name : sw1 System Description : ProCurve J4905A Switch 3400cl-24G, revision M.10.68,... System Capabilities Supported:bridge, router System Capabilities Enabled:bridge Management Address : Type:ipv4 Address:192.168.25.101 .....
Просмотр информации о том, какой адрес сосед анонсирует как управляющий:
sw4(config)# sh lldp i r 24 LLDP Remote Device Information Detail Local Port : 24 ChassisType : mac-address
Эта команда не позволяет назначить адрес полученный по DHCP или адрес, который не назначен статически в VLAN на коммутаторе.
Если, например, попытаться назначить несуществующий адрес как управляющий, то коммутатор выдаст такую ошибку:
sw4(config)# lldp config 1-3 ipAddrEnable 10.1.1.1 10.1.1.1: This IP address is not configured or is a DHCP address.
Page 9 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
ChassisId : 00 21 f7 62 6b 00 PortType : local PortId : 5 SysName : sw5400 System Descr : ProCurve J8698A Switch 5412zl, revision K.12.57, ROM K.12... PortDescr : A5 System Capabilities Supported : bridge, router System Capabilities Enabled : bridge Remote Management Address Type : ipv4 Address : 192.168.25.104
Просмотр информации о настройках LLDP
Настройки LLDP на коммутаторе:
sw4# show lldp config LLDP Global Configuation LLDP Enabled [Yes] : Yes LLDP Transmit Interval [30] : 30 LLDP Hold time Multiplier [4] : 4 LLDP Delay Interval [2] : 2 LLDP Reinit Interval [2] : 2 LLDP Notification Interval [5] : 5 LLDP Port Configuration Port | AdminStatus NotificationEnabled ----- + ----------- ------------------- 1 | Tx_Rx False 2 | Tx_Rx False 3 | Tx_Rx False .....
Информация о настройках LLDP на интерфейсе, в том числе какие TLV отправляются (на коммутаторе с поддержкой LLDP-MED):
sw5400(config)# show lldp config a5 LLDP Port Configuration Detail Port : A5 AdminStatus [Tx_Rx] : Tx_Rx NotificationEnabled [False] : False Med Topology Trap Enabled [False] : False TLVS Advertised: * port_descr * system_name * system_descr * system_cap * capabilities * network_policy * location_id * poe * macphy_config IpAddress Advertised:
Информация о настройках LLDP на интерфейсе, в том числе какие TLV отправляются (на коммутаторе без поддержки LLDP-MED):
Page 10 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
sw4(config)# show lldp config 24 LLDP Port Configuration Detail Port : 24 AdminStatus [Tx_Rx] : Tx_Rx NotificationEnabled [False] : False TLVS Advertised: * port_descr * system_name * system_descr * system_cap IpAddress Advertised:
Статистика LLDP
Статистика LLDP (на 23 интерфейсе сейчас соседа нет, но статистика о пакетах осталась):
sw4# show lldp stats LLDP Device Statistics Neighbor Entries List Last Updated : 2 days New Neighbor Entries Count : 4 Neighbor Entries Deleted Count : 1 Neighbor Entries Dropped Count : 0 Neighbor Entries AgeOut Count : 1 LLDP Port Statistics Port | NumFramesRecvd NumFramesSent NumFramesDiscarded ----- + -------------- ------------- ------------------ 1 | 8071 8034 0 2 | 0 0 0 3 | 0 0 0 4 | 0 0 0 5 | 0 0 0 6 | 0 0 0 7 | 8071 8034 0 8 | 0 0 0 .......... 23 | 5687 5659 0 24 | 8077 8036 0 25 | 0 0 0
Информация о статистике на конкретном интерфейсе:
sw4(config)# show lldp stats 23 LLDP Port Statistics Detail PortName : 23 Frames Discarded : 0 Frames Invalid : 0 Frames Received : 5687 Frames Sent : 5659 TLVs Unrecognized : 0 TLVs Discarded : 0 Neighbor Ageouts : 1
LLDP в Linux Вообще, lldpd поддерживает не только LLDP, но также и CDP, EDP, SONMP и AgentX SNMP.
Page 11 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Активация соответствующих протоколов выполняется ключами:
-x — AgentX SNMP -s — SONMP -c — CDP -f — FDP -e — EDP
Установка lldpd осуществляется принятым в дистрибутиве способом:
%# apt-get install lldpd
Ключи демону в Debian передаются через /etc/default/lldpd:
DAEMON_ARGS="-x -c -s -e"
Запуск демона осуществляется командой:
%# /etc/init.d/lldpd start
Просмотреть информацию о LLDP-соседях:
$ sudo lldpctl ------------------------------------------------------------------------------- LLDP neighbors ------------------------------------------------------------------------------- Interface: eth3 ChassisID: 00:15:60:79:8e:c0 (MAC) SysName: mossy SysDescr: ProCurve J4906A Switch 3400cl-48G, revision M.10.06, ROM I.08.11 (/sw/code/build/makf(ts_08_5)) MgmtIP: 192.168.18.1 Caps: Bridge(E) Router(E) PortID: 1 (local) PortDescr: 1 -------------------------------------------------------------------------------
На коммутаторе Linux-машина при этом видна так:
# sh lldp i r LLDP Remote Devices Information LocalPort | ChassisId PortId PortDescr SysName --------- + ------------------------- ------ --------- ---------------------- 1 | 00 04 75 82 53 43 00 ... eth3 xnt1 ...
Виден её MAC-адрес, имя хоста, а также интерфейс, которым хост подключен к коммутатору.
Среди расширенных сведений можно увидеть версию ядра и IP-адрес системы.
Page 12 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
# sh lldp i r 1 LLDP Remote Device Information Detail Local Port : 1 ChassisType : mac-address ChassisId : 00 04 75 82 53 43 PortType : mac-address PortId : 00 04 75 82 53 43 SysName : xnt1 System Descr : Linux 2.6.18-6-xen-686 #1 SMP Sun Feb 10 22:43:13 UTC 200... PortDescr : eth3 System Capabilities Supported : bridge, wlan-access-point, router System Capabilities Enabled : bridge Remote Management Address Type : ipv4 Address : 192.168.18.3
LLDP в FreeBSD Поддержка LLDP в FreeBSD осуществляется при помощи программы openlldp, доступной в виде порта. Демон openlldpd отправляет по указанному ему сетевому интерфейсу информацию о системе, пользуясь протоколом LLDP.
lldpd 0.3 (c) Copyright 2002 - 2006 The OpenLLDP Group Dual licensed under the GPL and Other/Proprietary licenses. This product borrows some code from the Open1X project. (http://www.open1x.org) Usage: lldpd [-c config file] [-i device] [-d debug_level] [-f] [-s] -c <path> : Use the config file <path> instead of the default. -i <interface> : Use <interface> for LLDP transactions -d <debug_level/flags> : Set debug verbosity. -f : Run in forground mode. -s : Remove the existing control socket if found. (Should only be used in system init scripts!) <debug_level> can be any of : A : Enable ALL debug flags. c : Enable CONFIG debug flag. s : Enable STATE debug flag. t : Enable TLV debug flag. i : Enable INT debug flag. n : Enable SNMP debug flag. x : Enable EXCESSIVE debug flag.
Домашний сайт проекта: OpenLLDP (http://sourceforge.net/projects/openlldp/) (англ.)
LLDP в Windows Для того чтобы хосты Windows также могли использовать LLDP, необходимо установить LLDP-агент. Например, haneWIN LLDP Agent (http://www.hanewin.net/lldp-e.htm). Этот агент платный, однако в течении 30дневного периода его можно потестировать бесплатно.
Теперь хост по LLDP получил информацию о коммутаторе, к которому он подключен:
Page 13 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Более подробная информация о коммутаторе:
На коммутаторе Windows-машины с установленным LLDP-агентом видны так:
switch# show lldp info remote-device LLDP Remote Devices Information LocalPort | ChassisId PortId PortDescr SysName --------- + ------------------------- ------ --------- ---------------------- 25 | gMTcheha 00 ... Attans... PC1 27 | Q78hheha 00 ... Attans... PC2 29 | qD89heha 00 ... Attans... PC3
Более подробная информация:
switch# show lldp info remote-device 25 LLDP Remote Device Information Detail Local Port : 25 ChassisType : local ChassisId : gMTcheha PortType : mac-address PortId : 00 1b fc 7d bb 1e SysName : PC1 System Descr : x86 Family 6 Model 15 Stepping 11, GenuineIntel - Windows... PortDescr : Attansic L1 Gigabit Ethernet 10/100/1000Base-T Controller System Capabilities Supported : station-only System Capabilities Enabled : station-only Remote Management Address Type : ipv4
Page 14 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Address : 192.168.25.1
Сбор информации об устройствах
Написание скриптов для сбора информации об устройствах
Информацию о множестве устройств, обменивающихся информацией по LLDP, можно собрать и представить в виде карты сети.
Вот пример простого скрипта, который обходит коммутаторы по SSH, узнает у них информацию о соседях, полученную по LLDP, и на её основе генерирует описание представления сети в виде graphviz-файла, который после дальнейшей обработки превращается в графическую схему:
#!/usr/bin/perl # lldp2dot # igor chubin, 2009 # Thanks to Natasha Samoylenko for the network @switches=qw/1 2 3 4 5 6 7 8 9/; @switches=map{ '[email protected]'.$_ } @switches; $PASSWORD='user'; $trigger=0; =cut # sh lldp i r LocalPort | ChassisId PortId PortDescr SysName --------- + ------------------------- ------ --------- ---------------------- 1 | 00 15 60 7a 58 80 1 1 VIRTUAL 7 | 00 15 60 7a 58 80 3 3 VIRTUAL 23 | 00 16 b9 10 60 00 1 1 sw3 24 | 00 21 f7 62 6b 00 5 A5 sw4 # sh lldp i l LLDP Local Device Information Chassis Type : mac-address Chassis Id : 00 16 35 b2 16 00 System Name : sw1 System Description : ProCurve J4905A Switch 3400cl-24G, revision M.10.68,... System Capabilities Supported:bridge, router System Capabilities Enabled:bridge Management Address : Type:ipv4 Address:192.168.25.101 =cut print "graph G {\nedge[len=2];\n"; for $SWITCH (@switches) { #print $SWITCH; $command="(sleep 2; echo ${PASSWORD}; sleep 2; echo; echo sh lldp i r;". " sleep 2; echo sh lldp i l; sleep 4; echo exit; sleep 2; echo exit; sleep 2; echo y)"; $result = ''; $lldp_i_r=''; @graphviz=(); if (open(SOCAT, "$command | socat - EXEC:'ssh ${SWITCH}',setsid,pty,ctty 2>&1 |")) { while(<SOCAT>) { #print $_; if (m/LocalPort/) { $trigger=1; } if ($trigger) { if ($trigger==1) { $lldp_i_r.=$_; } $result .= $_; if (m/LLDP Port Information/) { $trigger = 0; }
Page 15 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
if (m/^\s*$/) { $trigger=2; } } } close(SOCAT); } $result =~ m/System Name\s*:\s*(\S*)/; $node=$1; @lines = split /\n/, $lldp_i_r; splice(@lines,0,2); for $line (@lines){ @fields = split /\s+/, $line; if (substr($line,57,10) !~ /^\s*$/) { my $head = substr($line,47,10); #$fields[10]; $_=$head; s/\s*$//; s/^\s*//; s/[.]//g; $head=$_; my $tail = substr($line,2,10); #$fields[1]; $_=$tail; s/\s*$//; s/^\s*//; s/[.]//g; $tail=$_; my $node2 = substr($line,57,20); #$fields[11]; $node2 =~ s/\s*$//; $node2 =~ s/^\s*//; $node2 =~ s/[_.]//; $node =~ s/\s*$//; $node =~ s/^\s*//; $node =~ s/[_.]//; if (not $known{"$node $node2 $head $tail"}) { $known{"$node2 $node $tail $head"}="yes"; push @graphviz, " $node -- ".$node2."[headlabel=$head,taillabel=$tail];"; } } } #print $node, "\n", join("\n", @lines); print "\n", join("\n", @graphviz); } print "};"
Использование:
%$ lldp2dot > /tmp/network.dot %$ neato -Tpng -o /tmp/lldp2dot.png /tmp/network.dot
В результате получаем схему соединения:
Page 16 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Вручную разобраться в хитросплетениях патчкордов было бы значительно сложнее.
Программы для сбора информации об устройствах
Программа wiremaps пользуясь информацией, которую она может получить через протоколы LLDP, EDP, CDP и SONMP, а также из таблиц FDB и ARP, составляет описание сети и предоставляет его пользователю.
Подробнее о программе:
https://trac.luffy.cx/
Нечто похожее делает программа NetDisco (http://www.netdisco.org/). Эта информация доступна через web-интерфейс.
Программа NeDi (Network Discovery and Inventory) собирает информацию с управляемых сетевых устройств и ведет учет
и статистику как самих устройств, так и абонентских нод. Использует LLDP, CDP и ARP таблицы для построения наглядной топологии в растровом и векторном виде, а также для автоматического поиска новый управлемых устройств.
web-интерфейс программы wiremaps
Page 17 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
Подробнее о программе:
http://www.nedi.ch/
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 на коммутаторах ProCurve
Создание voice VLAN
Для того чтобы LLDP-MED анонсировал в TLV информацию о VLAN, должен быть создан voice VLAN и порт, на котором находится IP-телефон должен быть тегированным в этом VLAN.
Создание voice VLAN:
sw5400(config)# vlan 10 voice
Просмотр информации о VLAN (метка voice выставлена у VLAN 10):
web-интерфейс программы
NeDi
Page 18 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
sw5400(config)# sh vlans Status and Counters - VLAN Information Maximum VLANs to support : 256 Primary VLAN : DEFAULT_VLAN Management VLAN : VLAN ID Name | Status Voice Jumbo ------- -------------------- + ---------- ----- ----- 1 DEFAULT_VLAN | Port-based No No 10 VLAN10 | Port-based Yes No
Обязательные 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 на интерфейсе:
sw5400(config)# show lldp config a5 LLDP Port Configuration Detail Port : A5 AdminStatus [Tx_Rx] : Tx_Rx NotificationEnabled [False] : False Med Topology Trap Enabled [False] : False TLVS Advertised: * port_descr * system_name * system_descr * system_cap * capabilities * network_policy * location_id * poe * macphy_config IpAddress Advertised:
Если какие-либо из LLDP-MED TLV были отключены на интерфейсе, то можно их включить с помощью команды:
Page 19 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP
sw5400(config)# lldp config <port-id> medTlvEnable <capabilities | network_policy | location_id | poe>
TLV macphy_config включается так:
sw5400(config)# lldp config <port-id> dot3TlvEnable macphy_config
Другие протоколы обнаружения Существуют аналогичные LLDP проприетарные протоколы обнаружения (discovery protocols):
Cisco Discovery Protocol; Extreme Discovery Protocol; Nortel Discovery Protocol.
Дополнительная информация LLDP-MED и CDP (http://www.cisco.com/en/US/technologies/tk652/tk701/technologies_white_paper0900aecd804(англ.) — Сравнение LLDP-MED и CDP на сайте Cisco. LLDP tutorial (http://www.commsdesign.com/design_corner/showArticle.jhtml?articleID=59200019) (англ.) — Описание протокола LLDP и вариантов его использования.
Материалы по сетевым устройствам ProCurve на Xgu.ru
ProCurve Security ProCurve Router ProCurve NAC 800
Источник — «http://xgu.ru/wiki/LLDP» Категории: Автор Наташа Самойленко | ProCurve
Последнее изменение этой страницы: 09:55, 14 июля 2009.
Page 20 of 20LLDP — Xgu.ru
11.09.2009http://xgu.ru/wiki/LLDP