Сабж. У меня есть пара VPN-подключений и «основной» доступ в интернеты. Мне нужно чтоб домены foo.com
и bar.com
резолвились через 10.0.0.1
, домены baz.com
и baz.bar.com
- через 172.16.0.1
, а все остальное уходило в 192.168.0.1
(а еще лучше - в то что мне назначит роутер, но это не обязательно, указать айпишники меня вполне устроит). Как это можно сделать?
Пробовал в /etc/systemd/resolved.conf
и по отдельности в /etc/systemd/resolved.conf.d/*
прописывать
[Resolve]
DNS=10.0.0.1
Domains=~foo.com. ~bar.com.
[Resolve]
DNS=172.16.0.1
Domains=~baz.com. ~baz.bar.com.
[Resolve]
DNS=192.168.0.1
Domains=~.
Это не помогает - systemd-resolved сваливает это все в кучу Global, берет первый сервер и резолвит через него.
Вариант прописать для каждого соединения свои домены и свой сервер типа как
# resolvectl dns tun0 172.16.0.1
# resolvectl domain tun0 ~baz.com. ~baz.bar.com.
не подходит, потому что вчера у меня на tun0
поднято то где 172.16.0.1
, сегодня там будет то подключение где DNS 10.0.0.1
, а завтра вообще подниму два соединения сразу. Делать это скриптами при запуске VPN не получится потому что там аналоговнетное решение, которое умеет только в GUI, запускать потом руками скрипты еще не хочется, хочется чтоб было автоматически. Ну и хочется чтоб это было в конфиге чтоб проще бэкапить было.
Что я упускаю? Я могу сделать то что мне нужно через, например, dnsmasq или bind, но увы, сменить резолвер возможности нет, надо настроить то что есть.