Категорії
Misc, staff, other

[dns] Fallback resolving

Є досить специфічне завдання: шукати запис у локальному 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, але треба пробувати.

Update!!!

Проблема, яка описана вище виправляється опцією

bind X.X.X.X

тобто, треба примусово вказувати IP. Приклад конфігурації:

.:53 {
  bind 192.168.10.45 127.0.0.1
  forward . 192.168.10.12 192.168.10.14
  alternate original NXDOMAIN . 8.8.8.8 8.8.4.4
  log
  errors
  health :8080
}
somezone.net {
    bind 192.168.10.45 127.0.0.1
    forward . 10.12.0.2
}

Цю опцію bind треба вказувати в кожній секції {…}, якщо у вас їх декілька.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP