Є досить специфічне завдання: шукати запис у локальному DNS, а якщо його немає, то робити запит до іншого NS’y. Здавалося б, задача проста, але є нюанси. Якщо у вас немає такої зони DNS, то це працює, але що робити, якщо сама зона є, але записів немає? Тоді DNS сервер верне відповідь NXDOMAIN і fallback не спрацює. Зараз ця тема дуже актуальна, особливо, якщо у вас є внутрішній домен в зоні “.dev“. Тут є 2 варіанти:
Я вибрав 2-ий варіант, бо він простіший у налаштуванні. Ось такого конфігу достатньо для того, щоб все працювало:
.:53 { forward . 192.168.10.12 192.168.10.14 alternate original NXDOMAIN . 8.8.8.8 8.8.4.4 log errors }
Нюанси при роботі.
Обидва варіанти працюють лише під Linux (пробував під Solaris, але ні). У першому варіанті bind під Solaris не розуміє, коли йому повертають NXDOMAIN, і просто видає “rpz“. У другому варіанті просто не відбувається fallback. Можливо, запрацює під FreeBSD, але треба пробувати.