netns icon indicating copy to clipboard operation
netns copied to clipboard

Is there a way to switch resolv.conf while switching namespace

Open shekharHPE opened this issue 5 years ago • 2 comments

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.

shekharHPE avatar Aug 06 '19 04:08 shekharHPE

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 forcing sudo 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

ic2hrmk avatar Jul 13 '20 20:07 ic2hrmk

  1. /etc/resolv.conf is an ordinary file, read by many DNS client libraries.
  2. As an ordinary file, /etc/resolv.conf is subject to mount namespaces, but not network namespaces.
  3. 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.
  4. Switching a process into a different mount namespace is a point of no return and fails when your process is already multi-threaded.

thediveo avatar Sep 14 '20 19:09 thediveo