ACCEL falling down on sending request 2 radius

Radius related questions
Post Reply
elc
Posts: 15
Joined: 30 Jun 2016, 07:13

ACCEL falling down on sending request 2 radius

Post by elc »

День добрый...
у меня умирает accel когда пытаюсь его запустить с radreply для шейпинга вот с такой вот ошибкой

Code: Select all

accel-pppd: /usr/local/accel-ppp-1.10.0/accel-pppd/radius/req.c:233: rad_req_free: Assertion `!req->active' failed.
Aborted
Всё было ок до того как я заполнил radreply таблицу и добавил в конфиг "[radius] dictionary" and "[shaper] vendor=Cisco attr=Cisco-AVPair".

в общем сам конфиг:
Спойлер

Code: Select all

[modules]
log_file
log_syslog
ipoe
auth
#auth_mschap_v2
#auth_mschap_v1
#auth_chap_md5
#auth_pap
radius
shaper


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

[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
level=5

[auth]
any-login=1

[client-ip-range]
192.168.5.1-254
10.0.0.0/8

[ipoe]
verbose=9
unit-cache=2000
shared=1
ifcfg=0
mode=L3
ip-unnumbered=1
proxy-arp=0
proto=100
local-net=192.168.5.0/24
start=up
#start=dhcpv4
interface=eth1
gw-ip-address=192.168.5.123

[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
nas-identifier=Accel-PPP
nas-ip-address=192.168.5.123
server=192.168.5.3,testing123,auth-port=1812,acct-port=1813,req-limit=50,fail-timeout=0,max-fail=10,weight=1
verbose=1
max-try=3
acct-timeout=120
acct-on=0


[shaper]
#attr=Filter-Id
vendor=Cisco
attr=Cisco-AVPair
ifb=ifb0
up-limiter=htb
down-limiter=htb
#cburst=1375000
#r2q=10
#quantum=1500
#leaf-qdisc=sfq perturb 10
verbose=1
#down-burst-factor=0.1
#up-burst-factor=1.0
#rate-multiplier=1
#fwmark=1
verbose=1


[cli]
verbose=1
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001
cisco dictionary добавлены

Code: Select all

#cat /usr/local/share/accel-ppp/radius/dictionary
...
$INCLUDE dictionary.microsoft
$INCLUDE dictionary.cisco
$INCLUDE dictionary.alcatel
в логах ничего :(
....
[2016-07-04 09:24:34]: info: ipoe: start interface eth1 ()
[2016-07-04 09:24:34]: msg: accel-ppp version 1.10.0
[2016-07-04 09:25:02]: info: ipoe: start interface eth1 ()
[2016-07-04 09:25:02]: msg: accel-ppp version 1.10.0
[2016-07-04 09:32:27]: info: ipoe: start interface eth1 ()
[2016-07-04 09:32:27]: msg: accel-ppp version 1.10.0
....

mysql таблицы и radtest
Спойлер

Code: Select all

~# radtest 192.168.5.250 192.168.5.250 localhost 1812 testing123
Sending Access-Request of id 132 to 127.0.0.1 port 1812
        User-Name = "192.168.5.250"
        User-Password = "192.168.5.250"
        NAS-IP-Address = 78.26.128.53
        NAS-Port = 1812
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=132, length=130
        Cisco-AVPair = "lcp:interface-config#1=rate-limit output 128000 10000 10000 conform-action continue exceed-action drop"
        
        
        mysql> select * from radcheck;
+----+---------------+--------------------+----+---------------+
| id | username      | attribute          | op | value         |
+----+---------------+--------------------+----+---------------+
|  3 | 192.168.5.250 | Cleartext-Password | := | 192.168.5.250 |
|  6 | 192.168.5.144 | Cleartext-Password | := | 192.168.5.144 |
+----+---------------+--------------------+----+---------------+
        
        mysql> select * from radreply;
+----+---------------+--------------+----+-------------------------------------------------------------------------------------------------------+
| id | username      | attribute    | op | value                                                                                                 |
+----+---------------+--------------+----+-------------------------------------------------------------------------------------------------------+
|  6 | 192.168.5.250 | Cisco-Avpair | =  | lcp:interface-config#1=rate-limit output 1000000 8000 8000 conform-action transmit exceed-action drop |
|  7 | 192.168.5.250 | Cisco-Avpair | =  | lcp:interface-config#1=rate-limit input 1000000 8000 8000 conform-action transmit exceed-action drop  |
+----+---------------+--------------+----+-------------------------------------------------------------------------------------------------------+
может уже кто то сталкивался с такой ошибкой ?

PS: и ещё одна интересная особенность ... может быть так и надо, но меня смущает.
когда создаются сессии первая - всегда создаётся интерфейса который accel слушает, тоесть interface=eth1 который 192.168.5.144 а уже потом клиентские сессии. Приходится добавлять в радиус ещё 1 клиента.

выглядит это всё вот так вот:

Accel(192.168.5.144/25)<->(192.168.5.250/25)Client

Code: Select all

# accel-cmd show sessions
 ifname |   username    |    calling-sid    |      ip       | rate-limit | type | comp | state  |  uptime  
--------+---------------+-------------------+---------------+------------+------+------+--------+----------
 ipoe0  | 192.168.5.144 | 40:00:ff:11:15:2b | 192.168.5.144 |            | ipoe |      | active | 00:34:13 
 ipoe1  | 192.168.5.250 | b8:27:eb:d8:8f:b9 | 192.168.5.250 |            | ipoe |      | active | 00:34:10
 
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: ACCEL falling down on sending request 2 radius

Post by Dmitry »

1. баг исправлен в 1.10.1 или 1.10.2
2. на eth0 не нужно назначать никаких адресов (для это использовать dummy интерфейс (не актуально для версии гит, где реализван запуск сессии по арп запросу))
3. радиус не должен попадать в диапазон клиентских адресов (local-net)
4. радиус не должен находиться на клиентском интерфейсе (если интерфейс один (пока), то использовать вланы)
Post Reply