Linux. Поддержка LLDP

2026-09-18 · 3 мин. для прочтения
blog computer-science

Linux. Поддержка LLDP.

Содержание

1 Общая информация

  • LLDP (Link Layer Discovery Protocol).

2 Поддержка LLDP

2.1 Демоны

  • Основная логика работы с LLDP реализована в пользовательских демонах.
  • Наиболее распространены два:
    • lldpd
      • Универсальный демон, реализующий стандарт IEEE 802.1AB.
      • Умеет отправлять и принимать LLDP-пакеты, а также поддерживает совместимость с проприетарными протоколами (CDP от Cisco, EDP от Extreme, SONMP от Nortel).
      • Управление осуществляется через утилиту lldpcli.
    • lldpad
      • Демон, изначально созданный Intel для поддержки Data Center Bridging (DCB).
      • Он также реализует LLDP и DCBX (расширение для обмена параметрами DCB).
      • Управляется с помощью утилиты lldptool.

2.2 Поддержка в ядре Linux

  • Для работы некоторых функций, особенно связанных с DCB и аппаратной обработкой LLDP на высокоскоростных сетевых картах, требуется поддержка в ядре.
  • Параметр: CONFIG_DCB.
  • Если он не включен, некоторые сетевые карты (например, Intel) могут блокировать работу LLDP-агента на уровне прошивки.

2.3 Интеграция с NetworkManager

  • NetworkManager с версии 1.47.91 включает собственную библиотеку для приема LLDP-пакетов, основанную на коде из systemd.
  • nmstate начиная с версии 0.3.2 предоставляет возможность включать и настраивать LLDP через бэкенд NetworkManager.

2.4 Утилиты

  • ethtool для некоторых сетевых карт (например, Intel) позволяет управлять настройками FW-LLDP (Firmware LLDP).

3 Использование lldpd

  • lldpd является наиболее популярным решением.

3.1 Установка

3.1.1 Debian/Ubuntu

sudo apt install lldpd

3.1.2 RHEL

sudo dnf -y install lldpd

3.1.3 Gentoo

emerge net-misc/lldpd

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

3.2.1 Ключи

  • -x : Включает SNMP-субагент.
  • -c : Включает совместимость с Cisco Discovery Protocol (CDP).
  • -s : Включает совместимость с Nortel (SONMP).
  • -e : Включает совместимость с Extreme (EDP).

3.2.2 Debian/Ubuntu

  • Файл /etc/default/lldpd:
    DAEMON_ARGS="-x -c -s -e"
    

3.2.3 RHEL

  • Файл /etc/sysconfig/lldpd:

    LLDPD_OPTIONS="-x -c -s -e"
    
  • Каталог /etc/default/lldpd.d.

3.2.4 Gentoo

  • Файл /etc/conf.d/lldpd:

    LLDPD_OPTS="-c"
    
  • Юнит systemd не поддерживает конфигурацию из /etc/conf.d/lldpd для OpenRC.

  • Используем механизм drop-in для systemd.

  • Создайте drop-in файл:

sudo systemctl edit lldpd
  • В открывшемся редакторе добавьте:
[Service]
EnvironmentFile=-/etc/conf.d/lldpd
ExecStart=
ExecStart=/usr/sbin/lldpd $LLDPD_OPTS
  • Пустая строка ExecStart= необходима, чтобы сбросить исходную команду запуска.
  • Без неё systemd добавит вторую команду, что приведёт к ошибке.

3.2.5 Каталог /etc/default/lldpd.d.

3.3 Запуск службы

sudo systemctl enable --now lldpd
  • Проверить статус можно командой sudo systemctl status lldpd.

3.4 Просмотр информации о соседях

  • Для управления демоном и просмотра информации используется утилита lldpcli.

  • Просмотр всех соседей:

    sudo lldpcli show neighbors
    
  • Детальная информация о соседях:

    sudo lldpcli show neighbors details
    
  • Информация о локальных интерфейсах:

    sudo lldpcli show interfaces
    
  • Просмотр информации о локальном устройстве:

    sudo lldpcli show chassis
    

4 Использование NetworkManager

4.1 Включение LLDP через nmcli

  • Необходимо установить свойство connection.lldp для нужного сетевого соединения.

  • Имя соединения:

    nmcli connection show
    
  • Включите LLDP для соединения:

    sudo nmcli connection modify <имя_соединения> connection.lldp enable
    
  • Перезапустите соединение:

    sudo nmcli connection up <имя_соединения>
    

4.2 Просмотр информации о соседях

  • Показать всех соседей LLDP для всех интерфейсов:
nmcli device lldp list
  • Показать соседей для конкретного интерфейса:
nmcli device lldp list ifname eth0

4.3 Декларативная настройка через nmstate

sudo nmstatectl apply enable-lldp.yml
  • Далее можно использовать утилиту nmstate-autoconf для автоматического создания VLAN-интерфейсов на основе данных LLDP от коммутатора.
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы. Научные интересы относятся к области теоретической физики и математического моделирования.