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

accel pptpd accel pptpd

Существует ли возможность обновлять шейпер без разрыва соединения? Например, пнуть его по snmp?

snmpset -m +ACCEL-PPP-MIB -v 2c -c local 127.0.0.1 ACCEL-PPP-MIB::cli.0 = "shaper change ppp0 1024"

ок, спасибо за ответ. как я понимаю, заставить его повторно считать параметры через радиус нет возможности?

Share this post


Link to post
Share on other sites

Есть кого темплейты Cacti для мониторинга accel-ppp, и как задать команду snmpwalk чтобы просмотреть вывод параметров.

Edited by alexaaa

Share this post


Link to post
Share on other sites

с -lnl-3 тоже столкнулся, но дальше не собирается

 

ядро 3.2.1

 

* Preparing pptp module
make -j1 HOSTCC=x86_64-pc-linux-gnu-gcc CROSS_COMPILE=x86_64-pc-linux-gnu- 'LDFLAGS=-m elf_x86_64' KDIR=/usr/src/linux default 
make -C /usr/src/linux M=/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver modules
make[1]: Entering directory `/usr/src/linux-3.2.1-gentoo-r2'
make[1]: Warning: File `.vmlinux.cmd' has modification time 4657 s in the future
make[2]: Warning: File `include/config/auto.conf' has modification time 4399 s in the future
 CC [M]  /var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.o
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c: In function 'pptp_xmit':
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:388:10: error: unknown field 'oif' specified in initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:388:10: warning: missing braces around initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:388:10: warning: (near initialization for 'fl.u')
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:389:9: error: unknown field 'nl_u' specified in initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:389:9: error: extra brace group at end of initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:389:9: error: (near initialization for 'fl')
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:390:12: error: extra brace group at end of initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:390:12: error: (near initialization for 'fl')
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:392:7: warning: excess elements in struct initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:392:7: warning: (near initialization for 'fl')
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:393:9: error: unknown field 'proto' specified in initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:393:9: warning: excess elements in struct initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:393:9: warning: (near initialization for 'fl')
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:397:3: warning: passing argument 2 of 'ip_route_output_key' from incompatible pointer type
include/net/route.h:123:30: note: expected 'struct flowi4 *' but argument is of type 'struct rtable **'
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:397:3: error: too many arguments to function 'ip_route_output_key'
include/net/route.h:123:30: note: declared here
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:397:11: warning: assignment makes integer from pointer without a cast
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c: In function 'pptp_connect':
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:862:9: error: unknown field 'nl_u' specified in initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:862:9: error: unknown field 'ip4_u' specified in initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:863:12: error: unknown field 'daddr' specified in initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:864:7: error: unknown field 'saddr' specified in initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:865:7: error: unknown field 'tos' specified in initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:866:9: error: unknown field 'proto' specified in initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:866:9: warning: excess elements in struct initializer
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:866:9: warning: (near initialization for 'fl')
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:873:3: warning: passing argument 2 of 'ip_route_output_key' from incompatible pointer type
include/net/route.h:123:30: note: expected 'struct flowi4 *' but argument is of type 'struct rtable **'
/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.c:873:3: error: too many arguments to function 'ip_route_output_key'
include/net/route.h:123:30: note: declared here
make[2]: *** [/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver/pptp.o] Error 1
make[1]: *** [_module_/var/tmp/portage/net-dialup/accel-ppp-9999/work/accel-ppp-9999/driver] Error 2
make[1]: Leaving directory `/usr/src/linux-3.2.1-gentoo-r2'
make: *** [default] Error 2

Share this post


Link to post
Share on other sites

с -lnl-3 тоже столкнулся, но дальше не собирается

 

ядро 3.2.1

 

Модуль для ядра собирать не обязательно. Он уже идет в стандартном ядре от того же автора.

Share this post


Link to post
Share on other sites
заставить его повторно считать параметры через радиус нет возможности?
это как ?

Share this post


Link to post
Share on other sites
заставить его повторно считать параметры через радиус нет возможности?
это как ?

 

Наверное речь идёт про CoA, правда тогда не ясно при чём тут snmp

Share this post


Link to post
Share on other sites

Есть задача общаться с accel-ем через скрипты, получать списки текущих пользователей и т.п.

 

Есть настройка в конфиге

tcp=127.0.0.1:2001

 

Пытаюсь поговорить через telnet, ругается command unknown.

Может быть есть какая-то документация?

Share this post


Link to post
Share on other sites

Пытаюсь поговорить через telnet, ругается command unknown.

На telnet??? :)

Share this post


Link to post
Share on other sites

На telnet??? :)

 

root@nas:~# telnet localhost 2001
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
show sessions
command unknown
help
command unknown
?
command unknown

Share this post


Link to post
Share on other sites

телнет вообще-то на 2000-ом порту

на 2001 порту надо по другому: echo show sessions | nc 127.0.0.1 2001

Share this post


Link to post
Share on other sites

Протестировал свежую версию из git, значение пришлось cburst увеличить, шейпить начал замечательно!

 

[shaper]

vendor=Cisco

attr=Cisco-AVPair

time-range=1,08:00-23:59

time-range=2,00:00-07:59

#attr=Filter-Id

#down-burst-factor=0.1

#up-burst-factor=1.0

#latency=50

#mpu=0

up-limiter=htb

down-limiter=htb

cburst=153400

ifb=ifb0

r2q=10

quantum=1500

verbose=1

Share this post


Link to post
Share on other sites

за утечками тоже понаблюдайте

Share this post


Link to post
Share on other sites
заставить его повторно считать параметры через радиус нет возможности?
это как ?

snmp команда без параметров. а новые параметры шейпера возьмутся из радиуса.

 

заставить его повторно считать параметры через радиус нет возможности?
это как ?

 

Наверное речь идёт про CoA, правда тогда не ясно при чём тут snmp

Нет, я имел в виду то, что выше. Но этот вариант, наверное, еще лучше.

 

 

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

Share this post


Link to post
Share on other sites

Протестировал свежую версию из git, значение пришлось cburst увеличить, шейпить начал замечательно!

 

[shaper]

vendor=Cisco

attr=Cisco-AVPair

time-range=1,08:00-23:59

time-range=2,00:00-07:59

#attr=Filter-Id

#down-burst-factor=0.1

#up-burst-factor=1.0

#latency=50

#mpu=0

up-limiter=htb

down-limiter=htb

cburst=153400

ifb=ifb0

r2q=10

quantum=1500

verbose=1

 

На каких скоростях проверяли? Больше 20 Мегабит работает правильно?

Share this post


Link to post
Share on other sites

Протестировал свежую версию из git, значение пришлось cburst увеличить, шейпить начал замечательно!

 

[shaper]

vendor=Cisco

attr=Cisco-AVPair

time-range=1,08:00-23:59

time-range=2,00:00-07:59

#attr=Filter-Id

#down-burst-factor=0.1

#up-burst-factor=1.0

#latency=50

#mpu=0

up-limiter=htb

down-limiter=htb

cburst=153400

ifb=ifb0

r2q=10

quantum=1500

verbose=1

 

На каких скоростях проверяли? Больше 20 Мегабит работает правильно?

А что Вас так беспокоят большие скорости? У меня аплинк 100Мбит заворачивается на imq интерфейс, на котором htb с нарезкой скоростей по классам. Никаких аномалий незамечено.

Share this post


Link to post
Share on other sites

аплинк на 5 гбит/с. тарифы 5-100 мбит/с. На погрешности +-500 кбит/с уже внимания не обращаю )

Share this post


Link to post
Share on other sites

телнет вообще-то на 2000-ом порту

на 2001 порту надо по другому: echo show sessions | nc 127.0.0.1 2001

А как бы еще сделать чтобы соединение закрывалось после выполнения команды? А то nc так и остается висеть... Увы, когда применяю подобную конструкцию к telnet 127.0.0.1 2000 то accel-ppp валится, а способ очень востребован

Share this post


Link to post
Share on other sites

Эмм.. поставил из гита для тестов и возник вопрос по поводу нового параметра cburst.

По моему некорректно задавать одно единственное значение cburst глобально из конфига. Дело в том, что у различных тарифов различные скорости (что естественно) и логично для каждой скорости расчитывать своё значение burst (в моём случае это делается с помощью Cisco-like атрибутов, что очень удобно) и соответственно cburst. Исходя из рекомендаций компании cisco, значение параметра cburst может быть равно или больше значения параметра burst.

На данный момент я вижу у себя такую картину

root@nas:~# tc class show dev ppp50
class htb 1:1 root prio 0 rate 12288Kbit ceil 12288Kbit burst 750Kb cburst 1531b

На других тарифных скоростях другие значения burst, но cburst везде равен 1531 байт.

До этого нововведения cburst был равен burst.

 

Не знаю... вроде так не должно быть. Поправьте, если я ошибаюсь.

Share this post


Link to post
Share on other sites
А как бы еще сделать чтобы соединение закрывалось после выполнения команды?
echo show sessions | nc -q0 127.0.0.1 2001

 

возник вопрос по поводу нового параметра cburst.
так до недавнего времени он и был равен burst и возникали проблемы со скоростями, хотя не понятно почему он вообще включается в работу, ведь он должен только использоваться когда htb уходит в полосу ceil, а она равна rate и, соответственно, htb не должен задействовывать ceil
Edited by xeb

Share this post


Link to post
Share on other sites

хотя не понятно почему он вообще включается в работу, ведь он должен только использоваться когда htb уходит в полосу ceil, а она равна rate и, соответственно, htb не должен задействовывать ceil

Проверяется на практике:

1. Дано: rate = 12288Kbit, burst = 750Kb, cburst = 1531b (в конфиге). Проверяем скорость любой мерилкой. Результат - входящая в среднем на 30% меньше заявленной в rate.

2. Тут же редактируем в accel-ppp.conf параметр cburst = 750000 (делаю burst = cburst), в cli даём команду reload, переподключаем vpn соединение и... скорость равна заявленной!

На всякий случай проделываю сие несколько раз с аналогичным результатом.

 

С предложением сделать в конфиге cburst = 750000 и успокоиться не торопитесь, тарифы то у меня от 512Кбит и если у такого тарифа сделать cburst = 750Kb, то скорость на данном тарифе будет по любому выше 512Кb.

 

Интереснее вариант вынести редактирование cburst из конфига в сторону RADIUS атрибутов, а-ля cisco, там как раз всё очевидно получается и зависит от тарифа. Ну либо как-то доработать в конфиге. А так, как сейчас реализовано - ни куда не годится... Не может cburst быть одинаковым для 512Кбит и для 12288Кбит.

Edited by lan-viper

Share this post


Link to post
Share on other sites

Подскажите, пожалуйста, как раздельно шейпить мир/пиринговые ресурсы? Реально ли до определенных подсеток не резать скорость?

Share this post


Link to post
Share on other sites

Подскажите, пожалуйста, как раздельно шейпить мир/пиринговые ресурсы? Реально ли до определенных подсеток не резать скорость?

Только с помощью внешних скриптов посредством модуля ppp-compat и отключением встроенного шейпера.

 

xeb, заметил незначительный баг:

time-range=1,13:00-01:00
time-range=2,01:00-13:00

атрибуты для входящего шейпа:

lcp:interface-config#1=rate-limit input access-group 1 4096000 256000 256000 conform-action transmit exceed-action drop
lcp:interface-config#1=rate-limit input access-group 2 12288000 768000 768000 conform-action transmit exceed-action drop

Если я будучи в time-range=2,01:00-13:00 даю команду shaper change ppp16 20480, то

root@nas:/etc# tc class show dev ppp16
class htb 1:1 root prio 0 rate 20480Kbit ceil 20480Kbit burst 250Kb cburst 31997b

Обращаю внимание на значение burst - оно из первого time-range=1,13:00-01:00.

Просьба перепроверить.

Edited by lan-viper

Share this post


Link to post
Share on other sites

Проверил нет никаких багов всё нормально отрабатывает, и шейпиться.

 

[shaper]

vendor=Cisco

attr=Cisco-AVPair

time-range=1,08:00-23:59

time-range=2,00:00-07:59

#attr=Filter-Id

#down-burst-factor=0.1

#up-burst-factor=1.0

#latency=50

#mpu=0

up-limiter=htb

down-limiter=htb

cburst=153400

ifb=ifb0

r2q=10

quantum=1500

verbose=1

 

time-range 1

root@debdns:~# tc class show dev ifb0

class htb 1:2 root prio 0 rate 15360Kbit ceil 15360Kbit burst 960000b cburst 153396b

root@debdns:~# tc class show dev ppp0

class htb 1:1 root prio 0 rate 15360Kbit ceil 15360Kbit burst 960000b cburst 153396b

 

time-range 2

root@debdns:~# tc class show dev ifb0

class htb 1:2 root prio 0 rate 35840Kbit ceil 35840Kbit burst 6720000b cburst 153395b

root@debdns:~# tc class show dev ppp0

class htb 1:1 root prio 0 rate 35840Kbit ceil 35840Kbit burst 6720000b cburst 153395b

Share this post


Link to post
Share on other sites

lan-viper, когда писал про cburst я и предполагал отдавать это значение радиус атрибутом, забыл упомянуть. Только не смог рассчитать.

Ушёл в сторону ipfw/dummynet и попал на панику. Шейпит идеально, только в панику ядра падает =) facking BSDM... Рекомендую не использовать dummynet на linux. Сейчас опять курю man по tc.

Edited by Dimka88

Share this post


Link to post
Share on other sites

Ушёл в сторону ipfw/dummynet и попал на панику. Шейпит идеально, только в панику ядра падает =) facking BSDM... Рекомендую не использовать dummynet на linux. Сейчас опять курю man по tc.

У многих людей все чуть более чем полностью нормально с dummynet на linux на гигабитных каналах. Ибо tc задолбал.

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