Как я могу программно установить IP-адрес аппаратного устройства, у которого еще нет набора IP - PullRequest
2 голосов
/ 05 июня 2019

Мы разработали аппаратное устройство без экрана.Он использует TCP / IP для связи с сетью.В настоящее время это настраивается с помощью DHCP.

Однако нам хотелось бы настроить статический IP-адрес с помощью приложения, которое мне нужно будет разработать.Я заметил, что для некоторых устройств, таких как принтеры, существуют специальные приложения, которые они используют для установки такой информации.Но как они общаются с устройством, если ему еще не присвоен IP-адрес?

Используют ли они RAW-сокеты и собственный протокол?или есть более простой метод.Например, я вспоминаю много лет назад, когда использовал устройство Linux, которое каким-то образом получило свой начальный IP, запустив arping.Но я не понимаю, как это устанавливает IP для других хостов в сети.Тем не менее, это, казалось, сработало.Могу ли я подражать этому?

например, arp -s 191.168.2.2 00-40-9d-22-23-60

Итак, у меня есть идея, как это работает, но я хотел бы знать, чтообщий метод установки IP для встроенного устройства, у которого нет физического экрана для настройки этого.

Для ясности, это устройство не использует Linux.

1 Ответ

3 голосов
/ 05 июня 2019

Стандартный согласованный способ сделать это (для IPv4, но IPv6 аналогичен) по направлениям:

  1. Попробуйте получить IP-адрес через DHCP, пропустите шаг (2), еслиэто сработало.Это должно быть значением по умолчанию.
  2. Если ни один DHCP-сервер не ответил, используйте уникальный локальный адрес ссылки (Это адреса из блока 169.254.0.0/16, зарезервированные для этой цели. Некоторые частивыбранный адрес должен основываться на чем-то уникальном для устройства, например, на MAC-адресе, чтобы устройство всегда выбирало один и тот же LL-адрес, или чтобы сделать его полностью RFC-совместимым: выберите действительно случайный адрес из этого диапазона ипроверить это - повторно использовать его, когда это возможно). Выбранный адрес LL должен быть проверен на предмет любого другого использования в этой сети перед использованием с запросом arp на этот адрес (это, вероятно, то, что вы прочитали).Если кто-то ответит на этот запрос, выберите другой IP-адрес и повторите попытку.
  3. Теперь, когда у вас есть временный IP-адрес, вы можете использовать один из различных основанных на IP-Multicast протоколов обнаружения служб рекламировать ваше устройство в сети.
...