Назад | Перейти на главную страницу

Как переопределить одну запись в представлении bind9?

У меня есть два вторичных DNS-сервера для зоны. Один из этих серверов при получении запроса из определенного диапазона должен изменить одну из записей.

Чтобы разделить ответ, я планирую использовать представление:

acl dmz { 192.168.0.0/24; localhost; };
acl lan { 10.0.0.0/8; };

view dmz {
  match-clients { dmz; };
  zone "example.info" {
    type slave;
    masters { 10.100.10.254; };
    file "/etc/bind/db.example-dmz.info";
  };

};

view lan {
  match-clients { lan; };
  zone "example.info" {
    type slave;
    masters { 10.100.10.254; };
    file "/etc/bind/db.example-lan.info";
  };

};

Приведенная выше конфигурация разделяет ответы, но ответы одинаковы.

Хотелось бы, когда устройство 192.168.0.10dmz) запрашивает разрешение foo.example.info, чтобы отправить обратно 192.168.0.20 вместо ответа из переданной зоны.

Как отменить эту единственную запись?

Сделайте этот единственный подчиненный сервер имен главным для зоны foo.example.info и показывать его только в желаемом виде, например

view all-clients {
  match-clients { lan; !192.168.0.10/32; dmz; };
  zone "example.info" {
    type slave;
    masters { 10.100.10.254; };
    file "/var/bind/db.example.info";
  };
};

view exception-host {
  match-clients { 192.168.0.10; };
  zone "foo.example.info" {
    type master;
    file "/etc/bind/foo.example.info-for-192.168.0.10";
  };

  zone "example.info" {
    in-view all-clients;
  };
};

Теперь, когда 192.168.0.10 запрашивает поиск, он увидит представление «хост-исключение» и получит другой ответ для записи «foo.example.info». В противном случае он получает те же результаты, что и все другие клиенты, выполняющие поиск.

В ваших представлениях отсутствуют операторы match-clients, чтобы указать, каким ACL разрешено использовать представление. Например, вы, вероятно, захотите что-то вроде:

view dmz {
  match-clients { dmz; };
  zone "example.info" {
    type slave;
    masters { 10.100.10.254; };
    file "/etc/bind/db.example-dmz.info";
  };

};

И соответствующая запись для просмотра "lan".