ในไฟล์การกำหนดค่าสำหรับอินเตอร์เฟสเครือข่ายท้องถิ่นเราต้องระบุว่าเราต้องการได้รับที่อยู่เซิร์ฟเวอร์ DNS ในเครื่องจากเซิร์ฟเวอร์ DHCP โดยใช้DHCP=
ตัวเลือก :
[Network]
DHCP=yes
หรือระบุที่อยู่อย่างชัดเจนโดยใช้DNS=
ตัวเลือก :
[Network]
DNS=10.0.0.1
นอกจากนี้เราต้องระบุ (ในหมวดเดียวกัน) โดเมนท้องถิ่นโดยใช้Domains=
ตัวเลือก
Domains=domainA.example domainB.example ~example
เราระบุโดเมนในตัวเครื่องdomainA.example domainB.example
เพื่อรับพฤติกรรมดังต่อไปนี้ (จากsystemd-resolve.service,หน้าคนที่แก้ไขด้วยระบบ ):
การค้นหาชื่อโฮสต์ที่ลงท้ายด้วยโดเมนหนึ่งต่อโดเมนจะถูกส่งไปยังอินเตอร์เฟสที่ตรงกันเท่านั้น
วิธีนี้hostX.domainA.example
จะได้รับการแก้ไขโดยเฉพาะโดยเซิร์ฟเวอร์ DNS ท้องถิ่นของเรา
เราระบุ~example
ด้วยว่าโดเมนทั้งหมดที่ลงท้ายด้วยexample
จะต้องถูกใช้เป็นโดเมนแบบเราต์เท่านั้นเพื่อรับการทำงานต่อไปนี้ (จากคำอธิบายของการส่งข้อมูลนี้ ):
เซิร์ฟเวอร์ DNS ที่มีโดเมนเฉพาะเส้นทางเท่านั้นควรใช้สำหรับโดเมนที่ระบุเท่านั้น
วิธีนี้hostY.on.the.internet
จะได้รับการแก้ไขโดยเฉพาะจากทั่วโลก DNS เซิร์ฟเวอร์ระยะไกลของเรา
บันทึก
ตามหลักการแล้วเมื่อใช้โปรโตคอล DHCP ชื่อโดเมนท้องถิ่นควรได้รับจากเซิร์ฟเวอร์ DHCP แทนที่จะระบุไว้อย่างชัดเจนในไฟล์กำหนดค่าของอินเทอร์เฟซเครือข่ายด้านบน ดูตัวเลือกUseDomains=
อย่างไรก็ตามยังคงมีปัญหาที่ค้างอยู่กับคุณลักษณะนี้ - ดูปัญหาตัวเลือกโดเมนการค้นหา systemd-networkd DHCP
เราจำเป็นต้องระบุเซิร์ฟเวอร์ DNS ระยะไกลเป็นเซิร์ฟเวอร์ DNS ทั่วโลกของเรา เราสามารถทำได้ใน/etc/systemd/resolved.conf
ไฟล์:
[Resolve]
DNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
อย่าลืมโหลดการกำหนดค่าและเริ่มบริการใหม่:
$ sudo systemctl daemon-reload
$ sudo systemctl restart systemd-networkd
$ sudo systemctl restart systemd-resolved
ข้อควรระวัง!
ดังกล่าวข้างต้นค้ำประกันใช้เฉพาะเมื่อชื่อจะได้รับการแก้ไขโดยsystemd แก้ไข - ดูหน้าคนสำหรับNSS-มติ libnss_resolve.so.2และหน้าคนสำหรับ systemd-resolved.service, systemd
ดูสิ่งนี้ด้วย:
อ้างอิง:
.local
ในตัวอย่างนี้หรือไม่? แน่นอนกับ avahi นี่ควรจะสงวนไว้สำหรับ MDNS และการใช้ในทางที่ผิดมันก็ไม่ใช่เรื่องใหญ่ มันจะเป็นที่ชัดเจนกับผมที่จะใช้example.com
หรือ.example