Taviscaron

OpenL2TP

14 сообщений в этой теме

Всем, кто использует или хочет использовать OpenL2TP рекомендую подключить в layman оверлей Андрея Савченко - bircoph, в котором есть пакет net-dialup/openl2tp, по странному стечению обстоятельств так и не включенный в portage. Важно, что в этом пакете добавлен патч, позволяющий указывать в openl2tp.conf адрес VPN-сервера в виде FQDN (tp.internet.beeline.ru), а не IP-адреса, как сделано по умолчанию.

 

gentoo ~ # layman -l

* bircoph [Git ] (git://git.overlays.gentoo.org/user/bircoph.git

 

gentoo ~ # equery m openl2tp

* net-dialup/openl2tp [bircoph]

Herd: no-herd

Maintainer: bircoph@gmail.com (Andrew Savchenko)

Upstream: None specified

Location: /var/lib/layman/bircoph/net-dialup/openl2tp

Keywords: 1.7:0:

Keywords: 1.7-r2:0: ~amd64 ~x86

 

Протестировано, работает отлично.

Редактировано пользователем Taviscaron
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос, кстати. Проблема в том, что в openl2tp нельзя указать свои опции в командную строку pppd. А мне очень был нужен unit, ибо в системе уже есть ppp0 настроенный в conf.d/net (т.е. unit 0) и хотелось, что бы openl2tp всегда был unit 1. Вот, может появятся идеи, куда это можно подсунуть, мож в какой options файл. Пока ограничился наколеночным патчем исходников.

А по сути - работает и правда очень неплохо, впечатление лучше, чем от xl2tpd и его повисающими реконнектами.

 

Второй ньюанс - собирать пакет нужно обязательно с USE="rpc", иначе будут реконнекты каждые две минуты (лечится опцией конфига openl2tp, но это не очень верный путь).

 

Третий ньюанс (можен для кого принципиальный) - логин и пароль передаются в командной строке, т.е. видны по ps xa. Хотя может можно их в chap-secrets запихнуть - для меня не принципиально.

 

И четвертый, самый ржачный ньюанс. Кто надоумил разработчиков, что набор цифр - это не строка, а логин и пароль должна быть строка - не знаю, но если у вас полностью цифровой логин и/или пароль - то в конфиге он кушаться не будет - выдает ошибку. Ну, благо в личном кабинете можно поставить свой логин и пароль ;)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос, кстати. Проблема в том, что в openl2tp нельзя указать свои опции в командную строку pppd. А мне очень был нужен unit, ибо в системе уже есть ppp0 настроенный в conf.d/net (т.е. unit 0) и хотелось, что бы openl2tp всегда был unit 1. Вот, может появятся идеи, куда это можно подсунуть, мож в какой options файл. Пока ограничился наколеночным патчем исходников.

А по сути - работает и правда очень неплохо, впечатление лучше, чем от xl2tpd и его повисающими реконнектами.

Где-то видел что-то на эту тему. Найду - отпишусь. Как вариант: почему бы в conf.d/net не растроить ppp1, openl2tp пусть поднимает ppp0?

 

Второй ньюанс - собирать пакет нужно обязательно с USE="rpc", иначе будут реконнекты каждые две минуты (лечится опцией конфига openl2tp, но это не очень верный путь).

Не понимаю о чем Вы, никаких реконнектов нет при session_establish_timeout=0. А вот с rpc собирать крайне не безопасно, так что у меня оно отключено, чего всем и рекомендую.

 

Третий ньюанс (можен для кого принципиальный) - логин и пароль передаются в командной строке, т.е. видны по ps xa. Хотя может можно их в chap-secrets запихнуть - для меня не принципиально.

Если все настроено правильно - в командной строке pppd передается только логин. А пароли должны быть действительно в chap-secrets.

 

И четвертый, самый ржачный ньюанс. Кто надоумил разработчиков, что набор цифр - это не строка, а логин и пароль должна быть строка - не знаю, но если у вас полностью цифровой логин и/или пароль - то в конфиге он кушаться не будет - выдает ошибку. Ну, благо в личном кабинете можно поставить свой логин и пароль ;)

Будет исправлено в релизе 1.8:

 

We're fixing some of the file parser limitations that you mention in the 1.8 release. Specifically, numeric names are now allowed by enclosing the name in double quotes. We've also added support for non-ASCII characters in usernames and passwords.

Редактировано пользователем Taviscaron
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Как вариант: почему бы в conf.d/net не растроить ppp1, openl2tp пусть поднимает ppp0?

М... можно, почему-то не подумал, хотя я настроил скрипты, что бы default gate выбирался в порядке приоритета номера ppp. Ну и вообще люблю, когда каждому сказано его место явно ;)

Не понимаю о чем Вы, никаких реконнектов нет при session_establish_timeout=0. А вот с rpc собирать крайне не безопасно, так что у меня оно отключено, чего всем и рекомендую.

Я же сказал, что лечится опцией в конфиге. Но как следствие - если по каким-то причинам линк не поднимется, реконнекта не будет. В общем не очень кошерно отключать таймаут, поставленный на стражу того, что бы поднять линк. А насчет небезопасности... сомневаюсь, что у пользователей gentoo есть проблемы с фаирволом ;)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я же сказал, что лечится опцией в конфиге. Но как следствие - если по каким-то причинам линк не поднимется, реконнекта не будет. В общем не очень кошерно отключать таймаут, поставленный на стражу того, что бы поднять линк.

persist и holdoff 10 в /etc/ppp/options решают и эту проблему, имхо.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собрал версию 1.8 без rpc, только для работы с конфигом, а вот соединиться не получается. В новой версии поддерживается обращение по hostname и разные символы в имени юзера (я цифры в кавычках поставил - ошибок парсинга не выдаёт, без кавычек ругается).

Мой конфиг:

system modify \
   deny_remote_tunnel_creates=yes \
   tunnel_establish_timeout=60 \
   session_establish_timeout=30 \
   tunnel_persist_pend_timeout=60 \
   session_persist_pend_timeout=60

peer profile modify profile_name=default lac_lns=lac

ppp profile modify \
   profile_name=default \
   mtu=1460 \
   mru=1460 \
   auth_none=no \
   auth_pap=no \
   auth_eap=no \
   proxy_arp=no \
   auth_mschapv1=no \
   auth_mschapv2=yes \
   lcp_echo_interval=10 \
   lcp_echo_failure_count=3 \
   default_route=yes

tunnel create \
   tunnel_name=beeline \
   dest_ipaddr=tp.internet.beeline.ru \
   persist=yes

session create \
   tunnel_name=beeline \
   session_name=beeline \
   user_name="0891234567" \
   user_password=password

Что я делаю не так?

Может ли кто поделиться рабочим конфигом?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В логи говорит что-нибудь?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

при выставлении в конфиге

tunnel_establish_timeout=60 \ 
   session_establish_timeout=30 \ 
   tunnel_persist_pend_timeout=60 \ 
   session_persist_pend_timeout=60

 

время повторного соединения составляет 5-6 минут, можно ли его как нибудь сократить ?

Редактировано пользователем zxzxz
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пытался настроить openl2tp. Первый день работал нормально, на второй отвалился. Попытки поднять соединение заново ни к чему не привели. Сейчас сижу через xl2tpd, но очень понравился ядреный l2tp.

Симптомы следующие. При попытке соединения через openl2tpd не приходит никакого ответа (пакеты ловил wireshark-ом). При этом xl2tpd (не ядерный) соединяется.

У меня одного такое, или корбиновские сервера не любят openl2tp?

Редактировано пользователем ZafiRUS
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проблема как-то решилась сама собой. Сегодня все работает. Посмотрим, что будет дальше

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

подскажите пожалуйста, как настроить сабж через conf.d/net

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

время повторного соединения составляет 5-6 минут, можно ли его как нибудь сократить ?

Можно. Именно 5 минут. Это дефолт. Видимо файл парсится не очень хорошо.

Проверьте в командной строке

 

l2tpconfig

system show configuration

 

Видимо баг какой-то не удается установить меньше 300. Хотя мне кажется, что удавалось.

Редактировано пользователем Pilot6
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ядро >= 2.6.23

CONFIG_L2TP=y
CONFIG_PPP=y
CONFIG_PPPOL2TP=y

как работают таймауты не вполне понимаю

tp.corbina.ru можно заменить на IP конкретного BRASа с наименьшим пингом

логин 0123456789 изменить на свой; если начинается с буквы, можно не ставить кавычки

/etc/openl2tpd.conf

system modify deny_remote_tunnel_creates=yes \
       deny_remote_tunnel_creates=yes \
       tunnel_establish_timeout=12 \
       session_establish_timeout=0 \
       tunnel_persist_pend_timeout=12 \
       session_persist_pend_timeout=12

peer profile modify profile_name=default lac_lns=lac

ppp profile modify profile_name=default \
       mru=1450 mtu=1450 auth_pap=no \
       auth_eap=no auth_none=no \
       default_route=no proxy_arp=no auth_mschapv1=no auth_mschapv2=yes

tunnel create tunnel_name=corbina2 dest_ipaddr=tp.corbina.ru \
       persist=yes

session create tunnel_name=corbina2 \
       session_name=corbina2 \
       user_name="0123456789"

логин и пароль изменить на свои

/etc/ppp/chap-secrets

0123456789 * password

параметры pppd помимо передаваемых openl2tpd

/etc/ppp/options

persist
holdoff 10

настройка роутинга при старте системы

/etc/local.d/beeline.start

 

# шлюз (изменить на свой)
GW="10.193.104.1"

# подсеть с BRASами
route add -net 85.21.0.0 netmask 255.255.0.0 gw $GW
# другие
route add -host 78.107.1.254 gw $GW
route add -host 78.107.1.255 gw $GW

# DNS
route add -host 195.14.50.1 gw $GW
route add -host 213.234.192.8 gw $GW
route add -host 85.21.192.3 gw $GW
route add -host 195.14.50.21 gw $GW

 

настройка роутинга при установлении соединения

/etc/ppp/ip-up

 

#!/bin/sh
# $1 = interface name (e.g. ppp0)
# $2 = tty device
# $3 = speed
# $4 = local IP address
# $5 = remote IP address
# $6 = ipparam (user specified parameter, see man pppd)

# шлюз (изменить на свой)
GW="10.193.104.1"

# роутинг до BRASа (?)
route del $5 dev ppp0
route add -host $5 gw $GW

# подсеть с BRASами
route add -net 85.21.0.0 netmask 255.255.0.0 gw $GW
# другие
route add -host 78.107.1.254 gw $GW
route add -host 78.107.1.255 gw $GW

# DNS
route add -host 195.14.50.1 gw $GW
route add -host 213.234.192.8 gw $GW
route add -host 85.21.192.3 gw $GW
route add -host 195.14.50.21 gw $GW

# внутренние адреса
route add -net 10.0.0.0 netmask 255.0.0.0 gw $GW

# локальные ресурсы
route add -host 195.14.50.26 gw $GW
route add -host 195.14.50.93 gw $GW
route add -host 195.14.50.16 gw $GW
route add -net 185.21.79.0 netmask 255.255.255.0 gw $GW
route add -net 185.21.72.0 netmask 255.255.255.0 gw $GW
route add -host 83.102.231.32 gw $GW

# forum
route add -host 85.21.72.83 gw $GW
# irc
route add -host 85.21.79.12 gw $GW
# corbina.ru
route add -host 89.179.135.67 gw $GW
# mirror.corbina.ru
route add -host 89.179.179.2 gw $GW
# corbina.tv
route add -host 78.107.23.0 gw $GW
# iptv
route add -net 172.16.16.0 netmask 255.255.255.0 gw $GW
route add -net 224.0.0.0 netmask 240.0.0.0 gw $GW

# смена пути по умолчанию
route del default
route add default dev ppp0

# всё что ниже ОПЦИОНАЛЬНО

# файервол
/etc/init.d/iptables restart
# балансировка исходящего траффика (падает при падении интерфейса, поэтому гарантированно перезапускаем)
/etc/init.d/htbinit stop
/etc/init.d/htbinit zap
/etc/init.d/htbinit start
# синхронизация времени (на случай, если сервис не сработал при загрузке)
/etc/init.d/openrdate restart

 

настройка роутинга при разрыве соединения

/etc/ppp/ip-down

 

#!/bin/sh
# $1 = interface name (e.g. ppp0)
# $2 = tty device
# $3 = speed
# $4 = local IP address
# $5 = remote IP address
# $6 = ipparam (user specified parameter, see man pppd)

# восстановление маршрута по умолчанию (шлюз GW изменить на свой)
GW="10.193.104.1"
route del $5
route del default
route add default dev eth1 gw $GW

# всё что ниже ОПЦИОНАЛЬНО

# балансировка исходящего траффика (падает при падении интерфейса, поэтому гарантированно останавливаем)
/etc/init.d/htbinit stop
/etc/init.d/htbinit zap

 

пакеты

 

[i] net-dialup/openl2tp [1]
    Available versions:  (~)1.8 (~)1.8-r2 {+client doc (+)examples pppd rpc server -stats}
    Installed versions:  1.8-r2(06:42:47 PM 03/06/2011)(client -doc -examples -pppd -rpc -server -stats)
    Homepage:            http://openl2tp.sourceforge.net
    Description:         Userspace tools for kernel L2TP implementation.

[1] "bircoph" /var/paludis/repositories/bircoph

[i] net-dialup/ppp [1]
    Available versions:  2.4.4-r25 (~)2.4.5 (~)2.4.5-r1 {activefilter atm dhcp eap-tls gtk ipv6 mppe-mppc pam radius}
    Installed versions:  2.4.5-r1(08:27:07 PM 11/27/2010)(dhcp pam -activefilter -atm -eap-tls -gtk -ipv6 -radius)
    Homepage:            http://www.samba.org/ppp
    Description:         Point-to-Point Protocol (PPP)

[1] "gentoo" /var/paludis/repositories/gentoo

 

были использованы советы с этого форума

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Настроил все в соответствии с постом Vallon'а. И столкнулся со следующей проблемой: когда дело доходит до старта openl2tpd начинаются жуткие тормоза. Вот логи:

Sep 20 01:24:06 jazz_bass kernel: PPP generic driver version 2.4.2
Sep 20 01:24:06 jazz_bass kernel: L2TP core driver, V2.0
Sep 20 01:24:06 jazz_bass kernel: NET: Registered protocol family 24
Sep 20 01:24:06 jazz_bass kernel: PPPoL2TP kernel driver, V2.0
Sep 20 01:24:06 jazz_bass openl2tpd[2507]: Start, trace_flags=00000000
Sep 20 01:24:06 jazz_bass openl2tpd[2507]: OpenL2TP V1.8, (c) Copyright 2004-2010 Katalix Systems Ltd.
Sep 20 01:24:06 jazz_bass openl2tpd[2507]: Loading plugin /usr/lib/openl2tp/ppp_unix.so, version V1.5
Sep 20 01:24:06 jazz_bass openl2tpd[2507]: Using config file: /etc/openl2tpd.conf
Sep 20 01:24:07 jazz_bass pppd[2515]: Plugin pppol2tp.so loaded.
Sep 20 01:24:07 jazz_bass pppd[2515]: pppd 2.4.5 started by root, uid 0
Sep 20 01:24:07 jazz_bass pppd[2515]: Using interface ppp0
Sep 20 01:24:07 jazz_bass pppd[2515]: Connect: ppp0 <--> 
Sep 20 01:24:07 jazz_bass pppd[2515]: Overriding mtu 1500 to 1450
Sep 20 01:24:07 jazz_bass pppd[2515]: Overriding mru 1500 to mtu value 1450
Sep 20 01:24:07 jazz_bass pppd[2515]: Overriding mtu 1460 to 1450
Sep 20 01:24:07 jazz_bass pppd[2515]: Overriding mru 1460 to mtu value 1450
Sep 20 01:24:07 jazz_bass pppd[2515]: CHAP authentication succeeded
Sep 20 01:24:07 jazz_bass pppd[2515]: CHAP authentication succeeded
Sep 20 01:24:07 jazz_bass pppd[2515]: local  IP address 89.179.243.205
Sep 20 01:24:07 jazz_bass pppd[2515]: remote IP address 85.21.0.141

Тут вроде все понятно, все нормально. Но потом происходит вот это:

Sep 20 01:40:49 jazz_bass pppd[2515]: Terminating on signal 15
Sep 20 01:40:49 jazz_bass pppd[2515]: Connect time 16.7 minutes.
Sep 20 01:40:49 jazz_bass pppd[2515]: Sent 1234590644 bytes, received 0 bytes.
Sep 20 01:40:49 jazz_bass pppd[2515]: Overriding mtu 1500 to 1450
Sep 20 01:40:49 jazz_bass pppd[2515]: Overriding mru 1500 to mtu value 1450
Sep 20 01:40:55 jazz_bass pppd[2515]: Connection terminated.
Sep 20 01:40:55 jazz_bass pppd[2515]: Modem hangup
Sep 20 01:40:55 jazz_bass pppd[2515]: Exit.

Причем как только соединение рвется, тормоза пропадают.

Что я делаю не так?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Зарегистрироваться на нашем форуме.


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now