Наша внутренняя офисная сеть имеет тот же домен верхнего уровня, что и наша компания в Интернете, например ourdomain.com
.
Для внешнего мира любые общедоступные хосты (например, blog.ourdomain. com
, download.ourdomain.com
, www.ourdomain.com
и т. д.) настроены в DNS нашего хостера домена, AWS Route 53.
Для в интрасети офиса мы запускаем простой dnsmasq
для DHCP и DNS (и VPN, но это уже другая история); разрешение имен для внутренних серверов и настольных компьютеров (например, ноутбуков с адресами DHCP) в офисе работает нормально. Экземпляр dnsmasq
недоступен для всех.
Пока что мы сообщаем dnsmasq
о наших общедоступных серверах, поддерживая файл /etc/hosts.dnsmasq
, который включен в основной /etc/dnsmasq.conf
строчкой addn-hosts = / etc / hosts.dnsmasq
, аналогичен хорошо известному / etc / hosts
и имеет следующий пример содержимого:
12.34.56.78 blog
12.34.56.79 download
12.34.56.80 www
Мы ведем этот файл вручную, что становится громоздким. Мы хотели бы избавиться от него и улучшить нашу настройку dnsmasq
, чтобы он выполнял следующие действия:
dnsmasq
имеет «собственную» информацию DNS (например, DHCP или связанный статический IP-адрес с именем хоста) для запроса из внутренней офисной сети, обслужить его Q: Можно ли это сделать с помощью dnsmasq
? Требуется ли поддомен для офисной сети? (чего мы хотели бы избежать, если возможно). Если да, то как? У меня такое чувство, что я, должно быть, просмотрел dnsmasq
docs сотни раз; они великолепны, но я мог бы просто смотреть на решение, а не видеть его.
Также: Насколько я понимаю, такая установка отличается от split-brain DNS, поскольку мы не используем один сервер имен, возвращающий разные ответы в зависимости от того, откуда исходит запрос, а используем общедоступный и частный сервер имен для одного и того же домена.
Это обычная установка? Если нет, есть ли у организаций канонический способ настроить свои DNS, когда они используют один и тот же TLD для публичного и частного присутствия?
Это обычная установка?
Я видел несколько вопросов по ServerFault, которые просили установить такую же настройку, какую хотите вы, поэтому я предполагаю, что это обычная установка. Но поскольку это невозможно, я бы сказал, что это обычная настройка администраторов, которые не очень понимают, как работает DNS. (Извините, я не хочу обидеть ни вас, ни кого-либо еще на этом форуме.)
Я дал возможный ответ на вопрос, где размещаются как внутренний DNS-сервер, так и внешний DNS-сервер здесь . Однако в этом ответе в качестве DNS-сервера используется BIND, а не dnsmasq.
Это выполнимо (с dnsmasq)?
Как было сказано ранее, невозможно быть авторитетным для данной зоны и пересылать запросить другой сервер имен, если вы сами не знаете ответа. Ответ, который я дал в другом вопросе, - это обходной путь.
Есть ли у организаций канонический способ настроить свой DNS, когда они используют один и тот же домен как для публичного, так и для частного присутствия?
Я бы сказал, что они либо используют поддомен внутри или используйте раздельный DNS. Записи, которые должны находиться как во внутреннем, так и во внешнем виде, необходимо копировать в обе зоны. Это можно упростить с помощью автоматизации (например, Ansible).
Я не уверен, что это было возможно, когда этот вопрос задавался изначально. Тем не менее, это все еще кажется часто задаваемым вопросом, на него, похоже, нигде нет ответа, и dnsmasq отлично может это сделать! В некотором роде это даже по умолчанию.
Просто взгляните на эту минимальную конфигурацию:
domain=example.com
listen-address=192.168.120.1
interface=eth0
dhcp-range=192.168.120.10,192.168.120.20,12h
Если у вас есть локальный хост hostA
в /etc/hosts
, DHCP-клиент с именем hostB
и сервер hostC
, который не известен dnsmasq, но его вышестоящим серверам, то все серверы будут разрешаться правильно:
hostA
и hostB
разрешаются локально, dnsmasq запрашивает у восходящего потока hostC
, который затем также разрешается.
Это идеально подходит для небольшой раздельной настройки DNS в домашних сетях: просто позвольте dnsmasq управлять вашими хостами только в сети и добавлять хосты, которые также должны разрешаться извне в ваши глобально доступные DNS.
Обратите внимание, что большинство руководств добавляют конфигурацию local=/example.com/
. Это то, что на самом деле не позволяет dnsmasq запрашивать у вышестоящих серверов этот домен. Так что в этом случае вы не хотите использовать эту опцию.
Вы также можете настроить это в OpenWRT. Просто оставьте поле Локальный сервер
пустым.