IP 주소보다 호스트 이름으로 핑하는 데 왜 더 오래 걸립니까?


7

호스트 이름으로 핑하는 것이 IP 주소를 사용하는 것보다 느리다는 것을 알았습니다. 예를 들어, Linux 명령 행에서 :

$ time ping google.com -c 1
PING google.com (150.101.213.160) 56(84) bytes of data.
64 bytes from 150.101.213.160: icmp_seq=1 ttl=61 time=14.4 ms

--- google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 14.425/14.425/14.425/0.000 ms

real    0m5.251s
user    0m0.003s
sys 0m0.005s

$ time ping 150.101.213.160 -c 1
PING 150.101.213.160 (150.101.213.160) 56(84) bytes of data.
64 bytes from 150.101.213.160: icmp_seq=1 ttl=61 time=14.5 ms

--- 150.101.213.160 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 14.537/14.537/14.537/0.000 ms

real    0m0.019s
user    0m0.001s
sys 0m0.004s

처음에는 그것이 해결하는 데 시간이 걸리는 DNS 서버라고 생각했지만 호스트 이름으로 핑하면 첫 번째 줄이 거의 즉시 나타나 IP 주소가 이미 결정되었음을 나타냅니다. 5 초 동안의 일시 중지는이 DNS 확인 후 (첫 번째) 핑을 받기 직전입니다.


.100 ms rtt 차이와 .001 sec 시스템 차이에 대해 정말로 걱정하고 있습니까? 실제로 한 번이 다른 쪽보다 빠르다는 것을 결정하려면이 테스트를 천 번 정도 반복해야합니다.
Ramhound

@Ramhound 아니오, 출력 하단의 시간을보십시오. 5 초입니다.
Sparhawk

각 테스트 전에 DNS 캐시를 지웠습니까? 그렇지 않으면 테스트가 유효하지 않습니다.
Ramhound

@Ramhound 그 방법을 잘 모르겠습니다. 여러 번 테스트했지만 캐시가 두 가지 유형의 테스트 모두에 적용되는지 확실하지 않습니다.
Sparhawk

을 사용하여 dns 캐시를 지울 수 있습니다 ipconfig.
Ramhound

답변:


14

조회 ( 역 DNS )를 ping통해 IP 주소를 이름 1로 다시 확인하려고하면 지연이 발생합니다 .160.213.101.150.in-addr.arpa

일반적으로 응답 (성공 또는 nxdomain) 즉각적 이어야 하지만 ISP 권한 서버에서 캐시하지 않았을 213.101.150.in-addr.arpa때 문제가있을 수 있습니다.

구성이 잘못되었거나 특정 DNS 서버의 버그로 인해 발생할 수도 있습니다. 매번이 지연이 발생하면 DNS 확인자가 응답을 제대로 캐싱하지 못할 수 있습니다 (음성 응답도 캐시 가능).

pingfrom iputils를 사용할 때는 -n역방향 DNS 조회를 피하기 위한 옵션을 추가하십시오 .


1 URL이 아닌 도메인 이름 또는 호스트 이름입니다. 특정 프로토콜이나 리소스를 지정하지 않습니다. http://google.comURL이됩니다. http://150.101.213.160URL이기도합니다.


내 ISP의 DNS 서버는 확실히 버그가 많았으며 이것이 더 많은 정보라고 생각합니다. -n거의 즉각적으로 만들지 만, 도메인 이름을 이미 부여 했으므로 DNS 서버가 왜 DNS를 역전시켜야하는지 정확히 이해하지 못합니까?
Sparhawk

3
@Sparhawk : ping요구하고 있기 때문입니다. 지금까지 DNS 서버가 우려로 google.com.하고 160.213.101.150.in-addr.arpa.절대적으로 독립적 인 - 그들은 심지어 다른 조직에 의해 위임하고 - 그리고 그들은 서로를 가리 필요는 없습니다. 예를 들어, mail.example.com./A1.2.3.4, 그이 될 수 4.3.2.1.in-addr.arpa./PTR있다 travis.example.com(서버의 실제 이름). 따라서 편의상 pingICMP 응답을받은 사람의 IP 주소를 역방향 조회하려고합니다. (중간에 라우터 일 수도 있고 오류 응답을 보낼 수도 있습니다.)
grawity

2
@Sparhawk : 또한 – 여러 도메인이 동일한 IP 주소를 가리킬 수 있으며 드문 경우에 한 IP 주소의 rDNS가 여러 도메인을 가리킬 수도 있습니다. 따라서 ping역방향 조회를 수행하면 DNS 서버는 이전에 조회 한 조회를 기반으로 가정 할 수 없으며 그 반대도 마찬가지입니다. 재사용 할 수있는 유일한 것은 정확히 동일한 쿼리 의 캐시 된 결과입니다 .
grawity
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.