เหตุใดขุดรายงานเซิร์ฟเวอร์ dns เป็น 127.0.0.1 เมื่อฉันใช้ DNS ภายนอก


12

ฉันใช้ unbound และมักจะใช้ openDNS เป็นเซิร์ฟเวอร์ DNS ของฉัน

เมื่อฉันเรียกว่าฉันได้รับdig google.com SERVER: 127.0.0.1#53(127.0.0.1)อะไรคือสิ่งที่ฟังบนพอร์ต # 53? นี่คือ unbound หรือเป็นสิ่งที่ต้องทำกับ dnsmasq (ฉันยังติดตั้ง dnsmasq ด้วยที่dnsmasq.confดูเหมือนจะ/etcไม่ติดอยู่ด้วยหรือเปล่า)

ใน resolv.conf มีnameserver 127.0.0.1แต่แล้วในตัวจัดการเครือข่ายฉันมีเซิร์ฟเวอร์ DNS ที่ชี้ไปยังที่อยู่ openDNS สองที่ แล้วเกิดอะไรขึ้นที่นี่? local nameserver ชี้ไปที่ dnsmasq ซึ่งใช้ค่าจากตัวจัดการเครือข่ายหรือไม่ หรือมันไม่ถูกผูกไว้ที่ฟังข้อเท็จจริง?


คุณพยายามทำอะไร
ราหุลปาติล

3
เพียงแค่เข้าใจจริงๆ
fpghost

รุ่นของเซิร์ฟเวอร์ Ubuntu นี้คืออะไรหรือ
ราหุลปาติล

ไม่ใช่แค่เดสก์ท็อป
fpghost

คำตอบ:


15

โดยค่าเริ่มต้น NetworkManager ใช้ Dnsmasq เป็นตัวแก้ไข DNS หากมีการติดตั้ง ซึ่งเป็นค่าเริ่มต้นในระบบที่ใช้ Debian ดังนั้น Dnsmasq จึงทำงานในการกำหนดค่าเริ่มต้นซึ่งจะแก้ไขชื่อตามเซิร์ฟเวอร์ upstream ที่ระบุโดยตัวเลือกบรรทัดคำสั่งเท่านั้น (รวมถึงเนื้อหาของ/etc/hosts) คุณไม่มี/etc/dnsmasq.confเพราะไฟล์นั้นมีอยู่ในแพ็คเกจเสริมdnsmasqเท่านั้น

เพื่อดูว่าระบบของคุณกำลังใช้ dnsmasq หรือหลุดสำหรับการค้นหา DNS netstat -ulnp | grep ":53 "วิ่ง

ใน Ubuntu 12.04 NetworkManager เล่นได้ไม่ดีนักกับตัวแก้ไข DNS อื่น ๆ (ดูข้อผิดพลาด 959037 - ข้อสรุปของ Thomas Hoodครอบคลุมทุกอย่างมาก) เพื่อให้ Unbound ทำงานพร้อมกับ NetworkManager วิธีที่ดีที่สุดของคุณคือบอก NetworkManager ว่าจะไม่เรียกใช้ Dnsmasq (คุณไม่ต้องการใช้นอกเหนือจาก Unbound ไม่ใช่เว้นแต่คุณกำลังใช้คุณสมบัติของ Dnsmasq ที่ NetworkManager ไม่ได้ใช้) ในการทำเช่นนั้น:

  1. แก้ไข/etc/NetworkManager/NetworkManager.confเพื่อใส่ความคิดเห็นออกบรรทัดที่มีdns=dnsmasq(เพิ่ม#ที่ด้านบนของบรรทัดนั้น)
  2. service network-manager restartเริ่มต้นใหม่กับ NetworkManager

อูบุนตูทราบได้อย่างไรว่าใช้ Unbound (ดูเหมือนว่าจะใช้งานจริง ๆ ); สิ่งที่ฉันได้รับที่เป็นเหตุผลว่าทำไมฉันไม่ต้องการสิ่งที่ต้องการdns=unboundใน/etc/NetworkManager/NetworkManager.conf? และเมื่อฉันมีdns=dnsmasqอยู่ในไฟล์นั้นทำไม Ubuntu จึงใช้ unbound จริง ๆ
fpghost

@fpghost ตัวไหนที่คุณได้รับขึ้นอยู่กับตัวที่เริ่มต้นก่อน หากคุณบูตโดยไม่มีเครือข่ายคุณจะได้รับ Unbound เนื่องจากจะเริ่มต้นก่อน หากคุณบูตด้วยการเชื่อมต่อเครือข่ายฉันคิดว่ามันเป็นการโยน
Gilles 'หยุดความชั่วร้าย'

ตกลง แต่สิ่งที่ฉันสงสัยจริงๆคือแทนที่จะแสดงความคิดเห็นออกมาdns=...เพื่อหยุดใช้ dnsmasq ถ้าฉันแทนที่บรรทัดด้วยdns=unbound? มิฉะนั้น NetworkManager จะรู้ได้อย่างไรว่า unbound จะเป็น Local Resolver?
fpghost

1

ใน Ubuntu 12.04 dnsmasq network-managerตอนนี้ทำงานโดยปริยายเนื่องจากถูกเขียนยากเข้าไป การใช้ dnsmasq เป็นตัวแก้ไขภายในโดยค่าเริ่มต้นในการติดตั้งเดสก์ท็อปนั่นคือการเปลี่ยนแปลงครั้งใหญ่ครั้งที่สองของรีลีสนี้ ในการติดตั้งเดสก์ท็อปเซิร์ฟเวอร์ DNS ของคุณจะเป็น "127.0.0.1" ซึ่งชี้ไปยังเซิร์ฟเวอร์ dnsmasq ที่จัดการโดย NetworkManager

SERVER: 127.0.0.1#53(127.0.0.1)

หมายความว่าคุณได้รับข้อความค้นหาของคุณจาก DNS ท้องถิ่นเช่น DNSMASQ

หากคุณไม่ต้องการตัวแก้ไขแบบโลคัลคุณสามารถปิด DNSMASQ โดยใช้ขั้นตอนต่อไปนี้

คุณต้องแก้ไข/etc/NetworkManager/NetworkManager.confไฟล์

gksudo gedit /etc/NetworkManager/NetworkManager.conf

และคอมเม้นท์บรรทัดต่อไปนี้จาก

dns=dnsmasq

ถึง

#dns=dnsmasq

บันทึกไฟล์และออก

ตอนนี้คุณต้องรีสตาร์ทnetwork-managerโดยใช้คำสั่งต่อไปนี้

sudo systemctl restart network-manager

ลิงค์อ้างอิง


1
ตกลง แต่จะทำอย่างไรถ้าฉันมี Unbound ที่ติดตั้งสิ่งนี้จะมีความสำคัญมากกว่า dnsmasq ในฐานะตัวแก้ไขเฉพาะที่หรือไม่ ทั้งสองฟังใน # 53 หรือไม่ พวกเขาเข้ากันได้อย่างไร
fpghost

ทำไมถึง/etc/dnsmasq.confขาด?
fpghost

@fpghost dnsmasq รับฟัง 127.0.1.1 ขณะที่ unbound listens บน 127.0.0.1 ทั้งบนพอร์ต 53 คุณสามารถตั้งค่า dns = unbound ใน config network manager เพื่อใช้ unbound
talonx

0

หากต้องการดูว่าเซิร์ฟเวอร์ DNS ใดที่ใช้ในการแก้ไขที่อยู่ของคุณเมื่อใช้ DNSMasq จะไม่สามารถใช้งานได้DIGเพราะมีเพียงรายงานเท่านั้น127.0.0.1:

เปิดใช้งานการเข้าสู่ระบบใน DNSMasq:

sed -i 's/\#log-queries/log-queries/' /etc/dnsmasq.conf
systemctl restart dnsmasq

บันทึก DNSMasq และตรวจสอบผลลัพธ์:

journalctl --unit dnsmasq.service -f

Ping โฮสต์:

ping google.ca

จากนั้นคุณจะเห็นว่าเซิร์ฟเวอร์ DNS ต้นน้ำของฉัน (192.168.1.1) แก้ไขได้:

: query[A] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: query[AAAA] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: reply google.ca is 172.217.1.3
: reply google.ca is 2607:f8b0:400b:80f::2003
: query[PTR] 3.1.217.172.in-addr.arpa from 127.0.0.1
: forwarded 3.1.217.172.in-addr.arpa to 192.168.1.1
: reply 172.217.1.3 is iad23s25-in-f3.1e100.net
: reply 172.217.1.3 is yyz10s14-in-f3.1e100.net

Ping โฮสต์ที่อยู่ด้านหลัง VPN ของ บริษัท (ระหว่างแยกอุโมงค์) สำหรับ * .company.com

ping box.company.com

ผล:

: query[A] box.company.com from 127.0.0.1
: forwarded box.company.com to vpn.ser.ver.ip
: query[AAAA] box.company.com from 127.0.0.1
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.