Ставим mpd5 из портов, как обычно.
root@server# cat /usr/local/etc/mpd5/mpd.conf
startup:
set user foo bar admin
set console self 127.0.0.1 5005
set console open
default:
load pptp_client
pptp_client:
create bundle static B1
set iface up-script /usr/local/etc/mpd5/up-script.sh
set iface down-script /usr/local/etc/mpd5/down-script.sh
# set iface route default
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
create link static L1 pptp
set link action bundle B1
set auth authname yourlogin
set auth password yourpasswd
set link max-redial 0
set link mtu 1460
set link keep-alive 20 75
set pptp peer 171.194.137.84
set pptp disable windowing
open
Строку set iface route default закомментили потому, что полученный таким образом дефолт не заменял определенный нами ранее. Вместо этого, для управления маршрутизацией будем использовать up-script и down-script.
root@server# cat /usr/local/etc/mpd5/up-script.sh
#!/bin/sh
/sbin/route delete default
/sbin/route add 171.194.137.84/32 100.100.232.4
/sbin/route add 100.100.232.34 100.100.232.4
/sbin/route add default 171.194.137.89
Т.е., при старте mpd5 сначала удаляем старый дефолт, потом прописываем путь к VPN-серверу через ip нашего старого шлюза, также - прописываем статический маршрут к нейм-серверу через старый шлюз (неизвестно, какие DNS выдаст VPN-сервер, + всё равно resolv.conf вряд ли ОС даст перезаписать... ну а так - остаемся с удобным для нас DNS-ом как при подключении через VPN, так и без VPN). Последняя строка - прописываем новый дефолт через ip, который нам выдаст VPN-сервер (в нашем случае сервер всегда будет выдавать один и тот же IP). Конечно, такой вариант настройки VPN-соединения является частным случаем, но - надо было быстро поднять, а не разбираться с граблями.
root@server# cat /usr/local/etc/mpd5/down-script.sh
#!/bin/sh
/sbin/route delete default
/sbin/route delete 171.194.137.84/32 100.100.232.4
/sbin/route delete 100.100.232.34 100.100.232.4
/sbin/route add default 100.100.232.4
При остановке сервиса mpd прибиваем старый дефолт и 2 статических маршрута, добавленных ранее скриптом up-script.sh, и возвращаем старый дефолт.