При исправлении моей, по-видимому, несколько нестандартной настройки на моей рабочей станции Ubuntu 12.04, когда я подключаю VPN-подключение, его DNS-сервер добавляется в конец /etc/resolv.conf вместо верхнего, что приводит ко всем DNS-запросам. предназначен для сбоя назначения VPN (поскольку первый DNS-сервер в этом списке отрицательно отвечает на запросы, и мой компьютер никогда не запрашивает ответ у нижнего DNS-сервера).
Если я отредактирую /etc/resolv.conf вручную и просто переместу запись сервера имен, которую Network Manager добавляет туда в начало, это работает нормально. Но этот обходной путь, очевидно, не является предпочтительным.
Вероятно, следует упомянуть, что я отключил dnsmasq, потому что с ним разрешение DNS VPN не работает вообще, несмотря на все файлы, содержащие то, что они должны иметь.
Как правильно это исправить?
Что должно произойти, так это то, что процесс клиента VPN должен зарегистрировать адрес сервера имен VPN с resolvconf под именем записи IFACE.CLIENT, где IFACE - это имя сетевого интерфейса VPN (например, tun0), а CLIENT - это имя VPN. клиентская программа; и файл / etc / resolvconf / interface-order должен включать шаблон глобуса, соответствующий этому имени записи с соответствующим высоким приоритетом: после петлевых интерфейсов lo *, но перед интерфейсами LAN, такими как eth *. В заводском файле заказа интерфейса шаблоны tun * и tap * находятся в правильном положении в заказе.
Если вы используете стороннюю программу-клиент VPN, она может не поддерживать это, и в этом случае вам придется либо взломать сценарии последней программы, либо принять какой-то обходной путь, такой как размещение адреса на DNS-серверах имен. строка в / etc / network / interfaces (если используется ifup) или написание пользовательского сценария обновления resolvconf.