Не работает шейпер?

Shaper related questions
bydunai
Posts: 4
Joined: 13 Nov 2014, 12:13

Не работает шейпер?

Post by bydunai »

Здравствуйте!
Настраиваю accel-ppp для pptp-тоннелей на виртуальном Debian 7.7 Wheezy с ядром 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2 x86_64 GNU/Linux.
Accel-PPP 1.8.0, поставлен из пакета.
Radius - cisco-like.

Code: Select all

[radius]
#dictionary=/usr/local/share/accel-ppp/radius/dictionary
#vendor=Cisco
#attr=Cisco-AVPair
#attr=Framed-Pool
dictionary=/usr/share/accel-ppp/radius/dictionary
nas-identifier=accel-ppp
nas-ip-address=x.x.x.x
gw-ip-address=x.x.x.x
#auth-server=127.0.0.1:1812,testing123 (obsolete)
#acct-server=127.0.0.1:1813,testing123 (obsolete)
#server=127.0.0.1,testing123 (obsolete)
server=y.y.y.y,pass,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0
#dae-server=127.0.0.1:3799,testing123
verbose=5
#timeout=3
#max-try=3
#acct-timeout=120
#acct-delay-time=0
#acct-on=0

[shaper]
vendor=Cisco
attr=Cisco-AVPair
        #attr=Filter-Id
        #down-burst-factor=0.1
        #up-burst-factor=1.0
        #latency=50
        #mpu=0
        ##mtu=0
        #r2q=10
        #quantum=1500
        #cburst=0
        #ifb=ifb0
up-limiter=police
down-limiter=tbf
        #leaf-qdisc=sfq perturb 10
        #rate-multiplier=1
verbose=1
Вот что передает радиус:

Code: Select all

Vendor Specific Attribute (26), length: 116, Value: Vendor: Cisco (9)
	    Vendor Attribute: 1, Length: 108, Value: lcp:interface-config#1=rate-limit output 10000000 1875000 3750000 conform-action continue exceed-action drop

Vendor Specific Attribute (26), length: 113, Value: Vendor: Cisco (9)
	    Vendor Attribute: 1, Length: 105, Value: lcp:interface-config#2=rate-limit input 5000000 937500 1875000 conform-action continue exceed-action drop
И accel-ppp видит эти параметры:

Code: Select all

[2014-11-13 15:01:48]:  info: ppp0: connect: ppp0 <--> pptp(192.168.50.100)
[2014-11-13 15:01:51]:  info: ppp0: send [RADIUS(1) Access-Request id=1 <User-Name "53492"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address x.x.x.x> <NAS-Port 0> <NAS-Port-Type Virtual> <Service-Type Framed-User> <Framed-Protocol PPP> <Calling-Station-Id "192.168.50.100"> <Called-Station-Id "192.168.50.10"> <CHAP-Challenge > <CHAP-Password >]
[2014-11-13 15:01:51]:  info: ppp0: recv [RADIUS(1) Access-Accept id=1 <Service-Type Framed-User> <Framed-Protocol PPP> <Idle-Timeout 86400> <Framed-IP-Address 255.255.255.254> <Framed-IP-Netmask 255.255.255.255> <Framed-MTU 1500><Cisco Cisco-AVPair "lcp:interface-config#1=rate-limit output 10000000 1875000 3750000 conform-action continue exceed-action drop"><Cisco Cisco-AVPair "lcp:interface-config#2=rate-limit input 5000000 937500 1875000 conform-action continue exceed-action drop"> <Message-Authenticator >]
[2014-11-13 15:01:51]:  info: ppp0: 53492: authentication succeeded
[2014-11-13 15:01:51]:  info: ppp0: send [RADIUS(1) Accounting-Request id=1 <User-Name "53492"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address x.x.x.x> <NAS-Port 0> <NAS-Port-Type Virtual> <Service-Type Framed-User> <Framed-Protocol PPP> <Calling-Station-Id "192.168.50.100"> <Called-Station-Id "192.168.50.10"> <Acct-Status-Type Start> <Acct-Authentic RADIUS> <Acct-Session-Id "249926295ce0cbf0"> <Acct-Session-Time 0> <Acct-Input-Octets 0> <Acct-Output-Octets 0> <Acct-Input-Packets 0> <Acct-Output-Packets 0> <Acct-Input-Gigawords 0> <Acct-Output-Gigawords 0> <Framed-IP-Address 192.168.76.13>]
[2014-11-13 15:01:52]:  info: ppp0: recv [RADIUS(1) Accounting-Response id=1]

А вот что видно в сессии:

Code: Select all

accel-ppp# show sessions     
 ifname | username |   calling-sid  |      ip       | rate-limit | type | comp | state  |  uptime  
--------+----------+----------------+---------------+------------+------+------+--------+----------
 ppp0   | 53492    | 192.168.50.100 | 192.168.76.13 | 10000/0    | pptp |      | active | 00:07:38
Во-первых, для меня непонятно, почему не появляется второе значение скорости?
Во-вторых, даже это значение не работает: спидтест вполне себе показывает 70-80Мбит/с.
В третьих, если вручную изменить скорость на любую (shaper change ppp0 SPEED temp), то скорость действительно ограничивается, но до некоего минимума (несколько Кбит/с).

В чем может быть проблема?
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: Не работает шейпер?

Post by Dmitry »

1. должно быть
lcp:interface-config#1=rate-limit output ...
lcp:interface-config#1=rate-limit input ...

2. посмотри это
bydunai
Posts: 4
Joined: 13 Nov 2014, 12:13

Re: Не работает шейпер?

Post by bydunai »

Поднял accel-ppp на физическом сервере, настроил его на другой радиус, но он тоже передает конфигурацию не так.

Code: Select all

[2014-11-17 16:13:20]:  info: ppp0: connect: ppp0 <--> pptp(192.168.50.100)
[2014-11-17 16:13:23]:  info: ppp0: send [RADIUS(1) Access-Request id=1 <User-Name "admin"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address 192.168.50.21> <NAS-Port 0> <NAS-Port-Type Virtual> <Service-Type Framed-User> <Framed-Protocol PPP> <Calling-Station-Id "192.168.50.100"> <Called-Station-Id "192.168.50.21"> <CHAP-Challenge > <CHAP-Password >]
[2014-11-17 16:13:23]:  info: ppp0: recv [RADIUS(1) Access-Accept id=1<Cisco Cisco-AVPair "lcp:interface-config#1=rate-limit output 2048000 655360 655360 conform-action transmit exceed-action drop \n rate-limit input 2048000 655360 655360 conform-action transmit exceed-action drop">]
[2014-11-17 16:13:23]:  info: ppp0: admin: authentication succeeded
[2014-11-17 16:13:23]:  info: ppp0: send [RADIUS(1) Accounting-Request id=1 <User-Name "admin"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address 192.168.50.21> <NAS-Port 0> <NAS-Port-Type Virtual> <Service-Type Framed-User> <Framed-Protocol PPP> <Calling-Station-Id "192.168.50.100"> <Called-Station-Id "192.168.50.21"> <Acct-Status-Type Start> <Acct-Authentic RADIUS> <Acct-Session-Id "5380c3aeb63453d2"> <Acct-Session-Time 0> <Acct-Input-Octets 0> <Acct-Output-Octets 0> <Acct-Input-Packets 0> <Acct-Output-Packets 0> <Acct-Input-Gigawords 0> <Acct-Output-Gigawords 0> <Framed-IP-Address 192.168.76.17>]
[2014-11-17 16:13:23]:  info: ppp0: recv [RADIUS(1) Accounting-Response id=1]
Опять "назначается" скорость только download:

Code: Select all

accel-ppp# show sessions
 ifname | username |   calling-sid  |      ip       | rate-limit | type | comp | state  |  uptime  
--------+----------+----------------+---------------+------------+------+------+--------+----------
 ppp0   | admin    | 192.168.50.100 | 192.168.76.17 | 2048/0     | pptp |      | active | 00:20:01 
Когда клиент только подсоединяется, скорость не ограничивается.
Если назначить вручную через shaper change, то теперь шейпер работает - видимо, все-таки переезд на физический сервер помог.

Есть ли возможность заставить accel-ppp понимать такой формат конфигурации? К сожалению, перенастроить ПО чтобы оно отдавало две строки вместо одной, возможности нет.
Старенькая 2821 понимает такой формат.

Code: Select all

lcp:interface-config#1=rate-limit output 2048000 655360 655360 conform-action transmit exceed-action drop \n rate-limit input 2048000 655360 655360 conform-action transmit exceed-action drop
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: Не работает шейпер?

Post by Dmitry »

комит 731b6b13149ab333158aadfd3c7b841f5c1fc3b4
bydunai
Posts: 4
Joined: 13 Nov 2014, 12:13

Re: Не работает шейпер?

Post by bydunai »

Дмитрий, я очень благодарен за коммит!
Однако, если я все сделал правильно, то результат тот же.
Такое может быть? Могу приложить любой лог.
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: Не работает шейпер?

Post by Dmitry »

точно обновилось ?
я у себя проверил с твоей строкой
bydunai
Posts: 4
Joined: 13 Nov 2014, 12:13

Re: Не работает шейпер?

Post by bydunai »

Извиняюсь, моя вина.

Не остановил сервис, который оставался еще от установленного изначально пакета.
Пересобрал пакет с -DCMAKE_INSTALL_PREFIX=/usr/, после этого завелось. Изменение пути в /etc/init.d/accel-ppp почему-то не помогло.
Теперь сервер понимает запросы от нашего радиуса, разделяемые "\n" и ограничивает скорость сразу.
Прекрасная работа, большое спасибо за помощь!
Last edited by bydunai on 20 Nov 2014, 10:35, edited 1 time in total.
tos
Posts: 10
Joined: 19 Nov 2014, 12:33

Re: Не работает шейпер?

Post by tos »

Присоедяюсь! На версии 731b6b13149ab333158aadfd3c7b841f5c1fc3b4 debian 7.7 SMP Debian 3.2.63-2+deb7u1 x86_64 GNU/Linux ipoe shaper radius по атрибуту attr=Filter-Id не работает.
Работает только если прописать в консоле руками и то только входящий.
На версии 703ef720d364fcada5d2e382b487cd5299feac9f всё прекрасно работает.
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: Не работает шейпер?

Post by Dmitry »

проверил у себя, всё работает:
...
[2014-11-21 09:47:20.375] ppp1: baf044999b1bc98b: recv [RADIUS(1) Access-Accept id=1 <Framed-Protocol PPP> <Framed-Compression Van-Jacobson-TCP-IP> <User-Name "test"> <Acct-Interim-Interval 30><Microsoft MS-Primary-DNS-Server 8.8.8.8><Microsoft MS-Secondary-DNS-Server 9.9.9.9> <Class > <Filter-Id "1200/1500"> <Session-Timeout 120><Microsoft MS-CHAP2-Success ><Microsoft MS-MPPE-Recv-Key ><Microsoft MS-MPPE-Send-Key ><Microsoft MS-MPPE-Encryption-Policy 1><Microsoft MS-MPPE-Encryption-Type 6>]
...
[2014-11-21 09:49:45.696] ppp1: baf044999b1bcd74: shaper: installed shaper 1200/1500 (Kbit)
dimka88
Posts: 866
Joined: 13 Oct 2014, 05:51
Contact:

Re: Не работает шейпер?

Post by dimka88 »

Также проверил, все работает.

Code: Select all

test ~ # grep version /var/log/accel-ppp/accel-ppp.log
[2014-12-04 11:05:42]:   msg: accel-ppp version 731b6b13149ab333158aadfd3c7b841f5c1fc3b4

test ~ # accel-cmd show sessions
    ifname    |   username   |    calling-sid    |     ip      | rate-limit | type | comp | state  |  uptime  
--------------+--------------+-------------------+-------------+------------+------+------+--------+----------
 enp1s0f0.378 | enp1s0f0.378 | 00:15:17:ce:e2:c9 | 10.0.12.212 | 1024/1024  | ipoe |      | active | 00:00:34 
 enp1s0f0.471 | enp1s0f0.471 | 00:15:17:ce:e2:c9 | 10.0.9.148  | 1024/1024  | ipoe |      | active | 00:00:34 
А ваш радиус передаёте атрибут Filter-Id? В словарях он есть? Логи бы посмотреть.
Post Reply