Я просмотрел 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 решения: