Trafic Limit - проблема

Установка, настройка, поддержка
alex241
Сообщения: 12
Зарегистрирован: Чт апр 17, 2008 1:48 pm
Контактная информация:

Trafic Limit - проблема

Сообщение alex241 »

Здравствуйте, уже как пол года пользуюсь вашей системой, все устраивает! За что огромное спасибо авторам!
Недавно возникла потребность в выставлении в тарифных планах месячного лимита на трафик. После чего перестали ходить Alive-пакеты на этих тарифах. Т.е. в тех тарифных планах, где лимита на трафик нет - все нормально, Alive-пакеты приходят, трафик считается, юзеры сидят в вебморде. Как только ставлю какое нибудь значение лимита - все, Alive-пакеты перестают ходить, трафик не считается. Посоветуйте пожалуйста, что можно сделать в данной ситуации. Конфигурация системы следующая: Linux Slackware 10.2, Kernel - 2.6.24.4, Radiusd-1.1.7, Freeradius-client-1.1.5, ppp-2.4.4, pptpd-1.3.4.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

у меня и алайвы ходят и трафик считается и лимит стоит и тоже линух токашо специально проверил

alex241
Сообщения: 12
Зарегистрирован: Чт апр 17, 2008 1:48 pm
Контактная информация:

Сообщение alex241 »

А в чем может быть проблема? Что можно посмотреть? + для выставления лимита нужно только ввести целое неотрицательное число в соответствующее поле(н-р "Месяц") или нужно еще выполнять какие-то дополнительные действия, настройки и т.д.?

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

Что можно посмотреть?
/var/run/radattr.ppp? с лимитом покажи
нужно еще выполнять какие-то дополнительные действия, настройки и т.д.?
нет

alex241
Сообщения: 12
Зарегистрирован: Чт апр 17, 2008 1:48 pm
Контактная информация:

Сообщение alex241 »

Очень интересно, когда выставляешь лимит и коннектишься - radattr.pppx - пуст! Что бы это могло значить?

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

radiusd -X

alex241
Сообщения: 12
Зарегистрирован: Чт апр 17, 2008 1:48 pm
Контактная информация:

Сообщение alex241 »

Вот вывод radiusd -X:

Код: Выделить всё

Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1:60261, id=41, length=108
        Service-Type = Framed-User
        Framed-Protocol = PPP
        User-Name = "test1"
        CHAP-Challenge = 0x47e3a730b9f3f92bec79e8e77120926d7aa6d1
        CHAP-Password = 0xe50a4061d79a1aedc1b5739de1c80c49f0
        Calling-Station-Id = "192.168.102.200"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 0
Exec-Program output: Auth-Type := Accept
Exec-Program-Wait: value-pairs: Auth-Type := Accept
Exec-Program: returned: 0
  modcall[authorize]: module "pre_auth" returns ok for request 0
  modcall[authorize]: module "preprocess" returns ok for request 0
  rlm_chap: WARNING: Auth-Type already set.  Not setting to CHAP
  modcall[authorize]: module "chap" returns noop for request 0
  modcall[authorize]: module "mschap" returns noop for request 0
    rlm_realm: No '@' in User-Name = "test1", looking up realm NULL
    rlm_realm: No such realm "NULL"
  modcall[authorize]: module "suffix" returns noop for request 0
  rlm_eap: No EAP-Message, not doing EAP
  modcall[authorize]: module "eap" returns noop for request 0
    users: Matched entry DEFAULT at line 52
  modcall[authorize]: module "files" returns ok for request 0
rlm_pap: Found existing Auth-Type, not changing it.
  modcall[authorize]: module "pap" returns noop for request 0
modcall: leaving group authorize (returns ok) for request 0
  rad_check_password:  Found Auth-Type Accept
  rad_check_password: Auth-Type = Accept, accepting the user
Exec-Program output: Acct-Interim-Interval = 60, Session-Timeout = 1997567, PPPD-Upstream-Speed-Limit = 0, Octets-Direction = 1, Framed-IP-Address = 192.168.1.1, Session-Octets-Limit = 10176916.9967514, Framed-IP-Netmask = 255.255.255.255, PPPD-Downstream-Speed-Limit = 0,
Exec-Program-Wait: plaintext: Acct-Interim-Interval = 60, Session-Timeout = 1997567, PPPD-Upstream-Speed-Limit = 0, Octets-Direction = 1, Framed-IP-Address = 192.168.1.1, Session-Octets-Limit = 10176916.9967514, Framed-IP-Netmask = 255.255.255.255, PPPD-Downstream-Speed-Limit = 0,
Exec-Program: returned: 0
Sending Access-Accept of id 41 to 127.0.0.1 port 60261
Finished request 0
Going to the next request
--- Walking the entire request list ---
Waking up in 6 seconds...
rad_recv: Accounting-Request packet from host 127.0.0.1:34063, id=42, length=114
        Acct-Session-Id = "47FA54C10E2400"
        User-Name = "test1"
        Acct-Status-Type = Start
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Calling-Station-Id = "192.168.102.200"
        Acct-Authentic = RADIUS
        NAS-Port-Type = Async
        Framed-IP-Address = 192.168.1.1
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Acct-Delay-Time = 0
  Processing the preacct section of radiusd.conf
modcall: entering group preacct for request 1
  modcall[preacct]: module "preprocess" returns noop for request 1
rlm_acct_unique: Hashing 'NAS-Port = 0,Client-IP-Address = 127.0.0.1,NAS-IP-Address = 127.0.0.1,Acct-Session-Id = "47FA54C10E2400",User-Name = "test1"'
rlm_acct_unique: Acct-Unique-Session-ID = "4aca58ee5e095f5e".
  modcall[preacct]: module "acct_unique" returns ok for request 1
    rlm_realm: No '@' in User-Name = "test1", looking up realm NULL
    rlm_realm: No such realm "NULL"
  modcall[preacct]: module "suffix" returns noop for request 1
    acct_users: Matched entry DEFAULT at line 7
  modcall[preacct]: module "files" returns ok for request 1
modcall: leaving group preacct (returns ok) for request 1
  Processing the accounting section of radiusd.conf
modcall: entering group accounting for request 1
radius_xlat:  '/usr/var/log/radius/radacct/127.0.0.1/detail-20080407'
rlm_detail: /usr/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /usr/var/log/radius/radacct/127.0.0.1/detail-20080407
  modcall[accounting]: module "detail" returns ok for request 1
  modcall[accounting]: module "unix" returns ok for request 1
radius_xlat:  '/usr/var/log/radius/radutmp'
radius_xlat:  'test1'
  modcall[accounting]: module "radutmp" returns ok for request 1
modcall: leaving group accounting (returns ok) for request 1
Exec-Program output:
Exec-Program: returned: 0
Sending Accounting-Response of id 42 to 127.0.0.1 port 34063
Finished request 1
Going to the next request
--- Walking the entire request list ---
Waking up in 5 seconds...


alex241
Сообщения: 12
Зарегистрирован: Чт апр 17, 2008 1:48 pm
Контактная информация:

Сообщение alex241 »

А вот вывод radiusd -X, только с отключением лимита.

Код: Выделить всё

Ready to process requests.
rad_recv: Access-Request packet from host 127.0.0.1:44694, id=69, length=111
        Service-Type = Framed-User
        Framed-Protocol = PPP
        User-Name = "test2"
        CHAP-Challenge = 0x114bc4eca7d15526a1ad6c2889c9267536d16701041e
        CHAP-Password = 0xb9cbf01223ddf7e46d1e4b67375fa1d491
        Calling-Station-Id = "192.168.102.200"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 0
Exec-Program output: Auth-Type := Accept
Exec-Program-Wait: value-pairs: Auth-Type := Accept
Exec-Program: returned: 0
  modcall[authorize]: module "pre_auth" returns ok for request 0
  modcall[authorize]: module "preprocess" returns ok for request 0
  rlm_chap: WARNING: Auth-Type already set.  Not setting to CHAP
  modcall[authorize]: module "chap" returns noop for request 0
  modcall[authorize]: module "mschap" returns noop for request 0
    rlm_realm: No '@' in User-Name = "test2", looking up realm NULL
    rlm_realm: No such realm "NULL"
  modcall[authorize]: module "suffix" returns noop for request 0
  rlm_eap: No EAP-Message, not doing EAP
  modcall[authorize]: module "eap" returns noop for request 0
    users: Matched entry DEFAULT at line 52
  modcall[authorize]: module "files" returns ok for request 0
rlm_pap: Found existing Auth-Type, not changing it.
  modcall[authorize]: module "pap" returns noop for request 0
modcall: leaving group authorize (returns ok) for request 0
  rad_check_password:  Found Auth-Type Accept
  rad_check_password: Auth-Type = Accept, accepting the user
Exec-Program output: Acct-Interim-Interval = 60, Session-Timeout = 1996649, PPPD-Upstream-Speed-Limit = 0, Octets-Direction = 1, Framed-IP-Address = 192.168.1.137, Session-Octets-Limit = 103809024, Framed-IP-Netmask = 255.255.255.255, PPPD-Downstream-Speed-Limit = 0,
Exec-Program-Wait: value-pairs: Acct-Interim-Interval = 60, Session-Timeout = 1996649, PPPD-Upstream-Speed-Limit = 0, Octets-Direction = 1, Framed-IP-Address = 192.168.1.137, Session-Octets-Limit = 103809024, Framed-IP-Netmask = 255.255.255.255, PPPD-Downstream-Speed-Limit = 0,
Exec-Program: returned: 0
Sending Access-Accept of id 69 to 127.0.0.1 port 44694
        Acct-Interim-Interval = 60
        Session-Timeout = 1996649
        PPPD-Upstream-Speed-Limit = Bridge-No
        Octets-Direction = Route-IP-Yes
        Framed-IP-Address = 192.168.1.137
        Session-Octets-Limit = 103809024
        Framed-IP-Netmask = 255.255.255.255
        PPPD-Downstream-Speed-Limit = Send-Auth-None
Finished request 0
Going to the next request
--- Walking the entire request list ---
Waking up in 6 seconds...
rad_recv: Accounting-Request packet from host 127.0.0.1:51932, id=70, length=114
        Acct-Session-Id = "47FA5857104900"
        User-Name = "test2"
        Acct-Status-Type = Start
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Calling-Station-Id = "192.168.102.200"
        Acct-Authentic = RADIUS
        NAS-Port-Type = Async
        Framed-IP-Address = 192.168.1.137
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Acct-Delay-Time = 0
  Processing the preacct section of radiusd.conf
modcall: entering group preacct for request 1
  modcall[preacct]: module "preprocess" returns noop for request 1
rlm_acct_unique: Hashing 'NAS-Port = 0,Client-IP-Address = 127.0.0.1,NAS-IP-Address = 127.0.0.1,Acct-Session-Id = "47FA5857104900",User-Name = "test2"'
rlm_acct_unique: Acct-Unique-Session-ID = "f8c699c65a1d6636".
  modcall[preacct]: module "acct_unique" returns ok for request 1
    rlm_realm: No '@' in User-Name = "test2", looking up realm NULL
    rlm_realm: No such realm "NULL"
  modcall[preacct]: module "suffix" returns noop for request 1
    acct_users: Matched entry DEFAULT at line 7
  modcall[preacct]: module "files" returns ok for request 1
modcall: leaving group preacct (returns ok) for request 1
  Processing the accounting section of radiusd.conf
modcall: entering group accounting for request 1
radius_xlat:  '/usr/var/log/radius/radacct/127.0.0.1/detail-20080407'
rlm_detail: /usr/var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /usr/var/log/radius/radacct/127.0.0.1/detail-20080407
  modcall[accounting]: module "detail" returns ok for request 1
  modcall[accounting]: module "unix" returns ok for request 1
radius_xlat:  '/usr/var/log/radius/radutmp'
radius_xlat:  'test2'
  modcall[accounting]: module "radutmp" returns ok for request 1
modcall: leaving group accounting (returns ok) for request 1
Exec-Program output:
Exec-Program: returned: 0
Sending Accounting-Response of id 70 to 127.0.0.1 port 51932
Finished request 1
Going to the next request
Waking up in 6 seconds...

Как видно - они различаются только тем, что при выставлении лимита после строки Sending Access-Accept... ничего не идет, а при отключении лимита - после этой строки идут параметры, которые, как я понял, и записываются в radattr.pppx

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

а вот это шо за хрень (когда с лимитом): Session-Octets-Limit = 10176916.9967514 :D

без лимита: Session-Octets-Limit = 103809024

кажется где-то на форуме об этом писали, вроде как баг был, и его акжется уже пофиксили... обновился б ты с cvs current... тока базы не забуть привести в соответствие с ченжлогс

alex241
Сообщения: 12
Зарегистрирован: Чт апр 17, 2008 1:48 pm
Контактная информация:

Сообщение alex241 »

Да, после копания инфы по этому поводу у меня нецелочисленное значение данного атрибута тоже вызвало подозрение. :D Как обновлюсь - отпишусь о результатах!

alex241
Сообщения: 12
Зарегистрирован: Чт апр 17, 2008 1:48 pm
Контактная информация:

Сообщение alex241 »

В результате обновлений из cvs все заработало корректно! Спасибо большое за помощь! Вот только возник вопрос. При превышении месячного лимита пользователя должно скидывать с линии или нет?(у меня этого не происходит).

NiTr0
Сообщения: 767
Зарегистрирован: Пт фев 08, 2008 4:46 pm

Сообщение NiTr0 »

Отрубает - обычно не сразу, еще до метра успевает протечь :)
И скидывает - не конкретно по месячному (или какому там) лимиту, а по превышению Session-Timeout или Session-Octets-Limit (что быстрее случится). Которые и зависят от лимитов.
Для начала - смотреть опять-таки /var/run/radattr.ppp? , после - уже делать выводы о месте глюков.

alex241
Сообщения: 12
Зарегистрирован: Чт апр 17, 2008 1:48 pm
Контактная информация:

Сообщение alex241 »

Вот содержание radattr.pppx при выставлении месячного лимита в 10мб:

Код: Выделить всё

Acct-Interim-Interval 60
Session-Timeout 1604421
PPPD-Upstream-Speed-Limit 0
Octets-Direction 1
Framed-IP-Address 192.168.1.161
Session-Octets-Limit 10485760
Framed-IP-Netmask 255.255.255.255
PPPD-Downstream-Speed-Limit 0
и что интересно, когда приходит n-ный Alive-пакет(при превышении лимита), то он имеет следующее содержание:

Код: Выделить всё

rad_recv: Accounting-Request packet from host 127.0.0.1:53749, id=43, length=144
        Acct-Session-Id = "4800558F0B0800"
        User-Name = "test2"
        Acct-Status-Type = Interim-Update
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Acct-Authentic = RADIUS
        Acct-Session-Time = 1921
        Acct-Output-Octets = 11540125
        Acct-Input-Octets = 1121149
        Acct-Output-Packets = 16878
        Acct-Input-Packets = 10027
        Calling-Station-Id = "192.168.102.200"
        NAS-Port-Type = Async
        Framed-IP-Address = 192.168.1.161
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Acct-Delay-Time = 0
Как видно, Acct-Output-Octets превышает Session-Octets-Limit, но отключения не происходит.

alex241
Сообщения: 12
Зарегистрирован: Чт апр 17, 2008 1:48 pm
Контактная информация:

Сообщение alex241 »

Все, нашел решение проблемы, проанализировав вышеприкрепленные логи - проблема в направлении трафика - нужно было выбрать вместо "получено" - "отправлено". Иначе лимит выставляется на исходящий трафик :lol: Всем большое спасибо! Тему можно закрывать!

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

как это закрывать? а пиво где??? :wink:

Ответить