ISG ile radius COA kullanmak

IOS XE için radius COA açıklaması:

http://www.cisco.com/en/US/docs/ios/ios_xe/isg/coa/guide/xe-3sg/isg-coa.html

Cisco Support Forum’dan yararlı bir link :

https://supportforums.cisco.com/document/64681/using-coa-change-authorization-access-and-bng-platforms

 

COA ile ISG üzerindeki bir session hakkında bilgil alınabilir (kullanıcı adı, hangi servisler kullanılıyor, kullanım istatistikleri vs. gibi) Ayrıca o session disconnect edilebilir, başka bir servis uygulanabilir veya kaldırılabilir.

COA ile ISG üzerindeki bir session’ı hedef almak için aşağıdaki yöntemlerden biri veya hepsi kullanılabilir;

  • Kullanıcının ip adresi var ise vrf bilgisi : Kullanıcı ip adresi Ciso-Account-Info AVP içinde kullanılabilir (Cisco-Account-Info=”S193.192.1689.1.1″, kullanıcı bir vrf kullanıcısı ise vrf ismide belirtilmeli Cisco-Account-Info=”S193.192.1689.1.1:vrf-id=INTERNET”).
  • PBHK kullanılıyor ise ISG ip adresi ve PBHK kullanılabilir : Kullanıcı PBHK belirteci ve ISG adresi kullanılarak Ciso-Account-Info AVP Cisco-Account-Info=”SISG_RADIUS_IP_ADDRESS:Kullanıcı_PBHK“)
  • Kullanıcı Account-Sessoin-Id :

Kullanıcı ip adresi ve Account-Session-Id kullanımında bazı zorluklar vardır. Bu bilgilerin session tablosundan, veya accounting tablosundan alınması gerekir. Aynı zamanda COA isteğini göndermek için kullanıcı session hangi ISG’de olduğunu bilmek gerekir. Dolayısı ile bu bilgininde alınması gerekir.

Kullanıcı ve portal arasındaki ilişki PBHK kullanılarak daha sağlıklı sağlanabilir. Bağlantı kullanıcı tarafından başlatılacağı için kullanıcı session’ı PBHK kullanılarak hedeflenebilir.

Fakat OSS sistemlerinde kullanıcı tarafından başlatılmayan, session active veya deactive (borç dolayı erişimi kesme vs gibi işlemlerde) bu bilgilerin bir eşleştirme tablosundan alınması gerekir. Kullanıcının hangi ISG bağlı olduğu bilgiside alınmalıdır ki o kullanıcı için hangi ISG ile iletişime geçileceğinin bulunur. Bu bilgi bir session tablosu tutalarak yapılabilir veya kullanıcılar çok dinamik olarak yer değiştirmiyor ise, XDSL veya FTTG kullanıcılar gibi, kullanıcı veri tabanına ISG bilgisi yazılır ve accoutning kayıtlarından periyodik olarak güncellenir. Fakat wireless gibi dinamik kullanıcılarda ISG sabit olmaz dolayısı ile bir session tablosuna ihtiyaç vardır. Wireless kullanıcılar içinde kota kullanımı veya süre bazlı koto kullanımıda, kullanıcı session için, portal session başlatmasa bile periyodik olarak OSS sistemleri ile iletişime geçilmesini sağlanabilir.

Ben testlerde linux üzerinde çalışan radpwtst komutunu kullandım.

ISG Radius COA arayüzü yapılandırması :

!
aaa server radius dynamic-author
client z.z.z.z server-key xxx
client d.d.d.d vrf INTERNET server-key xxx
port ttt
!

Session Query : Session hakkında bilgi almak için;

 

PBHK ile : radpwtst -s ISG_RADIUS_IP_ADDRESS -secret xxxx -noauth -noacct -code Change-Filter-Request -trace 4 Cisco-Account-Info=”SISG_RADIUS_IP_ADDRESS :PBHK” Cisco-Command-Code=”\004 &”

VRF içindeki bir kullanıcı ve kullanıcı ip adresini kullanarak :

radpwtst -s ISG_RADIUS_IP_ADDRESS -secret xxxx -noauth -noacct -code Change-Filter-Request -trace 4 Cisco-Account-Info=”SSUBSCRIBER_IP_ADDRESS:vrf-id=VRF_NAME

radpwtst -s ISG_RADIUS_IP_ADDRESS -secret xxxx -noauth -noacct -code Change-Filter-Request -trace 4 Cisco-Account-Info=”SSUBSCRIBER_IP_ADDRESS

 

Service-Activate :

PBHK  ile : radpwtst -s ISG_RADIUS_IP_ADDRESS -secret xxxx -noauth -noacct -code Change-Filter-Request -trace 4 Cisco-Account-Info=”SISG_RADIUS_IP_ADDRESS :PBHK” “Cisco-Command-Code=”\013SERVICE_NAME

Service-Deactivate :

PBHK  ile : radpwtst -s ISG_RADIUS_IP_ADDRESS -secret xxxx -noauth -noacct -code Change-Filter-Request -trace 4 Cisco-Account-Info=”SISG_RADIUS_IP_ADDRESS :PBHK” “Cisco-Command-Code=”\014SERVICE_NAME

Disconnect :

radpwtst -s ISG_RADIUS_IP_ADDRESS -secret xxxx -noauth -noacct -code Disconnect-Request -trace 4 User-Name=testuser@domain.com