Page 1 of 1

Не удаляются IP из ipset

Posted: 16 Sep 2018, 08:11
by KovAl
4.9.0-6-amd64 Debian 4.9.88-1+deb9u1
accel-ppp version 6c514056471dfdf030d69fb9fda443047a8cc964
IPoE vlan-per-user (QinQ)
ipset v6.30, protocol version: 6

Использую атрибут attr-l4-redirect-ipset для редиректа должников на страницу "деньги давай".
в конфиге accel

Code: Select all

attr-l4-redirect=L4-Redirect
attr-l4-redirect-ipset=L4-Redirect-ipset
l4-redirect-ipset=Debtors
Радиус при авторизации отправляет для НЕ заблокированных
L4-Redirect=0,L4-Redirect-ipset=Debtors
и для заблокированных
L4-Redirect=1,L4-Redirect-ipset=Debtors
"Блокировка" работает нормально - в сет Debtors IP заблокированного добавляется, а вот при снятии блокировки НЕКОТОРЫЕ IP из сета не удаляются..
Т.е. какой-то IP удаляется, а какой-то нет. Закономерности пока не обнаружил..
Может это связано с какими-то таймаутами, или кешированием?
Какой вообще порядок работы с ipset у accel?

P.S.
При "разблокировке" "заблокированную" ранее сессию сбрасываю.

Re: Не удаляются IP из ipset

Posted: 16 Sep 2018, 15:11
by dimka88
Не пробовали убирать ipset при помощи CoA? viewtopic.php?f=4&t=808
Еще бы логи глянуть той сессии, у которой не удалился ip из ipset

Re: Не удаляются IP из ipset

Posted: 17 Sep 2018, 14:44
by KovAl
dimka88 wrote: 16 Sep 2018, 15:11 Не пробовали убирать ipset при помощи CoA? viewtopic.php?f=4&t=808
А смысл, если сам аццел это делает?
dimka88 wrote: 16 Sep 2018, 15:11 Еще бы логи глянуть той сессии, у которой не удалился ip из ipset
Да второпях (выходные - "не до глупостей" было :)) не записал, у кого не сработало. Тупо удалил из сета..

Предполагаю, что проблема при hard terminate комп/роутер клиента не шлёт аццел-у DHCP Request, а просто запрашивает
подтверждение имеющегося у него IP.
Соотв. не происходит старт авторизации, ну и отсюда и ноги..
Добавил в аццел soft-terminate=1, понаблюдаю..

P.S. Похоже, ещё одна проблема по этой же причине - комп клиента долго не может получить "легальный IP"
при переходе из "гостевой" подсети (после l4-redirect-on-reject).
Особенно этим страдает Win-10. Заставить её запросить IP в этом случае очень сложно, тупо долбится whois-ом на сервер.

Re: Не удаляются IP из ipset

Posted: 28 Sep 2018, 09:06
by KovAl
Ну вот очередной случАй..
Лог авторизации
Спойлер

Code: Select all

2018-09-28 10:45:37]:  info: ipoe: create vlan eth0.3712.2501 parent eth0.3712
[2018-09-28 10:45:37]:  info: ipoe: start interface eth0.3712.2501 (mtu=1500)

[2018-09-28 10:45:41]:  info: eth0.3712.2501: recv [DHCPv4 Discover xid=3bceb44f chaddr=30:85:xx:xx:xx:xx <Message-Type Discover> <Client-ID 
013085a9b2bc2f><Request-IP 172.16.12.159> <Host-Name Home> <Vendor-Class 4d53465420352e30> <Request-List Subnet,Domain-Name,Router,DNS,44,46,47,31,Route,Classless-Route,249,252,Vendor-Specific> <Relay-Agent {Agent-Circuit-ID _00040e800019} {Agent-Remote-ID _0006acf1dfabbae0}>]

[2018-09-28 10:45:41]:  info: eth0.3712.2501: send [RADIUS(1) Access-Request id=1 <User-Name "User@name"> <NAS-Identifier "IPoE-NAS-1"> <NAS-IP-Address 10.254.254.18> <NAS-Port 19777> <NAS-Port-Id "eth0.3712.2501"> <NAS-Port-Type Ethernet> <Calling-Station-Id "30:85:xx:xx:xx:xx"> <Called-Station-Id "eth0.3712.2501"> <AccelRemoteId 0x0006acf1dfabbae0> <AccelCircuitId 0x00040e800019> <User-Password 0x278d6d310afa919122e41b3764cad9fd>]

[2018-09-28 10:45:41]:  info: eth0.3712.2501: recv [RADIUS(1) Access-Accept id=1 <Framed-IP-Address 172.16.12.159> <Framed-IP-Netmask 255.255.255.255> <Session-Timeout 31536000> <Acct-Interim-Interval 60> <Service-Type Framed-User> <Cisco-AVPair "lcp:interface-config#1=rate-limit input 25600000 600000 1200000 conform-action transmit exceed-action drop"> <Cisco-AVPair "lcp:interface-config#1=rate-limit output 25600000 600000 1200000 conform-action transmit exceed-action drop"> <Cisco-AVPair "lcp:interface-config#1=rate-limit input access-group 1 76800000 1800000 3600000 conform-action transmit exceed-action drop"> <Cisco-AVPair "lcp:interface-config#1=rate-limit output access-group 1 76800000 1800000 3600000 conform-action transmit exceed-action drop"> <L4-Redirect 0> <L4-Redirect-ipset "Debtors">]

[2018-09-28 10:45:41]:  info: eth0.3712.2501: User@name: authentication succeeded

[2018-09-28 10:45:41]:  info: eth0.3712.2501: send [DHCPv4 Offer xid=3bceb44f yiaddr=172.16.12.159 chaddr=30:85:xx:xx:xx:xx <Message-Type Offer> <Server-ID 172.16.0.1> <Lease-Time 600> <T1 300> <Router 172.16.0.1> <Subnet 255.255.224.0> <DNS AAA.BBB.CCC.DDD>]

[2018-09-28 10:45:41]:  info: eth0.3712.2501: recv [DHCPv4 Request xid=3bceb44f chaddr=30:85:xx:xx:xx:xx <Message-Type Request> <Client-ID 013085a9b2bc2f> <Request-IP 172.16.12.159> <Server-ID 172.16.0.1> <Host-Name Home> <Option-81 000000486f6d65> <Vendor-Class 4d53465420352e30> <Request-List Subnet,Domain-Name,Router,DNS,44,46,47,31,Route,Classless-Route,249,252,Vendor-Specific> <Relay-Agent {Agent-Circuit-ID _00040e800019} {Agent-Remote-ID _0006acf1dfabbae0}>]

[2018-09-28 10:45:41]:  info: eth0.3712.2501: send [RADIUS(1) Accounting-Request id=1 <User-Name "User@name"> <NAS-Identifier "IPoE-NAS-1"> <NAS-IP-Address 10.254.254.18> <NAS-Port 19777> <NAS-Port-Id "eth0.3712.2501"> <NAS-Port-Type Ethernet> <Calling-Station-Id "30:85:xx:xx:xx:xx"> <Called-Station-Id "eth0.3712.2501"> <AccelRemoteId 0x0006acf1dfabbae0> <AccelCircuitId 0x00040e800019> <Acct-Status-Type Start> <Acct-Authentic RADIUS> <Acct-Session-Id "c82a265465e89ff6"> <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 172.16.12.159>]

[2018-09-28 10:45:41]:  info: eth0.3712.2501: send [DHCPv4 Ack xid=3bceb44f yiaddr=172.16.12.159 chaddr=30:85:xx:xx:xx:xx <Message-Type Ack> <Server-ID 172.16.0.1> <Lease-Time 600> <T1 300> <Router 172.16.0.1> <Subnet 255.255.224.0> <DNS AAA.BBB.CCC.DDD>]

[2018-09-28 10:45:41]:  info: eth0.3712.2501: recv [RADIUS(1) Accounting-Response id=1]

[2018-09-28 10:45:41]:  info: eth0.3712.2501: shaper: installed shaper 25600/25600 (Kbit)

[2018-09-28 10:45:41]:  info: eth0.3712.2501: ipoe: session started

[2018-09-28 10:46:41]:  info: eth0.3712.2501: send [RADIUS(1) Accounting-Request id=2 <User-Name "User@name"> <NAS-Identifier "IPoE-NAS-1"> <NAS-IP-Address 10.254.254.18> <NAS-Port 19777> <NAS-Port-Id "eth0.3712.2501"> <NAS-Port-Type Ethernet> <Calling-Station-Id "30:85:xx:xx:xx:xx"> <Called-Station-Id "eth0.3712.2501"> <AccelRemoteId 0x0006acf1dfabbae0> <AccelCircuitId 0x00040e800019> <Acct-Status-Type Alive> <Acct-Authentic RADIUS> <Acct-Session-Id "c82a265465e89ff6"> <Acct-Session-Time 60> <Acct-Input-Octets 71193> <Acct-Output-Octets 80754> <Acct-Input-Packets 523> <Acct-Output-Packets 286> <Acct-Input-Gigawords 0> <Acct-Output-Gigawords 0> <Framed-IP-Address 172.16.12.159>]
IP 172.16.12.159 так и остался в сете Debtors, пришлось удалять ручками..
Что тут может быть не так?
Меня смущает вот этот момент
[2018-09-28 10:45:41]: info: eth0.3712.2501: recv [DHCPv4 Discover xid=3bceb44f chaddr=30:85:xx:xx:xx:xx <Message-Type Discover> <Client-ID
013085a9b2bc2f><Request-IP 172.16.12.159> <Host-Name Home> <Vendor-Class 4d53465420352e30> <Request-List Subnet,Domain-Name,Router,DNS,44,46,47,31,Route,Classless-Route,249,252,Vendor-Specific> <Relay-Agent {Agent-Circuit-ID _00040e800019} {Agent-Remote-ID _0006acf1dfabbae0}>]
Почему IP был получен (и получен ли?) ДО момента авторизации?
В "нормальной ситуации", IP должен назначить радиус после успешной авторизации (что и произошло вроде бы, но позднее!).
Такое ощущение, что это клиент запросил подтверждение на использование этого IP, а accel ему подтвердил БЕЗ авторизации.
У клиента Windows-10, за ней такое "умничанье" (запрос на подтверждение ранее полученных параметров, вместо запроса на получение) водится.
С роутерами и другими версиями винды такого не происходит.
Что в данной ситуации возможно сделать?

Re: Не удаляются IP из ipset

Posted: 30 Sep 2018, 12:03
by dimka88
Момент не должен смущать, такой же ip выдал radius.
Нужно собрать полный лог:
Подключение должника (<L4-Redirect 1> <L4-Redirect-ipset "Debtors">)
Завершении сессии должника
Подключение уже оплатившего с этим ip, который не был удален из ipset при завершении сессии
ps:// А есть возможность не слать <L4-Redirect 0> <L4-Redirect-ipset "Debtors"> с положительным депозитом?
Дублирующихся ip выданных radius быть не может?

Re: Не удаляются IP из ipset

Posted: 30 Sep 2018, 14:38
by KovAl
dimka88 wrote: 30 Sep 2018, 12:03 Момент не должен смущать, такой же ip выдал radius.
Нужно собрать полный лог:
Подключение должника (<L4-Redirect 1> <L4-Redirect-ipset "Debtors">)
Завершении сессии должника
Подключение уже оплатившего с этим ip, который не был удален из ipset при завершении сессии
Есть такой, очередной "проблемник". Довольно большая портянка получилась, хотя и лишнее постарался поскипать.
В пост не влезло, пришлось кидать файлом в прицеп..
user1.zip
Log
(3.75 KiB) Downloaded 174 times
dimka88 wrote: 30 Sep 2018, 12:03 ps:// А есть возможность не слать <L4-Redirect 0> <L4-Redirect-ipset "Debtors"> с положительным депозитом?
Не понял.. Это как?
Отправлять только для заблокированных <L4-Redirect 1> <L4-Redirect-ipset "Debtors">, а разблокированным не слать эти атрибуты?
И как же тогда "снимать" блокировку"? Отдельным скриптом?
Тогда какой смысл в этом (L4-Redirect-ipset) сервисе? Тем более, что он работает, проблемы только с отдельными "индивидумами".
Кстати, в этот раз "отличился" клиент с Windows-7.
dimka88 wrote: 30 Sep 2018, 12:03 Дублирующихся ip выданных radius быть не может?
Исключено.

Re: Не удаляются IP из ipset

Posted: 02 Oct 2018, 09:13
by KovAl
Похоже, дело было не в бобине, а в специфике работы биллинга.. :oops:
При "снятии блокировки", сброс активной сессии происходит немедленно с помощью CoA, сразу после проводки платежа.
А вот в БД радиуса изменение статуса (перезапись L4-Redirect=0) приходит с некоторой задержкой (порядка 2-3 мин.).
Соответственно, если клиент за этот "защитный период" успевает поднять сессию, он получит "старые" параметры.
Т.е. L4-Redirect=1. А т.к. радиус не отслеживает изменение именно этого параметра активной сессии, то клиент продолжает работать..

Так-что accel тут не при делах.. Буду разбираться с биллингом.
Извиняюсь за ложную тревогу..

P.S. Один вопрос - я правильно понимаю, что в списке ipset должны находиться IP только активных сессий,
и accel их должен в любом случае удалить при завершении сессии?

Re: Не удаляются IP из ipset

Posted: 02 Oct 2018, 10:46
by dimka88
KovAl wrote: 02 Oct 2018, 09:13 P.S. Один вопрос - я правильно понимаю, что в списке ipset должны находиться IP только активных сессий,
и accel их должен в любом случае удалить при завершении сессии?
Ну да. Активных, которым пришел L4-Redirect 1

Re: Не удаляются IP из ipset

Posted: 02 Oct 2018, 11:17
by KovAl
dimka88 wrote: 02 Oct 2018, 10:46
KovAl wrote: 02 Oct 2018, 09:13 P.S. Один вопрос - я правильно понимаю, что в списке ipset должны находиться IP только активных сессий,
и accel их должен в любом случае удалить при завершении сессии?
Ну да. Активных, которым пришел L4-Redirect 1
... и при завершении "заблокированной" сессии удаляет из set-а, независимо от текущих установок.
Т.е. если ВСЕ заблокированные клиенты НЕ в сети, то этот set должен быть пустым.
Всё так?

Re: Не удаляются IP из ipset

Posted: 02 Oct 2018, 11:52
by dimka88
KovAl wrote: 02 Oct 2018, 11:17
dimka88 wrote: 02 Oct 2018, 10:46
KovAl wrote: 02 Oct 2018, 09:13 P.S. Один вопрос - я правильно понимаю, что в списке ipset должны находиться IP только активных сессий,
и accel их должен в любом случае удалить при завершении сессии?
Ну да. Активных, которым пришел L4-Redirect 1
... и при завершении "заблокированной" сессии удаляет из set-а, независимо от текущих установок.
Т.е. если ВСЕ заблокированные клиенты НЕ в сети, то этот set должен быть пустым.
Всё так?
Да, все верно