URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 13416
[ Назад ]

Исходное сообщение
"Reject залипших сесий на ACS-сервере"

Отправлено Harrsh , 25-Апр-07 11:27 
Собрана такая схема:
Несколько маршрутизаторов (все Cisco) прикручены по tacacs+ к Cisco Secure ACS Server.
На этих маршрутизаторах висят пользователи на выделенках и по диалапу. Сессии обычно очень долгие - по несколько суток.
В случае некорректной перезагрузки маршрутизатора (например, отключение питания) стоповые записи на ACS-сервер не приходят, и ACS считает, что пользователи в коннекте. Т.е. при попытке повторного коннекта он режектит запросы, поскольку каждому пользователю разрешена только одна сессия.
Попытался побороть это следующим образом:
1. На ACS-сервере включил галку "Single Connect TACACS+ AAA Client" для всех маршрутизаторов. Все маршрутизаторы в одной локалке.
2. На маршрутизаторах сказал: "tacacs-server host ххх.ххх.ххх.ххх single-connection"

Про эту фичу у циско написано так:
"Use the single-connection keyword to specify single-connection (only valid with CiscoSecure Release 1.0.1 or later). Rather than have the router open and close a TCP connection to the daemon each time it must communicate, the single-connection option maintains a single open connection between the router and the daemon. This is more efficient because it allows the daemon to handle a higher number of TACACS operations."
http://www.cisco.com/univercd/cc/td/doc/product/software/ios...

И в хелпе ACS-а:
"Single Connect TACACS+ AAA Client (Record stop in accounting on failure)

Select this option to enable a single-connect TACACS+ AAA client. This allows all TACACS+ sessions between the AAA client and ACS to occur over a single TCP session rather than separate sessions for each request. If this feature is selected and the connection fails, a stop record is sent to the TACACS+ accounting log for each user connected through the AAA client.

Note: If the TCP connection between ACS and the AAA client is unreliable, do not use this feature."

Теперь вижу такую картину: при логине пользователей записывается старт, а через 3 минуты в аккаунтинг записывается "NAS Reset". Хотя связь между маршрутизатором и ACS-сервером не пропадала.

Можно ли как-то это побороть? Т.е. чтобы сессии на ACS-сервере режектились только в случае пропадания коннекта между сервером и маршрутизатором?


Содержание

Сообщения в этом обсуждении
"Reject залипших сесий на ACS-сервере"
Отправлено Harrsh , 25-Апр-07 17:47 
Дополненьице:

Выяснил, что инициатором разрыва tcp-соединения является маршрутизатор. И рвет он его ровно через 3 минуты.

Router#
*Apr 25 13:32:18.718: tcp0: O CLOSED <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126389
        OPTS 4 SYN  WIN 4128
*Apr 25 13:32:18.718: tcp0: I SYNSENT <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2595112186
        OPTS 4 ACK 2165126390 SYN  WIN 16384
*Apr 25 13:32:18.722: tcp0: O ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126390
        ACK 2595112187  WIN 4128
*Apr 25 13:32:18.722: tcp0: O ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126390
        DATA 37 ACK 2595112187  WIN 4128
*Apr 25 13:32:18.722: tcp0: I ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2595112187
        DATA 28 ACK 2165126427 PSH  WIN 65498
Router#
*Apr 25 13:32:18.922: tcp0: O ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126427
        ACK 2595112215  WIN 4100
Router#
*Apr 25 13:32:21.842: tcp0: O ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126427
        DATA 25 ACK 2595112215  WIN 4100
*Apr 25 13:32:21.846: tcp0: I ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2595112215
        DATA 28 ACK 2165126452 PSH  WIN 65473
*Apr 25 13:32:22.046: tcp0: O ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126452
        ACK 2595112243  WIN 4072
Router#
*Apr 25 13:32:24.786: tcp0: O ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126452
        DATA 25 ACK 2595112243  WIN 4072
*Apr 25 13:32:24.802: tcp0: I ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2595112243
        DATA 18 ACK 2165126477 PSH  WIN 65448
*Apr 25 13:32:24.802: tcp0: O ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126477
        DATA 64 ACK 2595112261  WIN 4054
*Apr 25 13:32:24.806: tcp0: I ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2595112261
        DATA 30 ACK 2165126541 PSH  WIN 65384
*Apr 25 13:32:24.810: tcp0: O ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126541
        DATA 86 ACK 2595112291  WIN 4024
Router#
*Apr 25 13:32:24.814: tcp0: I ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2595112291
        DATA 17 ACK 2165126627 PSH  WIN 65298
*Apr 25 13:32:25.014: tcp0: O ESTAB <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126627
        ACK 2595112308  WIN 4007
Router#
*Apr 25 13:35:24.814: tcp0: O FINWAIT1 <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126627
        ACK 2595112308 FIN PSH  WIN 4007
*Apr 25 13:35:24.814: tcp0: I FINWAIT1 <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2595112308
        ACK 2165126628  WIN 65298
*Apr 25 13:35:24.830: tcp0: I FINWAIT2 <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2595112308
        ACK 2165126628 FIN  WIN 65298
*Apr 25 13:35:24.830: tcp0: O TIMEWAIT <ACS-server ip-address>:49 <Router ip-address>:22357 seq 2165126628
        ACK 2595112309  WIN 4007

Следующее соединение устанавливается уже с другого source-порта.
Можно ли как-то объяснить маршрутизатору, чтобы он держал tcp-соединение постоянно?


"Reject залипших сесий на ACS-сервере"
Отправлено Harrsh , 27-Апр-07 11:59 
Хорошо, раз эти грабли я нашел первым :)

Поставлю вопрос по другому:
Может ли каким-либо образом radius или tacacs-сервер (не обязательно ACS) отслеживать пользователей, которые в текущий момент висят на маршрутизаторе? Т.е. как-то синхронизировать аккаунтинговую информацию с состоянием сессий на маршрутизаторе.

Подскажите, хотя бы в какую сторону двигаться...