/get/resolv.conf의 두 번째 네임 서버가 wget에 의해 선택되지 않았습니다


14

내 resolv.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을 말리면 호스트를 확인할 수 없습니다.

strace에서 curl을 실행하려고 시도했지만 curl은 resolv.conf의 첫 번째 네임 서버 만 사용하고 두 번째는 사용하지 않았습니다. 두 개의 네임 서버 줄을 바꾸면 www.google.com이 해결되지만 내부 DNS 이름은 확인되지 않으므로 좋은 해결 방법이 아닙니다.

두 이름 서버를 모두 사용하도록 resolv.conf를 어떻게 수정합니까?

답변:


24

resolv.conf 및 리졸버의 기본 동작은 나열된 순서대로 서버를 시도하는 것입니다. 확인자는 첫 번째 네임 서버가 시간 초과 된 경우에만 다음 네임 서버를 시도합니다. 경우 resolv.conf 맨은 말합니다 :

네임 서버 네임 서버 IP 주소

리졸버가 쿼리해야하는 네임 서버의 인터넷 주소 (점 표기법). 키워드 당 하나씩 최대 MAXNS (현재 3, 참조) 이름 서버가 나열 될 수 있습니다. 서버가 여러 개인 경우 확인자 라이브러리는 나열된 순서대로 서버를 쿼리합니다.

과:

(사용 된 알고리즘은 네임 서버를 시도하는 것이며 쿼리 시간이 초과되면 네임 서버가 나올 때까지 다음을 시도한 후 최대 재시도 횟수가 될 때까지 모든 네임 서버 시도를 반복하십시오.)

자세한 내용은 resolver (5) 매뉴얼 페이지를 참조하십시오.

이름 rotate서버를 라운드 로빈 순서로 쿼리하는을 사용하여 확인 자의 동작을 변경할 수 있습니다 .

회전은 _res.options에서 RES_ROTATE를 설정하여 나열된 서버 중에서 네임 서버를 라운드 로빈으로 선택합니다. 이렇게하면 모든 클라이언트가 매번 첫 번째로 나열된 서버를 먼저 시도하지 않고 나열된 모든 서버에 쿼리로드를 분산시키는 효과가 있습니다.

그러나 nslookup은 SERVFAIL첫 번째 네임 서버로부터를 받는 경우 두 번째 네임 서버를 사용합니다 . 로부터 nslookup을 맨 :

[no] fail 이름 서버가 SERVFAIL 또는 참조 (nofail)로 응답하거나 이러한 응답에서 쿼리를 종료 (fail)하면 다음 이름 서버를 사용해보십시오.

(기본값 = nofail)


2

예, "rotate"및 timeout 설정을 사용하여 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 *.mcdc10.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 서버를 실행 중이거나 원하는 것을 나타내나요?
Jay


1
Blake : 127.0.0.1은 일반적으로 로컬 호스트에 네임 서버 캐싱 데몬이있는 시스템에만 사용됩니다. 참조 tldp.org/HOWTO/DNS-HOWTO-3.html
스테판 Lasiewski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.