SERAPHIM Posted March 13, 2009 Posted March 13, 2009 (edited) Коллеги, столкнулся с непонятной проблемой... Есть C10008 PRE3. IOS c10k3-k91p11-mz.122-33.SB Используется для ISG over PPPoE. При авторизации получается следующая ситуация: BRAS посылает на радиус два accounting-request пакета по сервису, через который раздается интернет. В результате имеет задублированную тарификацию... Такая ситуация наблюдается: а) только при prepaid-тарификации; б) перманентно: то есть для одного и того же пользователя в разные моменты времени может сработать нормально (то есть один accounting per service), а может и задублироваться... дебаг с BRAS'а: 57560262: 29w5d: RADIUS(000192F2): Send Access-Request to RADIUS-IP:1645 id 1645/37, len 185 57560263: 29w5d: RADIUS: authenticator 1E D0 22 A8 3A 17 03 D1 - 69 6D BB 7F 0C 3A 30 D0 57560264: 29w5d: RADIUS: User-Name [1] 11 "000001473" 57560265: 29w5d: RADIUS: User-Password [2] 18 * 57560266: 29w5d: RADIUS: Vendor, Cisco [26] 13 57560267: 29w5d: RADIUS: ssg-service-info [251] 7 "NTEST" 57560268: 29w5d: RADIUS: Framed-Protocol [7] 6 PPP [1] 57560269: 29w5d: RADIUS: Framed-IP-Address [8] 6 CLIENT-IP 57560270: 29w5d: RADIUS: NAS-Port-Type [61] 6 Virtual [5] 57560271: 29w5d: RADIUS: NAS-Port [5] 6 0 57560272: 29w5d: RADIUS: NAS-Port-Id [87] 10 "1/0/0/41" 57560273: 29w5d: RADIUS: Connect-Info [77] 12 "GlobalInet" 57560274: 29w5d: RADIUS: Vendor, Cisco [26] 41 57560275: 29w5d: RADIUS: Cisco AVpair [1] 35 "client-mac-address=001f.2989.e29e" 57560276: 29w5d: RADIUS: Service-Type [6] 6 Framed [2] 57560277: 29w5d: RADIUS: NAS-IP-Address [4] 6 NAS-IP 57560278: 29w5d: RADIUS: Acct-Session-Id [44] 18 "4D00000000036DCA" 57560279: 29w5d: RADIUS: Event-Timestamp [55] 6 1236968460 57560280: 29w5d: RADIUS(000192F2): Send Accounting-Request to RADIUS-IP:1646 id 1646/14, len 241 57560281: 29w5d: RADIUS: authenticator C1 FA 1B A8 59 B1 2B D5 - 48 A8 2A BB AF 37 87 64 57560282: 29w5d: RADIUS: Acct-Session-Id [44] 18 "4D00000000036DCC" 57560283: 29w5d: RADIUS: Framed-Protocol [7] 6 PPP [1] 57560284: 29w5d: RADIUS: Vendor, Cisco [26] 14 57560285: 29w5d: RADIUS: ssg-service-info [251] 8 "NLOCAL" 57560286: 29w5d: RADIUS: Vendor, Cisco [26] 42 57560287: 29w5d: RADIUS: Cisco AVpair [1] 36 "parent-session-id=4D00000000036DC9" 57560288: 29w5d: RADIUS: Framed-IP-Address [8] 6 CLIENT-IP 57560289: 29w5d: RADIUS: User-Name [1] 11 "000001473" 57560290: 29w5d: RADIUS: Acct-Status-Type [40] 6 Start [1] 57560291: 29w5d: RADIUS: NAS-Port-Type [61] 6 Virtual [5] 57560292: 29w5d: RADIUS: NAS-Port [5] 6 0 57560293: 29w5d: RADIUS: NAS-Port-Id [87] 10 "1/0/0/41" 57560294: 29w5d: RADIUS: Connect-Info [77] 12 "GlobalInet" 57560295: 29w5d: RADIUS: Vendor, Cisco [26] 41 57560296: 29w5d: RADIUS: Cisco AVpair [1] 35 "client-mac-address=001f.2989.e29e" 57560297: 29w5d: RADIUS: Service-Type [6] 6 Framed [2] 57560298: 29w5d: RADIUS: NAS-IP-Address [4] 6 NAS-IP 57560299: 29w5d: RADIUS: Event-Timestamp [55] 6 1236968460 57560300: 29w5d: RADIUS: Nas-Identifier [32] 19 "BRAS" 57560301: 29w5d: RADIUS: Acct-Delay-Time [41] 6 0 57560302: 29w5d: RADIUS(000192F2): Send Accounting-Request to RADIUS-IP:1646 id 1646/15, len 240 57560303: 29w5d: RADIUS: authenticator E2 AB 99 7E 0C C6 77 09 - A2 F2 B5 F8 77 A4 08 A2 57560304: 29w5d: RADIUS: Acct-Session-Id [44] 18 "4D00000000036DCB" 57560305: 29w5d: RADIUS: Framed-Protocol [7] 6 PPP [1] 57560306: 29w5d: RADIUS: Vendor, Cisco [26] 13 57560307: 29w5d: RADIUS: ssg-service-info [251] 7 "NTEST" 57560308: 29w5d: RADIUS: Vendor, Cisco [26] 42 57560309: 29w5d: RADIUS: Cisco AVpair [1] 36 "parent-session-id=4D00000000036DC9" 57560310: 29w5d: RADIUS: Framed-IP-Address [8] 6 CLIENT-IP 57560311: 29w5d: RADIUS: User-Name [1] 11 "000001473" 57560312: 29w5d: RADIUS: Acct-Status-Type [40] 6 Start [1] 57560313: 29w5d: RADIUS: NAS-Port-Type [61] 6 Virtual [5] 57560314: 29w5d: RADIUS: NAS-Port [5] 6 0 57560315: 29w5d: RADIUS: NAS-Port-Id [87] 10 "1/0/0/41" 57560316: 29w5d: RADIUS: Connect-Info [77] 12 "GlobalInet" 57560317: 29w5d: RADIUS: Vendor, Cisco [26] 41 57560318: 29w5d: RADIUS: Cisco AVpair [1] 35 "client-mac-address=001f.2989.e29e" 57560319: 29w5d: RADIUS: Service-Type [6] 6 Framed [2] 57560320: 29w5d: RADIUS: NAS-IP-Address [4] 6 NAS-IP 57560321: 29w5d: RADIUS: Event-Timestamp [55] 6 1236968460 57560322: 29w5d: RADIUS: Nas-Identifier [32] 19 "BRAS" 57560323: 29w5d: RADIUS: Acct-Delay-Time [41] 6 0 57560324: 29w5d: RADIUS: Received from id 1645/37 RADIUS-IP:1645, Access-Accept, len 44 57560325: 29w5d: RADIUS: authenticator 7B 5B 8F 95 75 34 CC 4D - 31 FC BB 6B 58 B0 25 7B 57560326: 29w5d: RADIUS: Session-Timeout [27] 6 86400 57560327: 29w5d: RADIUS: Vendor, Cisco [26] 18 57560328: 29w5d: RADIUS: ssg-control-info [253] 12 "QV10239999" 57560329: 29w5d: RADIUS(000192F2): Received from id 1645/37 57560330: 29w5d: SSS MGR [uid:323]: Got reply Apply Config from PM 57560331: 29w5d: SSS MGR [uid:323]: Successfully applied policy config 57560332: 29w5d: SSS MGR [uid:323]: Handling Update Service action 57560333: 29w5d: SSS MGR [uid:323]: Update: segment 715575, owner 184550433 57560334: 29w5d: SSS MGR [uid:323]: Per-user config 4B00076B 57560335: 29w5d: SSS LTERM [uid:323]: Switching session updated 57560336: 29w5d: SSS MGR [uid:323]: Handling Updating Service, Features Applied action 57560337: 29w5d: AAA/ID(000192F2): Resetting disconnect cause 57560338: 29w5d: RADIUS/ENCODE(000192F2):Orig. component type = PPoE 57560339: 29w5d: RADIUS(000192F2): Config NAS IP: NAS-IP 57560340: 29w5d: RADIUS(000192F2): Config NAS IP: NAS-IP 57560341: 29w5d: RADIUS(000192F2): sending 57560342: 29w5d: RADIUS(000192F2): Send Accounting-Request to RADIUS-IP:1646 id 1646/16, len 240 57560343: 29w5d: RADIUS: authenticator 9E 20 38 DC C7 F7 AA 74 - B1 4F BB 7B 10 C3 E5 85 57560344: 29w5d: RADIUS: Acct-Session-Id [44] 18 "4D00000000036DCA" 57560345: 29w5d: RADIUS: Vendor, Cisco [26] 13 57560346: 29w5d: RADIUS: ssg-service-info [251] 7 "NTEST" 57560347: 29w5d: RADIUS: User-Name [1] 11 "000001473" 57560348: 29w5d: RADIUS: Framed-Protocol [7] 6 PPP [1] 57560349: 29w5d: RADIUS: Framed-IP-Address [8] 6 CLIENT-IP 57560350: 29w5d: RADIUS: Vendor, Cisco [26] 42 57560351: 29w5d: RADIUS: Cisco AVpair [1] 36 "parent-session-id=4D00000000036DC9" 57560352: 29w5d: RADIUS: Acct-Status-Type [40] 6 Start [1] 57560353: 29w5d: RADIUS: NAS-Port-Type [61] 6 Virtual [5] 57560354: 29w5d: RADIUS: NAS-Port [5] 6 0 57560355: 29w5d: RADIUS: NAS-Port-Id [87] 10 "1/0/0/41" 57560356: 29w5d: RADIUS: Connect-Info [77] 12 "GlobalInet" 57560357: 29w5d: RADIUS: Vendor, Cisco [26] 41 57560358: 29w5d: RADIUS: Cisco AVpair [1] 35 "client-mac-address=001f.2989.e29e" 57560359: 29w5d: RADIUS: Service-Type [6] 6 Framed [2] 57560360: 29w5d: RADIUS: NAS-IP-Address [4] 6 NAS-IP 57560361: 29w5d: RADIUS: Event-Timestamp [55] 6 1236968460 57560362: 29w5d: RADIUS: Nas-Identifier [32] 19 "BRAS" 57560363: 29w5d: RADIUS: Acct-Delay-Time [41] 6 0 57560364: 29w5d: RADIUS: Received from id 1646/16 RADIUS-IP:1646, Accounting-response, len 20 57560365: 29w5d: RADIUS: authenticator 24 CB 7B 8C 0F 00 53 F3 - C0 FF 9E 96 90 6C AC 69 57560366: 29w5d: RADIUS: Received from id 1646/14 RADIUS-IP:1646, Accounting-response, len 20 57560367: 29w5d: RADIUS: authenticator 47 E4 B7 47 75 2A D7 4D - B7 BA 40 FF 22 F9 2E 2F 57560368: 29w5d: RADIUS: Received from id 1646/15 RADIUS-IP:1646, Accounting-response, len 20 57560369: 29w5d: RADIUS: authenticator 4D D4 25 CD ED 30 62 9C - B8 01 38 F2 C7 C3 69 B9 prepaid-config subscriber feature prepaid pppoe-prepaid threshold time 60 seconds threshold volume 2 Mbytes interim-interval 1 minutes method-list author prep-author method-list accounting prep-account password cisco Часть конфига, отвечающая за service-start policy-map type control ISG_PPPOE class type control always event service-start 10 service-policy type service identifier service-name Сервисы: TEST Service-Type: Outbound-User Cisco-Service-Info: AP Cisco-Service-Info: MC Cisco-Service-Info: R0.0.0.0;0.0.0.0 Cisco-Service-Info: QU;20480000;3840000;7680000;D;20480000;3840000;7680000 Acct-Interim-Interval: 60 Cisco-AVPair: subscriber:accounting-list=BM Cisco-AVPair: ip:traffic-class=in default drop Cisco-AVPair: ip:traffic-class=out default drop Cisco-AVPair: ip:traffic-class=in access-group 102 priority 50 Cisco-AVPair: ip:traffic-class=out access-group 102 priority 50 Cisco-AVPair: prepaid-config=pppoe-prepaid LOCAL Service-Type: Outbound-User Cisco-Service-Info: MC Acct-Interim-Interval: 60 Cisco-AVPair: ip:traffic-class=in default drop Cisco-AVPair: ip:traffic-class=out default drop Cisco-AVPair: ip:traffic-class=in access-group 100 priority 10 Cisco-AVPair: ip:traffic-class=out access-group 100 priority 10 Даже представить не могу, куда копать... Edited March 13, 2009 by SERAPHIM Вставить ник Quote
Bambuk Posted March 14, 2009 Posted March 14, 2009 (edited) 4D00000000036DCA - это препейд аккаунтинг, а 4D00000000036DCB - это просто аккаунтинг того же самого сервиса. если он не нужен, то лучше убрать aaa accounting network default, а там где аккаунтинг будет нужен, прописывать явно нужный метод. если есть QoS, то и по нему в ISG может аккаунтинг слаться, используя дефолтный метод. поэтому по одному и тому же сервису его может приходить много, но он разный немножко. Edited March 14, 2009 by Bambuk Вставить ник Quote
SERAPHIM Posted March 14, 2009 Author Posted March 14, 2009 aaa accounting network default в конфиге БРАСа отродясь не было... После вашего поста попробовал убрать из описания сервиса Cisco-AVPair: subscriber:accounting-list=BM Костыль конечно, но вроде как работает: аккаунтинг-реквест по сервису посылается только после того, как придет access-accept по препейд. Посмотрим за воскресенье статистику при такой работе. Для меня до сих пор остается непонятным тот факт, что при наличии Cisco-AVPair: subscriber:accounting-list=LIST в описании сервиса сразу посылается отдельный аккаунтинг по сервису в независимости от того, пришел access-accept по препейду или access-reject. Если приходит реджект - пользователь сервиса все-равно не получает... а при акцепте получает дублированный трафик... Вот сижу и думаю: это баг или все-таки фича?... P.S. Bambuk отдельное спасибо за наводку на верную мысль... Вставить ник Quote
sirmax Posted March 15, 2009 Posted March 15, 2009 aaa accounting network default в конфиге БРАСа отродясь не было...После вашего поста попробовал убрать из описания сервиса Cisco-AVPair: subscriber:accounting-list=BM Костыль конечно, но вроде как работает: аккаунтинг-реквест по сервису посылается только после того, как придет access-accept по препейд. Посмотрим за воскресенье статистику при такой работе. Для меня до сих пор остается непонятным тот факт, что при наличии Cisco-AVPair: subscriber:accounting-list=LIST в описании сервиса сразу посылается отдельный аккаунтинг по сервису в независимости от того, пришел access-accept по препейду или access-reject. Если приходит реджект - пользователь сервиса все-равно не получает... а при акцепте получает дублированный трафик... Вот сижу и думаю: это баг или все-таки фича?... P.S. Bambuk отдельное спасибо за наводку на верную мысль... Думаю что фича, если я правильно уловил... Например у Вас есть 2 сервиса и считать их нужно отдельно. Я тестировал ISG но в продакшн оно еще не запущено, у меня с аккаунтингом вышло вот что http://wiki.sirmax.noname.com.ua/index.php/ISG-Accounting Вставить ник Quote
SERAPHIM Posted March 15, 2009 Author Posted March 15, 2009 в принципе да, это как оказалось, фича.... посмотрел поподробнее логи радиуса и понял, отчего в отчетах не всегда сессии были дублированы: оба сервиса для интернета (до препейда и после) отдавались с одним Acct-Session-Id, в результате чего радиус при записи в SQL обламывался на дупах, и записывал только одну сессию. Всем спасибо. Вставить ник Quote
Bambuk Posted March 15, 2009 Posted March 15, 2009 Для меня до сих пор остается непонятным тот факт, что при наличии Cisco-AVPair: subscriber:accounting-list=LIST в описании сервиса сразу посылается отдельный аккаунтинг по сервису в независимости от того, пришел access-accept по препейду или access-reject.Если приходит реджект - пользователь сервиса все-равно не получает... а при акцепте получает дублированный трафик... Вот сижу и думаю: это баг или все-таки фича?... Это два разных аккаунтинга. Если используется препейд, то нужно юзать тот аккаунтинг, в котором Acct-Session-Id равен Acct-Session-Id, который был в access-request по соответствующему сервису. По хорошему обработку препейд аккаунтинга надо делать так: -приходит запрос на авторизацию сервиса, запоминаем Acct-Session-Id из него. -приходящий аккаунтинг проверяем по имеющимся Acct-Session-Id, которые авторизовали. если Acct-Session-Id не нашли, то ругаемся на него и не обрабатываем. -если пришел Stop, то удаляем Acct-Session-Id из списка активных. Вставить ник 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.