เป็นที่ทราบกันดีว่า NetworkManager เล่นได้ไม่ดีdnsmasq
(อ้างอิง: ที่นี่ ) ฉันได้อ่านบทสนทนายาว ๆที่นี่แต่ก็ยังไม่แน่ใจว่าวิธีที่แนะนำในการจัดการกับสถานการณ์นั้นคืออะไร
สิ่งที่ฉันต้องการคือการใช้dnsmasq
เพื่อมอบ DNS และ DHCP ให้กับเครือข่ายท้องถิ่นของฉัน วิธีที่แนะนำในกรณีนี้คืออะไร?
ดูเหมือนว่าปัญหาจะยังคงอยู่สำหรับ Ubuntu 14.04 แม้กระทั่งข้อผิดพลาดที่อ้างว่าได้รับการแก้ไข
ผู้คนกำลังปิดใช้งาน NM-enslaved dnsmasq-base
เนื่องจากเหตุผลต่อไปนี้:
NM-enslaved dnsmasq
ใช้ตัวเลือกฮาร์ดโค้ด (ใน C) ที่ให้การทำงานที่ จำกัด อย่างมาก
- ไม่ฟัง ethX (
--listen-address=127.0.0.1
) ดังนั้นเราจึงไม่สามารถใช้เซิร์ฟเวอร์ของเราเป็นเซิร์ฟเวอร์ DNS สำหรับพีซีในเครือข่ายท้องถิ่นของเรานั่นคือไร้ประโยชน์อย่างสมบูรณ์สำหรับ LAN - มันไม่ได้ร้องขอแคช (
--cache-size=0
) ไม่มีการแคช ==> ไม่มีการสอบถาม DNS เร่งความเร็ว สิ่งนี้มีความสำคัญมากสำหรับ LAN เนื่องจากมีผู้ใช้พร้อมกันจำนวนมาก - ท้ายที่สุดเรายังต้องการฟังก์ชั่น DHCP และ TFTP ของ dnsmasq ดังนั้นแม้ว่า NM + dnsmasq จะรวมเซิร์ฟเวอร์ DNS จริงเราก็ต้องเรียกใช้ dnsmasq อีกครั้ง
แต่ฉันไม่แน่ใจว่าพวกเขายังคงถือครองและ / หรือวิธีการแก้ไขได้แก้ปัญหาได้อย่างไร นอกจากนี้ยังไม่มีใครชัดเจนว่าพวกเขาทำอะไรและวิธีแก้ไขปัญหาของพวกเขา คือส่วนวิธีการแก้ปัญหาจะหายไปจากการอภิปรายยาว ใครบางคนสามารถเติมลงในช่องว่างได้ไหม กล่าวคือ
dnsmasq
มีให้ออกจากกล่องโดยอูบุนตูไม่ทำงานในฝั่งเซิร์ฟเวอร์ด้วยเหตุผลดังกล่าวข้างต้น และในฝั่งไคลเอ็นต์"dnsmasq ที่ติดตั้งบนแล็ปท็อป Ubuntu เหล่านั้นไม่สามารถทำการสอบถาม LAN DNS จากเซิร์ฟเวอร์ DNS ของฉัน"เพราะ"NetworkManager (แล็ปท็อป Ubuntu)" ทำให้ผู้ใช้มีการตั้งค่าเนมเซิร์ฟเวอร์แปลก ๆ 127.0.1.1 " ( อ้างอิง: โซลูชั่น DNS สำหรับ LAN หรือเครือข่ายในบ้าน )
วิธีทำให้ dnsmasq ทำงานอย่างราบรื่นกับ NetworkManager เพื่อมอบ DNS และ DHCP (และ TFTP) ให้กับเครือข่ายท้องถิ่นของฉันทั้งบนเซิร์ฟเวอร์และฝั่งไคลเอ็นต์
TL'dr
สำหรับผู้ที่ต้องการคำตอบ จากคำตอบทั้งหมดด้านล่างนี้ฉันพบวิธีแก้ปัญหาที่ง่ายที่สุดคือ @ brad สำหรับฝั่งเซิร์ฟเวอร์ (ยังไม่มีคำตอบที่ดีสำหรับฝั่งไคลเอ็นต์):
ทางออกเดียวของปัญหาคือการปิดการใช้งาน NM- ไดรฟ์ dnsmasq ... และติดตั้ง dnsmasq "มาตรฐาน" แล้วกำหนดค่าผ่านทาง
/etc/dnsmasq.conf
ไฟล์การกำหนดค่ามาตรฐาน