ฉันมีเครื่อง Ubuntu ที่มีเนมสเปซเครือข่าย (ns1) เชื่อมต่อกับเนมสเปซเครือข่ายโฮสต์ผ่าน veth ฉันสร้างกฎ MASQUERADE ใน iptables เพื่อเข้าถึงอินเทอร์เน็ต และฉันสามารถ ping 8.8.8.8 จากเนมสเปซเครือข่ายได้
เมื่อฉันทำ ขุด google.com
จากโฮสต์ มันใช้งานได้ และฉันเห็นในอินเทอร์เฟซหลัก:
08:03:02.376478 IP 10.0.10.40.51566 > 10.0.10.2.53: 48449+ [1au] A? กูเกิล.คอม. (39)
08:03:02.378335 IP 10.0.10.2.53 > 10.0.10.40.51566: 48449 1/0/1 A 216.58.204.110 (55)
อย่างไรก็ตาม เมื่อฉันดำเนินการขุดในเนมสเปซเครือข่าย: sudo ip netns ns1 ขุด google.com
มันใช้งานไม่ได้และนี่คือสิ่งที่ฉันเห็นในอินเทอร์เฟซหลักของโฮสต์:
08:03:09.033958 IP 10.0.10.40.50888 > 10.0.10.2.53: 32798+ [1au] A? ip-10-0-10-40.eu-west-3.compute.internal. (69)
08:03:09.034152 IP 10.0.10.40.36297 > 10.0.10.2.53: 43961+ [1au] AAAA? ip-10-0-10-40.eu-west-3.compute.internal. (69)
08:03:09.034460 IP 10.0.10.2.53 > 10.0.10.40.50888: 32798 NXDomain 0/1/1 (144)
08:03:09.034460 IP 10.0.10.2.53 > 10.0.10.40.36297: 43961 NXDomain 0/1/1 (144)
08:03:09.034559 IP 10.0.10.40.50888 > 10.0.10.2.53: 32798+ A? ip-10-0-10-40.eu-west-3.compute.internal. (58)
08:03:09.034639 IP 10.0.10.40.36297 > 10.0.10.2.53: 43961+ AAAA? ip-10-0-10-40.eu-west-3.compute.internal. (58)
08:03:09.034837 IP 10.0.10.2.53 > 10.0.10.40.50888: 32798 NXDomain 0/1/0 (133)
08:03:09.034906 IP 10.0.10.2.53 > 10.0.10.40.36297: 43961 NXDomain 0/1/0 (133)
เหตุใดคำขอที่มาจากเนมสเปซเครือข่ายจึงไม่พยายามแก้ไขชื่อโฮสต์ กูเกิล.คอม
แต่ชื่อโฮสต์ ip-10-0-10-40.eu-west-3.compute.internal
? เห็นได้ชัดว่าชื่อหลังเป็นชื่อโฮสต์ของเครื่อง Ubuntu ของฉัน
แก้ไข
ถ้าฉันหยุด systemd-resolve และเพิ่มเนมเซิร์ฟเวอร์อัปสตรีม มันก็ใช้ได้ ดังนั้นจึงต้องเป็นปัญหากับ systemd-resolve