방금 네트워크에 연결한 새로 구축된 Fedora 20 서버가 있습니다. VirtualBox 호스트에서 실행되는 가상 서버입니다. 모든 것이 잘 작동하는 것 같지만 이름 확인에 문제가 있습니다.
(이름 확인은 별도의 하드웨어에 있는 Windows 서버에서 네트워크의 다른 모든 컴퓨터에 제공됩니다.)
명령줄에서 외부 호스트를 확인할 수 있습니다 unix.stackexchange.com
. 예를 들어 제가 시도한 다른 모든 외부 호스트와 마찬가지로 이 문제를 행복하게 해결하고 핑할 수 있습니다.
그러나 내 로컬 네트워크(우리가 부르는 이름 xyz.local
)는 다릅니다. 내 F20 시스템의 네트워크 인터페이스는 DOMAIN=xyx.local
네트워크 스크립트에 있습니다(아래 전체 스크립트). 예를 들어 명령줄에서는 구문 분석할 수 server-01
있지만 server-01.xyz.local
.
예를 들어 표준 이름이 긴 형식이므로 별칭의 짧은 형식을 구문 분석할 수 있지만 ping mysql
해당 별칭으로 성공적으로 확인되지만 구문 분석 하거나 구문 분석 linux-04.xyz.local
할 수는 없습니다 .mysql.xyz.local
linux-04.xyz.local
분명히 나는 뭔가를 놓치고 있습니다. 누구든지 제안할 수 있나요?
/etc/hosts에는 127.0.0.1에 대한 표준 localhost 항목만 포함됩니다.
/etc/resolv.conf는 다음과 같습니다:
#Generated by Network Manager
search xyz.local
nameserver 192.168.xxx.xxx
내 인터페이스 스크립트는
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME="Wired connection 1"
UUID=<uuid>
ONBOOT=yes
IPADDR0=192.168.xxx.xxx
PREFIX0=24
GATEWAY0=192.168.xxx.xxx
DNS1=192.168.xxx.xxx
HWADDR=<mac>
DOMAIN=xyz.local
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
답변1
문제의 일부는 NetworkManager를 통해 자동으로 생성되는 검색 경로로 인해 발생할 수 있습니다.
search xyz.local
이 줄은 실제로 다음과 같아야 합니다.
search xyz.local.
마지막 기간은 DNS 확인자가 중지하도록 지시하므로 중요합니다. 따라서 다음과 같은 작업은 수행되지 않습니다.
mysql.xyz.local.xyz.local
마침표를 수동으로 추가하여 일시적으로 호스트 이름을 확인하면 이를 확인할 수 있습니다.
$ nslookup mysql.xyz.local.
이 도메인을 광범위하게 구문 분석
이 문제를 해결하려면 도메인이 xyz.local.
.
/etc/nsswitch.conf
호스트 이름을 확인하는 데 사용되는 방법은 파일에 의해 제어됩니다 /etc/nsswitch.conf
. NSS 표기법은 Name Service Switching을 의미하며 이에 대한 자세한 내용은 매뉴얼 페이지에서 확인할 수 있습니다 man nss
.
다음은 호스트 이름을 확인하는 방법을 제어하는 내 파일의 줄입니다.
$ grep ^hosts /etc/nsswitch.conf
hosts: files dns mdns4_minimal
먼저 내 로컬 파일을 살펴본 /etc/hosts
다음 두 번째로 DNS를 쿼리합니다.
답변2
이 문제는 nsswitch.conf 파일의 "mdns4_minimal" 키워드로 인해 발생합니다. 이 키워드는 local로 끝나는 모든 콘텐츠가 mdns를 사용하여 쿼리되어야 함을 파서에게 알려줍니다. 해당 키워드를 제거하는 것(대개 대괄호로 묶인 다른 옵션과 함께)이면 충분합니다.
자세한 내용은 내에서 찾을 수 있습니다.우편 엽서
nslookup이 모든 문제를 해결하는 이유는 nsswitch.conf를 찾지 않고 /etc/resolv.conf를 직접 사용하기 때문입니다. 반면에 Ping은 먼저 nsswitch.conf를 보고 거기에 기록된 내용을 사용하여 이름을 확인하는 확인자에 의존합니다.