Jump to content
Калькуляторы

вплоть "красного крестика"(как я понимаю, IP не выдается).

Хм... точно крестик?

 

Пока не придумал ничего умнее чем увеличить nofile и nproc лимиты(стояло дефолтные 1024) и net.ipv4.neigh.default.gc_thresh поднять на всякий случай. Может что еще нужно?

При подобных подземных стуках стоит arp крутилки в первую очередь покрутить (там их 3 штуки). Возможно - коннтрак еще (если не выпилен). Хотя может и в лимит файлов упирается...

Проверить в общем-то легко, уменьшите кол-во файлов, повалят ошибки - верните на место.

Share this post


Link to post
Share on other sites

NiTr0

Arp у акцеля свой, как бы крутить нечего. Контрак не используется и не переполняется.

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

 

Хм... точно крестик?

Врядли конечно, это дословные слова ночного саппорта :)

Edited by kayot

Share this post


Link to post
Share on other sites

Тюнинг лимитов юзерских процессов и открытых файлов помог. Сегодня все ок при 1270 онлайн IPOE сессий.

Edited by kayot

Share this post


Link to post
Share on other sites

Arp у акцеля свой, как бы крутить нечего

Точно? arp -a что говорит? Я бы покрутил в сторону увеличения все же...

Share this post


Link to post
Share on other sites

Добрый день.

Возникла странная вещь. При Онлайне 950+ PPtP сессий и трафике 450+ начинают повышаться пинги в плоть до потери пакетов. У юзера пинги могут скакнуть до 100-150 при обычных 30-40.

Стоит Fedora 19, accel-ppp v 1.7.3

iptrafng показывает в эти моменты падение трафа с 450-500 Мб (42000 - 47000 pps) до 70-100 Мб и таким же стремительным ростом до первых значений.

Нагрузка на систему не меняется. В логах ничего не обычного.

куда рыть?

Share this post


Link to post
Share on other sites

Если сессии не падают, то это проблемы не accel-ppp, а ядра линукса или нехватки производительности сервера, т.е. вам в тему linux softrouter

Share this post


Link to post
Share on other sites

Arp у акцеля свой, как бы крутить нечего

Точно? arp -a что говорит? Я бы покрутил в сторону увеличения все же...

Говорит что я не прав, свой только proxy-arp.

Ну да размер таблицы я уже увеличил, как раз net.ipv4.neigh.default.gc_thresh за него отвечает. Возможно дело было и в arp.

Share this post


Link to post
Share on other sites
Перестал работать accel-ppp после обновления с CentOS 6.4 до CentOS 6.5 (ядро обновилось с 2.6.32-358.14.1.el6.x86_64 до kernel-2.6.32-431.el6.x86_64)В логах при попытках подключиться по PPTP пишет protocol not supported. Модуль pptp.ko в новое ядро при обновлении подсосался автоматом из старого ядра и лёг в weak-updates, поскольку kernel ABI вроде бы остаётся стабильным в рамках мажорного выпуска.На всякий случай я пересобрал драйвер под новое ядро и загрузил его, результат тот же - protocol not supported. Обновил даже сам accel-ppp до текущего из гита и пересобрал его. Опять никаких результатов.Попробовал установить из elrepo ядро kernel-ml (3.12.3), в котором pptp уже есть по дефолту. С ним почему-то accel вообще не стал запускаться. В логах пустота. Процесс вылетает сразу после запуска. Впрочем, тут могут быть проблемы с драйвером bond, который тоже начал ругаться.В итоге я откатился на последнее ядро из поставки CentOS 6.4 и всё взлетело как надо.С чем это может быть связано? Обновлялся ли кто-нибудь уже до 6.5?

 

Аналогичная ситуация...

 

Думал что-то не так сделал, поставил с нуля и Centos и accel-ppp(взято с git`а)... Результат один и тот же. На ядре kernel-2.6.32-431.el6.x86_64 модуль pptp отказывается загружатся, при инициализации пишет:

 

PPP generic driver version 2.4.2

NET: Registered protocol family 24

PPTP driver version 0.8.5

PPTP: can't add protocol

 

log_level=4 (опция модуля) никак не помагает...

 

Подскажите куда копать то? Не очень охота на старом ядре работать...

Edited by zekadm

Share this post


Link to post
Share on other sites

kayot,

А поделитесь сразу sysctl, чего крутили.

etc/sysctl.conf

 

 

net.ipv4.neigh.default.gc_thresh1 = 4096

net.ipv4.neigh.default.gc_thresh2 = 8192

net.ipv4.neigh.default.gc_thresh3 = 12288

 

 

etc/security/limits.conf

 

 

* - nofile 102400

* - nproc 102400

 

 

/etc/security/limits.d/90-nproc.conf

 

 

* soft nproc 10240

 

 

Share this post


Link to post
Share on other sites

Аналогичная ситуация...

 

Думал что-то не так сделал, поставил с нуля и Centos и accel-ppp(взято с git`а)... Результат один и тот же. На ядре kernel-2.6.32-431.el6.x86_64 модуль pptp отказывается загружатся, при инициализации пишет:

 

PPP generic driver version 2.4.2

NET: Registered protocol family 24

PPTP driver version 0.8.5

PPTP: can't add protocol

 

log_level=4 (опция модуля) никак не помагает...

 

Подскажите куда копать то? Не очень охота на старом ядре работать...

Я, кажется, знаю, в чём дело. Если сравнить конфиги ядер, то в новом появилась опция CONFIG_NET_IPGRE_DEMUX=y

Эта опция, если мне не изменяет память, была добавлена в mainline параллельно с модулем pptp примерно в ядре 2.6.37

Почему-то RedHat бэкпортировал в своё 2.6.32 этот патч, но не добавил модуль pptp.

Тут дальше непонятно, что делать. Возможно ли это обойти на уровне драйвера pptp.ko силами xeb или нужно реквестировать включение модуля pptp бэкпортом в ядро RHEL 6.5

Попробую в ближайшее время завести центос на kernel-lt (3.10) из того же elrepo.

Share this post


Link to post
Share on other sites

Тоже столкнулся с невозможностью запуска accel-ppp на CentOS-6.5. На l2tp идет обрыв каждые 5 минут, не знаю связанно с этими изменениями или нет

 

Есть ли какой то обходной путь на данный момент кроме загрузки ядра 2.6.32-358.x?

Edited by ALex_hha

Share this post


Link to post
Share on other sites

В логах такое

 

/var/log/messages

Dec 20 10:34:38 perflect accel-pppd: :: failed to create PPTP socket (Protocol not supported)

Dec 20 10:34:38 perflect accel-pppd: :: disconnected

 

dmesg

PPP generic driver version 2.4.2

NET: Registered protocol family 24

PPTP driver version 0.8.5

PPTP: can't add protocol

PPPoL2TP kernel driver, V1.0

PPP MPPE Compression module registered

ip_tables: © 2000-2006 Netfilter Core Team

nf_conntrack version 0.5.0 (7936 buckets, 31744 max)

 

P.S.

 

Проверил на 3.10.24-1.el6.elrepo.x86_64, pptp работает отлично, а вот l2tp нет :(

 

Dec 20 14:37:16 squid-child accel-pppd: unable to load l2tp kernel module

Dec 20 14:37:16 squid-child accel-pppd: accel-ppp version 1.7.3

 

Хотя сам модуль есть

# file /opt/accel-ppp-1.7.3/lib/accel-ppp/libl2tp.so

/opt/accel-ppp-1.7.3/lib/accel-ppp/libl2tp.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

 

При попытке коннекта по l2tp в логах след

 

Dec 20 15:10:18 test accel-pppd: :: l2tp: socket(AF_PPPOX): Protocol not supported

Dec 20 15:10:18 test accel-pppd: :: disconnected

Share this post


Link to post
Share on other sites

Хотя сам модуль есть

unable to load l2tp kernel module

Смотрите модули ядра или вручную грузите модуль л2тп.

Share this post


Link to post
Share on other sites

Подскажите, как правильно реализовать принудительное отключение пользователя - заблокирован, таймаут сессии или сменился IP и нужно установить новую сессию. Может быть у accel есть какой либо параметр для этого, чтобы он раз в какое то время при получении запроса продления аренды от клиента опрашивал RADIUS-сервер.

 

Пока приходит в голову только повесить на аккаунтинг в скрипте запросов к БД проверку таймаута и статуса услуги и в случае необходимости убивать сессию через accel-cmd terminate.

Edited by GreyBox

Share this post


Link to post
Share on other sites

CoA, POD ?

Edited by VVSina

Share this post


Link to post
Share on other sites
Смотрите модули ядра или вручную грузите модуль л2тп.

А о каком модуле идет речь? Просто в ядрах CentOS 6 действительно есть соотв модуль

 

# rpm -ql kernel | grep l2tp
/lib/modules/2.6.32-431.1.2.0.1.el6.x86_64/kernel/drivers/net/pppol2tp.ko

 

Но автор модуля как бы не xeb

# modinfo /lib/modules/2.6.32-431.1.2.0.1.el6.x86_64/kernel/drivers/net/pppol2tp.ko
filename:       /lib/modules/2.6.32-431.1.2.0.1.el6.x86_64/kernel/drivers/net/pppol2tp.ko
version:        V1.0
license:        GPL
description:    PPP over L2TP over UDP
author:         Martijn van Oosterhout <kleptog@svana.org>, James Chapman <jchapman@katalix.com>
srcversion:     AA50628EF4EC2B81D41A10F
depends:        ppp_generic,pppox
vermagic:       2.6.32-431.1.2.0.1.el6.x86_64 SMP mod_unload modversions

 

А вот в ядре kernel-lt-3.10.25, которое с ELRepo, никакого l2tp модуля уже нет, только pptp

# rpm -ql kernel-lt | grep -E "(pptp|l2tp)"
/lib/modules/3.10.25-1.el6.elrepo.x86_64/kernel/drivers/net/ppp/pptp.ko
/lib/modules/3.10.25-1.el6.elrepo.x86_64/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
/lib/modules/3.10.25-1.el6.elrepo.x86_64/kernel/net/netfilter/nf_conntrack_pptp.ko

 

# modinfo /lib/modules/3.10.25-1.el6.elrepo.x86_64/kernel/drivers/net/ppp/pptp.ko
filename:       /lib/modules/3.10.25-1.el6.elrepo.x86_64/kernel/drivers/net/ppp/pptp.ko
license:        GPL
author:         D. Kozlov (xeb@mail.ru)
description:    Point-to-Point Tunneling Protocol
srcversion:     DB93B5D66FE7FBB682163C9
depends:        pppox,ppp_generic,gre
intree:         Y
vermagic:       3.10.25-1.el6.elrepo.x86_64 SMP mod_unload modversions

Или я что то упустил?

Edited by ALex_hha

Share this post


Link to post
Share on other sites

Но автор модуля как бы не xeb

А должен быть xeb? С какой радости?

 

Или я что то упустил?

/lib/modules/.../kernel/net/l2tp - есть? Может конечно и не собрали ядерный модуль в элрепо, кто их знает...

Share this post


Link to post
Share on other sites

Приветствую всех.

 

Нужно поднять биллинг для офиса через ВПН c динамическими адресами.

Взял его здесь.

Его основа ассель и радиус.

Вроде все просто и должно запустится с полпинка.

Ан нет. Обломался.

Уже 2 недели бьюсь с ним. :(

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

 

Итак вводные данные.

Дебиан 7 64 бит

ядро 3.2.0-4

 

Ассель собран из ветки мастер.

опции

cmake -DBUILD_IPOE_DRIVER=TRUE -DBUILD_DRIVER=FALSE -DRADIUS=TRUE -DNETSNMP=FALSE -DLOG_PGSQL=FALSE -DSHAPER=TRUE -DCMAKE_INSTALL_PREFIX=/usr/ -DKDIR=/usr/src/linux-headers-`uname -r`/ -DCMAKE_BUILD_TYPE=Release ..

 

Config

 


[modules]
log_file

pptp

auth_mschap_v2
auth_mschap_v1
auth_chap_md5
auth_pap


radius
ippool

sigchld
pppd_compat

#shaper

[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4

[ppp]
verbose=5
min-mtu=1280
mtu=1400
mru=1400
single-session=replace
ipv4=require
ipv6=deny
ipv6-intf-id=0:0:0:1
ipv6-peer-intf-id=0:0:0:2
ipv6-accept-peer-intf-id=1
lcp-echo-interval=30
lcp-echo-failure=2
lcp-echo-timeout=60

[pptp]
verbose=1

[pppoe]
# Здесь указан интерфейс локальной сети, откуда будут подключаться наши клиенты
interface=eth0
verbose=1

[l2tp]
verbose=1

[radius]
nas-identifier=accel-ppp
nas-ip-address=127.0.0.1
gw-ip-address=192.168.10.1

# Здесь указаны данные для подключения к радиусу, его адрес, порт авторизации, акаунтинга и собственно секрет,
# который мы ранее задали в clients.conf
server=127.0.0.1,password,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0

# Здесь мы указываем на каком адресе и на каком порту будет слушать accel-pptp
# Сюда мы будем слать запросы на отключение пользователей, также адрес:порт, секрет
dae-server=127.0.0.1:3799,password
verbose=5
timeout=2
max-try=1

# Этот параметр задает интервал(в секундах) с каким радиус будет обновлять сессии(подключения). При обновлении
# сессии также выполняется проверка баланса пользователя. Не стоит ставить этот параметр слишком маленьким, т.к.
# нагрузка на БД будет слишком большой, тем более если у вас много пользователей или слабый сервер. Также 
# значение этого параметра надо будет прописать в конфиге скриптов vpnms, для расчета нагрузки на канал, но об этом позже.
acct-interim-interval=60

# Тут задается диапазон адресов клиентов
[client-ip-range]
192.168.0.0/20


# Тут задается виртуальный адрес самого сервера, атрибут, в котором радиус передает имя пула адресов пользователя и
# собственно сами пулы адресов
[ip-pool]
gw-ip-address=192.168.10.1
attr=Framed-Pool
192.168.10.5-100,ippool_god_mode
192.168.20.1-100,ippool_all_users

[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
copy=1

# Этот параметр на время отладки можно установить в 5 и тогда в логах будет сообщений больше, чем вы хотели бы.
level=5

[pppd-compat]
ip-up=/etc/ppp/ip-up
ip-down=/etc/ppp/ip-down
ip-change=/etc/ppp/ip-change
radattr-prefix=/var/run/radattr
verbose=1

[shaper]
# В двух следующих параметрах указываются номера атрибутов радиуса, в которых передается информация
# о скорости канала для шейпера.
attr-up=230
attr-down=231
down-burst-factor=0.1
up-burst-factor=1.0
latency=50
mpu=0
r2q=10
quantum=1500
cburst=1534
ifb=ifb0
up-limiter=htb
down-limiter=htb
leaf-qdisc=sfq perturb 10
verbose=8

# Ну и для своего удобства можно включить консоль для наблюдения и управления
[cli]
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001

[connlimit]
limit=30/min
burst=3
timeout=60

 

 

Только вот адреса почему то не выдаются.

 

Кусок лога

 

[2013-12-21 19:02:49]:  info: ppp0: connect: ppp0 <--> pptp(192.168.2.24)
[2013-12-21 19:02:49]: debug: ppp0: lcp_layer_init
[2013-12-21 19:02:49]: debug: ppp0: auth_layer_init
[2013-12-21 19:02:49]: debug: ppp0: ccp_layer_init
[2013-12-21 19:02:49]: debug: ppp0: ipcp_layer_init
[2013-12-21 19:02:49]: debug: ppp0: ipv6cp_layer_init
[2013-12-21 19:02:49]: debug: ppp0: ppp established
[2013-12-21 19:02:49]: debug: ppp0: lcp_layer_start
[2013-12-21 19:02:49]:  info: ppp0: send [LCP ConfReq id=1 <auth MSCHAP-v2> <mru 1400> <magic 6b8b4567>]
[2013-12-21 19:02:49]:  info: ppp0: recv [LCP ConfReq id=1 < 2 6 0 0 0 0 > <magic fa23f5b5> <pcomp> <accomp>]
[2013-12-21 19:02:49]:  info: ppp0: send [LCP ConfRej id=1  < 2 6 0 0 0 0 > <pcomp> <accomp>]
[2013-12-21 19:02:49]:  info: ppp0: recv [LCP ConfAck id=1 <auth MSCHAP-v2> <mru 1400> <magic 6b8b4567>]
[2013-12-21 19:02:49]:  info: ppp0: recv [LCP ConfReq id=2 <magic fa23f5b5>]
[2013-12-21 19:02:49]:  info: ppp0: send [LCP ConfAck id=2 ]
[2013-12-21 19:02:49]: debug: ppp0: lcp_layer_started
[2013-12-21 19:02:49]: debug: ppp0: auth_layer_start
[2013-12-21 19:02:49]:  info: ppp0: send [MSCHAP-v2 Challenge id=1 <e82f4589466b1e50cffd11f8c8b217d>]
[2013-12-21 19:02:49]:  info: ppp0: recv [MSCHAP-v2 Response id=1 <90c4606cbc3eced83454af5d6a1cab>, <69742d40bbc0b9858f724c4992fbd2ccb0efc8c04e5f6cd>, F=0, name="testuser"]
[2013-12-21 19:02:49]:  info: ppp0: send [RADIUS(1) Access-Request id=1 <User-Name "testuser"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address 127.0.0.1> <NAS-Port 0> <NAS-Port-Type Virtual> <Service-Type Framed-User> <Framed-Protocol PPP>$
[2013-12-21 19:02:49]:  info: ppp0: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Netmask 255.255.255.255> <Framed-Protocol PPP> <PPPD-Upstream-Speed-Limit 80> <PPPD-Downstream-Speed-Limit 100> <Framed-Pool "ippool_all_users"><Microsoft$
[2013-12-21 19:02:49]:  warn: ppp0: radius: MS-MPPE-Recv-Key: incorrect key length (2)
[2013-12-21 19:02:49]:  warn: ppp0: radius: MS-MPPE-Send-Key: incorrect key length (148)
[2013-12-21 19:02:49]:  info: ppp0: send [MSCHAP-v2 Success id=1 "S=A8C8850D10A4574077F59E9900AE266062A636F3 M=Authentication succeeded"]
[2013-12-21 19:02:49]: debug: ppp0: auth_layer_started
[2013-12-21 19:02:49]: debug: ppp0: ccp_layer_start
[2013-12-21 19:02:49]: debug: ppp0: ipcp_layer_start
[2013-12-21 19:02:49]:  warn: ppp0: ppp: no free IPv4 address
[2013-12-21 19:02:49]: debug: ppp0: terminate
[2013-12-21 19:02:49]: debug: ppp0: lcp_layer_finish
[2013-12-21 19:02:49]:  info: ppp0: send [LCP TermReq id=3]
[2013-12-21 19:02:49]: debug: ppp0: auth_layer_finish
[2013-12-21 19:02:49]: debug: ppp0: auth_layer_finished
[2013-12-21 19:02:49]: debug: ppp0: ccp_layer_finish
[2013-12-21 19:02:49]: debug: ppp0: ccp_layer_finished
[2013-12-21 19:02:49]: debug: ppp0: ipcp_layer_finish
[2013-12-21 19:02:49]: debug: ppp0: ipcp_layer_finished
[2013-12-21 19:02:49]:  info: ppp0: testuser: authentication succeeded
[2013-12-21 19:02:49]:  warn: ppp0: CCP: discarding packet
[2013-12-21 19:02:49]:  info: ppp0: send [LCP ProtoRej id=4 <80fd>]
[2013-12-21 19:02:49]:  info: ppp0: recv [LCP TermAck id=3]
[2013-12-21 19:02:49]: debug: ppp0: lcp_layer_finished
[2013-12-21 19:02:49]: debug: ppp0: lcp_layer_free
[2013-12-21 19:02:49]: debug: ppp0: auth_layer_free
[2013-12-21 19:02:49]: debug: ppp0: ccp_layer_free
[2013-12-21 19:02:49]: debug: ppp0: ipcp_layer_free
[2013-12-21 19:02:49]: debug: ppp0: ipv6cp_layer_free
[2013-12-21 19:02:49]: debug: ppp0: ppp destablished

 

Вроде в конфиге все правильно.

 

Но эти строки

 

[2013-12-21 19:02:49]: warn: ppp0: radius: MS-MPPE-Recv-Key: incorrect key length (2)

[2013-12-21 19:02:49]: warn: ppp0: radius: MS-MPPE-Send-Key: incorrect key length (148)

 

 

[2013-12-21 19:02:49]: warn: ppp0: ppp: no free IPv4 address

 

Говорят что это не так :(.

 

 

В чем я ошибаюсь? Или где может быть проблемма?

Edited by dansit

Share this post


Link to post
Share on other sites
А должен быть xeb? С какой радости?

думал да :)

 

Может конечно и не собрали ядерный модуль в элрепо, кто их знает...

таки да, редиски

# cat /boot/config-3.10.25-1.el6.elrepo.x86_64 | grep -i l2tp
# CONFIG_L2TP is not set

 

При этом pptp включен, где логика - не пойму :)

# cat /boot/config-3.10.25-1.el6.elrepo.x86_64 | grep -i pptp
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_NAT_PPTP=m
CONFIG_PPTP=m

Edited by ALex_hha

Share this post


Link to post
Share on other sites
Вроде все просто и должно запустится с полпинка.

Ан нет. Обломался.

192.168.0.0/20 и 192.168.10.5-100,ippool_god_mode/192.168.20.1-100,ippool_all_users как то не сочетаются. Я о том, что подсеть 192.168.20 никак не попадает в 192.168.0.0/20.

Share this post


Link to post
Share on other sites

хм.А я так понял. что адреса с которых приходят запросы и выдаваемые ippool не связаны. Я ошибаюсь? Если связаны то это очень жаль.

Сейчас у нас стоит система биллинга на древнем poptop который требует замены. Так вот - сетка там как раз 192.168.0.0/20, адреса VPN клиентам присваиваютмся типа 10.1.0.1.

Вот мне и надо это повторить при помощи accel-ppp.

Share this post


Link to post
Share on other sites

Подскажите, как правильно реализовать принудительное отключение пользователя - заблокирован, таймаут сессии или сменился IP и нужно установить новую сессию. Может быть у accel есть какой либо параметр для этого, чтобы он раз в какое то время при получении запроса продления аренды от клиента опрашивал RADIUS-сервер.

 

Пока приходит в голову только повесить на аккаунтинг в скрипте запросов к БД проверку таймаута и статуса услуги и в случае необходимости убивать сессию через accel-cmd terminate.

Я в биллинге в таком случае не отвечаю на acct-interim-update, accel разрывает сессию и поднимается новая.

 

Для таймаута есть радиус-атрибут в access-accept - какой-то session-time-limit или что-то такое.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now