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

muchacho, спасибо я сам не допёр

Незачто, чисто случайно получилось.

Share this post


Link to post
Share on other sites

У меня есть подозрение, что неправильно работают следующие параметры:

 

[radius]
max-try=3
acct-timeout=400

 

Судя по документации, при таких установках должно произвестись три попытки отправить аккаутинг до радиуса с таймаутом каждой 400 сек, и при неудаче всех через 20 мин. отрубить сессию. У нас сейчас есть небольшие проблемы на биллинге (радиус+база данных), при которых ровно в полночь база данных не успевает обработать все запросы и, соответственно, радиус не все аккутинг-пакеты отрабатывает. При этом сессии начинают отбиваться уже около 00:10 ч. Не понимаю как это может начать происходить раньше 00:20 ч.

Edited by morfair

Share this post


Link to post
Share on other sites

попробуй

[radius]

server=x.x.x.x,fail-time=0

Share this post


Link to post
Share on other sites

попробуй

[radius]

server=x.x.x.x,fail-time=0

 

В этом случае, биллинг может сбросить сессию(не получив очередной Interrim-update)(и будет считать, что IP свободен, если IP выдаётся биллингом), а accel-ppp - нет. И в результате, у 2ух абонентов может быть один и тот же IP

Share this post


Link to post
Share on other sites

Опять вылетел.

Версия из git b02e7ad2059416b2d8b1b4e6e8c12132ed4a6cc3

(gdb) bt

 

 

Program terminated with signal 6, Aborted.

#0 0x00007f131606dc35 in raise () from /lib64/libc.so.6

(gdb) bt

#0 0x00007f131606dc35 in raise () from /lib64/libc.so.6

#1 0x00007f131606efda in abort () from /lib64/libc.so.6

#2 0x000000000042384d in sigsegv (num=11) at /var/git/git/code/accel-pppd/main.c:203

#3 <signal handler called>

#4 0x00007f13155d41cc in lua_close () from /usr/lib64/liblua.so.5

#5 0x00007f1316e77d59 in __nptl_deallocate_tsd () from /lib64/libpthread.so.0

#6 0x00007f1316e77f34 in start_thread () from /lib64/libpthread.so.0

#7 0x00007f131612356d in clone () from /lib64/libc.so.6

 

 

 

И снова через 15 минут с тем же backtrace.

Edited by purecopper

Share this post


Link to post
Share on other sites

За 14 дней accel с PPPoE съел 80 метров памяти, это нормально???

У кого как утекает память с PPPoE, можете поделиться?

 

accel-ppp version 3fc000aa67ee38002ec97419a760f23cccd87210

accel-ppp# show stat

uptime: 14.06:23:14

cpu: 0%

mem(rss/virt): 83980/5156144 kB

core:

mempool_allocated: 13257433

mempool_available: 256055

thread_count: 12

thread_active: 1

context_count: 566

context_sleeping: 0

context_pending: 0

md_handler_count: 1651

md_handler_pending: 0

timer_count: 1082

timer_pending: 0

sessions:

starting: 4294967114

active: 543

finishing: 183

pppoe:

starting: 0

active: 544

delayed PADO: 0

recv PADI: 1316609

drop PADI: 0

sent PADO: 1310050

recv PADR(dup): 601473(40)

sent PADS: 601473

filtered: 0

radius(1, 172.19.19.21):

state: active

fail count: 0

request count: 0

queue length: 0

auth sent: 572786

auth lost(total/5m/1m): 2050/0/0

auth avg query time(5m/1m): 2707/2683 ms

acct sent: 62949

acct lost(total/5m/1m): 65/0/0

acct avg query time(5m/1m): 3/3 ms

interim sent: 5051093

interim lost(total/5m/1m): 1649/0/0

interim avg query time(5m/1m): 7/7 ms

Edited by ~pavel~

Share this post


Link to post
Share on other sites

Неясна логика работы IPOE :-(

Адрес выдаёт радиус.

Accel обращается к радиусу только при старте сессии.

При запросе от клиента на продление лизы продлевает её НЕ ОБРАЩАЯСЬ к радиусу :-(

Подтверждением является лог.

 

Вопрос: как accel "узнает" когда отказать в продлении времени аренды адреса?

 

Версия Accel-pppd от 27.01.2014

CentOS 6.5

 

Конфиг:

----------

 

[ipoe]

verbose=1

lua-file=/etc/accel-ppp.lua

username=lua:username

password=username

lease-time=200

max-lease-time=230

shared=1

ifcfg=1

mode=L2

start=dhcpv4

proxy-arp=0

nat=0

interface=re:eth1\..+

attr-dhcp-client-ip=DHCP-Client-IP-Address

attr-dhcp-router-ip=DHCP-Router-IP-Address

attr-dhcp-mask=DHCP-Mask

 

[radius]

dictionary=/usr/share/accel-ppp/radius/dictionary

nas-identifier=ACCELNAS

nas-ip-address=10.100.100.104

gw-ip-address=192.168.17.104

server=10.100.100.102,testing123,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0

dae-server=127.0.0.1:3799,testing123

verbose=1

acct-interim-interval=600

acct-on=0

 

Кстати, невзирая на acct-on=0 шлются пакеты Interim-Update через acct-interim-interval=600

 

Лог:

---------

[2014-01-28 10:26:40.320] eth1.408: : recv [DHCPv4 Discover xid=21b7670 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Discover> <Client-ID 01000726439884> <Vendor-Class 756468637020302e392e38> <Request-List Subnet,Router,DNS,Host-Name,Domain-Name,17,Broadcast,66,Route,Classless-Route,249> <Relay-Agent {Agent-Circuit-ID _000401fb000f} {Agent-Remote-ID _00061cbdb99b9a5c}>]

 

[2014-01-28 10:26:40.321] eth1.408: 9D4C6A7CE07D9463: send [RADIUS(1) Access-Request id=1 <User-Name "1c:bd:b9:9b:9a:5c-15"> <NAS-Identifier "ACCELNAS"> <NAS-IP-Address 10.100.100.104> <NAS-Port 4> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:07:26:43:98:84"> <Called-Station-Id "eth1.408"> <User-Password >]

 

[2014-01-28 10:26:40.322] eth1.408: 9D4C6A7CE07D9463: recv [RADIUS(1) Access-Accept id=1 <DHCP-Mask 17> <Framed-Pool "pool2"> <DHCP-Router-IP-Address 10.17.128.1>]

 

[2014-01-28 10:26:40.322] eth1.408: 9D4C6A7CE07D9463: 1c:bd:b9:9b:9a:5c-15: authentication succeeded

 

[2014-01-28 10:26:40.322] ipoe0: 9D4C6A7CE07D9463: send [DHCPv4 Offer xid=21b7670 yiaddr=10.17.128.2 siaddr=10.17.128.1 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Offer> <Server-ID 10.17.128.1> <Lease-Time 200> <Router 10.17.128.1> <Subnet 255.255.128.0> <DNS 10.100.100.1,10.100.100.5>]

 

[2014-01-28 10:26:40.332] ipoe0: 9D4C6A7CE07D9463: recv [DHCPv4 Request xid=21b7670 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Request> <Client-ID 01000726439884> <Vendor-Class 756468637020302e392e38> <Request-IP 10.17.128.2> <Server-ID 10.17.128.1> <Request-List Subnet,Router,DNS,Host-Name,Domain-Name,17,Broadcast,66,Route,Classless-Route,249> <Relay-Agent {Agent-Circuit-ID _000401fb000f} {Agent-Remote-ID _00061cbdb99b9a5c}>]

 

[2014-01-28 10:26:40.332] ipoe0: 9D4C6A7CE07D9463: send [RADIUS(1) Accounting-Request id=1 <User-Name "1c:bd:b9:9b:9a:5c-15"> <NAS-Identifier "ACCELNAS"> <NAS-IP-Address 10.100.100.104> <NAS-Port 17> <NAS-Port-Type Ethernet> <Calling-Station-Id "00:07:26:43:98:84"> <Called-Station-Id "eth1.408"> <Acct-Status-Type Start> <Acct-Authentic RADIUS> <Acct-Session-Id "9D4C6A7CE07D9463"> <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 10.17.128.2>]

 

[2014-01-28 10:26:40.332] ipoe0: 9D4C6A7CE07D9463: recv [RADIUS(1) Accounting-Response id=1]

[2014-01-28 10:26:40.333] ipoe0: 9D4C6A7CE07D9463: ipoe: session started

 

[2014-01-28 10:26:40.333] ipoe0: 9D4C6A7CE07D9463: send [DHCPv4 Ack xid=21b7670 yiaddr=10.17.128.2 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Ack> <Server-ID 10.17.128.1> <Lease-Time 200> <Router 10.17.128.1> <Subnet 255.255.128.0> <DNS 10.100.100.1,10.100.100.5>]

 

[2014-01-28 10:28:19.652] ipoe0: 9D4C6A7CE07D9463: recv [DHCPv4 Request xid=21b7670 ciaddr=10.17.128.2 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Request> <Client-ID 01000726439884> <Vendor-Class 756468637020302e392e38> <Request-List Subnet,Router,DNS,Host-Name,Domain-Name,17,Broadcast,66,Route,Classless-Route,249> <Relay-Agent {Agent-Circuit-ID _000401fb000f} {Agent-Remote-ID _00061cbdb99b9a5c}>]

 

[2014-01-28 10:28:19.652] ipoe0: 9D4C6A7CE07D9463: send [DHCPv4 Ack xid=21b7670 ciaddr=10.17.128.2 yiaddr=10.17.128.2 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Ack> <Server-ID 10.17.128.1> <Lease-Time 200> <Router 10.17.128.1> <Subnet 255.255.128.0> <DNS 10.100.100.1,10.100.100.5>]

 

[2014-01-28 10:29:59.888] ipoe0: 9D4C6A7CE07D9463: recv [DHCPv4 Request xid=21b7670 ciaddr=10.17.128.2 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Request> <Client-ID 01000726439884> <Vendor-Class 756468637020302e392e38> <Request-List Subnet,Router,DNS,Host-Name,Domain-Name,17,Broadcast,66,Route,Classless-Route,249> <Relay-Agent {Agent-Circuit-ID _000401fb000f} {Agent-Remote-ID _00061cbdb99b9a5c}>]

 

[2014-01-28 10:29:59.888] ipoe0: 9D4C6A7CE07D9463: send [DHCPv4 Ack xid=21b7670 ciaddr=10.17.128.2 yiaddr=10.17.128.2 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Ack> <Server-ID 10.17.128.1> <Lease-Time 200> <Router 10.17.128.1> <Subnet 255.255.128.0> <DNS 10.100.100.1,10.100.100.5>]

 

[2014-01-28 10:32:55.280] ipoe0: 9D4C6A7CE07D9463: recv [DHCPv4 Request xid=21b7670 ciaddr=10.17.128.2 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Request> <Client-ID 01000726439884> <Vendor-Class 756468637020302e392e38> <Request-List Subnet,Router,DNS,Host-Name,Domain-Name,17,Broadcast,66,Route,Classless-Route,249> <Relay-Agent {Agent-Circuit-ID _000401fb000f} {Agent-Remote-ID _00061cbdb99b9a5c}>]

 

[2014-01-28 10:32:55.280] ipoe0: 9D4C6A7CE07D9463: send [DHCPv4 Ack xid=21b7670 ciaddr=10.17.128.2 yiaddr=10.17.128.2 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Ack> <Server-ID 10.17.128.1> <Lease-Time 200> <Router 10.17.128.1> <Subnet 255.255.128.0> <DNS 10.100.100.1,10.100.100.5>]

 

[2014-01-28 10:35:49.673] ipoe0: 9D4C6A7CE07D9463: recv [DHCPv4 Request xid=21b7670 ciaddr=10.17.128.2 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Request> <Client-ID 01000726439884> <Vendor-Class 756468637020302e392e38> <Request-List Subnet,Router,DNS,Host-Name,Domain-Name,17,Broadcast,66,Route,Classless-Route,249> <Relay-Agent {Agent-Circuit-ID _000401fb000f} {Agent-Remote-ID _00061cbdb99b9a5c}>]

 

[2014-01-28 10:35:49.673] ipoe0: 9D4C6A7CE07D9463: send [DHCPv4 Ack xid=21b7670 ciaddr=10.17.128.2 yiaddr=10.17.128.2 giaddr=172.16.10.47 chaddr=00:07:26:43:98:84 <Message-Type Ack> <Server-ID 10.17.128.1> <Lease-Time 200> <Router 10.17.128.1> <Subnet 255.255.128.0> <DNS 10.100.100.1,10.100.100.5>]

Share this post


Link to post
Share on other sites

Неясна логика работы IPOE :-(

Адрес выдаёт радиус.

 

Вопрос: как accel "узнает" когда отказать в продлении времени аренды адреса?

Никак, из-за этого мы используем отдельный DHCP-сервер. Сессию при изменении IP/запрете доступа придется рвать вручную, скриптом или COA-запросом.

Share this post


Link to post
Share on other sites
Кстати, невзирая на acct-on=0 шлются пакеты Interim-Update через acct-interim-interval=600
такой опции не существует

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

server=10.100.100.102,testing123,auth-port=1812,acct-port=0,req-limit=0,fail-time=0

Share this post


Link to post
Share on other sites

Неясна логика работы IPOE :-(

Адрес выдаёт радиус.

 

Вопрос: как accel "узнает" когда отказать в продлении времени аренды адреса?

Никак, из-за этого мы используем отдельный DHCP-сервер. Сессию при изменении IP/запрете доступа придется рвать вручную, скриптом или COA-запросом.

А если не отвечать на radius acct?

Share this post


Link to post
Share on other sites

xeb

Не смотрели по проблеме с lua? А то accel сал вылетать через день :(

Опять вылетел.

Версия из git b02e7ad2059416b2d8b1b4e6e8c12132ed4a6cc3

(gdb) bt

 

 

Program terminated with signal 6, Aborted.

#0 0x00007f131606dc35 in raise () from /lib64/libc.so.6

(gdb) bt

#0 0x00007f131606dc35 in raise () from /lib64/libc.so.6

#1 0x00007f131606efda in abort () from /lib64/libc.so.6

#2 0x000000000042384d in sigsegv (num=11) at /var/git/git/code/accel-pppd/main.c:203

#3 <signal handler called>

#4 0x00007f13155d41cc in lua_close () from /usr/lib64/liblua.so.5

#5 0x00007f1316e77d59 in __nptl_deallocate_tsd () from /lib64/libpthread.so.0

#6 0x00007f1316e77f34 in start_thread () from /lib64/libpthread.so.0

#7 0x00007f131612356d in clone () from /lib64/libc.so.6

 

 

 

И снова через 15 минут с тем же backtrace.

Новый bt

0 0x00007fcbf3b2dc35 in raise () from /lib64/libc.so.6

#1 0x00007fcbf3b2efda in abort () from /lib64/libc.so.6

#2 0x000000000042384d in sigsegv (num=11) at /var/git/git/code/accel-pppd/main.c:203

#3 <signal handler called>

#4 0x00007fcbf30941cc in lua_close () from /usr/lib64/liblua.so.5

#5 0x00007fcbf4937d59 in __nptl_deallocate_tsd () from /lib64/libpthread.so.0

#6 0x00007fcbf4937f34 in start_thread () from /lib64/libpthread.so.0

#7 0x00007fcbf3be356d in clone () from /lib64/libc.so.6

 

Edited by purecopper

Share this post


Link to post
Share on other sites

Неясна логика работы IPOE :-(

Адрес выдаёт радиус.

 

Вопрос: как accel "узнает" когда отказать в продлении времени аренды адреса?

Никак, из-за этого мы используем отдельный DHCP-сервер. Сессию при изменении IP/запрете доступа придется рвать вручную, скриптом или COA-запросом.

 

Если не секрет, какой?

К радиусу умеет обращаться?

Share this post


Link to post
Share on other sites

Неясна логика работы IPOE :-(

Адрес выдаёт радиус.

 

Вопрос: как accel "узнает" когда отказать в продлении времени аренды адреса?

Никак, из-за этого мы используем отдельный DHCP-сервер. Сессию при изменении IP/запрете доступа придется рвать вручную, скриптом или COA-запросом.

 

Если не секрет, какой?

К радиусу умеет обращаться?

Так accel-ppp сам умеет.

 

Не понимаю, зачем нужен внешний DHCP.

Share this post


Link to post
Share on other sites

Неясна логика работы IPOE :-(

Адрес выдаёт радиус.

 

Вопрос: как accel "узнает" когда отказать в продлении времени аренды адреса?

Никак, из-за этого мы используем отдельный DHCP-сервер. Сессию при изменении IP/запрете доступа придется рвать вручную, скриптом или COA-запросом.

 

Если не секрет, какой?

К радиусу умеет обращаться?

Так accel-ppp сам умеет.

 

Не понимаю, зачем нужен внешний DHCP.

 

Accel умеет выдать IP абоненту, спросив его у радиуса,

но не умеет отказать этому же абоненту при очередном запросе на продление "лизы"

ввиду того, что после выдачи IP абоненту к радиусу больше не обращается.

 

Использовать скрипты, которые будут проверять время сессии абонента и при необходимости

прибивать таковую, как-то не кошерно :-(

Share this post


Link to post
Share on other sites

ykorikk

обращается - interrim update. да и coa никто не отменял, только абонент не сразу об этом узнает

Share this post


Link to post
Share on other sites

ykorikk

обращается - interrim update. да и coa никто не отменял, только абонент не сразу об этом узнает

 

Interim update - это отправка accounting запросов.

Отвергнув этот запрос радиус никак не сможет повлиять

на поведение accel при обработке следующего запроса

от клиента на продление "лизы".

 

Для того, чтобы использовать CoA всё равно необходимо

периодически опрашивать сессии!

 

При работе с PPPoE этого же делать не нужно. Радиус

может передать session timeout. В случае с IPoE такой

атрибут использовать скорее всего будет неудобно, поэтому

лучшим выходом из положения было бы регулярное обращение

к радиусу с "вопросом" о продлении "лизы".

А ещё лучше - вынести настройку этого поведения в конфиг.

Share this post


Link to post
Share on other sites

Отвергнув этот запрос радиус никак не сможет повлиять

на поведение accel при обработке следующего запроса

от клиента на продление "лизы".

если это так, то это баг acel и нужно попросить его исправить. если нет ответа на интеррим, то accel должен сбрасывать сессию(если это указано конфигом) и не продлевать лизу в след.раз

 

про coa не понял вашу мысль. зачем опрашивать сесссии с браса чтоб им пользоваться?

Share this post


Link to post
Share on other sites

Interim update - это отправка accounting запросов.

Отвергнув этот запрос радиус никак не сможет повлиять

на поведение accel при обработке следующего запроса

от клиента на продление "лизы".

Влияет.

 

Согласно RFC NAS, не получив ответа на Accounting, должен разорвать сессию. Что accel-ppp и делает.

 

если нет ответа на интеррим, то accel должен сбрасывать сессию(если это указано конфигом) и не продлевать лизу в след.раз

Именно так он и делает, всё правильно.

Share this post


Link to post
Share on other sites

Здравствуйте!

Прошу помощи . Ситуация нет запросов от accel к radius

в логах

[2014-01-29 19:57:53]: error: eth0: radius:connect: Invalid argument

[2014-01-29 19:57:53]: warn: eth0: radius: server(1) not responding

[2014-01-29 19:57:53]: warn: radius: server(1) not responding

[2014-01-29 19:57:53]: warn: eth0: radius: no available servers

[2014-01-29 19:57:53]: debug: eth0: terminate

[2014-01-29 19:57:53]: info: eth0: ipoe: session finished

 

конфиг

 

[radius]

dictionary=/usr/local/share/accel-ppp/radius/dictionary

nas-identifier=accel-ppp

nas-ip-address=127.0.0.1

gw-ip-address=127.0.0.1

server=127.0.0.1,uchudyg

acct-timeout=120

verbose=1

 

Linux serveripoe 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux

 

устанавливал из git

 

Что можно сделать не подскажите? хоть куда купать.

 

Установил на другом сервере

uname -a

Linux nas001 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:15:33 UTC 2013 i686 i686 i386 GNU/Linux

 

Таже ситуация.

 

 

Заранее благодарен за ответ.

Share this post


Link to post
Share on other sites

cdi,

Попробуйте так:

server=127.0.0.1,uchudyg,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0

tcpdump-ом смотрели? Есть реально запросы или нет?

Share this post


Link to post
Share on other sites

cdi,

Попробуйте так:

server=127.0.0.1,uchudyg,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0

tcpdump-ом смотрели? Есть реально запросы или нет?

Запросов нет. так тоже пробовал результат тот же.

Share this post


Link to post
Share on other sites

netstat -ntplu

Активные соединения с интернетом (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 683/sshd

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 839/mysqld

tcp 0 0 127.0.0.1:2000 0.0.0.0:* LISTEN 1955/accel-pppd

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1318/apache2

tcp 0 0 127.0.0.1:2001 0.0.0.0:* LISTEN 1955/accel-pppd

tcp6 0 0 :::22 :::* LISTEN 683/sshd

udp 0 0 0.0.0.0:18204 0.0.0.0:* 1268/asterisk

udp 0 0 0.0.0.0:18205 0.0.0.0:* 1268/asterisk

udp 0 0 0.0.0.0:5000 0.0.0.0:* 1268/asterisk

udp 0 0 0.0.0.0:4520 0.0.0.0:* 1268/asterisk

udp 0 0 0.0.0.0:5060 0.0.0.0:* 1268/asterisk

udp 0 0 0.0.0.0:14068 0.0.0.0:* 1268/asterisk

udp 0 0 0.0.0.0:14069 0.0.0.0:* 1268/asterisk

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