Назад | Перейти на главную страницу

Стратегия принудительного обновления таблицы кулачков с пользовательского оборудования

У меня есть система, состоящая из управляющего ПК, двух уровней переключателей и 50 настраиваемых устройств. ПК непрерывно передает на устройства в общей сложности 5,8 МБ / с (6000 кадров Ethernet / с).

Я обнаружил, что каждая конечная точка устройства видит все этого трафика, а не только трафика, предназначенного для этого устройства. Из-за этого прошивка на устройствах немного задыхается.

Моя теория относительно того, почему это происходит, такова: ПК настроен со статической таблицей ARP. Единственный раз, когда устройства отправляют данные, - это ответ на эхо-запрос ICMP или запросы ARP. Поскольку мы не проверяем связь с устройствами во время нормальной работы и поскольку таблица ARP на ПК статична (и, следовательно, запросы ARP не выполняются), устройства никогда не отправляют никаких данных, и коммутаторы никогда не узнают свои MAC-адреса.

Вопрос 1: Это правильный анализ?

Я должен решить эту проблему. Есть четыре варианта:

  1. Вручную настройте таблицы кулачков на всех переключателях.
  2. Обновляйте прошивку устройства, чтобы периодически что-то отправлять, таким образом обновляя таблицы кулачков переключателей.
  3. Управляющий ПК должен периодически проверять связь с устройствами, что приводит к тому, что устройства отвечают, что приводит к переключению обновлений.
  4. Из комментариев: Включите динамический ARP на управляющем ПК, настройте ttl меньше, чем у записей коммутатора.

Так, вопрос 2: Вариант 1 - абсолютно правильный способ сделать это?

Проблема с вариантом 1 заключается в том, что имеющиеся переключатели неуправляемы, и я не могу их настроить. Для использования варианта 1 необходимо заменить переключатели на управляемые. Я считаю, что это того стоит в долгосрочной перспективе, но сейчас это невозможно по ряду причин.

Я не хочу использовать вариант 3 или 4, потому что я хочу, чтобы решение этой проблемы было прозрачным для управляющего ПК и по различным другим причинам (в частности, вариант 4 имеет тонкие, но заметные проблемы с производительностью в этом приложении, описанные в комментариях ниже).

Поэтому сейчас я ищу вариант 2. Я решил модифицировать прошивку на каждом устройстве, чтобы отправлять бесплатные ARP-запросы с широковещательным MAC-адресом примерно каждые 30 секунд. Я выбрал ARP, потому что концептуально он кажется наиболее подходящим, хотя я также мог отправить, например, пустые рамки Ethernet. Я выбрал место назначения широковещательной передачи в надежде, что пакет пройдет через коммутаторы L2, достигнет коммутаторов L1 и заставит их также обновить свои таблицы.

Вопрос 3: Хотя это может быть не самый правильный вариант, будет ли он работать? Будет ли периодическая отправка бесплатных ARP-запросов со всех 50 устройств вызывать какие-либо неожиданные побочные эффекты? Я не знаю, что такое ttl записей таблицы кулачков коммутатора, я произвольно выбрал 30 секунд.

Вопрос 4: Есть ли другой вариант, который я не рассматриваю?

Проблема: коммутаторы Ethernet рассылают пакеты по всем портам из-за пустых таблиц MAC, и этот трафик вызывает проблемы для некоторых устройств.

Решение: Как вы уже подумали: сгенерируйте некоторый трафик, чтобы таблицы MAC были построены. Один из способов - запустить программу мониторинга сети, проверяющую связь с каждым устройством. Это позволит создать таблицы MAC-адресов и проверить, не отключаются ли некоторые устройства от сети.

Примечание: удален неправильный ответ, чтобы отвлечься от ARP