Это продолжение Встроенное устройство настроено с неверным IP-адресом, могу ли я подключиться?
Мы производим встраиваемые устройства под управлением Linux. Пользователи могут изменять сетевую конфигурацию устройства (статический IP-адрес, DHCP-клиент и сервер). Zeroconf должен был быть запасным вариантом, когда пользователь забывает, что статический IP-адрес был назначен, но Zeroconf кажется нестабильным в реализации. Подключение клиента Windows часто приводит к тому, что клиент получает локальный адрес ссылки, который не может взаимодействовать с устройством.
К сожалению, кнопки аппаратного сброса нет. Я знаю, какой MAC-адрес имеет каждое устройство, но я не знаю, как использовать эту информацию, потому что сетевой стек устройства отклоняет данные, если я не знаю его IP-адрес.
Было бы плохо статически назначить дополнительный IP-адрес в диапазоне локальных ссылок (169.254.0.0/16) для eth0: 0? Таким образом, я могу написать утилиту восстановления, которая будет работать, когда устройство напрямую подключено к клиенту. (Никаких маршрутизаторов, но, возможно, коммутатор)
Что произойдет, если два наших устройства находятся в одной сети с одним и тем же локальным IP-адресом? У них будут разные основные IP-адреса.
Некоторые похожие продукты жестко кодируют частный IP-адрес (например, 192.168.1.2) для этой конкретной ситуации.
Жесткое кодирование IP-адресов (которые не могут быть изменены пользователем), как правило, не является хорошей идеей, если только ваша аудитория не состоит в основном из домашних пользователей. Использование диапазона 169.254./16 (RFC 3927) лучше, чем RFC1918, но типичная реализация RFC3927 заключается в том, что устройство выдает Зонд ARP перед привязкой к IP-адресу. Хотя статическое назначение адреса из 169.254 / 16 менее рискованно и навязчиво, чем адрес RFC1918 (APIPA, как его называет MS), существует небольшая вероятность того, что некоторые пользователи используют эту сеть для подключения к рабочей группе (особенно с магазинами MS).
Если два устройства входят в сегмент сети (широковещательный домен) с одним и тем же локальным адресом канала, это вызывает конфликт. Трафик к / от этих устройств либо замедляется, либо полностью прекращается. Эффект от такого события, если устройства подключены в разных доменах коллизий, может отличаться. Поскольку подключение зависит от сопоставления MAC-адреса с IP-адресом, вы можете столкнуться с ситуацией, когда трафик, направленный на один и тот же адрес, попадет на другой узел, чем предполагалось. В качестве альтернативы устройства, использующие статический ARP, могут столкнуться с другими проблемами. Опять же, такие проблемы могут быть минимальными (или отсутствовать), если объем RFC3927 невелик или отсутствует.