Постоянное назначение IP-адреса для встроенного устройства

Это продолжение встроенного устройства с плохим 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) для этой конкретной ситуации.

3 ответа

Жесткое кодирование IP-адресов (которые не могут быть изменены пользователем), как правило, не очень хорошая идея, если только ваша аудитория в основном не домашние пользователи. Использование диапазона 169.254./16 (RFC 3927) лучше, чем RFC1918, но типичная реализация RFC3927 - для устройства выдавать зонд ARP до привязки к IP-адресу. Хотя статическое назначение адреса из 169.254/16 является менее рискованным и навязчивым, чем адрес RFC1918 (APIPA, как называет его MS), существует небольшая вероятность того, что некоторые пользователи используют эту сеть для подключения к рабочей группе (особенно в магазинах MS).

Если два устройства входят в сегмент сети (широковещательный домен) с одним и тем же локальным адресом связи, это вызывает конфликт. Трафик на / с этих устройств либо замедляется, либо прерывается полностью. Эффект такого события, если устройства подключены к отдельным доменам коллизий, может отличаться. Поскольку подключение зависит от сопоставления MAC-адреса с IP-адресом, вы можете столкнуться с ситуацией, когда трафик, направленный на один и тот же адрес, попадает на другой узел, чем предполагалось. Кроме того, устройства, использующие статический ARP, могут столкнуться с различными проблемами. Опять же, такие проблемы могут быть минимальными (или вообще отсутствовать), если область действия RFC3927 мала или отсутствует.

Вы можете использовать openvswitch.org или аналогичный, который позволит вам программно выдавать статический IP-адрес, используя MAC-адрес клиента.

Неразумно объявлять IP на машине. Всегда лучше разрешить маршрутизатору назначать ему IP-адрес, динамический или статический. Если вам нужен дополнительный IP-адрес, VPN может быть одним из решений.

Другие вопросы по тегам