tsolodov Опубликовано 7 февраля, 2011 · Жалоба Добрый всем день, не бете сразу, уже много раз читал гугл и тому подобные сервисы про сабж. Есть пара вопросов: 1) http://www.cisco.com/en/US/docs/ios/ios_xe....html#wp1058724 RADIUS Attributes 250 and 252 RADIUS uses attribute 250 in Access-Accept messages and attribute 252 in CoA messages to activate and deactivate parameterized services. ISG services are configured locally on the ISG device; RADIUS sends only the service name. Attributes 250 and 252 have the following syntax for service activation: Access-Accept Messages 250 "Aservice(parameter1=value,parameter2=value,...)" CoA Messages 252 0b "service(parameter1=value,parameter2=value,...)" RADIUS uses only Attribute 252 in a CoA message when deactivating a service. RADIUS sends the same information in Attribute 252 that was used for service activation, except that service deactivation uses 0c in the syntax instead of the 0b parameter used for service activation. Как я понял то можно создать один сервис и к каждому пользователю привесить атрибут со свим параметром(например скорость полисинга) Сейчас у меня: 10.91.0.101 Password := "cisco" Cisco-Account-Info += "AWORLD2", Cisco-AVPair += "accounting-list=Account" Все прекрасно работает, но было бы круто податвлять для каждого абона свою скокрость, чтобы не плодить сервисы. Кто может дать рабочий пример или ссылку на адекватную доку? 2) Пытаюсь отладить CoA, но не получается даже статус чела узнать. ISG#sh sss session Current Subscriber Information: Total sessions 1 Uniq ID Interface State Service Identifier Up-time 1 IP authen Local Term 10.91.0.101 00:47:27 Вот что выдает команда[root@radius-new ~]# echo "User-Name=\"10.91.0.101\",Cisco-Account-Info=S10.91.0.101,Cisco-AVPair=\"subscriber:command=account-status-query\"" | radclient -x pogran-3:1700 coa ciscoSending CoA-Request of id 24 to 194.190.176.198 port 1700 User-Name = "10.91.0.101" Cisco-Account-Info = "S10.91.0.101" Cisco-AVPair = "subscriber:command=account-status-query" rad_recv: CoA-NAK packet from host 194.190.176.198 port 1700, id=24, length=87 User-Name = "10.91.0.101" Cisco-Account-Info = "S10.91.0.101" Cisco-Command-Code = "\0040" Reply-Message = "No valid Session" Error-Cause = Session-Context-Not-Found Вот дебаг ISG#Feb 7 17:20:54.371: RADIUS: COA received from id 122 195.122.226.59:51497, CoA Request, len 100 Feb 7 17:20:54.371: COA: 195.122.226.59 request queued Feb 7 17:20:54.371: RADIUS: authenticator 98 7C E3 18 3F 5A 9F D3 - 00 3A 08 BF FE B6 5B 5C Feb 7 17:20:54.371: RADIUS: User-Name [1] 13 "10.91.0.101" Feb 7 17:20:54.371: RADIUS: Vendor, Cisco [26] 20 Feb 7 17:20:54.371: RADIUS: ssg-account-info [250] 14 "S10.91.0.101" Feb 7 17:20:54.371: RADIUS: Vendor, Cisco [26] 47 Feb 7 17:20:54.371: RADIUS: Cisco AVpair [1] 41 "subscriber:command=account-status-query" Feb 7 17:20:54.371: ++++++ CoA Attribute List ++++++ Feb 7 17:20:54.371: 3B86B320 0 00000009 username(432) 11 10.91.0.101 Feb 7 17:20:54.371: 3B86B248 0 00000009 ssg-account-info(468) 12 S10.91.0.101 Feb 7 17:20:54.371: 3B86B258 0 00000009 ssg-command-code(470) 13 04 20 31 30 2E 39 31 2E 30 2E 31 30 31 Feb 7 17:20:54.371: Feb 7 17:20:54.372: RADIUS/ENCODE(00000000):Orig. component type = Invalid Feb 7 17:20:54.372: RADIUS(00000000): sending Feb 7 17:20:54.372: RADIUS(00000000): Send CoA Nack Response to 195.122.226.59:51497 id 122, len 87 Feb 7 17:20:54.372: RADIUS: authenticator AC D4 05 4F 8A 4C 17 A1 - C0 0A D8 20 06 23 8B 2F Feb 7 17:20:54.372: RADIUS: User-Name [1] 13 "10.91.0.101" Feb 7 17:20:54.372: RADIUS: Vendor, Cisco [26] 20 Feb 7 17:20:54.372: RADIUS: ssg-account-info [250] 14 "S10.91.0.101" Feb 7 17:20:54.372: RADIUS: Vendor, Cisco [26] 10 Feb 7 17:20:54.372: RADIUS: ssg-command-code [252] 4 Feb 7 17:20:54.372: RADIUS: 04 30 [Account-Ping 0] Feb 7 17:20:54.372: RADIUS: Reply-Message [18] 18 Feb 7 17:20:54.372: RADIUS: 4E 6F 20 76 61 6C 69 64 20 53 65 73 73 69 6F 6E [ No valid Session] Feb 7 17:20:54.372: RADIUS: Dynamic-Author-Error[101] 6 Session Context Not Found [503] Помогите кто чем сможет )) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
triam Опубликовано 8 февраля, 2011 · Жалоба Вообщем чтобы не плодить сервисы с разной скоростью локально, надо сделать Policy-Server, который бы выдавал сервис с параметрами ограничения скорости. Чтобы работал CoA нужно 1) сконфигурить portbundle 2) добавить RADIUS-сервер в aaa server radius dynamic-author Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 8 февраля, 2011 · Жалоба Вообщем чтобы не плодить сервисы с разной скоростью локально, надо сделать Policy-Server, который бы выдавал сервис с параметрами ограничения скорости.Чтобы работал CoA нужно 1) сконфигурить portbundle 2) добавить RADIUS-сервер в aaa server radius dynamic-author ! aaa server radius dynamic-author client 1.1.1.1 server-key 7 121A0C041104 auth-type any ignore session-key ignore server-key ! Где 1.1.1.1 это IP адрес машины с которой я посылаю CoA запросы. Дело в том, что запрос Coa cisco принимает и отвечает на него [root@radius-new ~]# echo "User-Name=\"10.91.0.101\",Cisco-Account-Info=S10.91.0.101,Cisco-AVPair=\"subscriber:command=account-status-query\"" | radclient -x pogran-3:1700 coa сiscoSending CoA-Request of id 226 to 194.190.176.198 port 1700 User-Name = "10.91.0.101" Cisco-Account-Info = "S10.91.0.101" Cisco-AVPair = "subscriber:command=account-status-query" rad_recv: CoA-NAK packet from host 194.190.176.198 port 1700, id=226, length=87 User-Name = "10.91.0.101" Cisco-Account-Info = "S10.91.0.101" Cisco-Command-Code = "\0040" Reply-Message = "No valid Session" Error-Cause = Session-Context-Not-Found Да многие советуют включить этот самый portbundle, но зачем мне он если портала у нас нет(во всяком случае пока), да и в документации написано при coa запросе PBHK это необязательный параметр запроса, если кто обошелся без этого параметра, отпишите пожалуйста мне, не хочется городить то, без чего могу обойтись в данный момент. Чтобы не плодить сервисы локально можно сделать policy-server, что я впринципе и сделал, но беда в том, что сервисы множить буду уже не локально а в RADIUS. Кто и какую идеологию в данном случае использует? Например есть тариф, при которм после скачки допустим 30Гиг внешки, скорость должна падать до 256 Kbps. что получается, для одного тарифа нужно делать 2 сервиса(Скорость до исчерпания лимита и после)? Тут я вижу 2 варианта в нашей ситуайции: 1) Использовать функционал Prepaid с лимитами и при исчерпании лимита привешивать сервис со скоростью после падения(пока только в теории представляю как это сделать) 2) Сделать отдельный сервис для каждой скорости для uplod'a и downlod'a и просто менять атрибуты пользователя, изсходя из того, какую скорость "выдаст" наш биллинг, но при этом нужно будет делать обработчик, который будет отслеживать изменения атрибутов пользователей, и при этом обрабатывать эти изменения, запизивая их в RADIUS. И все таки, если кто пользовал параметрицеский QoS, отзовитесь!!!!! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 8 февраля, 2011 (изменено) · Жалоба По поводу CoA - у нас настройки такие же. Только команду с сервера немного по-другому пишем: echo 'User-Name="10.10.99.4",Cisco-Account-Info="S10.10.99.4",cisco-avpair="subscriber:command=account-status-query"' | /usr/local/bin/radclient -x asr:1700 coa coa Ответ возвращается корректный. Изменено 8 февраля, 2011 пользователем John_obn Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 8 февраля, 2011 · Жалоба По поводу CoA - у нас настройки такие же. Только команду с сервера немного по-другому пишем: echo 'User-Name="10.10.99.4",Cisco-Account-Info="S10.10.99.4",cisco-avpair="subscriber:command=account-status-query"' | /usr/local/bin/radclient -x asr:1700 coa coa Ответ возвращается корректный. Вы используете VRF на BRAS???? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
John_obn Опубликовано 8 февраля, 2011 · Жалоба На данный момент - нет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 8 февраля, 2011 · Жалоба При помощи коллеги из другого города удалось выяснить, что если запрос выдавать из того же vrf что и пользователь, то все проходит на ура!!! Описанная в документации cisco-avpair="ip:vrf-id=ISG" не помогает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 8 февраля, 2011 (изменено) · Жалоба Решение этой проблемы c CoA описал тут Изменено 8 февраля, 2011 пользователем tsolodov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 9 февраля, 2011 · Жалоба Кстати, решение проблемы плодения сервисов сейчас решаю следующим образом: радиус отдает атрибуты сервиса исходя из его названия, например если юзеру привешен сервис WORLD-1M-512K, то он отдаст атрибуты что на дуунлод скорость 1M, аплод 512Kb. И не надо плодить 10000000000 сервисов вот.)))) Решение опишу позже. пс так кто извращался еще ктоме меня???Интересуют другие схемы..... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zzeka Опубликовано 10 февраля, 2011 · Жалоба У нас для идентификации сессии при отправке CoA используется только Acct-Session-Id, правда платформа С7201. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
bokl Опубликовано 11 февраля, 2011 · Жалоба Кстати, решение проблемы плодения сервисов сейчас решаю следующим образом:радиус отдает атрибуты сервиса исходя из его названия, например если юзеру привешен сервис WORLD-1M-512K, то он отдаст атрибуты что на дуунлод скорость 1M, аплод 512Kb. И не надо плодить 10000000000 сервисов вот.)))) Решение опишу позже. пс так кто извращался еще ктоме меня???Интересуют другие схемы..... Расскажи пожадуйста как ты делал это? Сейчас возникла такая проблема. Не хочется создавать 1000 сервисов Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 16 февраля, 2011 (изменено) · Жалоба Кстати, решение проблемы плодения сервисов сейчас решаю следующим образом:радиус отдает атрибуты сервиса исходя из его названия, например если юзеру привешен сервис WORLD-1M-512K, то он отдаст атрибуты что на дуунлод скорость 1M, аплод 512Kb. И не надо плодить 10000000000 сервисов вот.)))) Решение опишу позже. пс так кто извращался еще ктоме меня???Интересуют другие схемы..... Расскажи пожадуйста как ты делал это? Сейчас возникла такая проблема. Не хочется создавать 1000 сервисов Вот тут расписал кратко, если будут вопросы, доработки, пиши) Изменено 16 февраля, 2011 пользователем tsolodov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 16 февраля, 2011 · Жалоба Кстати, сейчас дошел до проблемы: как разным задать различный роутинг юзерам чтобы не нагнуть asr? Идея в том, что у нас в сети используется NAT, некоторые пользователи хотят прямой IP, они получают BINAT, т.е. их траффик в данный момент заворачивается на определенный IP(NAT сервер с BINAT), те которые не имеют бината, идут по стандартному маршруту, вот. Ломаю голову как это сделать на ISG. Самое простое и не оптимальное решение (на мой взгляд)- policy-route, access-list(он здоровый) грузить на циску. Круто было бы размечать траффик таких юзеров по dscp и матчить его в полиси роутинге(чтобы избавиться от большого acces-list), но что то я не пойму как это сделать через радиус. У кого есть идеи, поделитесь! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alks Опубликовано 16 февраля, 2011 · Жалоба Самое простое и не оптимальное решение (на мой взгляд)- policy-route, access-list(он здоровый) грузить на циску. оригинальная мысль я еще проще сделал - через vrfы на самом ASR каждая сеть серая/белая в своем vrf Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 16 февраля, 2011 (изменено) · Жалоба Самое простое и не оптимальное решение (на мой взгляд)- policy-route, access-list(он здоровый) грузить на циску. оригинальная мысль я еще проще сделал - через vrfы на самом ASR каждая сеть серая/белая в своем vrf Можете подробнее описать что сделали?А то токае ощущение что мы друг друга не поняли)))) пс у нас так сейчас и обстоят дела. сеть 10,0,0,0/8 (vrf c серыми IP)-shaper(freebsd ничего не знает про vrf)-nat(linux ничего не знает про vrf)-global vrf просто в данный момент shaper переправляет на NAT сервер с binat, если у абонента подключена услуга определенная, а на том серваке есть правила что с ip 10.1.1.1 натить на 195.195.195.195 вот и все, если не подключена услуга то трафик отправляется на другой NAt, который занатит с рамдомного IP. Изменено 16 февраля, 2011 пользователем tsolodov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alks Опубликовано 16 февраля, 2011 · Жалоба ----- ip subscriber (vrf green) ------ NAT ----- ip subscriber (vrf red) ---- это парни с белыми адресами из ньансов portbundle интерфейс должен быть в GRT (иначе не работает) и соответственно нужна маршрутизация между vrf-grt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tsolodov Опубликовано 16 февраля, 2011 (изменено) · Жалоба ----- ip subscriber (vrf green) ------ NAT----- ip subscriber (vrf red) ---- это парни с белыми адресами из ньансов portbundle интерфейс должен быть в GRT (иначе не работает) и соответственно нужна маршрутизация между vrf-grt Это конечно логично, но: представьте себе что у нас у ВСЕХ серые IP которые обязательно проходят через NAT, вопрос через какой, обычные юзеры проходят через NAT который NATит их с определенного диапазона адресов. Другие юзеры имеют внешний IP через который натятся они. Разруливается это сейчас так: freebsd видит что юзер имеет закрепленный за ним IP и переправляет его на NAT который знает что его надо натить через его IP, если такого нет, то пакеты переправляются на другой NAT. Хотя возможно я не понимаю что вы имеете ввиду...... Изменено 16 февраля, 2011 пользователем tsolodov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...