У меня есть устройство, которое можно использовать в двух разных сценариях.

  1. Одним из них является то, что он подключен к обычной сети Ethernet локальной сети компании. В этой сети есть сервер DHCP, и ожидается, что устройство будет клиентом DHCP и автоматически получит IP-адрес.

  2. Второй сценарий заключается в том, что устройство подключается непосредственно к ПК / ноутбуку с помощью кабеля локальной сети Ethernet. В этом случае ожидается, что устройство выбирает собственный IP-адрес, а также назначает IP-адрес ПК / ноутбуку. В этом случае устройство должно взять на себя роль DHCP-сервера.

Вы, наверное, уже видите, куда это идет. Я не хочу, чтобы пользователь устройства что-либо настраивал. Они должны иметь возможность просто подключить его, и это работает для них. Теперь проблема в том, что надежно определить, есть ли еще один DHCP-сервер в вашей сети, сложно. Да, я могу делать запросы DHCP и так далее. Я найду сервер 99% времени. Но в этот раз, когда я его не нахожу (например, из-за потери пакетов или длительного времени прохождения пакетов), если мое устройство затем становится сервером DHCP, оно отравляет всю сеть компании, выдавая IP-адреса в неправильном диапазоне. Как я могу решить эту проблему? Существуют ли какие-либо протоколы или меры безопасности, которые я могу предпринять, чтобы гарантировать, что они не будут мешать сети компании?

Мое устройство - это клиентское устройство, предлагающее услугу, вроде принтера. Это работает OpenWRT. Я сам его компилирую и управляю всеми файлами конфигурации. Пользователи обычно запускают Windows 7,8 или 10. Как я могу включить APIPA в OpenWRT? Или я могу включить AVAHI и совместимо ли это с Windows APIPA?

2 ответа2

0

Это уже встроено в большинство IP-клиентов и называется APIPA: автоматическая частная IP-адресация.

Когда устройства подключаются к локальной сети, где нет DHCP-сервера, они общаются между собой и выбирают адреса APIPA. Обычно их легко идентифицировать, потому что они начинаются с 169.254 ... и часто указывают на отсутствие управления локальной сетью или доступа в Интернет.

Они также означают, что когда вы знаете, что подключены к какой-либо сети, вы можете найти адреса APIPA других устройств в сети и обмениваться данными с ними по их адресам.

0

На роутере

iptables -I INPUT 1 -i eth0 -p udp -m mac  ! --mac-source XX:XX:XX:XX:XX:XX -j DROP

Измените eth0 на свой NIC.

Измените MAC-адрес.

! значит нет. Это создает белый список того, с кем будет разговаривать ваш DHCP-сервер. Вы можете добавить спорт и / или dport опции, если это необходимо.

Включите ваш DHCP-сервер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .