другий сервер імен у /etc/resolv.conf не підхоплений wget


14

Моя резолюція.conf виглядає так:

; generated by /sbin/dhclient-script
search mcdc
nameserver 10.0.4.48
nameserver 8.8.8.8

якщо я nslookup www.google.comце зробить

nslookup www.google.com
;; Got SERVFAIL reply from 10.0.4.48, trying next server
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.

але коли я згортаю www.google.com, він не може вирішити хост.

Я спробував запустити curl під strace, і виявив, що curl використовує лише перший сервер імен у resoluv.conf, а не другий. Якщо я перемикаю два рядки серверів імен навколо, www.google.com вирішує, але внутрішні імена DNS цього не роблять, тож це не вдале вирішення.

Як я можу виправити файл resv.conf для використання обох серверів імен?

Відповіді:


24

Поводження для resv.conf та резолютора за замовчуванням полягає у спробі серверів у вказаному порядку. Резолювач спробує наступний сервер імен лише у випадку, коли перший сервер імен вичерпається. На сторінці Resolv.conf написано:

IP-адреса сервера імен

Інтернет-адреса (у крапкових позначеннях) сервера імен, на яку повинен звертатися до резолюції. Можна вказати до MAXNS (зараз 3, див.) Серверів імен, по одному за ключовим словом. Якщо є декілька серверів, бібліотека резолюцій запитує їх у вказаному порядку.

І:

(Використовуваний алгоритм - це спробувати сервер імен, і якщо час запиту закінчиться, спробуйте наступне, поки не вийдуть сервери імен, а потім повторіть спробу всіх серверів імен, поки не буде виконано максимальну кількість повторень.)

Для отримання додаткової інформації див. Сторінку посібника з роздільною здатністю (5) .

Ви можете змінити поведінку рішення, використовуючи rotate, що буде запитувати сервери імен у порядку "круглого":

Поворот встановлює RES_ROTATE в _res.options, що викликає круговий вибір серверів імен серед перелічених. Це спричиняє поширення завантаження запитів серед усіх перерахованих серверів, а не змусити всіх клієнтів кожен раз спробувати перший перелічений сервер.

Однак nslookup буде використовувати другий сервер імен, якщо він отримує SERVFAILвід першого сервера імен. На сторінці nslookup :

[no] fail Спробуйте наступний сервер імен, якщо сервер імен відповість SERVFAIL або рефералом (nofail) або припинить запит (невдача) на таку відповідь.

(За замовчуванням = nofail)


2

так, ви можете використовувати параметр "обертання" та час очікування для покращення пошуку DNS, нижче наведено приклад,

Наприклад:

[root@centos-xxxxxx ~]# cat /etc/resolv.conf
options rotate
options timeout:1
search xyz.abc.local
nameserver 192.168.56.3
nameserver 10.0.2.4

1

Чи є 10.0.4.48 рекурсивний dns-сервер, який також називається резольвером?

Або це лише авторитетний сервер для ваших внутрішніх зон?

Вам слід створити внутрішній дозвіл, який також може зберігати ваші авторитетні дані.


0

Таким чином, щоб він працював, як очікувалося, встановіть dnsmasq або інший легкий DNS-ретранслятор (або повноцінний сервер DNS). Див. Порівняння програмного забезпечення сервера DNS .

Для конфігурації dnsmasq так само просто:

server=10.0.4.48
server=8.8.8.8

Ви також можете вказати, для яких доменів слід використовувати деякі DNS. Наприклад:

server=/mcdc/10.0.4.48
server=8.8.8.8

Це змусить Dnsmasq шукати *.mcdcв 10.0.4.48DNS - сервері і будь-яких інших в 8.8.8.8.

У /etc/resolv.confвас просто використовувати локальний DNS:

nameserver 127.0.0.1

Детальніше про налаштування dnsmasq див. Мою відповідь тут: /unix/55090/change-default-dns-on-openvpn-connect/545591#545591 .


-3

Якщо ви можете, я налаштував би це таким чином.

search mcdc
nameserver 127.0.0.1
nameserver 8.8.8.8


6
У якій частині запитання вказується, що вони працюють на сервері DNS або хочуть?
Джей


1
Блейк: Зауважте, що 127.0.0.1 зазвичай використовується лише для систем, які керують демоном кешування сервера імен на локальному хості. Дивіться tldp.org/HOWTO/DNS-HOWTO-3.html
Стефан Ласєскі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.