если вторичный сервер DNS снижается, человечность не может решить

Я экспериментирую с двумя локальными серверами DNS. Когда я удаляю второе (или основное устройство) сервер DNS, я не могу разрешить доменное имя.

Используя host команда или nslookup Я добираюсь, приводят к таймауту ошибки:

root@ubuntu:~# host testsrv.lan
;; connection timed out; no servers could be reached
root@ubuntu:~# nslookup testsrv.lan
;; Got recursion not available from 10.0.3.4, trying next server
;; connection timed out; no servers could be reached

Но когда я пробую dig команда я получаю корректный ответ:

root@ubuntu:~# dig testsrv.lan   
; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> testsrv.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7759
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;testsrv.lan.           IN  A

;; ANSWER SECTION:
testsrv.lan.        5   IN  A   10.0.3.4

;; Query time: 2 msec
;; SERVER: 10.0.3.4#53(10.0.3.4)
;; WHEN: Thu Jun 04 17:54:28 CET 2015
;; MSG SIZE  rcvd: 56

(основной сервер DNS 10.0.3.4, и я добавил запись: testsrv.lan-> 10.0.3.4)

Я использовал tcpdump для проверки то, что происходит под капотом: tcpdump -vvv -l -n -i any "udp port 53" Я заметил, что первый сервер правильно отвечает на запрос DNS от моего хоста, но хост всегда пытается запросить второй сервер и таймаут.

Разве человечность не (конкретно resolvconf сервис) предположена быть "отказоустойчивой", когда какой-либо из двух серверов DNS снижается? действительно ли это - поведение по умолчанию при разрешении доменного имени? это документируется кто-либо где? мы можем измениться?

N.B: Я использую сервер человечности 14.04, и DNS настроен с помощью/etc/network/interface dns-nameservers 10.0.3.4 10.0.3.5

Любая справка ценится.Спасибо.

1
задан 5 June 2015 в 02:03
1 ответ

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

Можно настроить один DNS-сервер для одновременной работы обоих, но перед этим вам необходимо полностью понять разницу между ними. Без достаточного понимания разницы вы, вероятно, получите установку, которая делает что-то отличное от того, что вы ожидали.

Процесс типичного разрешения DNS начинается с запроса, отправляемого от клиента к рекурсору. Рекурсор отправляет запросы на столько авторитетных DNS-серверов, сколько необходимо, чтобы отправить ответ клиенту.

Одно из возможных объяснений того, почему он работает, когда оба сервера включены, и не работает, когда один из них не работает, заключается в том, что вы один настроен как рекурсор, а другой как авторитетный. Когда оба работают, клиент может отправить запрос рекурсору, который затем запрашивает авторитетный, и ответ от авторитетного рекурсора затем отправляется клиенту.

Связь между клиентом и рекурсором не похожа на обмен данными между рекурсор и авторитетный. У каждого DNS-запроса есть бит, который указывает, какой это запрос. И ответы DNS также укажут, является ли отвечающий сервер рекурсором. Таким образом, хотя в некоторых случаях возможно получить ответ на неправильный тип запроса, и клиент, и сервер будут иметь возможность увидеть, что что-то не так, и отказаться предоставлять ответ пользователю.

Если вы хотите настроить дублирующую пару DNS-серверов, а затем настроить один как рекурсор, а другой как авторитетный, определенно не то, что вам нужно. Резервная пара означает, что вы настраиваете один из них, чтобы он мог делать то, что вы хотите, чтобы он мог делать самостоятельно, а затем вы настраиваете другой таким же образом.

DNS-серверы, указанные вами в конфигурации сети, должны быть рекурсорами. Поэтому, если вы хотите, чтобы эти DNS-серверы находились в /etc/resolv.conf или в каком-либо другом файле конфигурации сети в / etc , то вам нужна пара избыточных рекурсоров.

Кроме того, все инструменты host , nslookup и dig по умолчанию отправляют запросы, подходящие для отправки рекурсору. Если вы хотите использовать эти инструменты непосредственно против авторитетного сервера, вам необходимо сообщить об этом инструменту, например, используя dig + norecurse .

0
ответ дан 4 December 2019 в 07:34

Теги

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