Есть 2 локальных домена. Одна сеть на клиенте доступна прямо, другая через vpn (openvpn). В каждой сети есть dns-server, который может ресолвить как локальные, так и глобальные имена. те dns1 ресолвит anyname.local1 и
www.ru, а dns2 anyname.local2 и
www.ru. dns1 ничего не знает о второй сети, а второй -- о первой.
При нормальной работе (без vpn) все работает (используется networkmanager 0.7), имеется одна запись nameserver resolv.conf.
При подключении vpn openvpnserver отдаёт директиву dhcp-option DNS dns2, которую NM корректоно разбирает и в resolv.conf появляется второй nameserver.
Дальше начинают происходить непонятные вещи, разобраться в которых я не могу.
На клиентте начинает тормозить разрешение любых имен, а локальные адреса первой сети вообще перестают разрешаться. При этом nslookup работает одинаково быстро с обоими ns при их явном указании, а без указания ns работает только с первым в списке resolv.conf. получая имя из первой сети, он пытается ресолвить его вторым ns (который в ресолве первый), и получив ** server can't find name.local1: NXDOMAIN успокаивается и второй ns не опрашивает.
Как заставить ресолвер обращаться за адресом ко второму ns в списке, если первый ответил, что такого не знает? Насколько я понял, второй нс задействуется, если первый вообще не отвечает.
Откуда берется задержка при разрешении имени при работе с инетом, если оба ns отдают ответ без всяких задержек?