Итак, я просмотрел 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
Возможно ли это? Если да, то как.
В 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 решения: