20
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 20 LLDP — Xgu.ru 11.09.2009 http://xgu.ru/wiki/LLDP

Lldp — Xgu.ru

  • Upload
    khohol

  • View
    686

  • Download
    12

Embed Size (px)

DESCRIPTION

LLDP description

Citation preview

Page 1: Lldp — Xgu.ru

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

Page 2: Lldp — Xgu.ru

Описание протокола Каждое устройство, на котором включен 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

Page 3: Lldp — Xgu.ru

Для 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

Page 4: Lldp — Xgu.ru

Управляющий адрес (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

Page 5: Lldp — Xgu.ru

Информация о соседях:

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

Page 6: Lldp — Xgu.ru

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

Page 7: Lldp — Xgu.ru

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

Page 8: Lldp — Xgu.ru

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

Page 9: Lldp — Xgu.ru

....

Указание управляющего адреса

По умолчанию коммутатор анонсирует управляющий адрес по таким правилам:

если порт принадлежит только одному 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

Page 10: Lldp — Xgu.ru

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

Page 11: Lldp — Xgu.ru

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

Page 12: Lldp — Xgu.ru

Активация соответствующих протоколов выполняется ключами:

-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

Page 13: Lldp — Xgu.ru

# 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

Page 14: Lldp — Xgu.ru

Более подробная информация о коммутаторе:

На коммутаторе 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

Page 15: Lldp — Xgu.ru

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

Page 16: Lldp — Xgu.ru

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

Page 17: Lldp — Xgu.ru

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

Программы для сбора информации об устройствах

Программа 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

Page 18: Lldp — Xgu.ru

Подробнее о программе:

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

Page 19: Lldp — Xgu.ru

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

Page 20: Lldp — Xgu.ru

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