Как настроить DNS исключительно для сетевого пространства имен в Linux

9

Я создал сетевое пространство имен в Linux.

Я думал, что для каждого созданного пространства имен существует файл resolv.conf, но в моей системе это не так. У меня нет следующего пути /etc/netns/namespace_name/resolv.conf .. Папка netns не существует.

Существует только один resolv.conf (/etc/resolv.conf и другой, отраженный в /run/resolv.conf). Любые изменения в этом файле влияют на все сетевые интерфейсы. Можно ли использовать разные DNS как для хоста, так и для пространства имен?

jayce153
источник

Ответы:

11

Вы должны создать каталог / etc / netns / _namespace_name_ и поместить туда другую версию resolv.conf.

Nik
источник
1
Будет /etc/netns/namespace-name/resolv.confли использоваться автоматически?
CMCDragonkai
И можно ли это использовать и для iptables?
CMCDragonkai
2
Он будет использоваться автоматически, так как полный путь выше подключен ip netnsк /etc/resolv.conf, как описано на странице руководства ip netns man7.org/linux/man-pages/man8/ip-netns.8. HTML . Таким образом, из данного сетевого пространства имен файл /etc/resolv.conf является файлом resolv.conf для каждого пространства имен, если и только если был создан файл /etc/netns/namespace-name/resolv.conf. В противном случае приложение увидит resolv.conf хост-машины, что может не соответствовать желаемому поведению.
Рики Робинсон