Вопрос или проблема
Я задаю этот вопрос, потому что не знаю, какая сетевое сервис должен это сделать.
У меня есть легковесный сервер в моей локальной сети, его имя хоста my_server
.
Теперь я хотел бы, чтобы каждая машина в моей локальной сети автоматически обновляла свои DNS записи, чтобы связать IP-адрес моего сервера с my_server
.
Причина, по которой я хочу это сделать, в том, что IP-адрес этого сервера выделяется DHCP-сервером, и он может изменяться.
Мой роутер имеет только DHCP-сервер и не предлагает DNS-сервер. На самом деле это сеть только для хоста, управляемая VirtualBox, поэтому сетевые возможности очень ограничены.
Существует ли что-то, что может распространять имя хоста в локальной сети, так же как Протокол разрешения адресов (ARP) распространяет MAC-адрес, связанный с конкретным IP-адресом? Какой-то протокол автоматического обнаружения?
Ваша сеть кажется децентрализованной, поэтому попытки обновить записи из центральной точки очень сложны.
На клиентах нет “DNS” записей для обновления, они делают запросы к DNS-серверу, и он отвечает с адресом, который у него сейчас есть для my_server
. Вам нужно обновить DNS-сервер, с которым они взаимодействуют, а не самих клиентов.
Лучший способ сделать это в локальной сети – использовать локальную интегрированную динамическую DNS (DDNS) настройку вместе с DHCP, чтобы каждый раз, когда DHCP выдает другой адрес устройству, он добавляет/обновляет соответствующую запись в DNS, чтобы все клиенты знали, где его найти.
Например, Windows Server достигает этого, позволяя своей службе DHCP-сервера обновлять записи DNS-сервера.
Настройте клиентов на использование локального DNS-сервера (только), и настройте локальный DNS-сервер на перенаправление неизвестных запросов адресов на внешние (Интернет) DNS-серверы.
Если вы собираетесь полагаться на DNS-запросы, но у вас нет внутреннего DNS-сервера, то вам придется обновлять файлы HOSTS на каждом компьютере в локальной сети каждый раз, когда IP-адрес сервера изменяется. Это, возможно, можно было бы автоматизировать в некоторых ситуациях, но ваш роутер, похоже, ограничен, поэтому я очень сомневаюсь, что он сможет запустить (возможно, удаленный) скрипт каждый раз, когда он выдает аренду DHCP.
Ответ или решение
Как протестировать имя хоста сервера в локальном DNS
Вопрос о том, как авторизовать имя хоста сервера в локальном DNS, особенно актуален для безрадельных сетей, где динамическое выделение IP-адресов может стать проблемой. Рассмотрим пошагово, как можно решить вашу задачу в условиях наличия только DHCP-сервера и отсутствия локального DNS-сервера.
1. Определение проблемы
Ваш сервер, называемый my_server
, получает IP-адрес через DHCP, что усложняет процесс связывания его имени с изменяющимся IP-адресом. Каждый клиент в вашей сети не знает, как найти my_server
, если имя хоста не связано с актуальным IP-адресом.
2. Решение: Интеграция DHCP и динамического DNS (DDNS)
Наиболее оптимальное решение для управления записью имен и адресов в локальной сети — это интеграция DHCP с динамическим DNS (DDNS). Это позволит автоматически обновлять DNS-записи при изменении IP-адресов.
-
Настройка DHCP-сервера:
- Если ваш маршрутизатор не поддерживает функцию DDNS, возможно, стоит рассмотреть использование стороннего программного обеспечения или виртуального маршрутизатора с расширенными функциями (например, OpenWrt или pfSense).
- Некоторые маршрутизаторы предоставляют поддержку DDNS, что позволяет автоматически обновлять записи при изменении IP-адреса.
-
Настройка динамического DNS:
- Настройте DDNS, чтобы он обновлял запись
my_server
каждый раз, когда DHCP выдает новый IP-адрес вашему серверу. Чаще всего это делается через конфигурацию DHCP-сервера, который должен иметь возможность обновлять DNS-записи.
- Настройте DDNS, чтобы он обновлял запись
-
Настройка клиентов:
- Убедитесь, что все машины в вашей локальной сети используют локальный DNS-сервер, чтобы разрешать имена на IP. Если у вас нет удобного локального DNS-сервера, как указано выше, вам придется использовать другие подходы.
3. Альтернативные подходы в отсутствие DDNS
Если установить DDNS невозможно, существуют альтернативные методы:
-
Использование файла HOSTS:
- Это не самый масштабируемый и удобный способ, но можно вручную изменить файл
hosts
на каждом клиентском устройстве, что позволит им разрешатьmy_server
в соответствующий IP-адрес.
- Это не самый масштабируемый и удобный способ, но можно вручную изменить файл
-
Скрипты для автоматизации:
- Написание скриптов, которые будут помогать обновлять файл HOSTS на каждом клиентском устройстве. Однако, это может быть сложным, так как автоматизацию придется настраивать для каждого устройства в вашей сети.
4. Заключение
Для эффективного продвижения имени хоста сервера в локальном DNS, самый надежный путь — это объединение DHCP и DDNS. Это решение обеспечит автоматическое обновление записей и упростит управление сетевыми ресурсами. В случае отсутствия такой возможности, придется прибегнуть к более ручным и менее удобным методам, как определение IP-адресов в файлах HOSTS или использование скриптов.
Таким образом, способ вашей сети с низкими ресурсами и требованиями к управлению может существенно осложнить вашу задачу, но описанные выше методы помогут вам найти оптимальное решение.