Я не очень знаком с динамическим DNS, и мне было любопытно, смогу ли я заставить его работать для определенного варианта использования.
У меня есть несколько Raspberry Pi, которые я настраиваю для имитации серверных настроек приложений, которые мы используем в небольшом масштабе нашей более крупной настройки. У них есть возможность беспроводного доступа. Я хотел бы иметь возможность бросить их в сумку и работать с ними на моем ноутбуке в различных условиях. Однако определение IP-адресов и адресов каждый раз для связи с ними в новых сетях было бы весьма утомительным (необходимость менять конечные точки, на которые ссылаются все приложения / конфигурации).
У меня могут быть обычные записи DNS A, указывающие на внутренние IP-адреса, и они отлично работают в частных сетях. Однако это не так идеально для смены IP-адресов. Смогу ли я использовать динамический DNS для преобразования записей DNS во внутренние адреса? (Таким образом, при подключении к новой беспроводной сети все поиски будут работать после того, как все будет подключено, без необходимости обезьянничать с маршрутизатором, настраиваемым DNS-сервером и т. Д.)
Первоначальные исследования показывают, что динамический DNS обычно разрешается на внешний IP-адрес, тогда как в этом случае я хочу автоматически разрешать адрес, полученный на определенном интерфейсе для каждого клиента, например. Eth0.
Самый простой способ продвинуться вперед - использовать mDNS для выполнения "специального" разрешения DNS между машинами в одной подсети. По сути, это так же просто, как установить avahi-daemon
и libnss-mdns
(Имена пакетов Debian; при необходимости скорректируйте) и убедитесь, что ваш брандмауэр не блокирует 5353/udp
. Это будет охватывать как прямые, так и обратные записи DNS, а также создавать разрешаемые имена в форме <hostname>.local
для всех остальных машин в локальной подсети.
Если вам нужно именование, которое доступно за пределами локального многоадресного домена, вы, вероятно, захотите настроить DNS-сервер где-нибудь в Интернете, который принимает TSIG
-аутентифицирован UPDATE
запросы, а затем настройте клиентские машины для отправки обновлений с помощью nsupdate
(или другие эквивалентные средства).
Если под «динамическим DNS» вы имеете в виду одну из общедоступных служб DynDNS, например dyn.com или noip.com, тогда нет, вы не можете указать, чтобы они указывали на частный IP-адрес. Это связано с тем, что по замыслу эти службы направляют свои записи A на исходный IP-адрес, который они видят в вашем запросе на регистрацию или обновление, который по определению является вашим общедоступным адресом.
Однако вы можете настроить собственную службу динамического DNS, которая работает в локальной сети и, следовательно, видит внутренние IP-адреса. Есть много способов добиться этого: от классической DHCP-рассылки обновлений на DNS-сервер до локальной установки службы, подобной dyn.com. Выбор зависит от точной природы «различных настроек», в которых вы хотите использовать свою толпу Пи.
Обратите внимание, что вы можете столкнуться с проблемой начальной загрузки, связанной с тем, как Pi-s найдет службу динамического DNS для регистрации. Это может быть решено с помощью методов на основе широковещания, таких как DHCP или mDNS, или путем размещения службы в общедоступном месте в Интернете и настройки ее таким образом, чтобы она получала IP-адрес для регистрации в полезной нагрузке запроса на обновление, а не извлекала его из его исходный IP-адрес.
Если вам не нужно общаться с другими устройствами в таких новых сетях, это довольно просто. Просто дайте каждому Pi статический IP-адрес и соответственно поддерживайте / etc / hosts. Затем они могут связаться друг с другом независимо от того, в какой среде вы находитесь (если все они связаны). Но вы должны учитывать, что вам нужна другая подсеть, чем та, к которой вы подключены, иначе вы можете получить конфликт IP-адресов.
Если вам нужно связаться с другими устройствами, находящимися в другой подсети, у вас есть несколько вариантов. Для начала вам понадобится то же, что и выше. Чтобы определить лучший из них, необходимо знать свои приложения и более конкретный вариант использования.
Вы можете настроить один Pi в качестве маршрутизатора для маршрутизации между двумя подсетями. (плюсы: не очень сложно, против: каждому устройству, с которым вы хотите общаться, потребуется маршрут для вашей подсети)
Настройте свой pis так, чтобы у них дополнительно был IP-адрес от DHCP-сервера в этой подсети, затем используйте ddns-клиент приспособить ваш сервер ddns(который работает на одном из ваших писем и настроен как DNS-серверы для ваших подсетей). Таким образом, ваше первоначальное общение для настройки ddns будет проходить через вашу собственную подсеть. И дальнейшая коммуникация по новой подсети, в которую вы входите. (За: более гибкий, против: более сложный и, следовательно, более подверженный ошибкам)
Думаю, есть и другие варианты и возможности, но это то, что пришло мне в голову.
Для будущих зрителей ....
MDNS смогла решить проблему, но потребовала дополнительной установки для поддержки Windows, что было не идеально. Динамический DNS действительно заработал.
Использование DDClient с интерфейсом, установленным на wlan0, а не с внешним веб-сайтом, проверяющим IP, заставило клиента получить частный адрес для обновления поставщику динамического DNS, и он отлично работает.