The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
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, 17:47 , 25-Апр-07 (1)
    Дополненьице:

    Выяснил, что инициатором разрыва 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, 11:59 , 27-Апр-07 (2)
      Хорошо, раз эти грабли я нашел первым :)

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру