Потребовалось мне тут подменять “на ходу” ответы 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 мне начал отвечать тем, что описано в этой зоне. А на остальные запросы – как обычно.