ping이나 기타 네트워크 통신을 수행할 때 resolv.conf의 검색 도메인이 호스트에 추가되지 않습니다.

ping이나 기타 네트워크 통신을 수행할 때 resolv.conf의 검색 도메인이 호스트에 추가되지 않습니다.

여러 검색 도메인이 Debian 8.8.0에서 작동하지 않는 이유를 찾으려고 합니다. /etc/resolv.conf에 검색 도메인을 추가하면 도메인 중 하나에만 적용됩니다. 이 경우 domain1.local은 작동하지만 domain2.local은 작동하지 않습니다.

FQDN을 수동으로 추가하면 제대로 작동합니다. 이는 nslookup, ping, iperf, nmap, 컬, wget 등 모든 CLI 기반 도구에 적용됩니다. 이전에 데비안이 .local 도메인을 지원하지 않는 경우를 본 적이 있습니다. avahi를 제거해야 했는데, 저는 첫 번째 .local 도메인이 작동하도록 하기 위해 제거했습니다: domain1.local.

.local 및 기타 도메인이 여러 개 있고 작동하지만 이 데비안 버전에서는 8.8.x작동하지 않습니다.

user@host:~$ uname -a
Linux host 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26)     x86_64 GNU/Linux


user@host:~$ cat /etc/resolv.conf

nameserver 192.16.1.110
### Standard Search domains:
search domain1.local domain2.local domain3.local domain4.local

검색 도메인 -domain1은 domain1.local을 자동으로 추가하고 nslookup, ping 등과 함께 작동합니다.

user@host:~$ ping host1
PING host1.domain1.local (192.16.1.110) 56(84) bytes of data.
64 bytes from host1.domain1.local (192.16.1.110): icmp_seq=1 ttl=118    time=63.6 ms

user@host:~$ nslookup host1
Server:     192.16.1.110
Address:    192.16.1.110#53

Name:   host1.domain1.local
Address: 192.16.1.110

이 예에서 domain2는 Hosty에 자동으로 연결되지 않습니다. nslookupDNS 서버에서는 호스트를 찾을 수 없습니다 /etc/resolv.fon(존재하긴 하지만). 하지만 - , , , 또는 기타 CLI 기반 IP 통신을 연결 FQDN하고 실행 하면 작동합니다.nslookuppingcurlnmapwget

user@host:~$ nslookup hosty
;; Got SERVFAIL reply from 192.16.1.110, trying next server
;; Got SERVFAIL reply from 192.16.1.111, trying next server
Server:     192.16.1.110
Address:    192.16.1.110#53

** server can't find hosty: SERVFAIL

user@host:~$ ping hosty
ping: unknown host hosty

호스트 끝에 domain2.local을 추가하면 ping, nslookup 등을 수행할 수 있습니다.

FQDN과 함께 사용하기 위한 ping, nslookup 및 컬

user@host:~$ ping hosty.domain2.local
PING hosty.domain2.local (192.16.48.20) 56(84) bytes of data.
64 bytes from hosty.domain2.local (192.16.48.20): icmp_seq=1 ttl=119 time=63.6 ms

nslookup with fqdn:

user@host:~$ nslookup hosty.domain2.local
Server:     192.16.1.110
Address:    192.16.1.110#53

Name:   hosty.domain2.local
Address: 192.16.48.20

user@host:~$ curl hosty.domain2.local
curl: (7) Failed to connect to hosty.domain2.local port 80: Connection refused

약 7개의 검색 도메인을 사용하는 Ubuntu 16.04 워크스테이션에 동일한 구성이 있다는 점을 언급할 가치가 있습니다.

새로운 Debian 8.8.x 서버에는 둘 이상의 검색 도메인을 처리하는 데 문제가 있습니다. Ubuntu와 약간 다른 Debian에 필요한 몇 가지 간단한 추가 구성이 확실히 누락되었습니다.

답변1

알았어 - 그건 내 실수였지만 문제는 이렇다. 매개변수 domain1.local아래에 나열했습니다 .domain/etc/resolv.conf

### Standard Search domains:
search domain1.local domain2.local
domain domain1.local # removed this line

nslookup에서 디버그를 실행하고 nslookup을 연결하려고 한다는 것을 확인한 후 domain1.local이를 제거하고 문제가 해결된 것 같습니다.

user@host:~$ nslookup hosty
Server:     192.16.1.110
Address:    192.16.1.110#53

Name:   hosty.domain2.local
Address: 192.16.48.20

나는 어리석은 짓을 하고 있지만 다른 사람이 같은 실수를 저지를 경우를 대비해 이것이 도움이 될 수 있습니다.

답변2

~에서구문 분석 구성 매뉴얼, DNS 검색에 대해

dns-nameservers 옵션도 허용되며 dns-nameserver와 달리 공백으로 구분하여 여러 인수를 지정할 수 있습니다. dns-domain 옵션은 더 이상 사용되지 않으며 dns-search로 대체됩니다.

결과 섹션은 다음 예와 유사할 수 있습니다.

iface eth0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameserver 192.168.1.254
    dns-nameserver 8.8.8.8
    dns-search foo.org bar.com

알아채다:resolvconf를 방금 설치했거나 설치하려고 하며 이전에 정적 /etc/resolv.conf 파일을 사용했던 컴퓨터의 경우,

• 이 정적 파일의 네임서버 정보(즉, 네임서버, 도메인, 검색 및 정렬 목록 행에 대한 정보)는 위에서 설명한 대로 /etc/network/interfaces(5)의 해당 iface 섹션으로 마이그레이션되어야 합니다.

면책 조항: 저는 일반적으로 데비안 서버에서 네트워크 관리자, resolvconf 및 systemd를 제거합니다.

관련 정보