แก้ไขแล้ว systemd- ไม่สอบถามเซิร์ฟเวอร์ DNS สำหรับโดเมนท้องถิ่น


12

ตั้งแต่อัปเกรดเป็น 17.04 ฉันไม่สามารถแก้ไขที่อยู่ในเครือข่ายท้องถิ่นของฉันได้อีก (silvesternet.local) ฉันได้รับการตอบสนองต่อไปนี้:

$ systemd-resolve edgerouter
edgerouter: resolve call failed: No appropriate name servers or networks for name found

ในวารสารมีรายงานการหมดเวลาสำหรับการทำธุรกรรมที่เกี่ยวข้องกับการค้นหานี้เท่านั้น

ฉันใช้ Wireshark เพื่อสูดอากาศของเครือข่ายและดูเหมือนว่ามันจะไม่พยายามค้นหาชื่อด้วยซ้ำ ไม่มีการรับส่งข้อมูล DNS ใด ๆ ค้นหาโดเมนภายนอกอื่นใช้งานได้ดี

ปัญหามากมายในหัวข้อเดียวกันพูดถึงการเปลี่ยน nsswitch.conf แต่ดูเหมือนจะไม่สามารถแก้ไขอะไรได้ การตั้งค่าปัจจุบันของฉันคือ:

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4

1
คุณวิ่งได้sudo apt update && sudo apt full-upgradeไหม บั๊กในอิมเมจรีลีสได้รับการแก้ไขแล้ว ...
Zanna

หากคุณกำลังใช้systemd-networkdอินเตอร์เฟซการกำหนดค่าคุณอาจจำเป็นต้องเพิ่มUseDomains=trueใน[DHCP]ส่วนของ.networkไฟล์: wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
เพ้อฝัน

แน่นอนใกล้กับโดเมน มันเป็นข้อผิดพลาดในเฟิร์มแวร์ edgerouter ที่ไม่ได้ตั้งค่าโดเมนในการตอบสนอง DHCP
Rob van der Most

คำตอบ:


10

ฉันเชื่อว่านี่คือการออกแบบ

Ubuntu 17.04 ได้เปลี่ยนไปใช้ systemd-modified สำหรับการจำแนกชื่อและใช้เฉพาะ LLMNR (ค้นหาชื่อหลายผู้รับ) สำหรับการแก้ปัญหาชื่อเดียว ดูลิงค์นี้สำหรับรายละเอียด: https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

สำหรับเหตุผลเบื้องหลังการตัดสินใจตรวจสอบการตอบกลับของ poettering ในรายงานข้อผิดพลาดนี้: https://github.com/systemd/systemd/issues/2514

UPD:ปัญหานี้สามารถแก้ไขได้โดยใช้โดเมนสำหรับเครือข่ายท้องถิ่น หากมีการกำหนดค่าอินเทอร์เฟซเครือข่าย (ด้วยตนเองหรือโดย DHCP) เพื่อใช้โดเมนการค้นหาระบบที่แก้ไขแล้วจะเพิ่มโดเมนนี้เป็นชื่อป้ายชื่อเดียวจากนั้นค้นหาผ่าน unicast DNS

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

domain=mydomain.net
local=/mydomain.net/
expand-hosts

UPD2:หรือคุณสามารถเปลี่ยนกลับไปเป็น dnsmasq ตามที่อธิบายไว้ที่นี่/ubuntu//a/911432/692094


และอีกหนึ่งหน้าบั๊กที่มีคำอธิบายบางอย่าง: github.com/systemd/systemd/issues/4821
ish-west

ชื่อโดเมนเป็นปัญหาที่นี่ อันที่จริงมันเกิดจากข้อผิดพลาดในเฟิร์มแวร์ edgerouter ตัวเลือกชื่อโดเมนจากการกำหนดค่าไม่ได้รับการจัดเก็บอย่างเหมาะสมในการกำหนดค่า dhcp ดังนั้นลูกค้าไม่ได้รับโดเมนเพื่อค้นหา
Rob van der Most

8

ฉันพบปัญหาเดียวกันกับ Ubuntu 18.04 ซึ่งใช้ systemd-แก้ปัญหาสำหรับ DNS ด้วย การกำหนดค่าเริ่มต้นไม่สามารถแก้ปัญหาชื่อโฮสต์แบบป้ายชื่อเดียวหรือชื่อโฮสต์โดเมน. local โดย DNS แต่โดย LLMNR หรือ mDNS ตามลำดับ

ในการทำให้ชื่อโฮสต์แบบฉลากเดียวในท้องถิ่นหรือชื่อโฮสต์โดเมน. local ได้รับการแก้ไขโดย DNS ฉันได้เปิดใช้งานโหมดที่สามของ "สี่โหมดในการจัดการ /etc/resolv.conf" ที่อธิบายไว้ในman page สำหรับ systemd-resol.service :

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

คำตอบที่คล้ายกันได้รับที่นี่ และอีกครั้งสำหรับเหตุผลที่อยู่เบื้องหลังค่าเริ่มต้นให้ดูการตอบกลับของกวีในรายงานข้อผิดพลาดนี้


2

สิ่งที่ใช้ได้ผลสำหรับฉันหลังจากอัปเกรดเป็น 18.04 คือการกำหนดค่าไฟล์ /etc/systemd/resolved.conf การเปลี่ยนพารามิเตอร์ Domains เป็นโดเมน (เฉพาะที่หรือในกรณีของฉัน mydomain.local) ฉันเปลี่ยนพารามิเตอร์ DNS ด้วย แต่ดูเหมือนว่าไม่เกี่ยวข้อง แต่ฉันพูดถึงในกรณีที่ไม่เป็นจริง สำหรับข้อมูลเพิ่มเติมไปที่https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

นอกจากนี้ฉันเปลี่ยนการกำหนดค่า avahi (/etc/avahi/avahi-daemon.conf) เพื่อเปลี่ยนพารามิเตอร์โดเมนภายในส่วนเซิร์ฟเวอร์จาก local (ค่าเริ่มต้น) เป็นอย่างอื่นเนื่องจากบางคนชี้ไปที่ฟอรัมนี้

ด้วยการเปลี่ยนแปลงที่กล่าวถึงฉันสามารถเข้าถึงเครื่องโดยใช้ชื่อ dotless ตัวอย่างเช่นส่ง Ping ไปยังคอมพิวเตอร์ของฉันเครื่องได้รับการติดต่อเรียบร้อยแล้ว อย่างไรก็ตามถ้าฉัน ping to mycomputer.mydomain.local ไม่ทำงาน FQDN จะไม่ได้รับการแก้ไขตามที่คาดไว้

หวังว่าสิ่งนี้จะช่วยในบางกรณีหรือนำไปสู่การแก้ปัญหาทั่วไปที่มากกว่า


0

ฉันต้องเผชิญกับปัญหานี้เพราะ nsswitch.confmisconfigured ตั้งแต่12.04สตริงต่อไปนี้ทำงานตามที่คาดไว้ ชื่อโฮสต์ที่ไม่มีโดเมนจะช่วยให้แก้ไขได้สำเร็จ

แต่17.04รุ่นใหม่(เช่นเดียวกับรุ่น 16.10) ของ Ubuntu ที่มีแม่แบบเก่าสำหรับการกำหนดค่าระบบ nss จะไม่ทำงานเหมือนเดิม

รุ่นที่กำหนดค่าไม่ถูกต้องของhostsจากรุ่น Ubuntu เก่า: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

เวอร์ชันการทำงานที่ประสบความสำเร็จhostsเช่นจาก 17.04: hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

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