netns
netns copied to clipboard
Is there a way to switch resolv.conf while switching namespace
We have a resolv.conf file for every namespaces. When switching from one namespace (say VRF_1) to another (say VRF_2), it seems that the resolv.conf file attached to VRF_1 is used to resolve the DNS instead of VRF_2. Is there any way as of today to ensure use of a different resolv.conf while switching the namespace.
Hi, I don't know is it still relevant. I tried two different ways:
- to create resolv.conf under
/etc/netns
directory before creating the namespace OR forcingsudo resolvconf -u
in netns after; - to add some wrapper on DNS Mask to handle dynamic changes with it.
The first one looks more natural, but I agree - both are workarounds
-
/etc/resolv.conf
is an ordinary file, read by many DNS client libraries. - As an ordinary file,
/etc/resolv.conf
is subject to mount namespaces, but not network namespaces. - a process with a DNS client resolver library thus reads the
/etc/resolv.conf
from its currently active mount namespace, and if you don't change that to the one used by your boxed processes using separate different network and mount namespaces, your process uses the wrong/etc/resolv.conf
. - Switching a process into a different mount namespace is a point of no return and fails when your process is already multi-threaded.