Настройка pptp-клиента в mpd5

Ставим 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, и возвращаем старый дефолт.