Назад | Перейти на главную страницу

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

Я просмотрел BIND и Dnsmasq и не смог понять этого.

У меня есть несколько серверов в DigitalOcean, и они находятся в одном центре обработки данных. Я хочу иметь возможность использовать внутренние IP-адреса, чтобы улучшить пинги внутри сети и (очевидно, бесплатный частный сетевой трафик). Учитывая следующие два сервера:

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

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

В 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; };

вместо того, чтобы указывать какие-либо сегменты сети.

Есть как минимум 3 решения:

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