Отдельный сервер имен для определенных имен хостов
В моей домашней сети есть несколько компьютеров. Они подключены к маршрутизатору, который подключает меня к Интернету и выступает в качестве DHCP-сервера и сервера имен в локальной сети.
Некоторые из моих компьютеров - машины с Ubuntu, и я пытаюсь настроить на них хороший файл /etc/resolv.conf. Проблема в том, что мой маршрутизатор действительно паршивый как сервер имен (очень, очень медленный), поэтому я предпочитаю использовать внешний сервер имен, такой как сервер имен Google или OpenDNS.
Но эти публичные серверы имен, очевидно, не знают IP-адреса моих локальных машин.
Итак, вот мой вопрос: есть ли способ настроить /etc/resolv.conf так, чтобы определенные имена хостов разрешались одним сервером имен, а другие имена хостов разрешались другим сервером имен?
(Я предполагаю, что нет, и в этом случае мне придется установить фиксированные IP-адреса. Но я надеюсь избежать этого.)
1 ответ
Установите локальный сервер переадресации имен на компьютерах, которым необходимо сделать выбор между локальным сервером имен и сервером имен в Интернете. Используйте Unbound, потому что это легкий и простой в настройке для этой задачи.
Поместите это в Unbound config:
stub-zone:
name: "internal.example.com"
stub-host: internal.nameserver.ip.address
forward-zone:
name: "."
forward-host: internet.nameserver.ip.address
Положил nameserver 127.0.0.1
в /etc/resolv.conf
так что приложение на локальном хосте будет использовать этот экземпляр Unbound.
Теперь, когда вы пытаетесь решить myhost.internal.example.com
он отправит запрос internal.nameserve.ip.address
и когда вы пытаетесь решить www.google.com
он отправит запрос internet.nameserver.ip.address
,
Надеемся, что все ваши локальные хосты сгруппированы в одном локальном домене (internal.example.com
) выше. К сожалению, слишком вероятно, что ваш дешевый маршрутизатор +DHCP-сервер +DNS-сервер вставит все имена хостов, которые он знает, прямо в его синтезированную корневую зону. Если это так, то вам придется перечислить их все по очереди следующим образом:
stub-zone:
name: "hostname1"
stub-host: internal.nameserver.ip.address
stub-zone:
name: "hostname2"
stub-host: internal.nameserver.ip.address
stub-zone:
name: "hostname3"
stub-host: internal.nameserver.ip.address
forward-zone:
name: "."
forward-host: internet.nameserver.ip.address
Проблема в том, что теперь у вас есть куча несвязанных экземпляров на разных машинах, которые вы должны сконфигурировать и настроить. Вы могли бы избежать этого, если бы только один хост в вашей локальной сети предоставлял эту услугу и выступал в качестве рекурсивного сервера имен для всех других хостов, но если вы собираетесь это сделать, то вы также можете сделать этот хост DHCP-сервером и авторитетным сервером имен. для локальных хостов и избавиться от вашего медленного встроенного сервера DHCP+DNS в первую очередь.