Страница 1 из 1
mpd 5.3 (pptp-сервер). VPN-клиенты Windows не перезванивают
Добавлено: 2010-04-12 12:06:20
mongol80
Использую РРТР-сервер на связке FreeBSD 8.0+mpd 5.3. Все прекрасно работает, однако есть одна очень серьезная проблема - при стопе или рестарте mpd (/usr/local/etc/rc.d/mpd5 restart или stop) или просто "killall mpd5" все клиенты Windows не отваливаются как должно быть, а завершают соединение - И НЕ ПЕРЕЗВАНИВАЮТ! (хотя в настройках виндового подключения установлена галка "перезвонить при разрыве соединения" и задано N-ое количество попыток). Если отключить клиента через веб-интерфейс [Close] - то он именно отваливается и перезванивает. Подскажите пожалуйста, каким образом заставить MPD5 при остановке или перезагрузке демона не посылать клиентам команду завершения, а просто обрывать соединение?
Re: mpd 5.3 (pptp-сервер). VPN-клиенты Windows не перезванив
Добавлено: 2010-04-12 12:22:13
Гость
ну напишите скрипт который будет перед рестартом mpd
отключать всех клиентов
хотя это больше на проблему винды похоже
точнее на особенность
у меня вот тоже диалап иногда в винде тупо само убиваеться
не всплывая об обрыве связи итд
Re: mpd 5.3 (pptp-сервер). VPN-клиенты Windows не перезванив
Добавлено: 2010-04-13 13:58:42
mongol80
Гость писал(а):ну напишите скрипт который будет перед рестартом mpdотключать всех клиентов
В моей ситуации этот вариант не совсем подходит, т.к. необходимо, чтоб не только при перезапуске демона мпд5, но допустим, при перезагрузке сервера (когда процессу mpd5 посылается сигнал завершения) VPN-клиенты перезванивали для автоматического соединения с сервером после его поднятия.
Проблему решил по-другому - копанием сырцов.

Как оказалось - все дело в закрытии бандлов. На случай, если у кого-то возникнет подобная необходимость - рассказываю как я это сделал (
все действия выполнялись на исходниках mpd версии 5.3):
1. Открываем для редактирования файл main.c, находящийся в папке с исходниками mpd5:
Код: Выделить всё
ee /usr/ports/net/mpd5/work/mpd-5.3/src/main.c
2. Теперь переходим на тсроку 325, где видим следующее:
3. Всё, что нам нужно - это просто закомментировать данную строку. В результате получается:
4. Сохраняем изменения, выходим из редактора и пересобираем мпд:
Код: Выделить всё
cd /usr/ports/net/mpd5/work/mpd-5.3
make install
Всё, теперь при завершении или перезапуске процесса mpd5 на виндовых VPN-клиентах подключение не просто бесследно пропадает, а рвется с последующими попытками переподключения (если они заданы).
Re: mpd 5.3 (pptp-сервер). VPN-клиенты Windows не перезванив
Добавлено: 2010-04-13 14:02:52
Гость
ну так вы бы сразу так и сказали
что вы из наших самураев
а не из гномов которые сдесь набеги устраивают
мы бы вам сразу так и сказали в каком файле что поправить
Re: mpd 5.3 (pptp-сервер). VPN-клиенты Windows не перезванив
Добавлено: 2010-08-25 22:47:01
Cancer
Та же сама проблема была пропадала связь и разрывалось соединение при перезагрузке mpd демона, решил так.
Перенёс комменты в начало строк и конфиг выравнял табуляцией (tab).
теперь даже при перезагрузке сервера соединение не теряется.
Вот конфиг
Код: Выделить всё
#################################################################
#
# MPD configuration file
#
# This file defines the configuration for mpd: what the
# bundles are, what the links are in those bundles, how
# the interface should be configured, various PPP parameters,
# etc. It contains commands just as you would type them
# in at the console. Lines without padding are labels. Lines
# starting with a "#" are comments.
#
# $Id: mpd.conf.sample,v 1.46 2009/04/29 11:04:17 amotin Exp $
#
#################################################################
startup:
# Задаем пароль для доступа в web-intarface
# т.е меняем password на свой пароль
set user admin password admin
# set user password cancer
# configure the console
set console self 127.0.0.1 5005
set console open
# configure the web server
set web self 0.0.0.0 5006
set web open
default:
load pptp_server
pptp_server:
# Определяем диапазон выдаваемых IP удалённым клиентам
# у меня с ...200 по ...220
set ippool add poolsat 192.168.10.200 192.168.10.220
create bundle template B
set iface enable proxy-arp
set iface idle 0
set iface enable tcpmssfix
set ipcp yes vjcomp
# IP адрес сервера, который мы будем показывать клиентам
# в моем случае 192.168.10.254 (можно не реальный IP)
set ipcp ranges 192.168.10.254/32 ippool poolsat
# Если есть свой ДНС сервер, то меняем IP адрес
set ipcp dns 192.168.10.1
# Enable Microsoft Point-to-Point encryption (MPPE)
set bundle enable compression
set ccp yes mppc
set mppc yes compress e40 e56 e128 stateless
# Create clonable link template named L
create link template L pptp
# Set bundle template to use
set link action bundle B
# Multilink adds some overhead, but gives full 1500 MTU
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap eap
set link enable chap
set link enable chap-msv1
set link enable chap-msv2
# We reducing link mtu to avoid GRE packet fragmentation.
set link mtu 1460
set link keep-alive 10 60
# Configure PPTP and open link
# Тут указываем IP сетевой карты которая смотрит в ИНЕТ
# В моем случае в модем
set pptp self 192.168.1.11
# Allow to accept calls
set link enable incoming
Re: mpd 5.3 (pptp-сервер). VPN-клиенты Windows не перезванив
Добавлено: 2010-08-26 18:55:49
Cancer
Все таки не помогает если сервер перезагрузить происходит разрыв, (ошибся с выводом ранее, процесс завис поэтому не происходило разрыва

)