Вопрос: Что такое хороший IP-адрес по умолчанию?


Моя компания делает Ethernet-устройства. У этих устройств очень мало ввода-вывода. Нет клавиатуры, нет видеовыхода. Когда клиент получает устройство, он должен настроить его для своей сети. Я хотел бы выбрать IP-адрес, который не будет конфликтовать с существующим устройством в его сети, но его сеть может быть чем угодно.

У некоторых клиентов сети 192.168.x.x. У других есть сети 10.x.x.x.

Большинство сетевых устройств (в частности, маршрутизаторы) поставляются с 192.168.x.1. Но это не маршрутизатор, поэтому я не хочу, чтобы по умолчанию был низкий IP-адрес, так как это будет иметь более высокую вероятность конфликта.

Что такое хороший IP-адрес для доставки продукта? Существуют ли полу-частные / неиспользуемые сети класса C?


6
2017-08-04 13:23


Источник


Термин «класс С» датирован и больше не имеет отношения к делу. Я бы порекомендовал забыть все, что вы знаете о «классной» маршрутизации и подсети. Теперь. - Evan Anderson
Какие устройства? Делает разницу, фактически. У них есть локальное чардовое приложение, которое можно использовать для их настройки (ЖК-дисплей, некоторые кнопки)? - TomTom


Ответы:


Пусть он назначается сервером DHCP? если нет, я бы предложил использовать 192.168.0.250. Но DHCP определенно предпочтительнее


14
2017-08-04 13:26



Чтобы настроить устройство, клиент должен получить доступ к встроенному веб-серверу. Как вы находите устройство, если оно динамически назначено? - Robert
Вы также можете добавить DNS :) - codymanix
+1 для DHCP. не уверен относительно предложения статического ip-адреса - Nick Kavadias
Вы просите своего клиента добавить устройство в сеть, которую они не контролируют. ИТ-админы будут вовлечены, когда они узнают, что несанкционированное устройство находится в сети. По крайней мере, любой ИТ-администратор стоит своей соли. Говоря, что вы по умолчанию используете адрес 192.168.0.X, вы привязываетесь к сетям хостов, которые используют частное адресное пространство 192.168.x.x. Что делать, если ваш клиент подключается к сети с использованием адресов 172.16-172.31? OR 10.x.x.x? - peelman
Еще одно голосование за DHCP по умолчанию. Если в более крупной сети или удаленном местоположении администратор person / network может настроить выделение DHCP фиксированного адреса на основе MAC устройства. Если в локальной подсети пользователь может просто пинговать местный широковещательный адрес, тогда посмотрите / grep таблицу arp для MAC. - Jeremy M


Избегайте фиксированного адреса. Даже если вы попытаетесь избежать адресов, обычно встречающихся для других устройств (например, маршрутизаторов), вы все равно должны спросить себя: что, если у пользователя есть два или более устройства?

Как заявили многие люди, вы должны попытаться автоматически настроить устройство с помощью DHCP. Таким образом, сетевой администратор может легко управлять адресом вашего устройства по центру с сервера DHCP.

Если вы не настроитесь на DHCP, ваше устройство должно настроить link-local address в диапазоне 169.254 / 16. Любой хост, подключенный по той же ссылке с совместимым стеком и не разбитой конфигурацией, должен иметь возможность подключиться к вашему устройству с использованием локального адреса по умолчанию и затем настроить его на желаемый адрес.

RFC 3927 подробно описывает, как устройство настраивает свой локальный адрес. В реферате этого RFC говорится:

Для участия в широкополосных IP-сетях хост должен быть   с IP-адресами для своих интерфейсов, либо вручную   пользователя или автоматически из источника в сети, такого как   Сервер протокола DHCP.   К сожалению, такая информация конфигурации адреса не может   всегда доступны. Поэтому выгодно, чтобы хозяин был   может зависеть от полезного подмножества функций IP-сети, даже если   конфигурация адреса отсутствует. В этом документе описывается   как хост может автоматически настроить интерфейс с помощью IPv4   адрес в префиксе 169.254 / 16, который действителен для связи   с другими устройствами, подключенными к одной и той же физической (или логической) ссылке.

Решение кажется идеально подходящим для вашей проблемы.

Короче говоря, фактическая реализация, описанная в RFC, заключается в выборе PRN с использованием MAC-адреса устройства в качестве семени. На практике многие устройства, которые я видел, используют последние два октета MAC-адреса в качестве последних двух октетов для 169.254.x.y, а в случае столкновения получают следующий номер из PRNG.

PS: На самом деле я удивлен, что через 10 часов и с 8 предыдущими ответами никто не упоминал ссылки-локальные адреса. К сожалению, теперь, когда этот вопрос устарел и имеет принятый ответ, вполне вероятно, что этот ответ будет упущен большинством людей.


8
2017-08-04 23:28



DHCP - разумный способ пойти, но вы получаете +1 за упоминание локального адреса ссылки для тех сетей, которые не запускают DHCP. - John Gardeniers
Локальные локальные адреса также называются адресами Auto-IP или AutoIP. - Mark Lakata


Существуют фактически протоколы, разработанные специально для puroses открытия. Одним из примеров является Протокол обнаружения уровня канала (LLDP), Если вы действительно хотите надежное решение, вам, вероятно, стоит подумать над чем-то вроде этого.

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


6
2017-08-04 13:46



Я не думаю, что LLDP действительно имеет дело с назначением IP-номеров. - Mark Lakata


DHCP и DNS могут быть хорошим решением, если бы не тот факт, что в большом количестве сетей там нет сервера и используются фиксированные IP-адреса. Если вы не хотите блокировать этих людей от использования вашего устройства, вам, по крайней мере, нужно будет вернуться к какой-либо другой системе.

ZeroConf был изобретен для решения именно этой ситуации: нет DHCP или DNS-сервера. Действительно, это решило бы эту проблему очень хорошо - устройство присваивает себе адрес AutoIP, а затем рекламирует свои службы, чтобы вы могли найти его независимо от его IP-адреса. Проблема с ZeroConf заключается в том, что пользователям необходимо установить программное обеспечение в некоторых операционных системах, чтобы поддерживать его (например, Windows), а некоторые клиентские операционные системы могут вообще не иметь доступную библиотеку ZeroConf. То же самое можно сказать о других проприетарных механизмах обнаружения, которые используют немного проприетарного программного обеспечения для настройки IP-адресов устройств.

Мое предпочтение было бы по умолчанию для DHCP с известным DNS-именем (если одновременно будет отображаться только одно устройство в одной сети), но вернуться к одному из следующих, если сервер недоступен:

  • ZeroConf: AutoIP для распределения адресов с DNS-SD для обнаружения устройства. Это хорошо работает, когда у вас есть несколько устройств, которые могут быть подключены к одной и той же сети, так что вам также не потребуется уникальное DNS-имя. Пользователь не должен знать IP-адрес или DNS-имя и может найти его в списке (что выгодно использовать DHCP и DNS, если вам необходимо одновременно поддерживать несколько устройств в одной сети). Недостаток: требуется клиентское программное обеспечение и может не поддерживаться в некоторых операционных системах. Кстати, к этому скобку отношусь другие аналогичные протоколы обнаружения сервисов.
  • Собственный протокол: Восстановить колесо ZeroConf. Преимущества в том, что это просто реализовать, но это означает, что вы ограничиваете количество клиентских операционных систем, которые могут настроить ваше устройство (в зависимости от того, сколько OSes вы пишете приложение (например, вам нужна поддержка iPad?)).
  • Исправлен IP-адрес: Это система, которую используют большинство маршрутизаторов и т. Д., Поэтому она проверена и протестирована, и ее можно заставить работать практически во всех клиентских операционных системах. Проблема в том, что ваш IP-адрес может столкнуться, что, конечно же, является вопросом вашего вопроса. В этом случае я предлагаю вам выбрать любой из диапазона 192.168.0.0/24, но настоятельно рекомендуется, чтобы документация предлагала подключаться напрямую к устройству, а не через более широкую сеть.

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


5
2017-08-04 21:38





Я всегда предпочитал настраивать IP-конфигурацию непосредственно на устройстве, прежде чем подключать его либо через панель, либо через последовательный порт. Но в наши дни тенденция состоит только в том, чтобы иметь только сетевой порт, поэтому наилучшим подходом было бы по умолчанию DHCP, затем вернуться к 169.254.xx link-local address и, возможно, использовать обнаружение многоадресной услуги (ZeroConf / Bonjour), поэтому вы можете найти новый адрес нового виджета, чтобы дать ему новый. Кроме того, убедитесь, что MAC-адрес находится на считываемой этикетке на внешней стороне устройства.


1
2017-08-05 01:26





Другой частный диапазон - 172.16.0.0 маска 255.240.0.0

Этот диапазон будет состоять из всех IP-адресов от 172.16.x.x до 172.31.x.x в эссенциально 16 подсетей класса B.


0
2017-08-04 13:32





Несколько лет назад я столкнулся с устройством, которое появилось без какого-либо ip-адреса по умолчанию или клиента dhcp. Вместо этого вы устанавливаете ip-адрес, используя arp и ping. Там в онлайн-документация для принтера Epson с аналогичной опцией. Это конкретное устройство также поставляется с программным обеспечением Windows, которое отправляет вам команды arp и ping.


0
2017-08-04 22:07



HP и другие серверы печати использовали что-то подобное. Но как сказал Эван: «RARP ... в 2010 году вы можете поверить в это?» - BillN