리졸버가 즉시 응답하더라도 데비안 Wheezy를 실행하는 VM이 있는데 일부 호스트 이름 조회를 완료하는 데 몇 초가 걸립니다. 이상하게도 조회 getaddrinfo()
는 영향을 받지만 gethostbyname()
그렇지 않습니다.
로컬 해결 방법이 깨질 가능성을 배제하기 위해 Google 리졸버로 전환했습니다 /etc/resolv.conf
.
search my-domain.com
nameserver 8.8.4.4
nameserver 8.8.8.8
내 nsswitch.conf
라인이 있습니다 :
hosts: files dns
내 /etc/hosts
특이한 것이 포함되어 있지 않습니다.
시도 telnet webserver 80
하면 이름 확인을 받기 전에 몇 초 동안 중단됩니다. ltrace
출력 취급이되어 [1] 방송 getaddrinfo()
호출 :
getaddrinfo("ifconfig.me", "telnet", { AI_CANONNAME, 0, SOCK_STREAM, 0, 0, NULL, '\000', NULL }, 0x7fffb4ffc160) = 0 <5.020621>
그러나 tcpdump
네임 서버가 즉시 응답했으며 telnet
차단되지 않은 두 번째 응답에만 있음이 밝혀 졌습니다. 답글이 동일하게 보입니다.
05:52:58.609731 IP 192.168.1.75.43017 > 8.8.4.4.53: 54755+ A? ifconfig.me. (29)
05:52:58.609786 IP 192.168.1.75.43017 > 8.8.4.4.53: 26090+ AAAA? ifconfig.me. (29)
05:52:58.612188 IP 8.8.4.4.53 > 192.168.1.75.43017: 54755 4/0/0 A 219.94.235.40, A 133.242.129.236, A 49.212.149.105, A 49.212.202.172 (93)
[...five second pause...]
05:53:03.613811 IP 192.168.1.75.43017 > 8.8.4.4.53: 54755+ A? ifconfig.me. (29)
05:53:03.616424 IP 8.8.4.4.53 > 192.168.1.75.43017: 54755 4/0/0 A 219.94.235.40, A 133.242.129.236, A 49.212.149.105, A 49.212.202.172 (93)
05:53:03.616547 IP 192.168.1.75.43017 > 8.8.4.4.53: 26090+ AAAA? ifconfig.me. (29)
05:53:03.618907 IP 8.8.4.4.53 > 192.168.1.75.43017: 26090 0/1/0 (76)
호스트 방화벽 로그를 확인했지만 포트 53의 아무것도 차단되지 않습니다.
첫 번째 DNS 응답이 무시되는 원인은 무엇입니까?
[1] 구조체 ltrace.conf
안에 볼 수 있도록 몇 줄을 추가했습니다 addrinfo
.