Во-первых, анекдот с участием докера, который является случайным для этого вопроса: я следовал процедуре в Skydock - Automagic Service Discovery for Docker, которая прошла хорошо. Теперь у меня есть DNS-сервер, прослушивающий 172.17.42.1
который содержит запись для хоста redis1.redis.dev.docker
имеющего IP 172.17.0.4
:
$ dig @172.17.42.1 redis1.redis.dev.docker
; <<>> DiG 9.9.4-P2-RedHat-9.9.4-12.P2.fc20 <<>> @172.17.42.1 redis1.redis.dev.docker
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51671
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;redis1.redis.dev.docker. IN A
;; ANSWER SECTION:
redis1.redis.dev.docker. 29 IN A 172.17.0.4
;; Query time: 0 msec
;; SERVER: 172.17.42.1#53(172.17.42.1)
;; WHEN: Wed Nov 05 21:04:01 EST 2014
;; MSG SIZE rcvd: 80
Так что служба DNS работает, верно? Итак, я добавил DNS-сервер в сценарий сетевого интерфейса и применил изменения:
$ cat /etc/resolv.conf
# Generated by NetworkManager
search fghijk.local
nameserver 192.168.0.1
nameserver 172.17.42.1
Однако, когда я dig
без указания IP-адреса DNS-сервера, как показано выше, кажется, что 192.168.0.1
- единственный DNS-сервер, к которому обращаются.
Теперь, может быть, я делаю что-то не так, но мой актуальный вопрос:
Когда следует обратиться к дополнительному DNS-серверу, указанному в моем /etc/resolv.conf
? Это только когда основной не работает? Мое необразованное предположение заключалось в том, что если первичный сервер имен не может ответить на запрос, то к вторичному DNS-серверу обращаются. Это предположение просто неправильно? Меняется ли это поведение в зависимости от операционной системы?