Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Ошибка учёта RADIUS в прошивке UAP версии 3.8.6.6650, UniFi Network
 
@UBNT-BruceG

Ошибка: UAP v3.8.6.6650 отправляет пакет Interim-Update на сервер RADIUS сразу после пакета Accounting Start. При том что для этого пользователя Acct-Interim-Interval установлен в 600, этот пакет должен прийти не раньше чем через 10 минут.

Sun Aug 6 21:07:39 2017  
Acct-Session-Id = "59873E49-00000007"  
Acct-Status-Type = Start  
Acct-Authentic = RADIUS  
User-Name = "scilek"  
Framed-IP-Address = 0.0.0.0  
NAS-Identifier = "802aa8ac1ef9"  
NAS-Port = 0  
Called-Station-Id = "80-2A-A8-AD-1E-F9:SCILEK.NET"  
Calling-Station-Id = "2C-F0-A2-87-C1-CA"  
NAS-Port-Type = Wireless-802.11  
Connect-Info = "CONNECT 0Mbps 802.11b"  
Class = 0x7363696c656b  
NAS-IP-Address = 192.168.0.4  
Event-Timestamp = "Aug 6 2017 21:07:39 +03"  
Timestamp = 1502042859  

Sun Aug 6 21:07:39 2017  
Acct-Session-Id = "59873E49-00000007"  
Acct-Status-Type = Interim-Update  
Acct-Authentic = RADIUS  
User-Name = "scilek"  
Framed-IP-Address = 192.168.0.103  
NAS-Identifier = "802aa8ac1ef9"  
NAS-Port = 0  
Called-Station-Id = "80-2A-A8-AD-1E-F9:SCILEK.NET"  
Calling-Station-Id = "2C-F0-A2-87-C1-CA"  
NAS-Port-Type = Wireless-802.11  
Connect-Info = "CONNECT 0Mbps 802.11b"  
Class = 0x7363696c656b  
Acct-Session-Time = 0  
Acct-Input-Packets = 14  
Acct-Output-Packets = 14  
Acct-Input-Octets = 1858  
Acct-Output-Octets = 4091  
Event-Timestamp = "Aug 6 2017 21:07:33 +03"  
NAS-IP-Address = 192.168.0.4  
Timestamp = 1502042859  

Sun Aug 6 21:08:20 2017  
Acct-Session-Id = "59873E49-00000007"  
Acct-Status-Type = Stop  
Acct-Authentic = RADIUS  
User-Name = "scilek"  
Framed-IP-Address = 192.168.0.103  
NAS-Identifier = "802aa8ac1ef9"  
NAS-Port = 0  
Called-Station-Id = "80-2A-A8-AD-1E-F9:SCILEK.NET"  
Calling-Station-Id = "2C-F0-A2-87-C1-CA"  
NAS-Port-Type = Wireless-802.11  
Connect-Info = "CONNECT 0Mbps 802.11b"  
Class = 0x7363696c656b  
Acct-Session-Time = 41  
Acct-Input-Packets = 281  
Acct-Output-Packets = 61  
Acct-Input-Octets = 34430  
Acct-Output-Octets = 12679  
Event-Timestamp = "Aug 6 2017 21:08:14 +03"  
Acct-Terminate-Cause = User-Request  
NAS-IP-Address = 192.168.0.4  
Timestamp = 1502042900  

Всем удачи и хорошего дня!
 
@UBNT-BruceG

Согласен, было слишком самоуверенно с моей стороны использовать слово «can» (может). Следовало сказать «should» (должно). И ты прав, в RFC 2869 нет ничего, что прямо указывало бы, что первый пакет промежуточного обновления «может приходить только» после пакета начала учёта.

Однако у нас есть это: http://freeradius.org/rfc/rfc2869.html#Acct-Interim-Interval  
Этот атрибут указывает количество секунд между каждым промежуточным обновлением в конкретной сессии.

Естественно, существует всего три типа пакетов учёта: один accounting start, один accounting stop и множество accounting update. Атрибут Acct-Interim-Interval сообщает NAS, как часто нужно отправлять пакеты обновления учёта. Можно было бы возразить, что первый пакет обновления должен приходить только через X секунд после accounting start.

Но это тоже не суть проблемы. Проблема в том, что UAP отправляет первый пакет обновления учёта сразу после accounting start. Так как IP-пакеты могут приходить в неправильном порядке, RADIUS-сервер может получить accounting update раньше accounting start. Тогда сервер попытается записать данные в SQL, но в таблице radacct ещё нет записи для этой сессии, и данные будут отброшены и потеряны.

Такой проблемы не было в предыдущих версиях прошивки UAP. Почему же мы сталкиваемся с этим сейчас?  

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

Я настаиваю — это баг. Пожалуйста, исправьте его. И заодно поправьте проблему с атрибутом Idle-Timeout.  

Удачи и хорошего дня.
 
Я пришлю тебе личное сообщение.
 
Дорогой @UBNT-TonyT,

Я бы с удовольствием попробовал версию 3.8.7, но не смог найти её в разделе загрузок на вашем основном сайте. Буду следить, и как только она появится, обновлю свой тестовый UAP и поделюсь с вами результатами.

Я всё ещё не понимаю, как атрибут Framed-IP-Address может быть полезен в каком-либо сценарии. Но давайте не будем на этом зацикливаться; у всех у нас свои представления о том, как всё должно работать, верно?

Спасибо за ваше внимание. Вы уже решили проблему с Idle-Timeout?
 
Привет, @scilek! Эта проблема на самом деле была решена в версии 3.8.7 — можешь обновиться и сообщить, если она у тебя всё ещё проявляется? Framed-IP-Address теперь входит в состав сообщений учёта, которые можно интегрировать через некоторые корпоративные портальные решения. В этом релизе исправлен вопрос с порядком, и Accounting Start теперь будет отправляться как обычно, а также будет содержать IP-адрес соответствующего клиента. Если у клиента меняется IP-адрес (статический или DHCP), точка доступа сразу отправит промежуточное обновление учёта с новым IP-адресом.
 
@UBNT-BruceG

Эта проблема появилась в последней версии. Ни в одной из предыдущих, насколько мне известно, такого не было. Вот, к примеру, эта машина:

# ssh scilek@192.168.0.31

BusyBox v1.11.2 (2017-06-09 07:50:19 PDT) встроенная оболочка (ash)  
Введите 'help' для списка встроенных команд.

BZ.v3.8.3#  
А вот учётные данные для одной конкретной сессии с этой машины:  
Пт 25 авг 2017 07:29:06  
Acct-Session-Id = "5998A7D6-000002BD"  
Acct-Status-Type = Start  
Acct-Authentic = RADIUS  
User-Name = "36049517230"  
NAS-Identifier = "44d9e77a2de5"  
NAS-Port = 0  
Called-Station-Id = "46-D9-E7-7B-2D-E5:YEMEKHANE"  
Calling-Station-Id = "00-11-0A-18-A6-0B"  
NAS-Port-Type = Wireless-802.11  
Connect-Info = "CONNECT 0Mbps 802.11b"  
Class = 0x3336303439353137323330  
NAS-IP-Address = 192.168.0.31  
FreeRADIUS-Acct-Session-Start-Time = "Aug 25 2017 07:29:06 MSK"  
Timestamp = 1503635346

Пт 25 авг 2017 07:39:06  
Acct-Session-Id = "5998A7D6-000002BD"  
Acct-Status-Type = Interim-Update  
Acct-Authentic = RADIUS  
User-Name = "36049517230"  
NAS-Identifier = "44d9e77a2de5"  
NAS-Port = 0  
Called-Station-Id = "46-D9-E7-7B-2D-E5:YEMEKHANE"  
Calling-Station-Id = "00-11-0A-18-A6-0B"  
NAS-Port-Type = Wireless-802.11  
Connect-Info = "CONNECT 0Mbps 802.11b"  
Class = 0x3336303439353137323330  
Acct-Session-Time = 600  
Acct-Input-Packets = 4046  
Acct-Output-Packets = 3354  
Acct-Input-Octets = 1029837  
Acct-Output-Octets = 2348483  
Event-Timestamp = "Aug 25 2017 07:39:05 MSK"  
NAS-IP-Address = 192.168.0.31  
FreeRADIUS-Acct-Session-Start-Time = "Aug 25 2017 07:29:06 MSK"  
Timestamp = 1503635946

Пт 25 авг 2017 07:45:01  
Acct-Session-Id = "5998A7D6-000002BD"  
Acct-Status-Type = Stop  
Acct-Authentic = RADIUS  
User-Name = "36049517230"  
NAS-Identifier = "44d9e77a2de5"  
NAS-Port = 0  
Called-Station-Id = "46-D9-E7-7B-2D-E5:YEMEKHANE"  
Calling-Station-Id = "00-11-0A-18-A6-0B"  
NAS-Port-Type = Wireless-802.11  
Connect-Info = "CONNECT 0Mbps 802.11b"  
Class = 0x3336303439353137323330  
Acct-Session-Time = 956  
Acct-Input-Packets = 7033  
Acct-Output-Packets = 5867  
Acct-Input-Octets = 1553041  
Acct-Output-Octets = 4474576  
Event-Timestamp = "Aug 25 2017 07:45:01 MSK"  
Acct-Terminate-Cause = User-Request  
NAS-IP-Address = 192.168.0.31  
FreeRADIUS-Acct-Session-Start-Time = "Aug 25 2017 07:29:05 MSK"  
Timestamp = 1503636301

(Нерелевантные данные удалены для краткости.)  

Как вы сами видите, первый пакет обновления учёта приходит ровно через 600 секунд после пакета начала учёта. (Acct-Interim-Interval := 600)  

Хотел бы также уточнить своё предыдущее наблюдение. В прошлом сообщении я сказал: «... UAP отправляет первый пакет обновления учёта сразу после пакета начала учёта». На самом деле это не совсем так. Если посмотреть на значения временных меток в обоих пакетах, станет ясно, что они отправлены одновременно!  

Желаю удачи и хорошего дня.
 
Спасибо за объяснение. Я тебя понял. Можешь сказать, какая была предыдущая версия, чтобы сравнить?
 
@scilek

У тебя есть спецификация, которая описывает, что пакет промежуточного обновления «может прийти только» после определённого интервала?
Страницы: 1
Читают тему (гостей: 1)