[sisyphus] резолвер

Dmitry V. Levin ldv на altlinux.org
Ср Апр 10 18:06:33 MSK 2019


On Wed, Apr 10, 2019 at 04:50:55PM +0200, Michael A. Kangin wrote:
> 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, то резолвинг 
> чинится для неймспейса, но тут же (ожидаемо) ломается для остальной 
> хост-системы.

Научите ip netns exec, который "automates handling of this configuration
... by creating a mount namespace and bind mounting all of the per network
namespace configure files into their traditional location in /etc",
не забывать про /var/resolv/.

> В общем, для меня тот факт, что resolv.conf и hosts используются из 
> чрута /var/resolv/, создаёт дикое количество затруднений и проблем, и я 
> был бы очень рад, если бы нашёлся путь использовать версии файлов 
> непосредственно из /etc (как это в RHEL например работает).

Что за дикое количество затруднений и проблем?
Вы всю систему в netns запихиваете, что ли?


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20190410/e915cf4d/attachment-0001.bin>


Подробная информация о списке рассылки Sisyphus