Что такое хороший IP-адрес по умолчанию?
Моя компания производит устройства Ethernet. Эти устройства имеют очень мало ввода / вывода. Нет клавиатуры, нет видео выхода. Когда клиент получает устройство, он должен настроить его для своей сети. Я хотел бы выбрать IP-адрес, который не будет конфликтовать с существующим устройством в его сети, но его сеть может быть любой.
У некоторых клиентов есть сети 192.168.xx. Другие имеют сети 10.xxx.
Большая часть сетевого оборудования (в частности, маршрутизаторы) поставляется с 192.168.x.1. Но это не маршрутизатор, поэтому я не хочу использовать по умолчанию низкий IP-адрес, так как вероятность конфликта будет выше.
Что такое хороший IP-адрес для доставки с продуктом? Существуют ли полу-частные / неиспользуемые сети класса C?
11 ответов
Пусть это будет назначено сервером DHCP? в противном случае я бы предложил использовать 192.168.0.250. Но DHCP определенно предпочтительнее
Избегайте любых фиксированных адресов. Даже если вы пытаетесь избежать адресов, обычно встречающихся для других типов устройств (например, маршрутизаторов), вы все равно должны спросить себя: что, если у пользователя есть два или более устройства?
Как говорили многие люди, вы должны попытаться автоматически настроить устройство с помощью DHCP. Таким образом, сетевой администратор может легко управлять адресом вашего устройства по центру с DHCP-сервера.
Если не настроить DHCP, ваше устройство должно настроить локальный адрес канала в диапазоне 169,254/16. Любой хост, подключенный по той же ссылке с совместимым стеком и не поврежденной конфигурацией, должен иметь возможность подключиться к вашему устройству, используя локальный адрес ссылки по умолчанию, а затем настроить его на нужный адрес.
RFC 3927 подробно описывает, как устройство конфигурирует свой локальный адрес канала. Аннотация этого RFC гласит:
Для участия в глобальной IP-сети хост должен быть настроен с IP-адресами для своих интерфейсов, либо вручную пользователем, либо автоматически из источника в сети, такого как сервер протокола динамической конфигурации хоста (DHCP). К сожалению, такая информация о конфигурации адреса не всегда доступна. Следовательно, для хоста полезно иметь возможность зависеть от полезного подмножества функций IP-сети, даже если конфигурация адреса недоступна. В этом документе описывается, как хост может автоматически настраивать интерфейс с IPv4-адресом в префиксе 169.254/16, который действителен для связи с другими устройствами, подключенными к той же физической (или логической) линии связи.
Решение, кажется, идеально подходит для вашей проблемы.
Вкратце, фактическая реализация, описанная в RFC, состоит в выборе PRN с использованием MAC-адреса устройства в качестве начального числа. На практике многие устройства, которые я видел, используют последние два октета MAC-адреса в качестве последних двух октетов для 169.254.xy, и в случае коллизии получают следующий номер от PRNG.
PS: я на самом деле удивлен, что за 10 часов и с 8 предыдущими ответами никто не упомянул адреса локальной ссылки. К сожалению, теперь, когда этот вопрос устарел и на него есть принятый ответ, вполне вероятно, что этот ответ будет пропущен большинством людей.
На самом деле существуют протоколы, разработанные специально для целей открытия. Одним из примеров является протокол обнаружения канального уровня (LLDP). Если вы действительно хотите получить надежное решение, вы, вероятно, должны рассмотреть что-то вроде этого.
Одна проблема, связанная с простым выбором статического IP-адреса, состоит в том, что независимо от того, какой IP-адрес вы выберете, маловероятно, что конфигурация маршрутизации для компьютера, пытающегося подключиться к нему, будет правильно настроена на всех компьютерах.
DHCP и DNS могли бы быть хорошим решением, если бы не тот факт, что во многих сетях по-прежнему отсутствует сервер и используются фиксированные IP-адреса. Если вы не хотите блокировать этих людей от использования вашего устройства, вам, по крайней мере, нужно обратиться к какой-либо другой системе.
ZeroConf был изобретен, чтобы справиться именно с такой ситуацией: без DHCP или DNS-сервера. Действительно, это решило бы эту проблему очень хорошо - устройство назначает себе адрес AutoIP, а затем объявляет о своих услугах, чтобы вы могли найти его независимо от его IP-адреса. Проблема с ZeroConf заключается в том, что пользователям необходимо установить программное обеспечение в некоторых операционных системах для его поддержки (например, в Windows), а в некоторых клиентских операционных системах библиотека ZeroConf может вообще не быть доступной. То же самое касается других проприетарных механизмов обнаружения, которые используют немного проприетарного программного обеспечения для настройки IP-адресов устройств.
Я предпочел бы по умолчанию использовать DHCP с известным DNS-именем (если только одно устройство будет одновременно работать в одной сети), но использовать один из следующих вариантов, если сервер недоступен:
- ZeroConf: AutoIP для распределения адресов с помощью DNS-SD для обнаружения устройства. Это хорошо работает, когда у вас есть несколько устройств, которые могут быть подключены к одной сети, поэтому вам также не нужно уникальное DNS-имя. Пользователю не нужно знать IP-адрес или DNS-имя, и он может найти его в списке (что является преимуществом по сравнению с использованием DHCP и DNS, если вам необходимо поддерживать несколько устройств в одной сети одновременно). Недостаток: требуется клиентское программное обеспечение и может не поддерживаться в некоторых операционных системах. Между прочим, я включаю другие подобные протоколы обнаружения служб в эту скобку.
- Собственный протокол: заново изобрести колесо ZeroConf. Преимущества заключаются в том, что это просто реализовать, но это означает, что вы ограничиваете количество клиентских операционных систем, которые могут настроить ваше устройство (в зависимости от того, для скольких ОС вы пишете приложение (например, вам нужна поддержка iPad?)).
- Фиксированный IP-адрес: это система, которую использует большинство маршрутизаторов и т. Д., Поэтому она достаточно проверена и протестирована и может работать практически во всех клиентских операционных системах. Проблема в том, что ваш IP-адрес может конфликтовать, что, конечно, является вопросом вашего вопроса. В этом случае я бы посоветовал вам выбрать любой из диапазона 192.168.0.0/24, но в документации настоятельно рекомендуется подключаться напрямую к устройству, а не через более широкую сеть.
Я понимаю, что вы, вероятно, просто ищете хороший относительно неиспользуемый IP-адрес, но это альтернативы, которые стоит рассмотреть, если вы можете сэкономить человеческие часы для их реализации.
Я хотел бы использовать 192.168.x.y
где x
а также y
случайные числа, исключая 0, 255 и 1 для y. Поскольку вы хотите избежать конфликта, не имеет смысла выбирать какой-то "хороший" адрес по умолчанию, потому что другие будут выбирать тот же адрес.
Они могут даже получить это от этого вопроса.
Я всегда предпочитал устанавливать IP-конфигурацию непосредственно на устройстве перед подключением через панель или последовательный порт. Но в наши дни тенденция, похоже, заключается в том, чтобы иметь только сетевой порт, поэтому лучшим подходом было бы использование по умолчанию DHCP, затем возврат к локальной адресации канала 169.254.xx и, возможно, использование обнаружения многоадресной службы (ZeroConf/Bonjour), поэтому Вы можете найти текущий адрес нового виджета, чтобы дать ему новый. Кроме того, убедитесь, что MAC-адрес находится на читаемой этикетке на внешней стороне устройства.
Несколько лет назад я наткнулся на устройство, которое не имело ни одного IP-адреса по умолчанию или клиента DHCP. Вместо этого вы устанавливаете IP-адрес, используя arp и ping. Есть электронная документация для принтера Epson с подобной опцией. Это устройство также поставляется с программным обеспечением Windows, которое будет отправлять команды arp и ping для вас.
Во-первых, я установил бы это, чтобы получить некоторое изменение 192.168.xx/24. скажем, 192.168.1.100.
тогда я предоставлю очень четкую и подробную документацию, чтобы позволить пользователю:
если у человека другой сетевой адрес, он может временно сменить ip на своем ПК на адрес в этой сети, например 192.168.100.101.
тогда они должны быть в состоянии войти в веб-интерфейс, который просит их вручную установить адрес или использовать DHCP. при необходимости пользователь может напрямую подключить сетевой кабель от ПК к устройству.
это один дешевый способ сделать это. большинство маршрутизаторов делают это так, но используют 192.168.0.1 или 1.1. Более дорогой способ - использовать DHCP на первом и написать или купить утилиту обнаружения.
Другой приватный диапазон - маска 172.16.0.0 255.240.0.0
Этот диапазон будет состоять из всех IP-адресов от 172.16.xx до 172.31.xx, в основном 16 подсетей класса B.
Пока пользователь может изменить адрес по умолчанию, это не имеет большого значения.
Если это потребительский продукт, я бы определенно поместил его в диапазон 192.168.xx.
Может ли устройство сначала отправить рассылку, а затем, получив ответ с нескольких IP-адресов, вы выбрали тот, с которого не получили ответа. Может быть, вы можете использовать адрес, который выше, чем самый высокий адрес, который ответил.
Возможно, в некоторых случаях значение по умолчанию совсем не годится, поэтому вы можете попросить его использовать.