मैक स्थानीय होस्ट के लिए स्थानीय DNS के परिणाम की उपेक्षा करता है


1

मेरे पास मेरे स्थानीय नेटवर्क पर एक सर्वर (Ubuntu 16.04 चल रहा है) है, जो अन्य चीजों के बीच, DMSmasq चलाता है। मेरा स्थानीय डोमेन njj.chickenkiller.com है।

मेरे मैक पर चल रहा है, यदि आप DNS को क्वेरी करते हैं, तो यह मेरे नेटवर्क पर विभिन्न मशीनों का LAN पता देता है। उदाहरण के लिए:

beethoven:~ nick$ dig serv2.njj.chickenkiller.com

; <<>> DiG 9.8.3-P1 <<>> serv2.njj.chickenkiller.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36867
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;serv2.njj.chickenkiller.com.   IN  A

;; ANSWER SECTION:
serv2.njj.chickenkiller.com. 0  IN  A   192.168.2.4

;; Query time: 82 msec
;; SERVER: 192.168.2.4#53(192.168.2.4)
;; WHEN: Fri Aug 11 14:22:39 2017
;; MSG SIZE  rcvd: 61

और इस उदाहरण में, मेरा मैक सही रूप से हल कर सकता है, डिफ़ॉल्ट डीएनएस का उपयोग करके, मेरे LAN पर serv2 का पता।

हालाँकि, जब मैं अन्य कमांड्स का उपयोग करता हूं (जैसे पिंग) तो कभी-कभी वे सही तरीके से हल करते हैं:

beethoven:~ nick$ ping serv2.njj.chickenkiller.com
PING serv2.njj.chickenkiller.com (192.168.2.4): 56 data bytes
64 bytes from 192.168.2.4: icmp_seq=0 ttl=64 time=0.832 ms

अन्य बार, मेरा मैक स्थानीय DNS से ​​परिणाम को अनदेखा करता प्रतीत होता है (जो कि केवल नाम सर्वर है जिसे उपयोग करने के लिए कॉन्फ़िगर किया गया है) और किसी तरह WAN पते का उपयोग करने का प्रबंधन करता है (जो कि यदि आप किसी अन्य DNS को उद्धृत करते हैं तो आपको मिलेगा):

beethoven:lib nick$ ping serv2
PING njj.chickenkiller.com (90.255.91.177): 56 data bytes
64 bytes from 90.255.91.177: icmp_seq=0 ttl=64 time=2.140 ms

जहाँ तक मैं बता सकता हूँ, स्थानीय DNS सर्वर सही ढंग से काम करता है - यह हमेशा LAN पता (192.168.2.4) देता है और कभी भी WAN पता (90.255.91.177) नहीं लौटाता है। मेरे पास नेटवर्क पर चलने वाली विंडोज 7 और लिनक्स मशीन दोनों हैं जब मैं पिंग कमांड (या किसी अन्य कमांड) का उपयोग करता हूं तो वे हमेशा LAN पते (192.168.2.4) का उपयोग करते हैं, इसलिए मैं मानता हूं कि यह macOS के लिए कुछ विशिष्ट है।

यह मेरे लिए महत्वपूर्ण क्यों है? मेरे ISP के राउटर में LAN से लेकर WAN पते का उपयोग करके मशीनों तक पहुँचने के प्रयास के लिए राउटर हैं। इसका मतलब है कि नेटवर्क पर अन्य मशीनों तक पहुंचने के आदेश विफल हो जाते हैं। उदाहरण के लिए:

beethoven:lib nick$ ssh serv2
ssh: connect to host serv2 port 22: Connection refused

मैं macOS 10.12.6 का उपयोग कर रहा हूं

किसी भी सुझाव के रूप में कि मुझे अपने मैक को कैसे कॉन्फ़िगर करना चाहिए, इसलिए यह केवल मेजबान को हल करने के लिए कॉन्फ़िगर किए गए DNS का उपयोग करता है आभार प्राप्त होगा।

EDIT: Whats my search domain ;: नेटवर्क सेटिंग पेज पर DNS सर्वर को 192.168.2.4 के रूप में दिखाया गया है और सर्च डोमेन को njj.chickenkiller.com के रूप में दिखाया गया है

EDIT 2: कमांड का आउटपुट:

beethoven:bin nick$ networksetup -listallnetworkservices
An asterisk (*) denotes that a network service is disabled.
Wi-Fi
*Bluetooth PAN
*Thunderbolt Bridge
beethoven:bin nick$ networksetup -getsearchdomains  Wi-Fi
There aren't any Search Domains set on Wi-Fi.

EDIT 3: dnsmasq.conf (ubuntu 16.04 होस्ट से, "serv2"

# Use google open DNS name servers (avoids the risk of a router attack)
server=/#/8.8.8.8
server=/#/8.8.4.4

# Do not use /etc/hosts, but serve hostnames from /etc/hosts.dnsmasq
no-hosts
addn-hosts=/etc/hosts.dnsmasq
local-ttl=105

# expand unqualified hostnames to suffix njj.chickenkiller.com
expand-hosts
domain=njj.chickenkiller.com

# turn on dhcp (limit leases to 12hours so updates dont need a restart)
dhcp-range=192.168.2.10,192.168.2.99,12h

# and redirect all gateway requests through router
dhcp-option=option:router,192.168.2.1

# and offer a time server
dhcp-option=option:ntp-server,192.168.2.4

# and we are the *only* dns server
dhcp-option=option:dns-server,192.168.2.4

@klanomath: पूछे गए अतिरिक्त जानकारी के साथ संपादित किया गया प्रश्न
निक सिलिलो

आपके लिनक्स और विंडोज मशीनों के बारे में क्या - क्या वहां सर्च डोमेन सेटअप हैं?
एलन

@ मैंने कभी भी विंडोज / लिनक्स मशीनों पर सर्चडोमेन सेट नहीं किया है (मैं इस समय सिर्फ घर चला रहा हूं और उन बक्से को नहीं पाया है जिन्हें वे जांचने के लिए अभी तक पैक कर रहे हैं)। ध्यान दें कि अगर मैं `पिंग serv2.njj.chickenkiller.com
निक Sillito

@klanomath मैंने आपके द्वारा प्रस्तावित किए गए खोज डोमेन को सेट करने का प्रयास किया है। ऐसा लगता है कि परिणामों पर इसका कोई प्रभाव नहीं है (मैं अभी भी कभी-कभी लैन और कभी-कभी WAN पता प्राप्त करता हूं)
निक सिलिटो

@NickSillito कृपया dnsmasq config फाइल की संबंधित सामग्री जोड़ें।
कालानोमथ

जवाबों:


1

यह मुझे उम्र के लिए पागल कर रहा है, वैसे भी, मुझे लगता है कि मैंने समाधान पर ठोकर खाई है।

जिस तरह से मैंने अपना डायनेमिक डीएनएस सेट किया था, serv2.njj.chickenkiller.comवह ऐसा करने के लिए एक उपनाम था njj.chickenkiller.com(शायद ऐसा करने का सबसे अच्छा तरीका नहीं था, लेकिन इसका मतलब यह था कि serv2 ने njj.chickenkiller.com के सभी अनुरोधों को संभाला।

इसलिए जब आप सर्वर को क्वेरी करते हैं:

beethoven:~ nick$ host serv2
serv2.njj.chickenkiller.com has address 192.168.2.4
serv2.njj.chickenkiller.com is an alias for njj.chickenkiller.com.

तो मुझे क्या लगता है कि यह हो रहा है कि mDNSresponder एक उपनाम के रूप में njj.chickenkiller.com को कैश करने के लिए काफी चतुर था (और मुझे लगता है कि यह विंडोज़ और लिनक्स पर ऐसा नहीं होता है), इसलिए जब उसने serv2 के लिए बाद में DNS लुकअप किया, तो njj.chickenkiller.com(नहीं serv2...) के लिए एक क्वेरी भेजकर समय बचाने की कोशिश की , जिसे उसने उपनाम के रूप में कैच किया है। मेरे स्थानीय DNS सर्वर ने njj.chickenkiller.comस्थानीय डोमेन के हिस्से के रूप में पहचान नहीं की और बाहरी आईपी पता देकर जवाब दिया।

इसे हल करने के लिए मैंने njj.chickenkiller.com को dnsmas.com द्वारा उपयोग की जाने वाली मेजबानों फ़ाइल में serv2 के लिए एक उपनाम के रूप में जोड़ा।

# Fixed IP machines
192.168.2.1 gateway
192.168.2.2 wifi1
192.168.2.3 wifi2
192.168.2.4 serv2   njj.chickenkiller.com
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.