こんにちは
ASA5545X+ASA OS 9.6.4(3) + AnyConnect 4.5でユーザーにSSL-VPNサービスを提供しています。
AnyConnectでのタイマー関係で質問があります。どなたかご回答いただけますでしょうか。
認証関係を除いた、Group-Policyで設定可能なタイマーには下記のものがあります。
・Keep Alive (デフォルト値:20 秒)
・DPD: (デフォルト値:30 秒)
・Session Timeout(デフォルト値:無制限)
・Idle Timeout (デフォルト値:1800秒)
接続時は、上記の値に加えてDisconnect Timeoutも、ASA→クライアントにプッシュされるようです。
Disconnect Timeoutの値は、Idle Timeoutと同じになるようです。
試したところ、VPN接続中にWAN側の回線・インターフェースがダウンすると、
クライアントPC
接続に問題があることを検知し、再接続を試行し続ける。
おそらくDisconnect Timeout=Idle Timeout=デフォルト30分だと思いますが、実際、そんなに待てない。
Idle Timeoutの値を短くしたら、再接続の試行時間が短くなった。
ASA
親(Parent)のセッションが残る(おそらくIdle Timeoutの時間)
クライアントに設定したプライベートIPアドレスも残る。
親(parent)のセッションをコマンドで切断すると問題解消
クライアントPCでの無駄な再試行はユーザーが切断ボタンを押せば止まる話ですが、ASAの方は問題です。
私が運用しているシステムでは2台のASAを使い、ClientProfileの中でバックアップサーバとして互いを指定しています。
外部サーバを使い、ユーザーIDに1対1で対応したIPアドレスをアサインするシステム仕様のため、ユーザーが再接続を試行すると、プライマリサーバ(ASA)とバックアップサーバ(ASA)の両方に同一IPが存在する危険性があります。その場合は、上位のスイッチからみたルーティングがおかしくなり、ユーザーはVPN接続しても、その後の通信ができません。
回避策としてIdle Timeoutを短くすることが考えられますが、副作用は起きないでしょうか?
Idle Timeoutを短くすると、どうしてもイメージとして「VPN切断(タイムアウト)が起こりやすくなり、ユーザーが不便に感じる」気がして、躊躇してしまいます。
なお、スプリットトンネルの設定により、すべての通信がトンネリング対象(ASAに向かう)としています。
また、Disconnect Timeoutを明示的に設定することは、最近のバージョンのOSでもできないのでしょうか。
他に良い方法はありますでしょうか?
----------------------------------------------
このあたりも参考にしています。
「FAQ:AnyConnect に関する FAQ: トンネル、再接続動作、および非アクティビティ タイマー」
https://www.cisco.com/c/ja_jp/support/docs/security/anyconnect-secure-mobility-client/116312-qanda-anyconnect-00.html#anc7
->
Q6.
DPD タイマーによってセッションの接続が切断された後もセッションを保持することに、どんな意義があるのですか。
なぜ、ASA は IP アドレスを解放しないのですか。
Q8.
両方が同じ値なのに、なぜ、アイドル タイムアウトと接続切断タイムアウトという 2 種類のタイムアウトがあるのですか。
----------------------------------------------
よろしくお願いします。
参考までに接続時にASA→PCにプッシュされた各種設定を添付します。(Windowsイベントビューアからエクスポートしたものです。)