[sisyphus] резолвер
Michael A. Kangin
mak на complife.ru
Ср Апр 10 17:50:55 MSK 2019
On 04/09/2019 02:47 PM, Sergey wrote:
> Я так понимаю, что вопрос из-за того, что какой-то resolv.conf
> лежит в /var/resolv/etc/, а изменения в /etc/resolv.conf не
> во всех случаях становятся актуальными без запуска update_chrooted
> (или изменения /var/resolv/etc/resolv.conf другим способом каким-
> нибудь). Хотя вопрос, каков сейчас список приложений, которые
> используют /var/resolv/ тем или иным образом.
"каков сейчас список приложений" - а это разве не на общесистемном
уровне применяется?
По крайней мере, ping работает с файлами именно из /var/resolv/etc/
У меня такая проблема - на хосте работает свой резолвер, он прописан в
/etc/net/ifaces/{iface}/resolv.conf как 127.0.0.1.
При старте системы всё это прописывается в /etc/resolv.conf,
/var/resolv/etc/resolv.conf, всё хорошо и благостно.
Теперь создаём netns, у которого свой собственный lo со своим
собственным 127.0.0.1, и обнаруживаем, что резолвинг в этом неймспейсе
не работает.
Ок, в man ip-netns сказано:
===================
For applications that are aware of network namespaces, the convention is
to look for global network configuration files first in /etc/netns/NAME/
then in /etc/. For example, if you want a different version of
/etc/resolv.conf for a network namespace used to isolate your vpn you
would name it /etc/netns/myvpn/resolv.conf.
ip netns exec automates handling of this configuration, file convention
for network namespace unaware applications, by creating a mount
namespace and bind mounting all of the per network namespace configure
files into their traditional location in /etc.
==================
Делаем директорию /etc/netns/myns, кладём туда исправленный экземпляр
resolv.conf
Заходим снова в неймспейс, смотрим, что изнутри него /etc/resolv.conf
виден как исправленно-правильный, однако резолвинг по-прежнему не
работает, потому что /var/resolv/etc/resolv.conf остался старый,
немодифицированный.
Если теперь изнутри неймспейса сказать update_chrooted, то резолвинг
чинится для неймспейса, но тут же (ожидаемо) ломается для остальной
хост-системы.
В общем, для меня тот факт, что resolv.conf и hosts используются из
чрута /var/resolv/, создаёт дикое количество затруднений и проблем, и я
был бы очень рад, если бы нашёлся путь использовать версии файлов
непосредственно из /etc (как это в RHEL например работает).
Подробная информация о списке рассылки Sisyphus