로컬 '호스트'파일의 항목이 정방향 및 역방향 이름 조회를 모두 무시합니까?


16

호스트 파일에 다음 항목이있는 경우 :

192.168.100.1    bugs
192.168.100.2    daffy.example.com
192.168.100.3    elmer.example.com.

로컬 유틸리티 ( 'gethostbyaddr'또는 Windows와 동등한 것을 사용한다고 가정)가 IP-> 이름 확인을 시도하면 이러한 항목이 적용됩니까? 이 동작을 구성 할 수 있습니까? 운영 체제마다 어떻게 다릅니 까? '호스트'파일 항목이 완전한지 여부는 중요합니까?

편집 : Russell에 응답하여 테스트 Linux 시스템에서 RHEL 4를 실행 중입니다. 내 /etc/nsswitch.conf에는 다음 '호스트'행이 포함되어 있습니다.

hosts:      files dns nis

이름으로 호스트를 핑 (예 : 버그, daffy)하면 포워드 해상도가 올바르게 작동합니다. IP 주소로 이들 중 하나를 추적하면 역방향 조회가 예상대로 작동합니다. 그러나 IP로 ping하면 ping이 호스트 이름을 확인하지 않는 것으로 보입니다. 나는 다른 지시가 없으면 Linux ping은 항상 IP를 이름으로 확인하려고 시도한다는 것을 이해했습니다. traceroute가 호스트 파일에서 역방향 조회를 처리 할 수있는 이유는 무엇입니까?

답변:


16

일반적으로 호스트 파일은 정방향 및 역방향 조회에 모두 사용됩니다. 유닉스 시스템에서의 기본 설정은 nsswitch.conf 파일의 항목 순서에 따라 다릅니다.

예를 들어 아래 행은 hosts 파일을 DNS보다 우선합니다. 항목을 되 돌리면 DNS가 호스트 파일보다 우선합니다.

호스트 : 파일 DNS

Windows 시스템에서 기본 설정 순서로 조정할 수 있는지 확실하지 않습니다.

inetutils-20071127 (Ubuntu 9.04 상자에 설치된 버전)에서 핑 소스를 살펴 보았고 호스트 이름 대신 IP 주소를 핑하면 소스가 숫자 전용 모드를 사용하는 것으로 보입니다.

                if (inet_aton (target, & whereto.sin_addr) == 1) {
                        호스트 이름 = 대상;
                        if (argc == 1)
                                옵션 | = F_NUMERIC;

IP 주소로 호스트를 핑 (ping) 할 때 역방향 조회를하지 않는 이유를 설명 할 수 있습니다.


그건 내 생각이지만, 그렇지 않은 것 같습니다. 자세한 내용은 업데이트 된 질문을 참조하십시오.
Murali Suriar

아직 소스를 볼 기회가 없었습니다. 그러나 ldd 출력을 간략히 살펴보면 내 시스템 핑에서 libresolv DNS 리졸버 라이브러리에 직접 연결되어 있음을 알 수 있습니다. 이는 nsswitch 파일을 무시하고 역방향 조회를 직접 수행하고 있음을 의미 할 수 있습니다.
Russell Heilling

ISC host유틸리티를 사용하면 / etc / hosts를 편집해도 아무런 영향이 없습니다. host 10.0.0.1DNS 쿼리를 수행하고 호스트 파일을 무시합니다. 시스템 리졸버를 확인할 수 있습니다.perl -MSocket -le '$a=inet_aton(shift); $_=gethostbyaddr $a, AF_INET; print' 10.0.0.1
mivk

8

Windows에서 이름 확인 순서를 변경하기 위해 레지스트리 항목을 변경하는 것에 대한 참조를 찾았습니다.

http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=963485

거기에서 인용 :

기본적으로 Windows는 이름 확인 공급자를 다음 순서로 확인합니다.

로컬, (NetBT 로컬 이름 캐시), 호스트, DNS, NetBT (WINS).

주문은 호스트, DNS, 로컬, NetBT가 되길 원합니다.

다음은 숫자가 낮을수록 우선 순위가 높습니다.

다음 레지스트리 키

HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\ServicessTcpip\ServiceProvider

수정해야합니다.

DnsPriority= 0x3e8 (Decimal: 1000)
HostsPriority= 0x1f4 (Decimal: 500)
LocalPriority= 0x5dc (Decimal: 1500)
NetbtPriority= 0x7d1 (Decimal: 2001)

그들은 어떻게 "내부"정보를 얻습니까?
Pacerier

1

/etc/host.conf어떤 순서로 파일 지정은 IP 주소를 발견하는 데 사용됩니다. 광산에는 기본적으로 다음이 포함됩니다.

#
# /etc/host.conf
#

order hosts,bind
multi on

즉, 호스트 파일을 항상 먼저 확인한 다음 DNS (바인드)를 확인해야합니다.

경우 nis여기에 지정되지 않은 다음은보고하지 않습니다 /etc/nsswitch.conf.

문서 링크 : http://tldp.org/LDP/nag/node82.html


/etc/host.conf 메소드는 일부 시스템에서는 구식이며, glibc 및 eglibc 기반 시스템과 같이 nsswitch.conf 만 사용됩니다. 이 버전의 glibc는 경고없이 '/etc/host.conf'를 구문 분석하고 'order'줄을 버립니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.