dnsmasq: один домен, наполовину приватный, наполовину публичный?

Наша внутренняя офисная сеть имеет тот же домен верхнего уровня, что и интернет-представительство нашей компании, например 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 настроить так, что он делает следующее:

  1. если dnsmasq имеет "собственную" информацию DNS (например, DHCP или статический IP-адрес, связанный с именем хоста) для запроса из внутренней офисной сети, служит
  2. в противном случае запросите общедоступный DNS и перешлите результат обратно запрашивающему в интрасети.

Q: это выполнимо с dnsmasq? Требуется ли субдомен для офисной сети? (которого мы бы хотели избежать, если это возможно). Если да, то как? У меня есть ощущение, что я должен был пройти через dnsmasq документы в сто раз; они великолепны, но я мог бы просто искать решение, а не видеть его.

Кроме того: Насколько я понимаю, такая настройка отличается от раздельного DNS, так как мы не используем один сервер имен, возвращающий разные ответы в зависимости от того, откуда поступает запрос, а используем публичный и частный сервер имен для одного и того же домена.

Это обычная установка? Если нет, существует ли канонический способ для организаций настроить свои DNS, когда они используют один и тот же TLD как для публичного, так и для частного присутствия?

2 ответа

Решение

Это обычная установка?

Я видел несколько вопросов о ServerFault с просьбой о настройке, подобной той, которую вы хотите, поэтому я предполагаю, что это обычная установка. Но так как это на самом деле невозможно, я бы сказал, что это обычная настройка администраторов, которые не совсем понимают, как работает DNS. (Извините, я не хочу вас обидеть - никого больше на этом форуме).

Я предоставил возможный ответ на вопрос, где здесь размещается как внутренний DNS-сервер, так и внешний DNS-сервер. Однако этот ответ использует BIND в качестве DNS-сервера, а не 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

Если у вас есть локальный хост в/etc/hosts, DHCP-клиент с именем и сервером, который не известен dnsmasq, но известен его вышестоящим серверам, тогда все серверы будут разрешаться правильно:hostAиhostBразрешить локально, dnsmasq запрашивает восходящий потокhostCкоторый затем также разрешится.

Это идеально подходит для небольшой настройки разделенного DNS в домашних сетях: просто позвольте dnsmasq управлять вашими хостами только внутри сети и добавляйте хосты, которые также должны разрешаться извне в ваш глобально доступный DNS.

Обратите внимание, что большинство руководств добавляют local=/example.com/конфигурация. Именно это на самом деле не позволяет dnsmasq запрашивать у вышестоящих серверов этот домен. Поэтому в этом случае вы не хотите использовать эту опцию .

Вы также можете настроить это в OpenWRT. Просто держиLocal Serverполе пустое.

Другие вопросы по тегам