У меня есть устройство, которое можно использовать в двух разных сценариях.
Одним из них является то, что он подключен к обычной сети Ethernet локальной сети компании. В этой сети есть сервер DHCP, и ожидается, что устройство будет клиентом DHCP и автоматически получит IP-адрес.
Второй сценарий заключается в том, что устройство подключается непосредственно к ПК / ноутбуку с помощью кабеля локальной сети Ethernet. В этом случае ожидается, что устройство выбирает собственный IP-адрес, а также назначает IP-адрес ПК / ноутбуку. В этом случае устройство должно взять на себя роль DHCP-сервера.
Вы, наверное, уже видите, куда это идет. Я не хочу, чтобы пользователь устройства что-либо настраивал. Они должны иметь возможность просто подключить его, и это работает для них. Теперь проблема в том, что надежно определить, есть ли еще один DHCP-сервер в вашей сети, сложно. Да, я могу делать запросы DHCP и так далее. Я найду сервер 99% времени. Но в этот раз, когда я его не нахожу (например, из-за потери пакетов или длительного времени прохождения пакетов), если мое устройство затем становится сервером DHCP, оно отравляет всю сеть компании, выдавая IP-адреса в неправильном диапазоне. Как я могу решить эту проблему? Существуют ли какие-либо протоколы или меры безопасности, которые я могу предпринять, чтобы гарантировать, что они не будут мешать сети компании?
Мое устройство - это клиентское устройство, предлагающее услугу, вроде принтера. Это работает OpenWRT. Я сам его компилирую и управляю всеми файлами конфигурации. Пользователи обычно запускают Windows 7,8 или 10. Как я могу включить APIPA в OpenWRT? Или я могу включить AVAHI и совместимо ли это с Windows APIPA?