Jump to content
Калькуляторы

дублированный аккаунтинг по ISG сессиям

Коллеги, столкнулся с непонятной проблемой...

Есть 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 by SERAPHIM

Share this post


Link to post
Share on other sites

4D00000000036DCA - это препейд аккаунтинг, а 4D00000000036DCB - это просто аккаунтинг того же самого сервиса. если он не нужен, то лучше убрать aaa accounting network default, а там где аккаунтинг будет нужен, прописывать явно нужный метод. если есть QoS, то и по нему в ISG может аккаунтинг слаться, используя дефолтный метод. поэтому по одному и тому же сервису его может приходить много, но он разный немножко.

Edited by Bambuk

Share this post


Link to post
Share on other sites

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 отдельное спасибо за наводку на верную мысль...

 

 

 

 

 

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

в принципе да, это как оказалось, фича....

посмотрел поподробнее логи радиуса и понял, отчего в отчетах не всегда сессии были дублированы:

оба сервиса для интернета (до препейда и после) отдавались с одним Acct-Session-Id, в результате чего радиус при записи в SQL обламывался на дупах, и записывал только одну сессию.

Всем спасибо.

Share this post


Link to post
Share on other sites
Для меня до сих пор остается непонятным тот факт, что при наличии 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 из списка активных.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this