Как сделать так, чтобы домен разрешался на разные IP-адреса при разрешении из внутренней и внешней сети?

Итак, я просмотрел BIND и Dnsmasq и не смог понять этого.

У меня есть несколько серверов в DigitalOcean, и они находятся в одном центре обработки данных. Учитывая следующие два сервера:

Name   Public IP          Private IP
srv1   192.0.2.1          10.10.10.1
srv2   198.51.100.2       10.10.10.2

При копании из внешней сети (скажем, на моем ноутбуке) я хочу что-то вроде этого

account.codingblocks.com. 79    IN  CNAME   srv2.cb.lk.
srv2.cb.lk.               85844 IN  A       198.51.100.2

При копании изнутри srv1 я хочу это вместо этого

account.codingblocks.com. 79    IN  CNAME   srv2.cb.lk.
srv2.cb.lk.               85844 IN  A       10.10.10.2

Возможно ли это? Если да, то как.

4
задан 2 January 2018 в 21:04
2 ответа

В BIND 9 вы можете определить несколько «представлений»: по сути, BIND показывает одну версию зоны DNS для определенных клиентов и другую версию для других. Кажется, это именно то, что вам нужно.

Вот хорошее введение в использование представлений в BIND 9: https://kb.isc.org/article/AA-00851/0/Understanding-views-in-BIND-9-by-example.html

Однако в вашем случае внешнее представление скажет :

match-clients { any; };

вместо указания сегментов сети.

16
ответ дан 3 December 2019 в 02:20

Существует как минимум 3 решения:

  • вы можете использовать / etc / hosts для переопределения ответов DNS
  • вы можете использовать второй tld, например, account.codingblocks.com даст 222.222. 222.222 и account.example.mytld даст 10.10.10.2
  • у вас может быть 2 разных DNS-сервера (один частный и внутренний, а другой общедоступный), которые будут давать разные результаты.
2
ответ дан 3 December 2019 в 02:20

Теги

Похожие вопросы