DHCP перезаписывает Cisco VPN resolv.conf в Linux - PullRequest
4 голосов
/ 07 сентября 2008

Я использую машину Ubuntu 8.04 (x86_64) для подключения к Cisco VPN моего работодателя. (Клиент не скомпилировал из коробки, но я нашел патчи для обновления клиента для компиляции на ядрах, выпущенных за последние два года .) Все это прекрасно работает, пока мой клиент DHCP не решит обновить он арендует и обновляет /etc/resolv.conf, заменяя специфичные для VPN серверы имен моими общими сетевыми серверами.

Есть ли хороший способ запретить моему DHCP-клиенту обновлять /etc/resolv.conf, пока мой VPN активен?

Ответы [ 7 ]

5 голосов
/ 07 сентября 2008

Если вы работаете без NetworkManager, обрабатывающего соединения, используйте пакет resolvconf, чтобы выступать в качестве посредника для программ, настраивающих /etc/resolv.conf: sudo apt-get install resolvconf

Если вы используете NetworkManager, он справится с вами, поэтому избавьтесь от пакета resolvconf: sudo apt-get remove resolvconf

Я узнал об этом при настройке vpnc в Ubuntu на прошлой неделе. Поиск по vpn resolv.conf на ubuntuforums.org имеет 250 результатов, многие из которых очень связаны!

2 голосов
/ 18 сентября 2008

Если вы используете Ubuntu по умолчанию с NetworkManager, попробуйте удалить клиент CiscoVPN и использовать плагин NetworkManager vpnc для подключения к Cisco VPN. Это должно избежать всех проблем, поскольку NetworkManager узнает о вашем VPN-соединении.

1 голос
/ 18 сентября 2008

chattr + i /etc/resolv.conf должен работать. (-я отменить)

Но лучше всего настроить свой dhclient.conf: https://calomel.org/dhclient.html Посмотрите на серверы имен доменов и доменное имя.

Также посмотрите "отправить имя хоста"; Если это работает на вашем рабочем месте, у вас будет отличное имя хоста для вашего ПК, а не какое-то странное имя, которое назначают DHCP-серверы.

1 голос
/ 07 сентября 2008

Я бы посоветовал последовать совету @Sean, но если по какой-то причине это не получится, можно настроить dhclient так, чтобы он не запрашивал DNS-серверы в /etc/dhcp3/dhclient.conf

0 голосов
/ 14 октября 2008

Эта проблема гораздо более заметна в сетях с низким сроком аренды DHCP. В панели запуска пакета Ubuntu dhcp3 имеется ошибка:

https://bugs.launchpad.net/ubuntu/+source/dhcp3/+bug/90681

Который включает этот патч в описание:

--- /sbin/dhclient-script.orig 2007-03-08 19:19:56.000000000 +0000
+++ /sbin/dhclient-script 2007-03-08 19:19:46.000000000 +0000
@@ -13,6 +13,10 @@
 # The alias handling in here probably still sucks. -mdz

 make_resolv_conf() {
+ # don't overwrite resolv.conf at RENEW time, since a VPN/PPTP tunnel may
+ # have updated it with remote DNS servers
+ [ "$reason" = "RENEW" ] && return
+
     if [ -n "$new_domain_name" -o -n "$new_domain_name_servers" ]; then
         # Find out whether we are going to mount / rw
         exec 9>&0 </etc/fstab

Это изменение на /sbin/dhcp-script останавливает перезапись * клиентом DHCP * /etc/resolv.conf при возобновлении аренды.

0 голосов
/ 25 сентября 2008

Демону DHCPclient может быть приказано не обновлять resolv.conf с помощью переключателя командной строки. (думаю, в зависимости от клиента)

Это менее динамично, потому что вам нужно будет перезапустить / перенастроить DHCP при подключении, но не слишком сложно. Точно так же вы можете просто остановить службу, но тем временем можете потерять свой IP, поэтому я бы не стал этого рекомендовать.

Либо вы можете запустить dhcpclient из задания cron, добавив соответствующие проверки процесса.

0 голосов
/ 18 сентября 2008

vpnc, кажется, делает то, что нужно для концентратора Cisco моего работодателя. Я включаю и выключаю vpn, и кажется, что все обновляется плавно.

...