मेरे पास एक 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 उत्तर को अनदेखा करने का क्या कारण है?
[१] मैंने अपने साथ कुछ पंक्तियाँ जोड़ी हैं ltrace.conf
ताकि मैं addrinfo
संरचना के अंदर देख सकूँ ।