การตั้งค่าของฉัน:
/etc/ns-shared-resolv.conf มีการเขียนถึงอย่างสม่ำเสมอด้วย เนมเซิร์ฟเวอร์ x.x.x.xปรับปรุงจากสคริปต์
/etc/netns/ag2/resolv.conf เป็น symlink ด้านบน (พร้อมกับ ag3, ag4).. สำหรับการตั้งค่า DNS ส่วนกลางใน root netnsโอ
- บริการระยะยาวกำลังทำงานอยู่
ag2 เน็ต (ผ่าน ip netns exec ag2 ...,เปิดตัวตั้งแต่ก ระบบ บริการ)
เกิดอะไรขึ้น:
ทุกอย่างทำงานได้ดี .. สำหรับจำนวนชั่วโมงโดยพลการ หลังจากนั้น คำขอ DNS จะล้มเหลว โดยใช้ tcpdump ฉันเห็นคำขอ DNS ไปที่ "ผิดที่" .. เซิร์ฟเวอร์ DNS ในรูท /etc/resolv.conf,ไม่ใช่พวกเน็ทนะ.
ในเวลาเดียวกันในขณะที่ใช้งานไม่ได้ ip netns exec ag2 cat /etc/resolv.conf ทำงานเพื่อแสดงการตั้งค่าที่ถูกต้อง
ถ้าฉันเริ่มต้นใหม่ ip netns exec ag2 ทุบตี เชลล์จะได้รับ "ถูกต้อง" resolv.conf (symlink ถึง /run/systemd/resolve/stub-resolv.confซึ่งอัปเดต "สด" ด้วยเนื้อหาของ ns-shared-resolv.conf)
ดังนั้นหลังจากผ่านไประยะหนึ่ง กระบวนการที่ใช้เวลานานจะได้รับราก resolv.conf?
คำถาม:
เหตุใดสิ่งนี้จึงเกิดขึ้น / ฉันจะวินิจฉัยได้อย่างไรว่าใช้เซิร์ฟเวอร์ resolv.conf / DNS "ผิด" หลังจากระยะเวลาการสุ่มนี้
ฉันขอ DNS เริ่มต้นของอูบุนตูได้ไหม systemd-resolv เซิร์ฟเวอร์ทำงานภายใน netns-es ดังนั้นฉันจึงไม่จำเป็นต้องทำเรื่องบ้าๆ นี่?
แก้ไข: ชอบคนนี้! --> https://www.reddit.com/r/linuxquestions/comments/dnh8wq/comment/fo1tbty/?utm_source=share&utm_medium=web2x&context=3