เหตุใดระบบจึงไม่แก้ไขให้ใช้เซิร์ฟเวอร์ DNS ในเครื่องของฉัน


13

ฉันใช้เซิร์ฟเวอร์ BIND9 ในพื้นที่เพื่อโฮสต์ระเบียน DNS ท้องถิ่น เมื่อพยายามขุดหาชื่อโดเมนในพื้นที่ฉันไม่สามารถค้นหาได้หากฉันไม่ได้บอกให้ขุดใช้เซิร์ฟเวอร์ BIND9 ในพื้นที่ของฉันอย่างชัดเจน

user@heimdal:~$ dig +short heimdal.lan.se
user@heimdal:~$ dig +short @192.168.1.7 heimdal.lan.se
192.168.1.2

ใช้ Ubuntu 17.04 และแก้ไขระบบได้ นี่คือเนื้อหาของ / etc / ของฉันที่ได้รับการแก้ไข

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

และเอาท์พุทจาก systemd- แก้ไข - สถานะ

Global
         DNS Servers: 192.168.1.7
                      192.168.1.1
          DNSSEC NTA: 10.in-addr.arpa
                      16.172.in-addr.arpa
                      168.192.in-addr.arpa
                      17.172.in-addr.arpa
                      18.172.in-addr.arpa
                      19.172.in-addr.arpa
                      20.172.in-addr.arpa
                      21.172.in-addr.arpa
                      22.172.in-addr.arpa
                      23.172.in-addr.arpa
                      24.172.in-addr.arpa
                      25.172.in-addr.arpa
                      26.172.in-addr.arpa
                      27.172.in-addr.arpa
                      28.172.in-addr.arpa
                      29.172.in-addr.arpa
                      30.172.in-addr.arpa
                      31.172.in-addr.arpa
                      corp
                      d.f.ip6.arpa
                      home
                      internal
                      intranet
                      lan
                      local
                      private
                      test

ส่วนเซิร์ฟเวอร์ DNS ดูเหมือนว่าจะมีการกำหนดค่าอย่างถูกต้อง 192.168.1.7 เป็นเซิร์ฟเวอร์ DNS หลัก (อินสแตนซ์ BIND9 ในเครื่องของฉัน) ฉันไม่เข้าใจว่าทำไมถึงไม่ใช้ ...


ผมจำได้ว่าสิ่งที่ตามเส้นของวิธีการsystemdใช้ Google DNS เป็นทางเลือก ...
วิลเลี่ยมเอ็ดเวิร์ด

กำลังsystemd-resolve heimdal.lan.seบอกอะไร
Bigon

คำตอบ:


8

ดังนั้นการเปลี่ยนอินเทอร์เฟซแบบใช้สาย eth0 ของฉันเพื่อจัดการแก้ไขปัญหานี้ให้ฉัน

การเปลี่ยน ifupdown เป็น managed = true ใน /etc/NetworkManager/NetworkManager.conf

[ifupdown]
managed=true

จากนั้นรีสตาร์ท NetworkManager

sudo systemctl restart NetworkManager

หลังจากนี้มันทำงานได้อย่างไร้ที่ติ ..

นี่ไม่ใช่ 100% ฉันยังใช้การเปลี่ยนแปลงเหล่านี้เพื่อลองและฆ่าตัวแก้ไข

sudo service resolvconf disable-updates
sudo update-rc.d resolvconf disable
sudo service resolvconf stop

ขอบคุณมากที่โพสต์บล็อกนี้เกี่ยวกับเรื่อง: https://ohthehugemanatee.org/blog/2018/01/25/my-war-on-systemd-resolved/

ให้อธิษฐานสิ่งนี้ได้ผล .. ธุรกิจทั้งหมดนี้แก้ไขระบบได้น่าเกลียดเหลือเกิน


ความคิดเห็นที่ล่าช้า แต่systemd-networkdเกี่ยวข้องกับอีกสิ่งหนึ่งคือการตรวจสอบว่าeth0หรือenXอุปกรณ์มี*.networkไฟล์ใน `/ lib / systemd / network /` ดูinfo systemd-networkdและinfo systemd.networkและinfo resolved.conf
jmunsch

5

ฉันเดาว่าsystemd-resolvedบริการของคุณมีการกำหนดค่าอย่างถูกต้อง แต่ไม่เคยเห็นคำขอ .localโดเมนได้รับการปฏิบัติเป็นพิเศษโดยระบบที่ใช้ mDNS avahi-daemonซึ่งให้บริการ mDNS / DNS-SD (aka "Bonjour" บนผลิตภัณฑ์ Apple) สามารถกำหนดค่าให้มีความสำคัญเหนือ DNS ในระหว่างการแก้ไขชื่อ ดูเหมือนว่า Ubuntu จะทำเช่นนี้

มีตัวเลือกไม่กี่ตัวที่คุณสามารถเลือกได้:

  1. เปลี่ยนชื่อ.localโดเมนของคุณเป็นอย่างอื่น (อาจเป็น.internalหรือ.lan) นี่อาจเป็นวิธีที่ง่ายที่สุดในการปฏิบัติเพราะคุณเพียงแค่ต้องเปลี่ยนแปลงบางอย่างในเซิร์ฟเวอร์ DNS ของคุณและทำงานได้ดีที่สุดกับ Avahi ฉันอยากจะแนะนำวิธีนี้

  2. เปลี่ยน/etc/nsswitch.confไฟล์ของคุณโดยการใส่dnsรายการที่ด้านหน้าของmdnsรายการ

  3. เปลี่ยนแปลงการกำหนดค่าของ Avahiเพื่อเปลี่ยนโดเมน mDNS จาก.localเป็นอย่างอื่นโดยแก้ไข/etc/avahi/avahi-daemon.confและเปลี่ยนแปลง (หรือเพิ่ม) domain-name=.something(อยู่ใน[server]ส่วน) คุณจะต้องทำสิ่งนี้กับคอมพิวเตอร์ทุกเครื่องที่ใช้ mDNS เพื่อให้ทำงานร่วมกันได้


ฉันขอโทษที่จะบอกว่าฉันทำให้งงงวยโดเมนจริงที่นี่ ไม่ใช่โดเมน. local โดเมนบนสุดเป็นจริง. se อย่างไรก็ตามฉันจะติดตามความเป็นผู้นำของคุณและตรวจสอบเนื้อหาของ nsswitch ขออภัยในความสับสนใด ๆ
Civing

0

ดูเหมือนว่าสิ่งนี้จะดีกว่าความคิดเห็น แต่ชื่อเสียงไม่เพียงพอ ....

คำตอบของ Civing นั้นเป็นไปตามสิ่งที่ฉันต้องการมากที่สุด

ฉันยังต้องเพิ่มdns=noneใน[main]ส่วนของ/etc/NetworkManager/NetworkManager.confดังนั้นจึงมีลักษณะเช่นนี้:

[main]
plugins=ifupdown,keyfile
dns=none

ฉันเพิ่งอัปเดตเป็น xubuntu 18.04 จาก 14.04 และฉันมี LAN ที่เก่ากว่านั้นโดยมีการปรับเปลี่ยนเล็กน้อยเกิดขึ้นในช่วงหลายปีที่ผ่านมา ดังนั้นฉันต้องการให้ DNS ของฉันทำสิ่งที่ฉันต้องการ (ใช่ฉันได้ซื้อหนังสือ Cricket Lius หลายเล่มในช่วงหลายปีที่ผ่านมาโดยเริ่มจากรุ่นที่สอง)

ในฐานะที่เป็นกันฉันเคยเพิ่มข้อมูลการแก้ไข DNS /etc/resolvconf/resolv.conf.d/headที่ฉันต้องการที่จะเห็นไปยังแฟ้ม

สรุปเมื่อฉันมี / etc / resolv.conf ทำงานเป็นราก:

cat /etc/resolv.conf >> /etc/resolvconf/resolv.conf.d/head

แต่ตอนนี้ฉันเพิ่งแก้ไข /etc/resolv.conf โดยตรงและมันยังคงอยู่ ผู้เยี่ยมชม LAN ของฉันที่ใช้ systemd / resolvconf เป็น SOOL พวกเขาไม่อยู่

การอ่านman 8 resolvconfช่วย มาก. ฉันไม่ได้ทำตามคำแนะนำสำหรับการวางสิ่งต่าง ๆ ซึ่งโปรแกรม ifup สามารถค้นหาได้ ส่วนใหญ่เป็นเพราะมีโครงสร้างพื้นฐานทั้งหมดใน GUI ที่ถูกละเว้นไปแล้วโดยสิ่งที่ทำระหว่างการอัพเกรด ดูเหมือนว่าจะเป็นปัญหาที่ใหญ่กว่า (WTF, Ubuntu?)

ดังนั้นนี่คือความผิดพลาดและยังคงมีปัญหาที่สิ่งที่ฉันมี (นานมาแล้ว) ที่เข้าสู่แผงควบคุมเครือข่าย GUI ไม่ได้ถูกเชื่อฟังโดยระบบที่อัปเกรดใหม่ แต่เป็นคำถามที่แตกต่างกันโดยสิ้นเชิงเมื่อฉันเข้าใจวิธีการ ถามมัน


0

สำหรับฉันแล้วติดตั้ง 18.04 เมื่อเร็ว ๆ นี้ฉันได้ทำการเปลี่ยนแปลงครั้งแรกโดย @Civing:

[ifupdown]
managed=true

จากนั้นสังเกตว่า /etc/resolv.conf ชี้ stub-resolv.conf เสมอและ resolv.conf ที่เหมาะสมกับเซิร์ฟเวอร์ LAN DNS ที่เหมาะสมกำลังถูกสร้างเปลี่ยน symlink:

/etc/resolv.conf -> /run/systemd/resolve/resolv.conf

จากนั้นชื่อโฮสต์ในพื้นที่ทั้งหมดจะได้รับการแก้ไขผ่าน ping

มันคงต้องดูว่ามันใช้งานได้นานแค่ไหน

เมื่อฉันติดตั้งครั้งแรกการติดตั้งเครือข่ายไร้สายล้มเหลวและฉันอดไม่ได้ที่จะสงสัยว่าการติดตั้งเหลือ /etc/resolv.conf ในสถานะเริ่มต้นนี้หรือไม่

ดังนั้นหนึ่งข้อเสนอแนะคือการดูสิ่งที่แก้ไขได้สร้าง; คุณอาจมีพื้นฐานการทำงานอยู่แล้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.