Поддержка LLDP

Описание

LLDP (Link Layer Discovery Protocol) — это протокол канального уровня (L2), используемый сетевыми устройствами для объявления о себе соседним устройствам и для их обнаружения.

В fastDPI LLDP нужен не для анализа трафика и не для построения карты сети — fastDPI генерирует и отправляет собственные LLDP-пакеты чтобы:

Быть обнаруженным соседним сетевым оборудованием (коммутаторами, роутерами).

Корректно встраиваться в разрыв кабеля — fastDPI представляется активным устройством, но не пересылает чужие LLDP-пакеты. Все входящие LLDP-пакеты безусловно дропаются.

Конфигурация LLDP

Секция lldp в файле конфигурации управляет поведением LLDP. Все параметры внутри секции, кроме device, являются опциональными.

Базовый шаблон конфигурации

lldp { enable=off trace=off pcap=off chassis= ttl=120 src_mac= dest_mac=01:80:c2:00:00:0e system_name= system_desc= device=01-00.0;enable=on;desc=port_description }

Конфигурационные параметры

Все параметры — горячие, применяются без перезапуска fastDPI.

Параметр	Описание	Возможные значения
enable	Включение/выключение поддержки LLDP. По умолчанию: если секция lldp присутствует в конфигурации — on, если отсутствует — off.	on, off
trace	Включение трассировки LLDP. При включении информация о формировании и отправке пакетов записывается в fastdpi_alert.log.	on, off
pcap	Включение записи LLDP-пакетов в pcap-файл (имя вида udpi_YYYYMMDDHHMMSS_XXXXX.pcap).	on, off
chassis	Значение Chassis-ID, передаваемое в LLDP-пакете. Если не задан — используется MAC-адрес из опции bras_arp_mac, а если и её нет — MAC-адрес порта.	Строка
ttl	Время жизни (Time To Live) LLDP-пакета в секундах.	Число (по умолчанию 120)
src_mac	Source MAC-адрес в Ethernet-заголовке LLDPDU. Если не задан — используется MAC из bras_arp_mac, иначе MAC порта.	MAC-адрес (например, aa:bb:cc:dd:ee:ff)
dest_mac	Destination MAC-адрес в Ethernet-заголовке LLDPDU.	MAC-адрес (по умолчанию 01:80:c2:00:00:0e — multicast LLDP)
system_name	Значение TLV System-Name в LLDP-пакете. Если не задан — TLV System-Name не включается.	Строка
system_desc	Значение TLV System-Description в LLDP-пакете. Если не задан — TLV System-Description не включается.	Строка
device	Указание порта, на котором надо отправлять LLDP-пакеты. Параметр может повторяться для разных портов. Имя порта должно соответствовать значению in_dev/out_dev. Внутри параметра через точку с запятой задаются подпараметры: • enable=on|off — включить/отключить отправку для этого порта (по умолчанию on) • desc=строка — значение TLV Port-Desc (если не задан — TLV Port-Desc не включается)	Формат: <имя_порта>[;enable=on|off][;desc=<строка>] Пример: device=01-00.0;enable=on;desc=WAN_port

Примеры конфигурации

Минимальная конфигурация, необходимая для включения поддержки LLDP

lldp { device=01-00.0 device=02-00.0 }

Конфигурация с заданием значений TLV Port-Desc для каждого порта

lldp { device=01-00.0;desc=WAN_port_1;enable=on device=02-00.0;desc=LAN_port_2;enable=on }

Управление через CLI

Команды для динамического управления LLDP:

Включить формирование и отправку LLDP-пакетов (немедленная отправка):

fdpi_cli lldp enable

Выключить формирование и отправку LLDP-пакетов:

fdpi_cli lldp disable

Пример вывода при включении:

LLDP enabled chassis='<n/a>' TTL=120 system: name='', desc=''
src_MAC=00:00:00:00:00:00 dest_MAC=01:80:c2:00:00:0e
Devices:
'01-00.0': enabled desc=''
'02-00.0': enabled desc=''

Диагностика и отладка

Трассировка

При включении параметра trace=on в секции lldp информация о формировании и отправке LLDP-пакетов записывается в лог-файл fastdpi_alert.log:

[INFO ][2026/05/25-10:56:31:700344][0x7f0a4aa34400] LLDP options:
enable : 1
trace : 1
pcap : 0
chassis : ''
ttl : 120
src_mac : -
dest_mac : 01:80:c2:00:00:0e
system_name : ''
system_desc : ''
device '01-00.0': enable=1 desc=''
device '02-00.0': enable=1 desc=''
[TRACE ][2026/05/25-10:56:31:700454][0x7f0a4aa34400] [LLDP]make_pdu: dev '01-00.0' PDU len=234
[TRACE ][2026/05/25-10:56:31:700475][0x7f0a4aa34400] [LLDP]make_pdu: dev '02-00.0' PDU len=234
[TRACE ][2026/05/25-10:56:31:850646][0x7f0a4aa34400] [LLDP]send_pdu: dev '01-00.0' via slave #0
[TRACE ][2026/05/25-10:56:31:850725][0x7f0a4aa34400] [LLDP]send_pdu: dev '02-00.0' via slave #0

Запись PCAP

При включении параметра pcap=on все сгенерированные LLDP-пакеты сохраняются в pcap-файл (имя вида udpi_YYYYMMDDHHMMSS_XXXXX.pcap).

Пример LLDPDU (результат работы)

Пример кадра, сгенерированного fastDPI (минимальная конфигурация, bras_arp_mac=00:01:02:33:44:f1):

00:01:02:33:44:f1 > 01:80:c2:00:00:0e, ethertype LLDP (0x88cc), length 78
Chassis ID TLV (1), length 7
Subtype MAC address (4): 00:01:02:33:44:f1
Port ID TLV (2), length 8
Subtype Local (7): 01-00.0
Time to Live TLV (3), length 2: TTL 120s
End TLV (0), length 0

Пакеты отправляются периодически с интервалом 2 минуты или немедленно по команде fdpi_cli lldp enable.