lazor Posted September 7, 2009 Posted September 7, 2009 Добного времени суток. Такая ситуация - запустил аккаунтинг связка - FreeRadius + AT 9424T когда аутенификация идет просто по маку, все нормально, но как только аутенифицируется клиент которому через радиус назначается VLAN аккаунтинг не проходит, радиус выдает такое предупреждение rlm_acct_unique: WARNING: Attribute Acct-Session-Id was not found in request, unique ID MAY be inconsistent И в лог акаунтинга пишется Acct-Status-Type = Failed ПОдскажите пожалуйста в какую сторону копать? Кто виновен в данной ситуации свитч? Или так и должно быть?мвм Вставить ник Quote
terrible Posted September 7, 2009 Posted September 7, 2009 а авторизацию влан запрашивает? Вставить ник Quote
lazor Posted September 7, 2009 Author Posted September 7, 2009 Да. авторизацию запрашивает, авторизируется и во влан нужный засовывается с этим проблем нет. Только страрт_стоп аккаунтиг не показывает. rad_recv: Accounting-Request packet from host 10.x.x.x port 1026, id=13, length=166 Acct-Status-Type = Start NAS-IP-Address = 10.x.x.x NAS-Port = 15 Framed-MTU = 1336 NAS-Port-Type = Ethernet Acct-Authentic = RADIUS Called-Station-Id = "00-15-55-AC-50-1C" Calling-Station-Id = "00-00-00-00-00-55" User-Name = "00-00-00-00-00-55" Acct-Session-Id = "00000000|00-15-55-AC-50-1C|00-00-00-00-00-55|1.15|1" +- entering group preacct ++[preprocess] returns ok А если включаю привязку влана по маку то получаем следующее rad_recv: Accounting-Request packet from host 10.x.x.x port 1026, id=21, length=113 Acct-Status-Type = Failed NAS-IP-Address = 10.x.x.x NAS-Port = 15 Framed-MTU = 1336 NAS-Port-Type = Ethernet Acct-Authentic = RADIUS Called-Station-Id = "00-15-55-AC-50-1C" Calling-Station-Id = "00-00-00-00-00-11" User-Name = "00-00-00-00-00-11" +- entering group preacct ++[preprocess] returns ok rlm_acct_unique: WARNING: Attribute Acct-Session-Id was not found in request, unique ID MAY be inconsistent Вот содержимое файла users 00-00-00-00-00-11 Auth-Type := Local, Cleartext-Password := 00-00-00-00-00-11 Tunnel-Type = "VLAN", Tunnel-Medium-Type = "IEEE-802", Tunnel-Private-Group-ID = "test_2" 00-00-00-00-00-22 Auth-Type := Local, Cleartext-Password := 00-00-00-00-00-22 Tunnel-Type = "VLAN", Tunnel-Medium-Type = "IEEE-802", Tunnel-Private-Group-ID = "test_1" 00-00-00-00-00-77 Auth-Type := Local, Cleartext-Password := 00-00-00-00-00-77 00-00-00-00-00-55 Auth-Type := Local, Cleartext-Password := 00-00-00-00-00-55 Вставить ник Quote
lazor Posted September 7, 2009 Author Posted September 7, 2009 (edited) Вот с привязкой к влану auth: user supplied User-Password matches local User-Password Login OK: [00-00-00-00-00-11/00-00-00-00-00-11] (from client TEST_AT9424T port 15 cli 00-00-00-00-00-11) +- entering group post-auth ++[exec] returns noop Sending Access-Accept of id 16 to 10.x.x.x port 1026 Tunnel-Type:0 = VLAN Tunnel-Medium-Type:0 = IEEE-802 Tunnel-Private-Group-Id:0 = "test_2" Finished request 32. А вот без привязки auth: user supplied User-Password matches local User-Password Login OK: [00-00-00-00-00-55/00-00-00-00-00-55] (from client TEST_AT9424T port 15 cli 00-00-00-00-00-55) +- entering group post-auth ++[exec] returns noop Sending Access-Accept of id 1 to 10.x.x.x port 1026 Finished request 36. Edited September 7, 2009 by lazor Вставить ник Quote
terrible Posted September 7, 2009 Posted September 7, 2009 (edited) авторизация по SQL? А просто по маку авторизация если какой выдаёт Acct-Session-Id? Edited September 7, 2009 by terrible Вставить ник Quote
lazor Posted September 7, 2009 Author Posted September 7, 2009 Авторизация по маку, не SQL(сначала всю систему отладим на файлах, уже после переводить на SQL будем). По идее Acct-Session-Id это просто идентификатор сессии который кто то генерирует, чтобы единожды знать активен хост или нет(что то наподобие сессии в браузере) и по нему радиус определяет что это именно тот хост. На самом деле нужно узнать кто герерирует этот самый Acct-Session-Id и уже в сторону него копать. Вставить ник Quote
terrible Posted September 8, 2009 Posted September 8, 2009 (edited) Телесин генерирует, он-же отдаёт сессию на аккаунтинг. Непонятно только как заставить радиус проглатывать пакеты с таким Acct-Session-Id Поле он выдаёт очень большое + использует знак "|", что радиусу не нравится Edited September 8, 2009 by terrible Вставить ник Quote
dk_ Posted September 8, 2009 Posted September 8, 2009 (edited) У FreeRADIUS есть модуль, который позволяет генерировать вместо приходящего с NAS атрибута Acct-Session-Id свой собственный, составленный из полей RADIUS-запроса, от которых потом хэш берётся. Этот модуль специально сделан для «кривого» железа, которое не может выдавать нормальные Acct-Session-Id. Попробуйте его приспособить, должно сработать. Edited September 8, 2009 by dk_ Вставить ник Quote
lazor Posted September 8, 2009 Author Posted September 8, 2009 (edited) Телесин генерирует, он-же отдаёт сессию на аккаунтинг. Непонятно только как заставить радиус проглатывать пакеты с таким Acct-Session-IdПоле он выдаёт очень большое + использует знак "|", что радиусу не нравится Нее :) я там выше видимо не совсем корректно сказал, там где очень большое поле как раз все нормально, аккаунтинг отрабатывает нормально. А ругается он как раз в следующем случае на отсутствие Acct-Session-Id. 2dk_ Ваш вариант похоже более убедителен про "кривое железо". Не подскажите хотябы часть названия этого модуля? Edited September 8, 2009 by lazor Вставить ник Quote
dk_ Posted September 9, 2009 Posted September 9, 2009 Модуль rlm_acct_unique. Комментарии из конфига FreeRADIUS: # Create a unique accounting session Id. Many NASes re-use # or repeat values for Acct-Session-Id, causing no end of # confusion. # # This module will add a (probably) unique session id # to an accounting packet based on the attributes listed # below found in the packet. See doc/rlm_acct_unique for # more information. # acct_unique { key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port" } Вставить ник Quote
lazor Posted September 9, 2009 Author Posted September 9, 2009 Ааа, этот модуль у меня включен, он как раз и генерирует уникальный ИД, но в данном случае это не помогает :( Судя по rad_recv: Accounting-Request packet from host 10.x.x.x port 1026, id=21, length=113 Acct-Status-Type = Failed Со свитча уже прилетает информация, что произошла ошибка аккаунтинга, т.е. тут проблема похоже в информации которую кидает свитч. Задал вопрос на форуме алиена все полчат как партизаны. P.S. этот AT 9424T сплошные костыли а не свитч Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.