Efendy
|
|
« Ответ #75 : 08 Февраля 2017, 16:27:16 » |
|
С каким периодом идет radius-accounting? Помониторь учетку абона, покликай по авторизованному айпишнику и улови примерно максимальное значение параметра "Обновление авт" в секундах. Если там будет больше двух минут - скорее всего период аккаунтинга настроен неверно, ip освобождается и при последующем аккаунтинге выдается новый
|
|
|
Записан
|
|
|
|
sever
Пользователь
Карма: 1
Offline
Сообщений: 82
|
|
« Ответ #76 : 08 Февраля 2017, 16:35:34 » |
|
С каким периодом идет radius-accounting? Помониторь учетку абона, покликай по авторизованному айпишнику и улови примерно максимальное значение параметра "Обновление авт" в секундах. Если там будет больше двух минут - скорее всего период аккаунтинга настроен неверно, ip освобождается и при последующем аккаунтинге выдается новый
Раз в 60/сек в процедуре radreply SELECT NULL,login,'Acct-Interim-Interval','60','='; как вариант пофиксить - ребут билинга и наса одновременно. Но понять бы, почему он так себя ведёт.
|
|
|
Записан
|
|
|
|
fet4
|
|
« Ответ #77 : 24 Февраля 2017, 22:26:36 » |
|
Ребят а кто accel использует на одном сервере для pppoe и ipoe одновременно? Подскажите как freeradius правильно настроить под разные процедуры?
|
|
|
Записан
|
|
|
|
sever
Пользователь
Карма: 1
Offline
Сообщений: 82
|
|
« Ответ #78 : 28 Февраля 2017, 01:31:46 » |
|
Ребят а кто accel использует на одном сервере для pppoe и ipoe одновременно? Подскажите как freeradius правильно настроить под разные процедуры?
Одни и теже процедуры работают для авторизации и ррррое и дшсп на тестовом стенде. Только логин клиента это например интерфейс с которого пришёл запрос, пароль он же при схеме влан на клиента. К примеру eth.230 логин. В аццеле username=ifname password=username Я думаю как бы организовать чтобы клиент и в билинг заходил в статистику с нормальными логин/пароль. А авторизация проходила под другой связкой логин/пароль (eth.230/eth.230)
|
|
|
Записан
|
|
|
|
sever
Пользователь
Карма: 1
Offline
Сообщений: 82
|
|
« Ответ #79 : 02 Марта 2017, 14:29:04 » |
|
Кстати начал эксперементировать по процедурам. Пробую создать процедуры, чтобы радиус брал данные не из поля login/passw, а из доп полей _name_radius/_passwd_radius DROP PROCEDURE IF EXISTS `radcheck`; DELIMITER $$ CREATE PROCEDURE `radcheck` (IN login VARCHAR(64)) BEGIN SELECT uid,_name_radius,'Cleartext-Password' AS Attribute,_passwd_radius AS Value,'==' FROM data0 WHERE _name_radius=login; END$$ DELIMITER ;
DROP PROCEDURE IF EXISTS `radreply`; DELIMITER $$ CREATE PROCEDURE `radreply`(IN login VARCHAR(64)) BEGIN DECLARE usr_id INT; DECLARE usr_ip VARCHAR(15) DEFAULT NULL;
SELECT uid INTO usr_id FROM data0 WHERE _name_radius=login LIMIT 1; SELECT get_ip(usr_id) INTO usr_ip;
SELECT NULL,login,'Framed-IP-Address',usr_ip,'='; SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','='; SELECT NULL,login,'Framed-Protocol','PPP','='; END$$ DELIMITER ;
DROP PROCEDURE IF EXISTS `radupdate`; DELIMITER $$ CREATE PROCEDURE `radupdate`(IN login VARCHAR(64), IN ip VARCHAR(16), IN properties VARCHAR(255)) BEGIN DECLARE usr_id INT; DECLARE usr_ip VARCHAR(15) DEFAULT NULL; SELECT uid INTO usr_id FROM data0 WHERE _name_radius=login LIMIT 1; SELECT get_ip(usr_id) INTO usr_ip; CALL set_auth(usr_ip, CONCAT('mod=pppoe;',REPLACE(properties,':',''))); END$$ DELIMITER ;
DROP PROCEDURE IF EXISTS `radstop`; DELIMITER $$ CREATE PROCEDURE `radstop`(IN login VARCHAR(64)) BEGIN DECLARE usr_id INT; SELECT uid INTO usr_id FROM data0 WHERE _name_radius=login LIMIT 1; DELETE FROM auth_now WHERE ip = get_ip(usr_id) LIMIT 1; END$$ DELIMITER ;
Процедуры из mysql отдаются нормально. mysql> call radcheck('stat.3001.201'); +------+---------------+--------------------+---------------+----+ | uid | _name_radius | Attribute | Value | == | +------+---------------+--------------------+---------------+----+ | 3822 | stat.3001.201 | Cleartext-Password | stat.3001.201 | == | +------+---------------+--------------------+---------------+----+ 1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> call radreply('stat.3001.201'); +------+---------------+-------------------+---------------+---+ | NULL | login | Framed-IP-Address | usr_ip | = | +------+---------------+-------------------+---------------+---+ | NULL | stat.3001.201 | Framed-IP-Address | 10.181.16.70 | = | +------+---------------+-------------------+---------------+---+ 1 row in set (0.02 sec)
+------+---------------+-------------------+-----------------+---+ | NULL | login | Framed-IP-Netmask | 255.255.255.255 | = | +------+---------------+-------------------+-----------------+---+ | NULL | stat.3001.201 | Framed-IP-Netmask | 255.255.255.255 | = | +------+---------------+-------------------+-----------------+---+ 1 row in set (0.02 sec)
+------+---------------+-----------------+-----+---+ | NULL | login | Framed-Protocol | PPP | = | +------+---------------+-----------------+-----+---+ | NULL | stat.3001.201 | Framed-Protocol | PPP | = | +------+---------------+-----------------+-----+---+ 1 row in set (0.02 sec)
Query OK, 0 rows affected (0.02 sec)
mysql> При попытке сделать radtest 'stat.3001.201' 'stat.3001.201' 127.0.0.1 0 hardpass5 отбивает access-reject radius -X [sql] User not found rad_recv: Access-Request packet from host 127.0.0.1 port 45296, id=18, length=83 User-Name = "stat.3001.201" User-Password = "stat.3001.201" NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Message-Authenticator = 0x225f938c4f4583f1fecfd92a99ba250d # Executing section authorize from file /usr/local/etc/raddb/sites-enabled/nodeny +group authorize { rlm_sql (sql): Reserving sql socket id: 4 [sql] expand: call radcheck('%{User-Name}') -> call radcheck('stat.3001.201') rlm_sql (sql): Released sql socket id: 4 [sql] User not found ++[sql] = notfound +} # group authorize = notfound ERROR: No authenticate method (Auth-Type) found for the request: Rejecting the user Failed to authenticate the user. Using Post-Auth-Type Reject WARNING: Unknown value specified for Post-Auth-Type. Cannot perform requested action. # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny Delaying reject of request 0 for 1 seconds Going to the next request Waking up in 0.9 seconds. Sending delayed reject for request 0 Sending Access-Reject of id 18 to 127.0.0.1 port 45296 Waking up in 4.9 seconds. Cleaning up request 0 ID 18 with timestamp +4626 Ready to process requests.
Сами данные для авторизации при селекте есть. mysql> select _name_radius,_passwd_radius from data0 where uid=3822; +---------------+----------------+ | _name_radius | _passwd_radius | +---------------+----------------+ | stat.3001.201 | stat.3001.201 | +---------------+----------------+ 1 row in set (0.00 sec)
mysql>
В какую сторону смотреть?
|
|
|
Записан
|
|
|
|
sever
Пользователь
Карма: 1
Offline
Сообщений: 82
|
|
« Ответ #80 : 03 Марта 2017, 13:12:56 » |
|
Всё решилось Clear-text-password заменил на Password DROP PROCEDURE IF EXISTS `radcheck`; DELIMITER $$ CREATE PROCEDURE `radcheck` (IN login VARCHAR(64)) BEGIN SELECT uid,_name_radius,'Password' AS Attribute,_passwd_radius AS Value,'==' FROM data0 WHERE _name_radius=login; END$$ DELIMITER ;
|
|
|
Записан
|
|
|
|
ivanmfan
|
|
« Ответ #81 : 11 Марта 2017, 13:57:25 » |
|
Подскажите по модулю COA,я его настроил в связке с accel в ipoe режиме, но есть не понятная вещь. После авторизации клиент получает IP от mysql процедуры но не получает шейпер. Я так понимаю по логике после CALL set_auth( должен выполниться state_on в coa что бы отправить шейпер, но у меня не выполняет. Как применять шейкер при авторизации клиентом?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #82 : 11 Марта 2017, 18:47:23 » |
|
Так, чтоб уточнить: set_auth на прямую не вызывает state_on в coa. noserver мониторит таблицу юзеров и как только там что-либо (по дефолту только параметры авторизации) меняется - вызывается соответствующая процедура в coa. Запусти с ключем -v и -u (это заставит обрабатывать одного абонента) и посмотри в консоль что посылается. Если команды "шейпинга" посылаются - значит вопрос не к биллингу
|
|
|
Записан
|
|
|
|
ivanmfan
|
|
« Ответ #83 : 11 Марта 2017, 22:16:25 » |
|
Так, чтоб уточнить: set_auth на прямую не вызывает state_on в coa. noserver мониторит таблицу юзеров и как только там что-либо (по дефолту только параметры авторизации) меняется - вызывается соответствующая процедура в coa. Запусти с ключем -v и -u (это заставит обрабатывать одного абонента) и посмотри в консоль что посылается. Если команды "шейпинга" посылаются - значит вопрос не к биллингу
Да, теперь понял. Выходит что когда тестировал то сессия на accel закрывалась, а в nodeny юзер был авторизован, делаю авторизацию в accel но повторно coa не высылает шейпер, т.к. состояние авторизации не изменилось.. Как можно решить эту ситуацию?
|
|
|
Записан
|
|
|
|
Stronglan
|
|
« Ответ #84 : 08 Октября 2017, 17:33:14 » |
|
Сталкивался ли кто то с данной проблемой? Онлайн 1000+-, проблема проявляется после того, как интерфейс удаляется по таймауту, accel-ppp с ним прощается, но интерфейс остается. Сборка последняя из мастера, авторизация radius через sqlippool (дубликаты ip исключены). Vlan интервейсы созданы вручную, vlan-mon исключил сразу. /etc/accel-ppp/accel-ppp.conf # cat /etc/debian_version 9.1 # uname -a Linux ACCEL-PPP 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06) x86_64 GNU/Linux [modules] verbose=5 shaper log_file ipoe radius vlan-mon
[core] log-error=/var/log/accel-ppp/core.log thread-count=6
[auth] noauth=1
[ipoe] # guest gw-ip-address=172.19.48.1/24
# fake gw-ip-address=172.19.49.1/24 gw-ip-address=172.19.50.1/24 gw-ip-address=172.19.51.1/24 gw-ip-address=172.19.52.1/24
# access gw-ip-address=172.19.53.1/24 gw-ip-address=172.19.54.1/24 gw-ip-address=172.19.55.1/24 gw-ip-address=172.19.56.1/24 gw-ip-address=172.19.57.1/24 gw-ip-address=172.19.58.1/24 gw-ip-address=172.19.59.1/24 gw-ip-address=172.19.60.1/24 gw-ip-address=172.19.61.1/24 gw-ip-address=172.19.62.1/24 gw-ip-address=172.19.63.1/24
verbose=1 password=empty1 lua-file=/etc/accel-ppp/accel-ppp.lua lease-time=600 renew-time=300 max-lease-time=600 shared=1 ifcfg=1 mode=L2 start=dhcpv4 ip-unnumbered=1 proxy-arp=1 proto=100 attr-dhcp-client-ip=Framed-IP-Address attr-dhcp-opt82=DHCP-Option82 attr-l4-redirect=L4-Redirect attr-l4-redirect-ipset=L4-Redirect-ipset l4-redirect-ipset=unknown l4-redirect-ip-pool=l4-redirect l4-redirect-on-reject=0 interface=bond0.253,username=lua:mac interface=bond0.254,username=lua:mac interface=bond0.255,username=lua:mac interface=bond0.256,username=lua:mac interface=bond0.257,username=lua:mac interface=bond0.253,username=lua:mac interface=bond0.259,username=lua:mac interface=bond0.260,username=lua:mac interface=bond0.261,username=lua:mac interface=bond0.262,username=lua:mac interface=bond0.263,username=lua:mac interface=bond0.264,username=lua:mac interface=bond0.265,username=lua:mac interface=bond0.266,username=lua:mac interface=bond0.267,username=lua:mac interface=bond0.268,username=lua:mac interface=bond0.269,username=lua:mac interface=bond0.270,username=lua:mac interface=bond0.271,username=lua:mac interface=bond0.272,username=lua:mac interface=bond0.273,username=lua:mac interface=bond0.341,username=lua:mac interface=bond0.342,username=lua:mac interface=bond0.343,username=lua:mac interface=bond0.344,username=lua:mac interface=bond0.345,username=lua:mac
[dns] dns1=8.8.8.8
[radius] dictionary=/usr/local/share/accel-ppp/radius/dictionary nas-identifier=accel-ppp nas-ip-address=192.168.0.1 server=127.0.0.1,accelpass,auth-port=1812,acct-port=1813,req-limit=0,fail-timeout=0,max-fail=0,weight=1 dae-server=192.168.0.1:3799,accelpass verbose=1 level=5 interim-verbose=1 acct-timeout=0 acct-interim-interval=250 acct-on=1
[ip-pool]
[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 log-debug=/var/log/accel-ppp/accel.log copy=1 color=1 level=5
[shaper] attr=Filter-Id ifb=ifb0 up-limiter=htb down-limiter=tbf r2q=10 moderate-quantum=1 rate-multiplier=1.0 verbose=5
[cli] verbose=1 telnet=127.0.0.1:2000 tcp=127.0.0.1:2001 [2017-10-07 15:23:51.578] ipoe747: 2918e86cfb6572ef: create interface ipoe747 parent bond0.257 [2017-10-07 15:23:51.578] ipoe747: 2918e86cfb6572ef: send [RADIUS(1) Access-Request id=1 <User-Name "00:1d:92:51:89:1a"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address 192.168.0.1> <NAS-Port 918687> <NAS-Port-Id "ipoe747"> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:1d:92:51:89:1a"> <Called-Station-Id "bond0.257"> <User-Password>] [2017-10-07 15:23:51.623] ipoe747: 2918e86cfb6572ef: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Address 172.19.57.189>] [2017-10-07 15:23:51.623] ipoe747: 2918e86cfb6572ef: 00:1d:92:51:89:1a: authentication succeeded [2017-10-07 15:23:51.623] ipoe747: 2918e86cfb6572ef: send [DHCPv4 Offer xid=7a86956a yiaddr=172.19.57.189 chaddr=00:1d:92:51:89:1a <Message-Type Offer> <Server-ID 172.19.57.1> <Lease-Time 600> <T1 300> <Router 172.19.57.1> <Subnet 255.255.255.0> <DNS 8.8.8.8>] [2017-10-07 15:24:01.623] ipoe747: 2918e86cfb6572ef: ipoe: session timed out [2017-10-07 15:24:01.623] ipoe747: 2918e86cfb6572ef: terminate [2017-10-07 15:24:01.623] ipoe747: 2918e86cfb6572ef: ipoe: session finished [2017-10-07 15:24:07.872] ipoe747: 2918e86cfb6572f0: create interface ipoe747 parent bond0.261 [2017-10-07 15:24:07.872] ipoe747: 2918e86cfb6572f0: send [RADIUS(1) Access-Request id=1 <User-Name "b8:2a:72:a9:37:d4"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address 192.168.0.1> <NAS-Port 918688> <NAS-Port-Id "ipoe747"> <NAS-Port-Type Ethernet> <Calling-Station-Id "b8:2a:72:a9:37:d4"> <Called-Station-Id "bond0.261"> <User-Password>] [2017-10-07 15:24:08.055] ipoe747: 2918e86cfb6572f0: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Address 172.19.57.186>] [2017-10-07 15:24:08.055] ipoe747: 2918e86cfb6572f0: b8:2a:72:a9:37:d4: authentication succeeded [2017-10-07 15:24:08.055] ipoe747: 2918e86cfb6572f0: send [DHCPv4 Offer xid=a1368bd4 yiaddr=172.19.57.186 chaddr=b8:2a:72:a9:37:d4 <Message-Type Offer> <Server-ID 172.19.57.1> <Lease-Time 600> <T1 300> <Router 172.19.57.1> <Subnet 255.255.255.0> <DNS 8.8.8.8>] [2017-10-07 15:24:08.092] ipoe747: 2918e86cfb6572f0: ipoe: activate session [2017-10-07 15:24:08.092] ipoe747: 2918e86cfb6572f0: ipoe: nl_create: error talking to kernel [2017-10-07 15:24:08.092] ipoe747: 2918e86cfb6572f0: terminate [2017-10-07 15:24:08.092] ipoe747: 2918e86cfb6572f0: ipoe: session finished
|
|
|
Записан
|
|
|
|
sever
Пользователь
Карма: 1
Offline
Сообщений: 82
|
|
« Ответ #85 : 13 Октября 2017, 09:56:20 » |
|
Сталкивался ли кто то с данной проблемой?
Онлайн 1000+-, проблема проявляется после того, как интерфейс удаляется по таймауту, accel-ppp с ним прощается, но интерфейс остается. Сборка последняя из мастера, авторизация radius через sqlippool (дубликаты ip исключены). Vlan интервейсы созданы вручную, vlan-mon исключил сразу.
После завершения сессии интерфейс не удаляется а помещается в кэш, так что новые сессии могут его использовать повторно. Это фича. Оно? То что интерфейс висит в системе, да и пусть висит, это не проблема. Если я правильно понял.
|
|
|
Записан
|
|
|
|
Stronglan
|
|
« Ответ #86 : 18 Октября 2017, 10:10:59 » |
|
Да оно, проблема на сегодняшний день решена, в ветке форума аццеля решение, если кому интересно.
|
|
|
Записан
|
|
|
|
|