我已经在我的 Linux 系统(内核版本 3.10)上设置了几个网络命名空间,现在我想配置每个网络命名空间以拥有自己的 DNS 设置。
我resolv.conf
在每个/etc/netns/[namespace]
目录中创建了文件,现在我想让我的系统按以下方式工作:
在 bash 命令行中,每当我nsenter --net=/run/netns/[namespace name]
使用/etc/netns/[namespace name]/resolv.conf
.
如果我像这样运行我的命令:
"ip netns exec [namespace name] [command]"
然后应用命名空间的 DNS 设置。
但是,当运行没有“ip netns exec”的命令时,DNS 设置取自/etc/resolv.conf
,即使运行“netns get cur”表示上下文设置为所需的网络命名空间。
我尝试mount --bind /etc/netns/[namespace name]/resolv.conf /etc/resolv.conf
在适当的网络命名空间的上下文中执行此操作,但这会将挂载应用到整个系统中,而不是仅在该网络命名空间的上下文中。
我怀疑使用挂载命名空间可能会有所帮助,所以我尝试阅读挂载命名空间的手册页,但是在我致力于它的短时间内无法从中做出任何事情。
有没有一种简单而优雅的方式来实现这个目标?
任何有关解决方案的帮助/指导将不胜感激!