Стратегия принудительного обновления таблицы кулачков с нестандартного оборудования
У меня есть система, которая состоит из управляющего ПК, двух слоев коммутаторов и 50 пользовательских устройств. ПК непрерывно передает потокам 5,8 МБ / с (6000 кадров Ethernet / с) на устройства.
Я обнаружил, что каждая из конечных точек устройства видит весь этот трафик, а не только трафик, предназначенный для этого устройства. Это приводит к тому, что прошивка на устройствах немного задыхается.
Моя теория относительно того, почему это происходит: ПК настроен со статической таблицей ARP. Устройства отправляют данные только в ответ на эхо-запросы ICMP или запросы ARP. Поскольку мы не проверяем устройства во время нормальной работы, а таблица ARP на компьютере является статической (и, следовательно, запросы ARP не выполняются), устройства никогда не отправляют никаких данных, а коммутаторы никогда не узнают их MAC-адреса.
Вопрос 1: Является ли этот анализ правильным?
Я должен решить эту проблему. Есть четыре варианта:
- Вручную настройте кулачковые таблицы во всех коммутаторах.
- Обновляйте прошивку устройства, чтобы периодически что-то отправлять, обновляя таким образом таблицы кулачков переключателей.
- Управляющий ПК должен периодически пинговать устройства, вызывая реакцию устройств, что приводит к переключению обновлений.
- Из комментариев: Включите динамический ARP на управляющем ПК, настройте ttl, чтобы он был меньше, чем у записей коммутатора.
Итак, вопрос 2: является ли вариант 1 абсолютно правильным способом сделать это?
Теперь проблема с вариантом 1 заключается в том, что переключатели на месте неуправляемые, и я не могу их настроить. Чтобы использовать вариант 1, нам нужно заменить коммутаторы на управляемые. Я считаю, что в конечном итоге это того стоит, но сейчас это невозможно по ряду причин.
Я не хочу использовать вариант 3 или 4, потому что я хочу, чтобы решение этой проблемы было прозрачным для управляющего ПК и по другим причинам (в частности, вариант 4 имеет тонкие, но заметные проблемы с производительностью в этом приложении, описанные в комментариях ниже).
Поэтому я преследую вариант 2 прямо сейчас. Я решил изменить прошивку на каждом устройстве, чтобы отправлять произвольные запросы ARP с широковещательным MAC-адресом примерно каждые 30 секунд. Я выбрал ARP, потому что концептуально он кажется наиболее подходящим, хотя я также мог бы отправлять, например, пустые кадры Ethernet. Я выбрал пункт назначения широковещательной рассылки в надежде, что пакет пройдет через коммутаторы L2, достигнет коммутаторов L1 и заставит их также обновить свои таблицы.
Вопрос 3: Хотя это может быть не самый правильный вариант, будет ли он работать? Будет ли отправка бесплатных ARP-запросов периодически со всех 50 устройств вызывать неожиданные побочные эффекты? Я не знаю, что такое ttl записей таблицы кулачков коммутатора, я выбрал 30 секунд.
Вопрос 4: Есть ли другой вариант, который я не рассматриваю?
1 ответ
Проблема: Ethernet-коммутаторы наводняют пакеты на всех портах из-за бесполезных таблиц MAC, и этот трафик вызывает проблемы для некоторых устройств.
Решение: Как вы уже подумали: генерируйте некоторый трафик для построения таблиц MAC. Один из способов - заставить программу мониторинга сети проверять связь с каждым устройством. Это позволит создать таблицы MAC-адресов и позволит вам проверить, не выпадают ли некоторые устройства из сети.
Примечание: удален неправильный ответ из-за отвлечения внимания на ARP