Подключайтесь к нескольким серверам dnsmasq одновременно

У меня в сети установлено два сервера dnsmasq. Я добавил DNS-серверы в свои сетевые конфигурации, но я могу подключиться только к одному из них за раз. Когда я включаю их два в дополнение к IP-адресу маршрута [192.168.2.1], я могу подключиться только к первому серверу dnsmasq, добавленному слева - в данном случае 192.168.2.150

dns-config

, почему это происходит на самом деле. Я все время думал, что один из днс серверов не работает!

У меня также есть еще одна проблема: мне нужно отключать и повторно включать сетевую связь в моем ubuntu 18.04 каждый раз, когда я добавляю новое имя хоста к серверу dnsmasq и перезапускаю сервер.

0
задан 16 January 2020 в 17:46

1 ответ

Основная проблема заключается в том, как ваша система обрабатывает DNS-запросы, и по умолчанию как это делает большинство систем.

Когда вы определяете DNS-серверы в своей конфигурации, они идут в порядке определения - 1-й, 2-й, 3-й и т. Д. А именно, это DNS-серверы для запроса данных и порядок запроса данных в в событие, когда один из серверов не отвечает .

DNSMasq-сервер A знает только домен «foo», но не домен «bar». Он ответит на «foo» и Интернет, но вернет NXDOMAIN для «bar». Однако сервер по-прежнему ответил на первоначальный запрос , поэтому он не будет проверять ваш второй или третий сервер на наличие каких-либо записей, относящихся к NXDOMAIN (несуществующий домен, поскольку пакеты и запросы DNS будут иметь внутреннее значение), потому что он получил ответ.

Если DNSMasq Server A не отвечает на all и время попытки запроса истекло, то система запросит DNSMasq Server B (второй по порядку). Он будет отвечать для доменов bar, но попытка запроса foo вернет NXDOMAIN, как указано выше. Тот же самый случай здесь, однако, он ответил , поэтому он не будет использовать ваш третий DNS-сервер для запросов.

NXDOMAIN (несуществующий хост / домен) на самом деле является «действительным ответом» от DNS-сервера.Система не будет автоматически пытаться запросить DNS-сервер 2 или 3, потому что получила ответ, хотя и не тот, который вам нужен.

В этом случае вам необходимо настроить серверы dnsmasq так, чтобы они знали, что нужно пересылать запросы для домена, который они не обслуживают, на правильный сервер, чтобы он получал действительный ответ. В BIND9 они называются зонами пересылки (это то, что я использую), и они будут перенаправлять запросы домена в этих зонах на соответствующий сервер для получения ответов.

Настройте сервер dnsmasq A для пересылки его запросов к B для домена «bar» и настройте сервер dnsmasq B для пересылки его запросов к A для домена «foo».

(Здесь используются примеры, которые я привел выше, правильно используйте здесь свои собственные домены.)

0
ответ дан 17 January 2020 в 18:32

Другие вопросы по тегам:

Похожие вопросы: