[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [pptp] - дефектный round robin в DNS



On Mon, Dec 29, 2008 at 03:09:40AM +0300, George Shuklin wrote:
> Есть PPTP-сервер (циска), которая не от доброй жизни висит по-очереди на разных ИП разных провайдеров. Для того, чтобы имя циски было одно, она прописана (всеми адресами) для одного имени:
> 
> vpn IN A XX.XX.XX.XX
> vpn IN A YY.YY.YY.YY
> 
> В виндах это приводило к паузе (секунд на 30) при присоединении (с вероятностью 50%, как и ожидалось). При этом, при аварийном дисконнекте (и переходе на резервную линию) переконнект происходил-таки сам, на нужный IP.
> 
> С pptp ситуация другая - с вероятностью 50% он уходит в задумчивость:
> 
> Dec 29 03:07:17 ns pppd[5125]: Using interface ppp0
> Dec 29 03:07:17 ns pppd[5125]: Connect: ppp0 <--> /dev/pts/9

И это всё, что ты видишь в логе? Если один из адресов недоступен,
pptp будет отваливаться с no route to host, в логе ты это увидишь.
Если _оба_ адреса доступны (пингуются), то отваливаться будет скорее
скорее всего pppd по таймауту LCP config request, что тоже отразится в
логе. Хотелось бы увидеть лог целиком (и с опцией debug для pppd).

В первом случае как workaround проще всего написать скрипт типа такого:

apt-get install fping

===== /etc/ppp/run-pptp =====
#!/bin/sh
for VPN_ADDR in `dig $1 +short`; do
    if fping -q $VPN_ADDR; then
       exec pptp $VPN_ADDR --sync --nolaunchpppd --nobuffer --loglevel 0
    fi
done
=============================

и в /etc/ppp/peers/provider иметь

pty "/etc/ppp/run-pptp vpn.domain.name"

-- 
Stanislav


Reply to: