मेरे पास मेरे स्थानीय नेटवर्क पर एक सर्वर (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