Класс view в DNS сервере named (Bind9)

Автор: Admin | 21.06.2014

Класс view в DNS сервере named (Bind9) или как отдавать разные IP адреса разным клиентам для одного доменного имени.

Допустим, есть некие подсети для которых желательно хождение трафика без заворачивания в интернет или на внешний интерфейс шлюза. Т.е. чтобы зайти на ресурс по доменному имени, который располагается в своей подсети, клиенту надо отдать локальный IP адрес этого ресурса, а не внешний. Для этого и служит класс view в DNS сервере named. Так же предполагается что DNS сервер named (Bind9) уже настроен и работает.

Чтобы добиться такой работы named следует выполнить:

Добавить в начало файла /etc/bind/named.conf строку

include "/etc/bind/nets";

Где /etc/bind/nets — список подсетей при обращении с которых будут отдаваться измененные адреса, пример /etc/bind/nets:

acl nets {
a.a.a.a/aa;
b.b.b.b/bb;
...
z.z.z.z/zz;
};

Все содержимое /etc/bind/named.conf.default-zones заключить в класс

view "root" {
...
};

root — произвольное название класса.

Иначе будет вылазить ошибка:

/etc/bind/named.conf.default-zones:2: when using 'view' statements, all zones must be in views

Изменить описания зон, было:

zone "notessysadmin.com" {
type master;
file "/etc/bind/master/notessysadmin.com";
allow-query { any; };
notify yes;
};

Стало:

view "nets" {
match-clients { nets; };
recursion yes;

zone "notessysadmin.com" {
type master;
file "/etc/bind/master/nets-notessysadmin.com";
allow-query { any; };
notify yes;
};
};

view "all" {
match-clients { any; };
recursion yes;

zone "notessysadmin.com" {
type master;
file "/etc/bind/master/notessysadmin.com";
allow-query { any; };
notify yes;
};
};

all и nets — произвольные названия классов.
В /etc/bind/master/nets-notessysadmin.com изменить на локальные IP адреса.

Последовательность имеет принципиально значение для работоспособности данной конструкции. Класс nets обязательно должен быть первым.

В итоге все подсети, перечисленные в /etc/bind/nets, при обращении к настраиваемому DNS серверу получат нужный нам IP адрес, указанный в master/nets-notessysadmin.com, все остальные клиенты получат адрес из master/notessysadmin.com.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *