Я планирую новый DNS-сервер BIND9 с особым видом.
У нас много внешних зон и публичных IPv4-адресов. Для простоты у нас есть подзона нашего внешнего домена только для внутренней области; что-то вроде: local.example.com
Наша цель - упростить задачу и не беспокоиться о разных зонах example.com из внутреннего и внешнего вида.
Для этого я должен ограничить только зону local.example.com для внутренних клиентов. Но внутренние клиенты должны разрешать внешние адреса в, поскольку у нас есть внутренние клиенты с общедоступными адресами IPv4.
Думайте о внутренней зоне как о наборе диаграммы Венна. Внешний набор находится внутри внутреннего набора, поэтому все зоны также должны быть во внутренней области и без изменений.
Главный вопрос можно резюмировать следующим образом: могу ли я указать одни и те же файлы зоны БД во внутреннем и внешнем представлениях?
Если это обычные статические главные зоны (т.е. named будет только читать файлы), вы можете ссылаться на те же файлы зоны. Если это подчиненные зоны, зоны с включенными динамическими обновлениями или что-то в этом роде, это сломается.
С помощью include
в файле конфигурации вы потенциально можете даже поместить определения зон, совместно используемых представлениями, в отдельный файл и просто сослаться на них в обоих представлениях. Возможно ли это, конечно, зависит от того, есть ли что-то, что вы хотите настроить по-другому в зонах.
(Если необходимо совместное использование части зоны, вы можете использовать $INCLUDE
внутри самого файла зоны.)
Просто используйте 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. Не имеет значения, являются ли они общедоступными или нет; все, что вы добавляете туда, может запрашивать зону.