Правка ответа DNS

Потребовалось мне тут подменять “на ходу” ответы DNS. Это то самое, чем балуются провайдеры, когда на запросы типа facebook.com отдают 127.0.0.1. Только у меня ситуация чуть проще: и DNS мой и ответы мне нужны тоже … свои.

Конечно, самое простое решение – это подправить /etc/hosts. Но у меня машин много, бегать по каждой… Следующим – заиспользовать zone views. Но у меня зоны раскиданы и фиг его знает, откуда я приду. Немного погуглил и нашел другой вариант. В общем, иду на машинку, где работает named. Создаю файлик зоны. Он совершенно стандартный, за исключением записей.

# cat db.override
$TTL 60
@            IN    SOA  localhost. root.localhost.  (
                          2015112501   ; serial
                          1h           ; refresh
                          30m          ; retry
                          1w           ; expiry
                          30m)         ; minimum
                   IN     NS    localhost.

localhost       A   127.0.0.1
hostname.ru   CNAME    hrentam.zone.ru.

Следом прописываю этот файлик как мастер

zone "override" {
  type master;
  file "/etc/bind/db.override";
};

И добавляю в опции одну команду

options {
       .....
        response-policy { zone "override"; };
};

И после перезагрузки named мне начал отвечать тем, что описано в этой зоне. А на остальные запросы – как обычно.