Обрив сесії на CISCO AS5300
@ Задача: На CISCO AS 53000 (сервер доступу, з модемним пулом (цифровим)), треба обривати сесію для кліента у якого закінчилися гроші на рахунку.
-- вставка 1 --------кліент ідентифікується за
- unic id => clid, dnis, interface (з виводу #sh aaa users all)
- unic id => session id (з виводу #sh aaa sessions)
clid - хто дзвонить
dnis - куди дзвонить
Процес дозвону:
1) POTS-session. Кліент звонить на телефон доступу вводить пін-код, іде запит до Radius-сервера, перевірка екаунта, авторизація.
2) VoIP-session. Вводиться код країни, міста, телефон, іде розмова.
Так от, вимикати треба саме POTS-сесію.
----------- unic id => clid, dnis, interface (з виводу #sh aaa users all)
- unic id => session id (з виводу #sh aaa sessions)
clid - хто дзвонить
dnis - куди дзвонить
Процес дозвону:
1) POTS-session. Кліент звонить на телефон доступу вводить пін-код, іде запит до Radius-сервера, перевірка екаунта, авторизація.
2) VoIP-session. Вводиться код країни, міста, телефон, іде розмова.
Так от, вимикати треба саме POTS-сесію.
По телефону користувача чи пін-коду визначаємо ID сесії, що зависла з виводу команди #show aaa users all (див. також #sh aaa sessions). Далі існує декілька варіантів обриву:
- скрипт для раутера на TCL, що робить реавторизацію бази даних клієнтів (таким чином у кліентів з недостатньою кількістю грошей на рахунку сесія розривається);
- за допомогою snmp;
- через Radius POD (Packet of Disconnect).
В кінці-кінців вирішили робити через Radius POD, як самий красивий варіант. Але т.як багато матеріалу зібрано для SNMP варіанту, то подаю її тут. Нажаль це не було перевірено на практиці, тому слід відноситись до наступного матеріалу як до теоретичної інформації, а не як до нотаток вирішеної задачі.
@ Отже, обрив сесії за допомогою SNMP.
Обривати можна- aaa session
- відповідний інтерфейс shutdown і через декілька секунд no shutdown
1)MIBs.
Всі MIB-и від CISCO (Network Management Software):
http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
Всі MIB-и які підтримує CISCO AS53000:
ftp://ftp.cisco.com/pub/mibs/supportlists/as5300/as5300-supportlist.html
Для нашої проблеми суттєвими виявилися наступні:
- CISCO-AAA-SESSION (.iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoAAASessionMIB)
- стандартний rfc2863-IF-MIB (.iso.org.dod.internet.mgmt.mib-2.interfaces)
2) Варіант 1. Для того щоб дозволити вимикання ааа сесій через SNMP треба дозволити це робити на самому маршрутизаторі (для AS5300 див. Cisco AAA Server MIB and Additional Enhancements for the Cisco AS5300 and Cisco AS5800 Access Servers http://www.cisco.com/en/US/products/sw/iosswrel/ps1834/products_feature_guide09186a00800801b8.html#xtocid1001718).
Router# conf term
Router(config)# aaa session-mib disconnect
Далі .iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoAAASessionMIB.casnMIBObjects.casnActive.casnActiveTable.casnActiveEntry.casnDisconnect ставиться в 1 (одиничку).
Звичайно все це має робитись автоматично через певні скрипти, чи програми.
-- CISCO-AAA-SESSION --------
casnDisconnect OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"This object is used to terminate this session.
Setting the value to true(1) will initiate termination
of this session.
The entry will be removed once the session has completed
termination.
Once this object has been set to true(1), the session
termination process can not be cancelled by setting the
value false(2).
"
::= { casnActiveEntry 5 }
----------------------------
3) Варіант 2. Вимикання/вмикання певного інтерфейсу.
ifAdminStatus встановлюється в 2, потім в 1.
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifAdminStatus <=> .1.3.6.1.2.1.2.2.1.7
-- rfc2863-IF-MIB -------------
ifAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1),
down(2),
testing(3)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The desired state of the interface. The
testing(3) state indicates that no operational
packets can be passed."
::= { ifEntry 7 }
The desired state of the interface. The testing(3) state
indicates that no operational packets can be passed. When a
managed system initializes, all interfaces start with
ifAdminStatus in the down(2) state. As a result of either
explicit management action or per configuration information
retained by the managed system, ifAdminStatus is then
changed to either the up(1) or testing(3) states (or remains
in the down(2) state).
------------------------------
Viktor V. Chmel, 12/17/2003 01:01:00 PM.