m1ster Опубликовано 20 апреля, 2011 · Жалоба Привет всем !! Прошу помочь в решении проблемы настройки CoA+RADIUS В ASR 1002, ОС Version 12.2... Авторизация и аккаунтинг работает нормально т.е интернет у клиента есть !! Но тут появилась проблема поменять скорость клиенту на лету !! Решил попробовать сделать это через CoA. В конфиге cisco я добавил -- aaa server radius dynamic-author client IP.x.x.x server-key XXXX port 3000 auth-type any ignore session-key Но когда Радиус передает данные... в логах radius-a я вижу только COA-NACK... Пробую по принципу отключить сервис xxx1 и вместо него включить xxx2... Посмотрел дебаг на cisco -- Вижу вот такой вид... Apr 20 15:20:22.298: RADIUS: COA received from id 201 IP.x.x.x:34306, CoA Request, len 50 Apr 20 15:20:22.298: COA: IP.x.x.x request queued Apr 20 15:20:22.298: RADIUS: authenticator BA FE 30 98 7F C6 7A E6 - 21 61 7E 6F 97 49 4C B3 Apr 20 15:20:22.298: RADIUS: Vendor, Cisco [26] 14 Apr 20 15:20:22.298: RADIUS: ssg-command-code [252] 8 Apr 20 15:20:22.298: RADIUS: 0C 69 6E 74 36 34 [service-Log-Off xxx1] Apr 20 15:20:22.298: RADIUS: Vendor, Cisco [26] 16 Apr 20 15:20:22.298: RADIUS: ssg-account-info [250] 10 "S0.0.0.0" Apr 20 15:20:22.298: ++++++ CoA Attribute List ++++++ Apr 20 15:20:22.298: 3D1BEB18 0 00000009 ssg-command-code(470) 6 0C 69 6E 74 36 34 Apr 20 15:20:22.298: 3D1BEC5C 0 00000009 ssg-account-info(468) 8 S0.0.0.0 Apr 20 15:20:22.299: Apr 20 15:20:22.299: RADIUS/ENCODE(00000000):Orig. component type = Invalid Apr 20 15:20:22.299: RADIUS(00000000): sending Apr 20 15:20:22.299: RADIUS(00000000): Send CoA Nack Response to IP.x.x.x:34306 id 201, len 74 Apr 20 15:20:22.299: RADIUS: authenticator 4F 18 16 C3 0D C7 09 D7 - AF 3D 35 8F 29 B8 4C 27 Apr 20 15:20:22.299: RADIUS: Vendor, Cisco [26] 14 Apr 20 15:20:22.299: RADIUS: ssg-command-code [252] 8 Apr 20 15:20:22.299: RADIUS: 0C 69 6E 74 36 34 [service-Log-Off xxx1] Apr 20 15:20:22.299: RADIUS: Vendor, Cisco [26] 16 Apr 20 15:20:22.299: RADIUS: ssg-account-info [250] 10 "S0.0.0.0" Apr 20 15:20:22.299: RADIUS: Reply-Message [18] 18 Apr 20 15:20:22.299: RADIUS: 4E 6F 20 76 61 6C 69 64 20 53 65 73 73 69 6F 6E [ No valid Session] Apr 20 15:20:22.299: RADIUS: Dynamic-Author-Error[101] 6 Session Context Not Found [503] RADIUS: COA received from id 232 IP.x.x.x:34308, CoA Request, len 52 .Apr 20 15:38:51.613: COA: IP.x.x.x request queued .Apr 20 15:38:51.613: RADIUS: authenticator 1C 69 FA 0F 80 D4 9B 70 - 78 86 12 B6 ED 8E AF B2 .Apr 20 15:38:51.613: RADIUS: Vendor, Cisco [26] 16 .Apr 20 15:38:51.613: RADIUS: ssg-command-code [252] 10 .Apr 20 15:38:51.613: RADIUS: 0B 73 74 61 72 74 39 36 [service-Log-On xxx2] .Apr 20 15:38:51.613: RADIUS: Vendor, Cisco [26] 16 .Apr 20 15:38:51.613: RADIUS: ssg-account-info [250] 10 "S0.0.0.0" .Apr 20 15:38:51.613: ++++++ CoA Attribute List ++++++ .Apr 20 15:38:51.613: 3D1BE824 0 00000009 ssg-command-code(470) 8 0B 73 74 61 72 74 39 36 .Apr 20 15:38:51.614: 3D1BF2B0 0 00000009 ssg-account-info(468) 8 S0.0.0.0 .Apr 20 15:38:51.614: .Apr 20 15:38:51.614: RADIUS/ENCODE(00000000):Orig. component type = Invalid .Apr 20 15:38:51.614: RADIUS(00000000): sending .Apr 20 15:38:51.614: RADIUS(00000000): Send CoA Nack Response to IP.x.x.x:34308 id 232, len 76 .Apr 20 15:38:51.614: RADIUS: authenticator A6 4A CE 7A F0 5B 1A BF - D4 AE 7C 93 29 CA 77 50 .Apr 20 15:38:51.614: RADIUS: Vendor, Cisco [26] 16 .Apr 20 15:38:51.614: RADIUS: ssg-command-code [252] 10 .Apr 20 15:38:51.614: RADIUS: 0B 73 74 61 72 74 39 36 [service-Log-On xxx2] .Apr 20 15:38:51.614: RADIUS: Vendor, Cisco [26] 16 .Apr 20 15:38:51.614: RADIUS: ssg-account-info [250] 10 "S0.0.0.0" .Apr 20 15:38:51.614: RADIUS: Reply-Message [18] 18 .Apr 20 15:38:51.614: RADIUS: 4E 6F 20 76 61 6C 69 64 20 53 65 73 73 69 6F 6E [ No valid Session] .Apr 20 15:38:51.614: RADIUS: Dynamic-Author-Error[101] 6 Session Context Not Found [503]Connection closed by foreign host. Если вас не затруднит может объяснить что означают эти ошибки: RADIUS/ENCODE(00000000):Orig. component type = Invalid Dynamic-Author-Error[101] 6 Session Context Not Found [503] Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
littlevik Опубликовано 20 апреля, 2011 · Жалоба Покажите CoA запрос. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
m1ster Опубликовано 21 апреля, 2011 (изменено) · Жалоба А как можно посмотреть CoA запрос ?? Т.е я знаю можно дать запрос командой radpwtst, но она у меня какая-то урезанная чтоли !! ./radpwtst Usage: radpwtst [-a ACKs] [-c code] [-d directory] [-f file] [-g group] [-h] [-i client-id] [-l async port] [-n] [-p UDP-port] [-r retries] [-s server] [-t timeout] [-u type] [-v version] [-w password] [-x] accessID Codes: Access-Request = 1 Accounting-Request = 4 Password = 7 Status-Server = 12 Types: challenge, chap, dumb, slip, ppp, arades, dbdumb, dpslip, dbppp, outbound, admin, exec, dbadmin Вот такой параметр передает Cisco-Account-Info = xxx1 Больше я не вижу !! У меня чуток радиус переделан под биллинг !! Можете подсказать какие параметры вообще для COA должны отправляться?? Почитал на этом же форуме, что надо отключить шифрование ключей радиуса, посмотрел у себя в конфиге циски... оно у меня отключено. Изменено 21 апреля, 2011 пользователем m1ster Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rus-p Опубликовано 21 апреля, 2011 (изменено) · Жалоба Всего два вида идентификации через соа если нет портала. Это слать номер аккаунтинговой сессии или IP адрес в связке с vrf. У вас видимо IP, только почему-то нулевой ? Я не использовал radpwtst, подсказать не могу. Если урезанная возьмите сорцы радиуса, скомпилируйте и будет вам свежая. Посмотрел, вы используете радиатор в качестве радиуса, посему и команду такую не помню, сидим на фрирадиусе ) Компилируйте нужную версию своей radpwtst, и кидайте сюда команду с ключами которую запускаете. Если не смогете, возьмите от фрирадиуса radclient и генерите им, все работает. Изменено 21 апреля, 2011 пользователем rus-p Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
m1ster Опубликовано 21 апреля, 2011 · Жалоба Вооо вот у меня она передает номер аккаунтинговой сесси, т.е должна передавать :)!! Но судя по этим ошибкам Dynamic-Author-Error[101] 6 Session Context Not Found [503] Номер этой сессия я не могу передать !! Вот ещё в вывод дебага включил Attr Manager и вот что он выдает ... add attr: 3D1C0978 0 0000000A reply-message(259) 16 No valid Session add attr: 3D1C0988 0 00000002 error-cause(258) 4 Session Context Not Found Если вас не затруднит подскажите плз, какой атрибут в радиусе отвечает за номер сессии ?? Я так понял Радиус не все что нужно передает !!! какого-то атрибута не хватает чтоли.... Посмотрел, вы используете радиатор в качестве радиуса, посему и команду такую не помню, сидим на фрирадиусе ) Компилируйте нужную версию своей radpwtst, и кидайте сюда команду с ключами которую запускаете. Если не смогете, возьмите от фрирадиуса radclient и генерите им, все работает. Ага понял !! попробую !! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rus-p Опубликовано 21 апреля, 2011 · Жалоба Если вас не затруднит подскажите плз, какой атрибут в радиусе отвечает за номер сессии ?? Я так понял Радиус не все что нужно передает !!! какого-то атрибута не хватает чтоли.... Acct-Session-Id (44) Его посылку на ваш биллинг, с которого посылаете coa, вы должны включить на asr. Потом глянуть значение этого атрибута для сессии и ключом передать команде. Это не радиус передает, это ваша команда radpwtst формирует пакет с атрибутами и передает его на NAS. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 25 апреля, 2011 · Жалоба http://tsolodov.blogspot.com/2011/02/problem-with-coa-request-on-isg-when.html Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dgoni_sp Опубликовано 11 февраля, 2012 · Жалоба Привет всем !! Прошу помочь в решении проблемы настройки CoA+RADIUS В ASR 1002, ОС Version 12.2... Авторизация и аккаунтинг работает нормально т.е интернет у клиента есть !! Но тут появилась проблема поменять скорость клиенту на лету !! Решил попробовать сделать это через CoA. В конфиге cisco я добавил -- Была аналогичная проблема vrf не использую, при посылки CoA пакета для изменения скорости на лету получал ошибку Reply-Message = "No valid Session" Error-Cause = Session-Context-Not-Found Хотя до это 5 запросов были успешными. Код запроса Packet-Type = CoA-Request, User-Name = "poe_test1" Acct-Session-Id = "0000003C" Cisco-AVPair += "lcp:interface-config#0=no rate-limit input 256000 24000 48000 conform-action transmit exceed-action drop" Cisco-AVPair += "lcp:interface-config#0=rate-limit input 512000 24000 48000 conform-action transmit exceed-action drop" Cisco-AVPair += "lcp:interface-config#1=no rate-limit output 256000 24000 48000 conform-action transmit exceed-action drop" Cisco-AVPair += "lcp:interface-config#1=rate-limit output 512000 24000 48000 conform-action transmit exceed-action drop" Понятно что для каждой сессии свой ID, но сколько я не пытался всё равно кошка выдавала ошибку Session-Context-Not-Found. Никакие ignored server-key и session-key в cisco не помогли. В конце попробовал использовать вместо Acct-Session-Id значение Framed-IP-Address и вроде получилось. Вот окончательный вариант CoA запроса Packet-Type = CoA-Request, User-Name = "poe_test1" Framed-IP-Address = 172.10.10.19 Cisco-AVPair += "lcp:interface-config#0=no rate-limit input 256000 24000 48000 conform-action transmit exceed-action drop" Cisco-AVPair += "lcp:interface-config#0=rate-limit input 512000 24000 48000 conform-action transmit exceed-action drop" Cisco-AVPair += "lcp:interface-config#1=no rate-limit output 256000 24000 48000 conform-action transmit exceed-action drop" Cisco-AVPair += "lcp:interface-config#1=rate-limit output 512000 24000 48000 conform-action transmit exceed-action drop" где 172.10.10.19 - IP адрес который был назначен клиенту (пользователю). Всё работает Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 12 февраля, 2012 · Жалоба Мои СоА пакеты: User-Name = "user11" Cisco-Account-Info = "S10.128.2.109" Cisco-AVPair += "subscriber:command=activate-service" Cisco-Avpair += "subscriber:service-name=l4rdr" таким образом активирую сервис l4rdr для логина user11 и ИП - 10.128.2.109 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dgoni_sp Опубликовано 19 февраля, 2012 · Жалоба Мои СоА пакеты: ... Не подскажешь насчёт CoA Account-Logon ? Моя кошка получает данный пакет и сразу отвечает СоА-АСК, без аутентификации пользователь ? Подробности в тут http://forum.nag.ru/forum/index.php?showtopic=45688&st=0. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Дегтярев Илья Опубликовано 19 февраля, 2012 · Жалоба Моя кошка получает данный пакет и сразу отвечает СоА-АСК, без аутентификации пользователь ? Наверное потому, что сессия уже аутентифицирована? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dgoni_sp Опубликовано 19 февраля, 2012 · Жалоба Моя кошка получает данный пакет и сразу отвечает СоА-АСК, без аутентификации пользователь ? Наверное потому, что сессия уже аутентифицирована? Сам склоняюсь к тому же но думал, что что для Account-Logon железно, как правило, что при получении CoA Account-Logon циска пытается аутентифицировать пользователя. У меня следующая схема: - клиенты подключаются по PPPoE, на Virtual-Template прописанно: interface Virtual-Template1 description --- TEMPLATE for PPPoE CLIENTS --- ip address 172.10.10.1 255.255.255.0 no peer default ip address ppp authentication pap PPPoE ppp authorization PPPoE service-policy type control MY_PPPoE_RULE Без: ppp authentication pap PPPoE ppp authorization PPPoE сессия не поднимается, но те же самые процедуры указаны в правиле My_PPPoE_RULE для события session-start policy-map type control MY_PPPoE_RULE class type control always event session-start 10 authenticate aaa list PPPoE 20 authorize aaa list PPPoE password cisco identifier nas-port 30 service-policy type service name UNAUTHOR 40 service-policy type service aaa list SERVICE-LOCAL name L4REDIRECT 50 set-timer SET-TIMER 5 ! Задумка следующая, - монтажники подключают абонента, в подключении PPPoE вводят Login и Password из Акта на подключение. - циска получает запрос и отправляет Access-Request на RADIUS для аутентификации - если абонент с такими login Password есть, RADIUS отправляет Access-Accept - далее циска авторизирует абонента, отправляет Access-Request где User-Name это пот Nas-Port (для каждого абонента значение порта уникально) - т.к. абонент новый значений порта Nas в БД нет, поэтому RADIUS отправляет Access-Reject. - циска после получения Access-Reject загружает сервис UNAUTHOR, чтобы клиент сначала просто подключился (присвоился IP адрес) - далее кошка активизирует сервис L4REDIRECT, для перенаправления клиента на портал - ну и запускается таймер на 5 минут - клиент входит на портал вводит свои Login и Password, нажимает Ок. Вот тут я и хотел использовать событие Account-Logon (как положенно), чтобы сначалf аутентифицировать абонента (просто проверить что данные ведены корректно). Если всё ок, то в профиле абонента в БД вставляется значение пота NAS (т.е. портал нужен просто для связи абонента с конкретным значением порта NAS). Теперь решил, что аутентифицировать клиента, отправлять CoA-Request Accoun_logon в моём случае, как масло масленым, поэтому после ввода на портале login и Password не буду отправлять Account-Logon, просто сделаю локальную проверку на портале, если данные кверные, запросить инфу о сессии у циски, используя CoA-Request subscriber:command=account-profile-status-query, распарсить ответ и значение порта NAS занести в профиль абонента. Но вот с Account-Logoff так особо и не понял зачем он нужен. Некоторые советуют использовать PoD для завершения сессии, но вот зачем это делать... Как понимаю событие Accoun-Logoff - это когда абонента на портале нажал "Выйти", т.е. он просто выход с портала и начинает просмотр Web страниц в Инете, зачем сессию обрывать ?... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
drovorub Опубликовано 20 февраля, 2012 · Жалоба Account-Logoff нужен чтоб обрывать сессию со стороны RADIUS, в случае если абонент не заплатил за следующий месяц например. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Macro Опубликовано 20 февраля, 2012 · Жалоба В том месте где я использую СоА Account-Logon делаю так: User-Name = "username" Cisco-AVPair = "subscriber:password=userpass" Cisco-AVPair = "subscriber:command=account-logon" Cisco-Account-Info = "S9.9.9.9" На циске: aaa authentication login ISG-AAA group RADIUS-SERVER aaa authorization network ISG-AAA group RADIUS-SERVER policy-map type control ISG-SESSION class type control always event account-logon 10 authenticate aaa list ISG-AAA Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dgoni_sp Опубликовано 21 февраля, 2012 · Жалоба Попробовал всё то же 00:11:31: RADIUS: COA received from id 23 192.168.186.128:32881, CoA Request, len 121 00:11:31: COA: 192.168.186.128 request queued 00:11:31: RADIUS: authenticator 81 B2 E3 BE 98 F6 1D E7 - DE 59 A9 D4 DC EC E8 E5 00:11:31: RADIUS: User-Name [1] 7 "poe02" 00:11:31: RADIUS: Vendor, Cisco [26] 33 00:11:31: RADIUS: Cisco AVpair [1] 27 "subscriber:password=poe02" 00:11:31: RADIUS: Vendor, Cisco [26] 40 00:11:31: RADIUS: Cisco AVpair [1] 34 "subscriber:command=account-logon" 00:11:31: RADIUS: Vendor, Cisco [26] 21 00:11:31: RADIUS: ssg-account-info [250] 15 "S172.10.10.10" 00:11:31: ++++++ CoA Attribute List ++++++ 00:11:31: 63FBFCFC 0 00000009 username(386) 5 poe02 00:11:31: 63FBFBC4 0 00000009 password(274) 5 <opaque value> 00:11:31: 63FBFBD4 0 00000009 ssg-account-info(418) 13 S172.10.10.10 00:11:31: 63FBFBE4 0 00000009 ssg-command-code(420) 6 01 70 6F 65 30 32 00:11:31: 00:11:31: RADIUS/ENCODE(0000000D):Orig. component type = PPoE 00:11:31: RADIUS/ENCODE: Skip encoding 0 length AAA attribute formatted-clid 00:11:31: RADIUS(0000000D): sending 00:11:31: RADIUS(0000000D): Send CoA Ack Response to 192.168.186.128:32881 id 23, len 82 00:11:31: RADIUS: authenticator 75 22 7C 5D BD 22 07 08 - DB E7 EF 53 CB 1C B8 72 00:11:31: RADIUS: Vendor, Cisco [26] 14 00:11:31: RADIUS: ssg-command-code [252] 8 00:11:31: RADIUS: 01 70 6F 65 30 32 [Account-Log-On poe02] 00:11:31: RADIUS: Vendor, Cisco [26] 27 00:11:31: RADIUS: ssg-account-info [250] 21 "$IVirtual-Access1.1" 00:11:31: RADIUS: Vendor, Cisco [26] 21 00:11:31: RADIUS: ssg-account-info [250] 15 "S172.10.10.10" Router-GW-7206VXR# Видимо люди правы, что при событии Account-logon, циска сначала смотрит на статус пользователя, если он Auth, она сразу отвечает CoA-Ack, если он в Noauth, то запрашивает начинает действовать согласно правилу с событием Account-logon Account-Logoff нужен чтоб обрывать сессию со стороны RADIUS, в случае если абонент не заплатил за следующий месяц например. Ок спасибо,т.е. это типо CoA Dissconnect ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dgoni_sp Опубликовано 21 февраля, 2012 · Жалоба Наступил на другие грабли, т.к. у меня пользователь до момента регистрации на портале уже находится в состоянии Auth, таймер которой запускается в правиле class type control always event session-start 10 authenticate aaa list PPPoE 20 authorize aaa list PPPoE password cisco identifier nas-port 30 service-policy type service name UNAUTHOR 40 service-policy type service aaa list SERVICE-LOCAL name L4REDIRECT 50 set-timer SET-TIMER 5 будит тупо рубить все сессии, даже если клиент успешно зарегистрировался, т.к. обычно правило для события timed-policy-expiry создают с использованием class-map с проверкой состояния, и только в случае если клиент находиться в noauth и таймер отработал, срабатывает правило ! class-map type control match-all STATUS-USER-UNAUTH match authen-status unauthenticated ! ! class type control STATUS-USER-UNAUTH event timed-policy-expiry 10 service disconnect ! Видимо придёться тупо при активации сервиса L4REDIRECT посылать с RADIUSа параметр Idle-Timeout, соответственно если клиент успешно авторизовался его убивать на циске, вот только как... пытался послать Idle-Timeout = 0, вроде и не отрубает, но в деталях сессии висит. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...