Могут ли LLDPDUs, созданные по стандарту 1905.1, быть отключены?

Вопрос или проблема

Я довольно нов в сетевом программировании. Я работаю над реализацией IEEE1905.1 на C. Я понимаю, что также будут создаваться LLDPDU.

Но бывает так, что сосед получает два LLDPDU с одинаковым идентификатором шасси и идентификатором порта. Таким образом, удалённая таблица LLDP будет изменяться при получении LLDPDU на соседнем устройстве.

Это нормально или я могу отключить LLDPDU, создаваемые 1905.1?

int iLLDPStatus = GetLLDPModuleStatus();
int i1905Status = Get1905ModuleStatus();
if (LLDPStatus) /* LLDP включен */
{
    SendLLDP(); /* Обязательные TLV и другие TLV (Dot1, Dot3, MED) */
}
else if (i1905Status) /* LLDP отключен, IEEE1905 включен */
{
    SendLLDPfrom1905(); /* Только обязательные TLV */
}

Ответ или решение

Возможность отключения LLDPDU, создаваемых IEEE 1905.1

В контексте реализации IEEE 1905.1 на языке C, вы поднимаете важный вопрос о возможности отключения LLDPDU (Link Layer Discovery Protocol Data Units), которые могут конфликтовать с аналогичными пакетами, отправляемыми вашим устройством. Это может привести к проблемам в удаленной таблице LLDP, что, в свою очередь, затрудняет правильное определение соседей в сети.

Основные аспекты работы LLDP и IEEE 1905.1

  1. LLDP и его назначение: LLDP — это протокол, который позволяет устройствам сети обмениваться информацией о своих идентификаторах, характеристиках и статусах. Он работает на канальном уровне и используется для построения базы данных соседних устройств.

  2. IEEE 1905.1: Этот стандарт объединяет различные технологии сетевого взаимодействия, такие как Ethernet и Wi-Fi, что позволяет им работать совместно. IEEE 1905.1 также определяет свои собственные структуры данных и процессы обмена, включая возможность генерации LLDPDU.

Проблема дублирующихся LLDPDU

Как вы отметили, получение нескольких LLDPDU с одинаковыми идентификаторами шасси (Chassis ID) и порта (Port ID) может вызвать путаницу на стороне устройства-оппонента. Это может привести к некорректному обновлению таблицы соседей и, следовательно, к проблемам взаимодействия между устройствами.

Возможность отключения LLDPDU

В приведенном вами коде есть логика, которая контролирует, отправляются ли LLDPDU в зависимости от статуса модулей LLDP и IEEE 1905.1. Рассмотрим следующий фрагмент:

int iLLDPStatus = GetLLDPModuleStatus();
int i1905Status = Get1905ModuleStatus();
if (LLDPStatus) /* LLDP is enabled */
{
    SendLLDP(); /* Mandatory TLVs and Other TLVs(Dot1, DOt3, MED) */
}
else if (i1905Status) /* LLDP is disabled, IEEE1905 is enabled */
{
    SendLLDPfrom1905(); /* Mandatory TLVs only */
}

В этом коде вы видите, что при включенном LLDP отправляются полные LLDPDU. Если LLDP отключен, но включен 1905.1, отправляются только обязательные TLV (Type-Length-Value) без дополнительных данных LLDP. Это означает, что вы уже имеете механизм для управления отправкой LLDPDU.

Рекомендации по реализации

  1. Отключение LLDPDU в IEEE 1905.1: Убедитесь, что ваша логика правильно обрабатывает варианты, чтобы избежать дублирования информации. Если LLDP включает в себя обширные и дополнительные TLV, может быть полезно применение простой логики для отправки только нужных пакетов.

  2. Конфигурация сети: Если дублирование LLDPDU становится серьезной проблемой, рассмотрите возможность настройки сети, чтобы согласовать параметры протоколов между устройствах. Например, если некоторые устройства работают только с IEEE 1905.1, целесообразно автоматически отключить генерирование LLDPDU.

  3. Тестирование: Обязательно проведите тестирование сценариев, чтобы удостовериться, что статус LLDP и 1905.1 работает как планировалось, и что конфликты не вызывают проблем на других устройствах.

Заключение

Ваша реализация позволяет контролировать создание LLDPDU в зависимости от статуса LLDP и IEEE 1905.1. Отключение ненужных LLDPDU может помочь избежать путаницы на уровне соседей и повысить общую стабильность вашей сети. Обязательно учитывайте настройки и требования всех устройств в вашей сети для достижения наилучших результатов.

Оцените материал
Добавить комментарий

Капча загружается...