DNS BIND9 с внешним видом внутри внутреннего вида
Я планирую новый DNS-сервер BIND9 с особым видом.
У нас много внешних зон и публичных IPv4-адресов. Для простоты у нас есть подзона нашего внешнего домена только для внутренней области; что-то вроде: local.example.com
Наша цель - сохранить простоту и не беспокоиться о другой зоне example.com с внутренней и внешней точек зрения.
Для этого я должен ограничить только зону local.example.com для внутренних клиентов. Но внутренние клиенты должны разрешать внешние адреса, так как у нас есть внутренние клиенты с публичными адресами IPv4.
Думайте о внутренней зоне как о наборе диаграмм Венна. Внешний набор находится внутри внутреннего набора, поэтому все зоны должны быть также во внутренней области видимости и не изменяться.
В этом вопросе можно сформулировать основной вопрос: могу ли я указать одинаковые файлы зоны БД во внутреннем и внешнем представлениях?
2 ответа
Просто используйте acl, чтобы ограничить запросы вашей внутренней зоной.
acl internal-networks {
10.0.0.0/8;
172.16.0.0/12;
192.168.0.0/16;
};
zone "internal.example.com" {
type master;
file "internal.example.com";
allow-query { internal-networks; };
};
Вы можете добавить дополнительные IP-адреса во внутренние сети acl. Неважно, являются ли они публично маршрутизируемыми или нет; все, что вы добавите, может запросить зону.
Если это обычные статические мастер-зоны (то есть, named будет читать только файлы), вы можете ссылаться на те же файлы зон. Если это подчиненные зоны, зоны с включенными динамическими обновлениями или что-то в этом роде, они сломаются.
С помощью include
в файле конфигурации вы можете даже поместить определения зон, совместно используемых представлениями, в отдельный файл и просто сослаться на это в обоих представлениях. Конечно, возможно ли это, зависит от того, хотите ли вы по-другому настроить зоны.
(Если подмножество зоны должно быть общим, вы можете использовать $INCLUDE
внутри самого файла зоны.)