Содержание

Поддержка LLDP

Описание

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

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

  1. Быть обнаруженным соседним сетевым оборудованием (коммутаторами, роутерами).
  2. Корректно встраиваться в разрыв кабеля — 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 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.