DNS रिज़ॉल्यूशन पिंग और कर्ल के लिए विफल रहता है, लेकिन खुदाई नहीं करता है


11

मैं DNSMasq को स्थानीय DNS सर्वर के रूप में चला रहा हूं, इसलिए मैं हल कर सकता हूं *.local.pcfdev.io(जैसा कि यहां चर्चा की गई है मैक ओएस एक्स के साथ पीसीएफ देव ऑफलाइन का उपयोग करना )। जब मैंने पहली बार चीजों को सेट किया तो सब कुछ काम किया।

कुछ दिनों के बाद, मेरे मैकबुक के कुछ रीस्टार्ट होने के बाद, ऑफ़लाइन होने के बाद मैं अब ऐसी चीजों को हल नहीं कर सकता जैसे या api.local.pcfdev.ioउपयोग करना । हालाँकि, सही काम करता है।curlpingdig

$ dig api.local.pcfdev.io

; <<>> DiG 9.8.3-P1 <<>> api.local.pcfdev.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46877
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;api.local.pcfdev.io.       IN      A

;; ANSWER SECTION:
api.local.pcfdev.io.    0       IN      A       192.168.11.11

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Sep  6 10:17:44 2016
;; MSG SIZE  rcvd: 53

$ curl api.local.pcfdev.io
curl: (6) Could not resolve host: api.local.pcfdev.io

मैंने -AlwaysAppendSearchDomainsएक तर्क के रूप में जोड़ने की कोशिश की /usr/sbin/mDNSResponderहै /System/Library/LaunchDaemons/com.apple.mDNSResponder.plistऔर mDNSResponder को फिर से शुरू किया है launchctl, लेकिन कोई फायदा नहीं हुआ।


अद्यतन १

निश्चित रूप से सही स्थानीय आईपी पर कुछ सुनना है:

$ nslookup api.local.pcfdev.io
Server:     127.0.0.1
Address:        127.0.0.1#53

Name:   api.local.pcfdev.io
Address: 192.168.11.11

$ ping api.local.pcfdev.io
ping: cannot resolve api.local.pcfdev.io: Unknown host

$ telnet 192.168.11.11 80
Trying 192.168.11.11...
Connected to 192.168.11.11.
Escape character is '^]'.

HTTP/1.1 400 Bad Request

Connection closed by foreign host.

अद्यतन २

नेटवर्क प्रेफरेंस से सभी डीएनएस सर्वर को हटाने के लिए नीचे दिए गए सुझाव की कोशिश करने के बाद 127.0.0.1, मैं कुछ भी हल नहीं कर सकता। मैं कुछ डिबग लॉगिंग प्राप्त करने में कामयाब रहा mDNSResponder:

mDNSResponder[91]:  74: DNSServiceCreateConnection START PID[32612](ping)
mDNSResponder[91]:  74: Error socket 75 created 00000000 00000001
mDNSResponder[91]:  74: DNSServiceQueryRecord(15000, 0, api.local.pcfdev.io., Addr) START PID[32612]()
mDNSResponder[91]:  74: Error socket 75 closed  00000000 00000001 (0)
mDNSResponder[91]:  74: DNSServiceQueryRecord(api.local.pcfdev.io., Addr) ADD    0 api.local.pcfdev.io. Addr
mDNSResponder[91]:  74: Cancel 00000000 00000001
mDNSResponder[91]:  74: DNSServiceQueryRecord(api.local.pcfdev.io., Addr) STOP PID[32612]()
mDNSResponder[91]:  74: DNSServiceCreateConnection STOP PID[32612](ping)

मैंने यह भी देखा कि प्रस्तावित उत्तर में बताया गया है, nslookupऔर digकुछ भी लॉग इन करने का कारण नहीं है mDNSResponder, लेकिन अन्य उपकरण ( ping, curl) करते हैं।

तो ऐसा लगता है कि जो भी कारण dnsmasqकाम नहीं कर रहा है (मैं टीसीपी कनेक्शन स्थापित कर सकता हूं 127.0.0.1:53) या mDNSResponderइसका उपयोग नहीं कर रहा है।


अद्यतन 3

etc/resolve.confमेरे वाईफाई एडेप्टर के सक्रिय होने पर मौजूद होना बंद हो जाता है, लेकिन मैं किसी नेटवर्क से जुड़ा नहीं हूं। क्या यह हो सकता है कि सीएलआई उपकरण स्थानीय dnsmasqसर्वर का उपयोग न करें ?


क्या आपका नेटवर्क एडेप्टर संयोग से नीचे है? यदि आप सिस्टम वरीयताएँ में 'नेटवर्क' पर जाते हैं, तो क्या एडाप्टर के बगल में एक हरे रंग की बिंदी होती है जिसे उपयोग करने के लिए dnsmasq कॉन्फ़िगर किया गया है?
आम

ठीक है, मैं एक ट्रेन पर हूं जिसमें कोई वाई-फाई नहीं है, इसलिए शायद।
इंजीनियरबेटेर_डीजे

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

इसे नीचे ट्रैक करने की कोशिश करने के लिए धन्यवाद। मैं भी इससे जूझ रहा हूं, समझ में नहीं आता कि "कर्ल फू: 8989" मेजबान को क्यों नहीं मिल रहा है, लेकिन "डिग फू" कर सकते हैं। हां, "कर्ल 172.20.0.17:8989" ठीक काम करता है। आप की तरह मेरे पास वाई-फाई नेटवर्क डीएनएस 127.0.0.1 पर सेट है (एक डॉकसम कंटेनर में चल रहा डीएनएसएमक्यू)। एफडब्ल्यूआईडब्ल्यू मेरी वर्तमान स्थिति में, समस्या उस वाईफाई नेटवर्क के लिए विशिष्ट है जिसे मैं कनेक्ट करता हूं - मेरे व्यक्तिगत हॉटस्पॉट पर ठीक काम करता है, समस्या एक कॉफ़ीशॉप वाईफाई पर है।
जामशीद

मैंने विचाराधीन प्रोग्रामों को उल्टा नहीं किया है, लेकिन मेरी उम्मीद है कि वे पूरी तरह से अलग डीएनएस रिज़ॉल्यूशन कोड बेस कह रहे हैं और इसीलिए आप ब्रेक्जिट देख रहे हैं - कुछ स्थानीय रूप से इंगित कर रहे हैं, अन्य नहीं। मैं शायद गहन जानकारी चाहते हैं curlया wgetया उपकरणों में उन्हें / प्रोफाइलर / डिबगर हो और देखते हैं कि क्या वास्तव में संकल्प त्रुटि नहीं कर सका पैदा करने के लिए हो रहा है।
bmike

जवाबों:


12

यही मुद्दा था। मुझे लगता है कि स्थानीय DNS कैश का मेरे पिछले परीक्षण से खराब डेटा था। यह जल्दी से तय हो गया था:

sudo killall -HUP mDNSResponder

1
मैंने देखा है कि pingऔर digकभी-कभी अलग-अलग आईपी पते लौटाते हैं (आमतौर पर स्प्लिट क्षितिज डीएनएस के साथ) और यह कमांड इसे ठीक करता है। मूल कारण क्या है, मुझे यकीन नहीं है, दुर्भाग्य से।
जेम्स

7

एक ओर खुदाई और दूसरी ओर कर्ल / पिंग अलग-अलग मेजबानों से डेटा प्राप्त कर रहे हैं:

एक डीएनएस सर्वर को खोदें - आपके मामले में आपका लोकलहोस्ट (127.0.0.1) - डेटाबेस प्रविष्टि के लिए: FQDN api.local.pcfdev.io से संबंधित आईपी एड्रेस। मेजबान को स्वयं दौड़ने या यहां तक ​​कि सभी मौजूद नहीं है।

कर्ल / पिंग mDNSResponder के साथ या अन्य माध्यमों से एक आईपी-पते को हल करने का प्रयास करते हैं और अंत में दूरस्थ होस्ट के साथ / पर बातचीत करते हैं। यदि होस्ट 192.168.11.11 नहीं चलता है या बिल्कुल मौजूद नहीं है, तो दोनों विफल हो जाएंगे।

अब, या तो DNS प्रविष्टि गलत है (api.local.pcfdev.io के पास 192.168.11.11 की तुलना में एक और आईपी है) या DNS प्रविष्टि सही है लेकिन मेजबान 192.168.11.11 नहीं चल रहा है।


/System/Library/LaunchDaemons/com.apple.mDNSResponder.plist में / usr / sbin / mDNSResponder के तर्क के रूप में -AlwaysAppendSearchDomains जोड़ना अनुशंसित नहीं है। इसके बजाय आप इसे /Library/Preferences/com.apple.mDNSResponder.plist में जोड़ना चाहिए (स्रोत: ):man mDNSResponder

जब यह OS X 10.11 (El Capitan) पर लॉन्च होता है, तो बाद में इन वैकल्पिक तर्कों के साथ mDNSResponder चलाने के लिए, /Library/Preferences/com.apple.mDNSResponder.plist और रीबूट में true पर हमेशाAppAppendSearchDomains या NoMulticastAdvertisements बूलियन कुंजी सेट करें।

आपके मामले में यह कुंजी सेट करने के लिए बिल्कुल भी आवश्यक नहीं है, क्योंकि यह आपकी समस्या का कारण नहीं है।


वर्चुअलबॉक्स में खुदाई करने के बाद, पीसीएफ देव (वीएम में लॉग इन करने की कोशिश करने वाले कुछ "गलत क्रेडेंशियल्स के साथ बार-बार असफल हो रहे हैं" और dnsmasq मैं DNS प्रश्नों को केवल dnsmasq में विकसित करने की सलाह देता हूं:

  • सिस्टम वरीयताओं में> नेटवर्क> इंटरफ़ेस> DNS सर्वर 127.0.0.1 को छोड़कर सभी DNS सर्वरों को हटा देता है और परिवर्तन लागू करता है। आप एक दूसरे स्थान को 127.0.0.1 केवल सेटअप के साथ कॉन्फ़िगर कर सकते हैं और अपने वर्तमान DNS सर्वर को अन्य कॉन्फ़िगरेशन में रख सकते हैं।
  • सामग्री के साथ एक फ़ाइल /usr/local/etc/resolv.dnsmasq.conf जोड़ें

    #use your preferred DNS servers here. In the example I use some Google name servers
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    
  • resolv-file=/usr/local/etc/resolv.dnsmasq.confपंक्ति में जोड़ें ~ 46 of /usr/local/etc/dnsmasq.conf
  • जोड़ने या address=/.local.pcfdev.io/192.168.11.11पर जाने के लिए / लाइन ~ 80 के /usr/local/etc/dnsmasq.conf
  • dnsmasq को फिर से शुरू करें:

    sudo launchctl stop homebrew.mxcl.dnsmasq
    sudo launchctl start homebrew.mxcl.dnsmasq
    

जवाब देने में व़क्त लेने के लिए शुक्रिया। कुछ न कुछ सुनने को जरूर है 192.168.11.11; *.local.pcfdev.ioहमेशा के लिए वास्तविक सार्वजनिक DNS प्रविष्टि उसी स्थानीय आईपी पर वापस इंगित करती है, इसलिए जैसे ही मैं inforwebs से जुड़ता हूं curl, उस DNS सर्वर से उत्तर प्राप्त करना चाहिए और यह पता लगाने में सक्षम है कि किस आईपी पते का उपयोग करना है।
EngineerBetter_DJ

1
यह की तरह लगता है curl, pingऔर अन्य बाइनरी मैं इस बात को हिट करने के DNS प्रविष्टियों (जो का उपयोग नहीं कर रहा है को देख में से एक साधन का उपयोग कर रहे चाहते dnsmasqस्थानीय होस्ट पर सर्वर), और nslookupऔर digएक और साधन का उपयोग कर रहे हैं। मुझे लगता है कि मुझे mDNSResponder के बारे में अधिक जानने की आवश्यकता है!
EngineerBetter_DJ

@EngineerBetter क्या आपके पास सिस्टम वरीयताएँ> नेटवर्क> इंटरफ़ेस> DNS में 127.0.0.1 से कोई अन्य प्रविष्टियाँ हैं? - मैं पूरे सूट (VBox, PCF Dev आदि) को स्थापित करने जा रहा हूं और यह जांचता हूं ... कोई विशेष कॉन्फिग?
कालोनोमथ

इस के साथ मेरी मदद करने के लिए समय निकालने के लिए फिर से धन्यवाद। प्रश्न अपडेट किया गया है, अभी भी कोई भाग्य नहीं है।
EngineerBetter_DJ

0

इससे मुझे इसे हल करने में ज्यादा समय लगा। अन्य थ्रेड्स पर अनुशंसित के अनुसार mDNSResolver के दर्जनों बार पुनः आरंभ करने के बाद:

sudo killall -HUP mDNSResponder

मैंने आखिरकार कुछ और करने की कोशिश की। मैंने वाई-फाई को अक्षम कर दिया और अपने सभी पसंदीदा नेटवर्क हटा दिए। फिर मैंने वाई-फाई कनेक्शन को फिर से स्थापित किया और सब कुछ ठीक काम किया:

  1. Apple मेनू -> सिस्टम प्राथमिकताएं -> वाई-फाई (बाईं ओर)
  2. 'वाई-फाई बंद करें' और फिर 'उन्नत' चुनें
  3. उस वाई-फाई कनेक्शन को हटाएं जो आपको पसंद है (या आप सभी को पसंद है)। ऐसा वाई-फाई नेटवर्क चुनें जिसे आप हटाना चाहते हैं और दबाकर "-"
  4. 'लागू करें' और 'ठीक' पर क्लिक करें
  5. वाई-फाई को वापस चालू करें।
  6. अपना वाई-फाई नेटवर्क चुनें और फिर से लॉग इन करें।

YMMV, लेकिन यह वही है जो आखिरकार मेरे लिए काम करता है। यह संभवत: पहली कोशिश होनी चाहिए थी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.