Тут все VPN сервера ставят... Я с клиентом не могу разобраться.
Нужно настроить шифрованый vpn доступ (провайдер использует эту схему).
Пытаюсь это делать через pptpclient. В /etc/ppp/ppp.conf пишу:
default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)
set device /dev/cuaa1set speed 115200
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
\"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
set timeout 180 # 3 minute idle timer (the default)
enable dns # request DNS info (for resolv.conf)
vpn:
set dial
set login
set device tun0
set mtu 1498
disable deflate pred1
deny deflate pred1
enable MPPE
accept MPPEset authname "***"
set authkey "***"
set timeout 0
set ifaddr 0 0add default HISADDR
В /var/log/ppp.log появляются строки:
...
Jan 16 00:38:29 Matracc ppp[343]: tun0: IPCP: deflink: LayerUp.
Jan 16 00:38:29 Matracc ppp[343]: tun0: IPCP: myaddr 172.20.17.16 hisaddr = 192.168.254.44
Jan 16 00:38:29 Matracc ppp[343]: tun0: LCP: Reducing MTU from 1500 to 1498 (CCP requirement)
Jan 16 00:38:29 Matracc ppp[343]: tun0: Warning: ff02:8::/32: Change route failed: errno: Network is unreachable
Jan 16 00:38:30 Matracc ppp[343]: tun0: Phase: deflink: read (0): Got zero bytes
Jan 16 00:38:30 Matracc ppp[343]: tun0: CCP: deflink: LayerDown.
...
После выполненения в таблице маршрутизации пропадает строка про default.
Собственно, что делать?
Строка set mtu 1498 в ppp.conf добавлена в качестве эксперимента. Подбирал разнообразные варианты. Не помогло.
Явно VPN-сервер находится в другой подсети.
Выход : не ставить маршрут по умолчанию.
Добавляем при загрузке маршрут только до VPN-сервера провайдера.
Например :
VPN-сервер - 10.10.10.2
VPN-клиент - 172.16.30.35 ( маршрутизатор для него - 172.16.30.1)
Как будет выглядеть для FreeBSD (в линухе синтаксис отличается, так что man route )
route add -net 10.10.10.0/24 172.16.30.1
Для того, чтобы это работао после перезагрузки :
/etc/rc.conf
static_routes="mysubnet vpnsubnet"
route_mysubnet="-net 172.16.0.0/16 172.16.30.1" (это при условии существования ещё каких-либо внутренних подсетей, до которых необходим доступ)
route_vpnsubnet="-net 10.10.10.0/24 172.16.30.1"
Господин аноним! Вы мой герой-спаситель! :)
Спасибо за такое детальное описание, правда достаточно было двух первых строк. Теперь возникает вопрос: чем pptp-client не устраивал маршрут по умолчанию? Коннект к vpn-серверу был, логин происходил, обрубалось все после попытки изменить mtu (как мне видится из логов). Это простой баг, или особенность протокола ppp?
>Господин аноним! Вы мой герой-спаситель! :)
>Спасибо за такое детальное описание, правда достаточно было двух первых строк. Теперь
>возникает вопрос: чем pptp-client не устраивал маршрут по умолчанию? Коннект к
>vpn-серверу был, логин происходил, обрубалось все после попытки изменить mtu (как
>мне видится из логов). Это простой баг, или особенность протокола ppp?
>Строка
add default HISADDR
ни о чём не говорит ?
Ваши логи :
Jan 16 00:38:29 Matracc ppp[343]: tun0: IPCP: deflink: LayerUp.
Jan 16 00:38:29 Matracc ppp[343]: tun0: IPCP: myaddr 172.20.17.16 hisaddr = 192.168.254.44
Jan 16 00:38:29 Matracc ppp[343]: tun0: LCP: Reducing MTU from 1500 to 1498 (CCP requirement)
Jan 16 00:38:29 Matracc ppp[343]: tun0: Warning: ff02:8::/32: Change route failed: errno: Network is unreachable
Jan 16 00:38:30 Matracc ppp[343]: tun0: Phase: deflink: read (0): Got zero bytes
Jan 16 00:38:30 Matracc ppp[343]: tun0: CCP: deflink: LayerDown.
Смена mtu здесь ни при чём
Обьясняю на пальцах :
была машина, для которой по незнанию прописали маршрут по умолчанию
172.16.1.56, маршрутизатор 172.16.1.1
VPN-сервер 10.10.10.10
Так как инет становится доступен только после осуществления VPN-подключения, маршрут по умолчанию ДОЛЖЕН устанавливаться на VPN-сервер.
Так как маршрут по умолчанию уже существует, vpn-клиент при подключении его меняет. Получаем:
Change route failed: errno: Network is unreachable
Маршрут по умолчанию есть, но по нему невозможно достучаться до VPN-сервера. В итоге - обрыв VPN-соединения.
Теперь все ясно. Спасибо.