क्या स्थानीय 'होस्ट' फ़ाइलों में प्रविष्टियाँ आगे और पीछे नाम लुकअप दोनों को ओवरराइड करती हैं?


16

यदि मेरे पास एक होस्ट फ़ाइल में निम्नलिखित प्रविष्टियाँ हैं:

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

क्या स्थानीय उपयोगों द्वारा IP-> नाम रिज़ॉल्यूशन के प्रयास (मैं 'gethostbyaddr' या विंडोज समतुल्य का उपयोग करके मान लेता हूं) इन प्रविष्टियों का सम्मान करते हैं? क्या यह व्यवहार विन्यास योग्य है? यह ऑपरेटिंग सिस्टम के बीच कैसे भिन्न होता है? इससे कोई फर्क नहीं पड़ता कि 'होस्ट' फ़ाइल प्रविष्टियाँ पूरी तरह से योग्य हैं या नहीं?

EDIT: रसेल के जवाब में, मेरा टेस्ट लिनक्स सिस्टम RHEL 4. चल रहा है। My /etc/nsswitch.conf में निम्नलिखित 'होस्ट' लाइन शामिल हैं:

hosts:      files dns nis

अगर मैं अपने किसी भी होस्ट को नाम (जैसे बग, डफी) द्वारा पिंग करता हूं, तो आगे का रिज़ॉल्यूशन सही तरीके से काम करता है। अगर मैं उनमें से किसी को भी आईपी पते से ट्रेसआउट कर देता हूं, तो रिवर्स लुकअप अपेक्षा के अनुसार कार्य करता है। हालाँकि, अगर मैं उन्हें आईपी द्वारा पिंग करता हूं, तो पिंग उनके होस्ट नामों को हल करने के लिए प्रकट नहीं होता है। मेरी समझ यह थी कि लिनक्स पिंग हमेशा आईपी को नामों को हल करने का प्रयास करेगा जब तक कि अन्यथा निर्देश न दिया जाए। ट्रेसरआउट मेजबान फ़ाइलों में रिवर्स लुकअप को संभालने में सक्षम क्यों होगा, लेकिन पिंग नहीं?

जवाबों:


16

आम तौर पर होस्ट फ़ाइल का उपयोग आगे और पीछे दोनों तरह के लुकअप के लिए किया जाएगा। एक यूनिक्स प्रणाली पर वरीयता आप nsswitch.conf फ़ाइल में प्रविष्टियों के क्रम पर निर्भर करेगी।

उदाहरण के लिए नीचे दी गई लाइन होस्ट्स फ़ाइल को DNS से ​​ओवरराइड करेगी। प्रविष्टियों को उलटने से DNS होस्ट्स फ़ाइल को ओवरराइड करेगा।

होस्ट: फाइलें डीएनएस

मुझे यकीन नहीं है कि अगर आप विंडोज़ सिस्टम पर वरीयता के क्रम में ट्यून कर सकते हैं।

मुझे inetutils-20071127 (मेरे Ubuntu 9.04 बॉक्स पर स्थापित संस्करण) में पिंग के लिए स्रोत पर एक नज़र है और स्रोत संख्यात्मक एकमात्र मोड को सक्षम करने के लिए लगता है यदि आप एक होस्टनाम के बजाय एक आईपी पते को पिंग करते हैं:

                अगर (inet_aton (लक्ष्य, और whereto.sin_addr) == 1) {
                        hostname = target;
                        अगर (argc == 1)
                                विकल्प | = F_NUMERIC;

यह समझा सकता है कि जब आप आईपी पते द्वारा अपने मेजबान को पिंग करते हैं तो आपको रिवर्स लुकअप क्यों नहीं मिलता है।


यह मेरा विचार था, लेकिन यह मामला प्रतीत नहीं होता है। विवरण के लिए अद्यतन प्रश्न देखें।
बजे मुरली सुरियार

मुझे अभी तक स्रोत को देखने का मौका नहीं मिला है; हालाँकि ldd आउटपुट पर एक त्वरित नज़र यह दर्शाती है कि मेरे सिस्टम पर पिंग सीधे तौर पर libresolv DNS रिसॉल्वर लाइब्रेरी से जुड़ा हुआ है, जो यह अनुमान लगा सकता है कि यह nsswitch फ़ाइल को दरकिनार कर रहा है और सीधे इसके रिवर्स लुकअप कर रहा है ...
Russell Heilling

आईएससी hostउपयोगिता का उपयोग करते समय , किसी को यह आभास हो सकता है कि संपादन / आदि / मेजबानों का कोई प्रभाव नहीं है। 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)

उन्हें इस तरह की "इनरवर्किंग" जानकारी कैसे मिलती है?
पचेरियर

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 विधि कुछ प्रणालियों के लिए पुरानी है, केवल nsswitch.conf का उपयोग किया जाता है (जैसे glibc और eglibc आधारित सिस्टम)। ग्लिबेक के ये संस्करण चेतावनी के बिना '/etc/host.conf' को पार्स करेंगे और 'ऑर्डर' लाइन को छोड़ देंगे।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.