Cara mengatur DNS secara eksklusif untuk Network Namespace di Linux

9

Saya telah membuat namespace jaringan di Linux.

Saya pikir ada file resolv.conf untuk setiap ruang nama yang dibuat tetapi itu tidak terjadi pada sistem saya. Saya tidak memiliki jalur berikut /etc/netns/namespace_name/resolv.conf .. Netns folder tidak ada.

Hanya ada satu resolv.conf (/etc/resolv.conf dan satu lagi dicerminkan di /run/resolv.conf). Setiap perubahan dalam file ini mempengaruhi semua antarmuka jaringan. Apakah ada cara saya bisa menggunakan DNS yang berbeda untuk host dan namespace?

jayce153
sumber

Jawaban:

11

Anda harus membuat direktori / etc / netns / _namespace_name_ sendiri, dan tempatkan resolv.conf versi yang berbeda di sana.

Nik
sumber
1
Apakah /etc/netns/namespace-name/resolv.confakan digunakan secara otomatis?
CMCDragonkai
Dan dapatkah ini digunakan untuk iptables juga?
CMCDragonkai
2
Ini akan digunakan secara otomatis karena path lengkap di atas adalah bind-mount oleh ip netnske /etc/resolv.conf, seperti yang dijelaskan dalam halaman manual ip netns man7.org/linux/man-pages/man8/ip-netns.8. html . Jadi dari dalam namespace jaringan yang diberikan, /etc/resolv.conf adalah file resolv.conf per-namespace jika dan hanya jika /etc/netns/namespace-name/resolv.conf telah dibuat. Jika tidak, aplikasi akan melihat resolv.conf dari mesin host, yang mungkin bukan perilaku yang diinginkan.
Ricky Robinson