[Sysadmins] openvpn,pptp,dns...

Nikolay A. Fetisov =?iso-8859-1?q?naf_=CE=C1_naf=2Enet=2Eru?=
Пн Мар 31 22:43:06 MSD 2008


On Mon, 31 Mar 2008 19:17:43 +0400
Alexander Volkov wrote:

> On 2008-03-31 12:06:38 +0400, Nikolay A. Fetisov wrote:
> NAF> Также хорошо бы посмотреть не одну строчку лога, а от начала
> NAF> установления соединения. С уровнем 'verb 7', или больше.
> вложил.

Ну, OpenVPN работает так, как может.

Перед тем, как изменить маршрут по-умолчанию (всё равно - с def1 или
без), необходимо отдельно прописать маршрут до самого сервера OpenVPN.
Этот маршрут устанавливается вызовом /sbin/ip вида
'ip <remote>/32 via <gateway>', где 'remote' - адрес сервера OpenVPN из
файла конфигурации, а gateway определяется из маршрута по-умолчанию,
установленного в системе на момент установления соединения.

Проблема в том, что device-based маршруты сейчас OpenVPN не
поддерживает, и записи
'default dev ppp9  scope link'
не понимает. Соответственно, задать маршрут до сервера он не может, и
маршрут по-умолчанию тоже не меняет.


Как выход - заменить маршрут по-умолчанию перед запуском openvpn; если
он стартует через свой init-скрипт, то можно рядом с файлом
конфигурации положить скрипт с тем же именем и расширением .sh вида

#!/bin/bash

if [ $(/sbin/ip route list exact default |\
  /usr/bin/awk '/^default/ {print $2}') = dev ];
then
         IF=$(/sbin/ip route | awk '/^default/ {print $3}')
         GW=$(/sbin/ip address show $IF |\
         /usr/bin/awk '/peer/ {print $4}' | cut -d"/" -f1)
         /sbin/ip route replace default via $GW dev $IF
fi

См. http://openvpn.net/archive/openvpn-users/2007-12/msg00028.html


-- 
С уважением,	
Николай Фетисов


Подробная информация о списке рассылки Sysadmins