Вопрос или проблема
У меня Ubuntu 11.04, Network Manager + vpnc + resolvconf. У меня есть некоторые настройки VPN и проводных соединений в Network Manager.
Каждый раз, когда я подключаюсь к VPN, мой /etc/resolv.conf
наполняется DNS-серверами VPN перед записью eth0. Однако через пять минут или около того, DNS-сервер соединения eth0 становится первым в списке.
Как можно отключить такое поведение?
Добавьте следующее в конфигурацию vpnc (если используете командную строку, отредактируйте через графический интерфейс для Network Manager)
DNSUpdate no
http://ubuntuforums.org/showthread.php?t=1623624
И вручную добавьте ваши DNS-записи
Ответ или решение
Для решения проблемы с изменением последовательности DNS-серверов в файле /etc/resolv.conf
при использовании Ubuntu 11.04 в сочетании с Network Manager, vpnc и resolvconf, важно рассмотреть несколько аспектов, связанных с тем, как система управляет записями DNS при установлении VPN-подключения.
Теория
Когда вы подключаетесь к виртуальной частной сети (VPN) через клиент vpnc, файл /etc/resolv.conf
обновляется так, чтобы в первую очередь использовать DNS-серверы, предоставленные VPN. Это необходимо для обеспечения правильного разрешения доменных имен в частной сети, доступ к которой осуществляется через VPN. Однако в данном случае возникает проблема, когда спустя некоторое время система переназначает местные DNS-серверы (от интерфейса eth0) в начало списка, что может приводить к ошибкам разрешения доменных имен, особенно если эти имена должны быть известны только в пределах VPN.
Пример
Рассмотрим ситуацию, когда вы подключены к корпоративной сети через VPN, и некоторые важные серверы в сети доступны только у нее. При изменении порядка DNS-серверов на вашей стороне, все запросы сначала идут к локальным DNS, и если они не знают о внутренних адресах, такие запросы будут возвращать ошибку, заставляя ваш клиентский софт (например, веб-браузеры или приложения) работать некорректно.
Применение
Для решения этой проблемы можно использовать несколько подходов:
-
Конфигурация vpnc: Один из методов заключается в изменении конфигурации вашего vpnc. Для этого в конфигурационный файл vpnc необходимо добавить строку
DNSUpdate no
. Эта опция запрещает vpnc обновлять DNS-записи, обеспечивая приоритет для VPN DNS-серверов.DNSUpdate no
Этот файл может находиться в
/etc/vpnc
, и возможно, вам потребуется административные привилегии для его изменения. -
Ручная настройка DNS: После отключения автоматического обновления вы можете вручную добавить необходимые DNS-записи в
/etc/resolv.conf
. Это позволит вам сохранить постоянный порядок серверов, независимо от дальнейших изменений сетевых подключений. -
Использование Network Manager: Вы можете дополнительно настроить Network Manager, чтобы зафиксировать настройки DNS для определенных подключений. Это делается через GUI Network Manager или посредством редактирования соответствующих настроек в конфигурационных файлах в
/etc/NetworkManager/system-connections/
. Для каждого подключения можно задать постоянные DNS-сервера. -
Автоматизация: В некоторых случаях полезно создать скрипт, который будет выполнять проверку и коррекцию порядка DNS-серверов в
resolv.conf
по расписанию или событию (например, при поднятии конкретного интерфейса). -
Изучение логов: Также рекомендуется просмотреть системные логи для получения более детальной информации о причинах, почему DNS-серверы меняются местами. Логи могут указать, какой именно процесс в системе взаимодействует с вашим DNS, и тем самым помогут выбрать более точечное решение.
-
Обновление ПО: Поскольку Ubuntu 11.04 — это уже устаревшая версия операционной системы, может быть полезно подумать об обновлении до более современной версии. Обновление может решить проблему, связав изменения в Network Manager, resolvconf или vpnc.
Важно помнить, что вносимые изменения в конфигурацию системы должны соответствовать политике безопасности вашей организации, особенно если производится ручное вмешательство в сетевые настройки. Предварительно следует протестировать решение в безопасной тестовой среде, чтобы гарантировать, что изменения не нарушат работу других сетевых сервисов.
Подводя итог, модификация функциональности DNS внутри Ubuntu с использованием vpnc требует понимания механизмов работы системы имен, а также тщательной настройки сетевых инструментов. Комплексный подход, включающий ручное управление и использование средств Network Manager, может помочь достичь стабильной и надежной конфигурации DNS.