mpd5 как L2TP клиент

Обсуждаем сайт и форум.

Модератор: f0s

LiNer
рядовой
Сообщения: 45
Зарегистрирован: 2008-06-20 16:29:29
Контактная информация:

mpd5 как L2TP клиент

Непрочитанное сообщение LiNer » 2009-05-31 9:31:42

http://www.lissyara.su/?id=1942 накатал маленькую заметку. жду замечаний/предложений :smile:

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 как L2TP клиент

Непрочитанное сообщение paradox » 2009-05-31 9:37:00

Код: Выделить всё

cd /usr/local/etc/mpd5
-cp mpd.conf.sample mpd.conf
+touch mpd.conf
cp mpd.script.sample mpd.script
-cp mpd.secret.sample mpd.secret
+touch mpd.secret

я бы так исправил


правда кто может возразить насчет прав chmod
но то мелочи

Аватара пользователя
f_andrey
майор
Сообщения: 2631
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: mpd5 как L2TP клиент

Непрочитанное сообщение f_andrey » 2009-05-31 10:25:55

А нафига вообше конфиги и скрипты создавать в начале, а потом редактировать, почему сразу не создать редактором или не сохранить в нужное место?
Я понимаю когда touch юзают чтоб создать лог в который потом автоматом что то будет писаться, но открывать его все одно никто не собирается а тут зачем лишние сущности?
Если ваша тема перенесена, то смотри viewtopic.php?f=1&t=32308

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: mpd5 как L2TP клиент

Непрочитанное сообщение FreeBSP » 2009-08-04 23:46:43

Доброго времени суток
в связи с тем что в статье поднимался вопрос на счет необходимых модулей нетграфа, хочу обратить внимание на выдержку с официального сайта: http://mpd.sourceforge.net/doc5/mpd63.html

Код: Выделить всё

It doesn't work, and there are strange netgraph-related errors in the log.
Make sure you have all the required netgraph KLD's loaded. You can check them
by doing kldstat -v | grep ng_ .

Usually these are loaded on demand. If not, you can load them manually using kldload(8).

The following node types are or may be needed:

ng_async
ng_bpf
ng_car
ng_deflate
ng_ether
ng_iface
ng_ksocket
ng_l2tp
ng_mppc
ng_ppp
ng_pppoe
ng_pptpgre
ng_nat
ng_netflow
ng_pred1
ng_socket
ng_tcpmss
ng_tee
ng_tty
ng_vjc


попутно хочу задать вопрос: кто-либо баловался подъемом <PPTP | L2TP IPSec> over <PPTP | L2TP IPSec> ?
более всего интересует l2tp over l2tp

ситуация такая: под столом стоит железяка с FreeBSD 7.2-RELEASE-p2 i386 которая получает инет через mpd pptp и раздает инет в домашнюю сеть 192.168.0.0/24
сервак pptp на mpd5 поднимается и нормально ждет коннектов
конекты из домашней сети он принимает нормально
а вот при попытке подцепиться к нему снаружи(pptp over pptp) фря намертво виснет. раньше встречался с подобным поведением фри при подъеме pptp клиента. но проблема сама собой решилась(не помню как именно :)) и я на нее забил. падение (что тогда что сейчас) происходит сразу после "Up Event " в логах mpd.
кто нибудь встречался с подобным?
Последний раз редактировалось FreeBSP 2009-12-10 18:25:54, всего редактировалось 1 раз.
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

talyan
проходил мимо
Сообщения: 3
Зарегистрирован: 2009-08-22 17:35:53

Re: mpd5 как L2TP клиент

Непрочитанное сообщение talyan » 2009-08-22 18:00:40

Прошу прощения, но нашел эту заметку как наиболее близкую к моей задаче... Я подымал mpd5 как pppoe клиент, все было замечательно, пока не столкнулся с задачей сделать несколько подключений. Лазил по разным форумам, начитался кучу всего, но ничего путного пока не нашел. В лучшем случае - несколько подключений создаются, но ip-адрес получает только 1-е созданное подключение.
Задача такая - провайдер раздает pppoe по "голому ethernet" (так мне объяснили), при подключении выдаются динамические белые ip-адреса. Комп с mpd5 будет являться шлюзом в интернет для локальной сети, а трафик разруливаться с помощью PBR.
В общем, насколько я понял, основная задача - написать правильно скрипты up и down...
Кто что может посоветовать?

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: mpd5 как L2TP клиент

Непрочитанное сообщение sch » 2009-09-01 18:17:26

быстрое (и наверное не очень красивое) решение -- запускать два экземпляра mpd.

Код: Выделить всё

cd /usr/local/etc
cp -R mpd5 mpd5r2
cp rc.d/mpd5 rc.d/mpd5r2.sh


/etc/rc.conf:

Код: Выделить всё

mpd_enable=YES
mpd5r2_enable=YES


Редактируем /usr/local/etc/rc.d/mpd5r2.sh

Код: Выделить всё

...
# PROVIDE: mpd5r2
...
name="mpd5r2"
rcvar=`set_rcvar mpd5r2`
...
command="/usr/local/sbin/mpd5"
mpd_flags="-b -d /usr/local/etc/${name} -p ${pidfile} -s ${name}"


Ну и делаешь отдельный набор конфигурационных файлов в каталоге etc/mpd5r2

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1361
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: mpd5 как L2TP клиент

Непрочитанное сообщение server801 » 2009-09-02 21:01:10

хочу спросить-почему так?
Привожу часть конфига, которая отвечает за L2TP клиент
Не забываем отступы отбивать табом, а не пробелами
ИзображениеИзображение
Изображение

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 как L2TP клиент

Непрочитанное сообщение paradox » 2009-09-02 21:15:57

синтаксис у mpd такой
почему то никто не хочет его изменить
возможно так различаються метри(лейблы) от самого конфига

аля startup: итд

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1361
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: mpd5 как L2TP клиент

Непрочитанное сообщение server801 » 2009-09-02 21:41:44

то есть если действовать пробелами-работать не будет?
ИзображениеИзображение
Изображение

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 как L2TP клиент

Непрочитанное сообщение paradox » 2009-09-02 21:45:55

если без пробелов то работаеть не будет(покрайней мере раньше и вообще не работало)

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: mpd5 как L2TP клиент

Непрочитанное сообщение FreeBSP » 2009-09-05 18:49:53

может, про табы речь?

An entry consists of a label followed by a sequence of mpd commands. A label begins at the first column and ends with a colon character. Commands are indented with a tab character and follow the label on the next and subsequent lines.
http://mpd.sourceforge.net/doc5/mpd13.html#13

(Запись содержит метку, сопровождаемую последовательностью команд mpd. Метка начинается в первой колонке и заканчивается символом двоеточия. Команды сдвинуты символом табуляции и следуют за меткой на следующей и последующих линиях - Вольный перевод)
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 как L2TP клиент

Непрочитанное сообщение paradox » 2009-09-05 18:52:24

ну он спрашивал почему именно так
тоесть нужны табы
я и говорю
просто такой синтаксис конфига возможно проще парсером mpd разбирать

KillerHT
проходил мимо
Сообщения: 1
Зарегистрирован: 2009-09-20 16:13:47

Re: mpd5 как L2TP клиент

Непрочитанное сообщение KillerHT » 2009-09-20 16:17:59

Добрый день!

Имеется проблема с mpd5 - соединение пересоединяется каждую 1минуту 00секунд, провайдер корбина, в течении этой минуты все работает!

Вот конфиги:

mpd.conf

Код: Выделить всё

startup:
    set user weblogin webpassword
    set console self 127.0.0.1 5005
    set console open
    set web self 127.0.0.1 5006
    set web open

default:
    load vpn-l2tp

vpn-l2tp:
    create bundle static L2TP
    set iface up-script '/usr/local/etc/mpd5/io-up.sh L2TP'
    set iface down-script /usr/local/etc/mpd5/io-down.sh
    set ipcp ranges 0.0.0.0/0 0.0.0.0/0
    set ipcp no vjcomp
    create link static L2 l2tp
    set link action bundle L2TP
    set link accept chap
    set link latency 0
    set link max-redial 0
    set link mtu 1460
    set link keep-alive 60 180
    set l2tp peer tp.corbina.net
    set auth authname user
    set auth password pwd
    open


mpd.links

Код: Выделить всё

l2tp:
    set link type l2tp
    set l2tp peer tp.corbina.net
    set l2tp enable originate
    set l2tp disable incoming


io-up.sh

Код: Выделить всё

#!/bin/sh

gate=`netstat -rn | grep default | awk '{print $2}'`
vpn=`echo $5 | awk 'sub(/.[0-9]*$/,"")'`
time=`date "+%H:%M:%S"`
echo "$vpn.0/24" > /tmp/vpn_gw

/sbin/route -q delete $5
/sbin/route -nq add "$vpn.0/24" $gate
/sbin/route change default $5 -ifp $2

netstat=`netstat -rnf inet`
ifconfig=`ifconfig ng0`

echo "*************************************************************************
$time -$1-  \$2->$2 \$3->$3 WAN(\$4)->$4 GW(\$5)->$5
interface = $2
gate = $gate
vpn_lan = $vpn/24
--------------------------------------------------------------------------
$ifconfig
--------------------------------------------------------------------------
$netstat
--------------------------------------------------------------------------
" >> /var/log/mpd.log


io-down.sh

Код: Выделить всё

#!/bin/sh

gate=`netstat -rn | grep 10.0.0.0 | awk '{print $2}'`
vpn=`cat /tmp/vpn_gw`

/sbin/route -q delete $vpn
/sbin/route delete default
/sbin/route -nq add default $gate

netstat=`netstat -rnf inet`

echo "*************************************************************************
gate = $gate -> UP
vpn_lan = $vpn -> DOWN
$time -$1- DOWN
--------------------------------------------------------------------------
$netstat
--------------------------------------------------------------------------
" >> /var/log/mpd.log


Права на скрипты выставлены:

Код: Выделить всё

-rwxr-xr-x   1 root  wheel    542 Sep 18 18:48 io-down.sh*
-rwxr-xr-x   1 root  wheel    784 Sep 18 18:48 io-up.sh*

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 как L2TP клиент

Непрочитанное сообщение paradox » 2009-09-20 16:53:31

логи изучайте
все ваши ответы там

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: mpd5 как L2TP клиент

Непрочитанное сообщение FreeBSP » 2009-09-20 23:53:17

Во первых, зачем эти строки такие разные??

Код: Выделить всё

    set iface up-script '/usr/local/etc/mpd5/io-up.sh L2TP'
    set iface down-script /usr/local/etc/mpd5/io-down.sh

IMHO они должны быть такими:

Код: Выделить всё

    set iface up-script /usr/local/etc/mpd5/io-up.sh
    set iface down-script /usr/local/etc/mpd5/io-down.sh


Здесь вероятно и кроется ваша проблема - не срабатывает up-script и не прописывается маршрут к удаленному шлюзу. из-за чего соединение рвется по указанному вами таймауту в 60 секунд. Но в таком случае соединение не должно работать, лишь подключаться и отваливаться по таймауту!

Во вторых, действительно, логи в студию!
либо попробуйте запускать mpd не в демоническом режиме

Код: Выделить всё

#mpd5 -f /usr/local/etc/mpd5/mpd.conf -p /var/run/mympd.pid
и смотреть что он выводит на консоль
на сколько я знаю, в mpd5 *.links файлы уже не нужны. Некоторые параметры из них могут быть перенесены в соответствующую секцию конфига, в вашем случае - в секцию vpn-l2tp файла mpd.conf. А некоторые параметры вообще больше не нужны!

В третьих, для ленивых кину свой конфиг, через который сейчас сижу (Corbina-msk [gol])

uname -mrs

Код: Выделить всё

FreeBSD 7.2-RELEASE-p2 i386

/usr/local/etc/mpd5/l2tp.cli.conf

Код: Выделить всё

startup:
        set user <*****> <*****> admin
        set user <guest> <guest>
        set console self 127.0.0.1 5005
        set console open
        set web self 0.0.0.0 5006
        set web open

default:
        load l2tp_client

l2tp_client:
        create bundle static B1
        set bundle disable crypt-reqd
        set ipcp no vjcomp
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0
        set iface up-script /usr/local/etc/mpd5/l2tp-up.sh
        set iface down-script /usr/local/etc/mpd5/l2tp-down.sh
        set iface enable tcpmssfix
        create link static L1 l2tp
        set link action bundle B1
        set link max-redial 0
        set link mtu 1460
        set link keep-alive 20 75
        set link accept chap
        set link no pap
        set auth authname ***
        set auth password ***
        set l2tp peer tp.corbina.net
        open

grep mpd /etc/rc.conf

Код: Выделить всё

mpd_enable="YES"
mpd_flags="-f /usr/local/etc/mpd5/l2tp.cli.conf -b "

/usr/local/etc/mpd5/l2tp-up.sh

Код: Выделить всё

#!/bin/sh

LocalGW="10.72.128.1" #`cat /tmp/Current_Local_GW`
Today=`date "+%Y-%m-%d"`
TimeNow=`date "+%H:%M:%S"`

route delete $4
route add $4 $LocalGW
route delete default
route add default $4

echo $4 > /tmp/vpn_GW
# echo $4 > /var/log/Corbina/pptp_GW.$Today
echo $Today $TimeNow -L2TP-Up- GW = $4 WAN-IP = $3 >> /var/log/vpn.log

/usr/local/etc/mpd5/l2tp-down.sh

Код: Выделить всё

#!/bin/sh

LocalGW="10.72.128.1" #`cat /tmp/Current_Local_GW`

vpnGW=`cat /tmp/vpn_GW`
route delete $vpnGW
route delete default
route add default $LocalGW

Today=`date "+%Y-%m-%d"`
TimeNow=`date "+%H:%M:%S"`
echo $Today $TimeNow -L2TP-Down-  >> /var/log/vpn.log



И напоследок, в скриптах подъёма.опускания интерфейса не пишите в штатный лог mpd. /var/log/vpn.log или что то подобное для этого подходит больше. Впрочем вы не привели /etc/rc.conf и /etc/syslog.conf , так что я могу ошибаться..
скрипты кстати прикольные... приватизирую)
Последний раз редактировалось FreeBSP 2009-09-21 14:23:27, всего редактировалось 1 раз.
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
server801
ст. лейтенант
Сообщения: 1361
Зарегистрирован: 2008-09-27 21:15:16
Откуда: Саратов
Контактная информация:

Re: mpd5 как L2TP клиент

Непрочитанное сообщение server801 » 2009-09-21 11:43:43

кстати-как запустить мпд с debug и соотвественно выводом лога?
ИзображениеИзображение
Изображение

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 как L2TP клиент

Непрочитанное сообщение paradox » 2009-09-21 15:05:27

в доке все написано

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: mpd5 как L2TP клиент

Непрочитанное сообщение FreeBSP » 2009-09-21 16:22:12

server801, что вы понимаете под запуском с дебагом и выводом лога?
Во фре штатным средством ведения логов является syslogd, которому mpd передает все свои логи с facility "mpd". А посему настройка syslogd для ведения логов mpd сводится к следeющим действиям

Код: Выделить всё

# grep -n mpd  /etc/syslog.conf
33:!mpd
34:*.*                                          /var/log/mpd.log
# touch  /var/log/mpd.log
# chmod 600 /var/log/mpd.log
# /etc/rc.d/syslogd restart

Кроме того можно запустить mpd без отвязывания от консоли и перехода в режим демона, о чем я писал выше
Последний раз редактировалось FreeBSP 2009-09-21 16:28:46, всего редактировалось 2 раза.
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: mpd5 как L2TP клиент

Непрочитанное сообщение paradox » 2009-09-21 16:24:42

ну и mpd.conf настроить

а что многие используют mpd демон сручника ???? :shock: :shock:

Gegemon
ст. сержант
Сообщения: 316
Зарегистрирован: 2007-10-28 16:03:30
Контактная информация:

Re: mpd5 как L2TP клиент

Непрочитанное сообщение Gegemon » 2009-09-21 16:37:36

FreeBSP писал(а):..
скрипты кстати прикольные... приватизирую)

Тут еще приватизируй ;)
"Попробую и обязательно отпишусь" - самое популярное последнее сообщение ветки форума

Gegemon
ст. сержант
Сообщения: 316
Зарегистрирован: 2007-10-28 16:03:30
Контактная информация:

Re: mpd5 как L2TP клиент

Непрочитанное сообщение Gegemon » 2009-09-21 16:43:14

KillerHT писал(а):..
Имеется проблема с mpd5 - соединение пересоединяется каждую 1минуту 00секунд, провайдер корбина, в течении этой минуты все работает!
..

Решил проблему, так отпиши... кросспостер ты наш....
"Попробую и обязательно отпишусь" - самое популярное последнее сообщение ветки форума

Dvar
рядовой
Сообщения: 14
Зарегистрирован: 2010-01-19 20:58:40

Re: mpd5 как L2TP клиент

Непрочитанное сообщение Dvar » 2010-01-19 21:00:48

Объясните, пожалуйста, что значат переменные в down.sh и up.sh: $4 и $dr

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: mpd5 как L2TP клиент

Непрочитанное сообщение FreeBSP » 2010-01-19 22:03:40

http://mpd.sourceforge.net/doc5/mpd28.html#28

Код: Выделить всё

set iface up-script script
set iface down-script script

    Mpd can optionally run a user program every time one of network protocols (IPCP/IPv6CP) at the interface is brought up or down. The up-script is called like this:

        script interface proto local-ip remote-ip authname [ dns1 server-ip ] [ dns2 server-ip ] peer-address

    If up-script exit status is not 0, mpd will kill respective protocol.

    The down-script is called like this:

        script interface proto local-ip remote-ip authname peer-address

в $4 соответственно будет remote-ip
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Dvar
рядовой
Сообщения: 14
Зарегистрирован: 2010-01-19 20:58:40

Re: mpd5 как L2TP клиент

Непрочитанное сообщение Dvar » 2010-01-20 0:37:24

FreeBSP писал(а):в $4 соответственно будет remote-ip


Спасибо, понял. А $dr ?

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: mpd5 как L2TP клиент

Непрочитанное сообщение FreeBSP » 2010-01-20 1:05:01

дефолт роут наверное... хотя врядли
но вообще это вопрос к LiNer
PS у меня так

Код: Выделить всё

# cat /usr/local/etc/mpd5/pptp-up.sh

Код: Выделить всё

#!/bin/sh

LocalGW="10.72.128.1" #`cat /tmp/Current_Local_GW`
Today=`date "+%Y-%m-%d"`
TimeNow=`date "+%H:%M:%S"`

route delete $4
route add $4 $LocalGW
route delete default
route add default $4

echo $4 > /tmp/vpn_GW
# echo $4 > /var/log/Corbina/pptp_GW.$Today
echo $Today $TimeNow -PPTP-Up- GW = $4 WAN-IP = $3 >> /var/log/vpn.log

Код: Выделить всё

# cat /usr/local/etc/mpd5/pptp-down.sh

Код: Выделить всё

#!/bin/sh

LocalGW="10.72.128.1" #`cat /tmp/Current_Local_GW`

vpnGW=`cat /tmp/vpn_GW`
route delete $vpnGW
route delete default
route add default $LocalGW

Today=`date "+%Y-%m-%d"`
TimeNow=`date "+%H:%M:%S"`
echo $Today $TimeNow -PPTP-Down-  >> /var/log/vpn.log
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!


Вернуться в «Про сайт»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей