Ciscoルータ、Ciscoスイッチは、VTY, CONSOLE, AUXの仮想端末(line)を持っています。これら仮想端末には、タイムアウト, 認証, メッセージ出力などを設定する事ができます。このページではタイムアウト設定についてまとめます。タイムアウトによって自動的にログアウトするようにすれば、不要なセッションがline vtyに残らないようにする事もできます。また、適切なタイムアウト値を設定する事によって、予期しないログアウトによるイライラを軽減する事もできます。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Router(config-line)# session-timeout <min> Router(config-line)# exec-timeout <min> [ <sec> ] Router(config-line)# absolute-timeout <min> Router(config-line)# logout-warning <sec>
仕様説明
仕様説明 概要
以下のコマンドでvty接続に関するtimeoutを定義する事ができます。
コマンド | 説明 |
---|---|
session-timeout | 他のルータへの接続可能な時間の上限を定義します。 |
exec-timeout | 何も入力しない状態が続いた場合の接続可能時間の上限を定義します。 |
absolute-timeout | 入力が続続いた場合の接続可能時間の上限を定義します。 |
logout-warning | absolute-timeoutによりログアウトされる前に警告メッセージを表示します。警告メッセージを表示することで、ログアウト前にwrite memoryを実行したりコマンド入力途中でのログアウトを防いだりする事が可能です。 |
Router(config-line)# session-timeout <min> Router(config-line)# exec-timeout <min> [ <sec> ] Router(config-line)# absolute-timeout <min> Router(config-line)# logout-warning <sec>
session-timeout
session-timeは他のルータへ接続可能な時間の上限を定義します。
以下のようにconsoleに対してsession timeoutを設定すると、コンソールケーブルで接続した端末が、他のルータに接続可能な時間を定義します。
line con 0 session-timeout 1
以下のようにvtyに対してsession timeoutを設定すると、telnet等でvtyに接続した端末が、さらに他のルータに接続しようとした場合の接続可能な時間を定義します。
line vty 0 4 session-timeout 1
exec-timeout
以下のようにvtyに対してexec-timeoutを設定すると、telnet等でvtyに接続した端末が2分30秒以上操作しないと強制的にログアウトされます。クライアント端末の不具合やネットワーク瞬断によってvty接続が切れてしまった際に、不要なsessionがルータに残らないようにする目的で設定する事が多いです。
line vty 0 4 exec-timeout 2 30
absolute-timeout
absolute timeoutはログイン可能な時間の上限です。コマンドを入力している最中であったとしても、absolute timeoutは強制的にログアウトさせる仕様になっております。もし、ログアウトされる前にwrite memory等を必ず入力したいならば、logout-warningと併用して警告メッセージを出すようにすると良いでしょう。設定例は以下の通りです。
line vty 0 4 absolute-timeout 120 0 logout-warning 300
実践で一番良く見る設定例は、以下の通りです。timeoutを0に設定するのは強制ログアウトしないの意味で、console接続の際はtimeoutしないようにする設定です。
line console 0 4 absolute-timeout 0 0
動作確認環境
以下の構成で動作確認を行います。
+--------+ +--------+ | R1 +--------+ R2 | +--------+.1 .2+--------+ e0/0 e0/1 192.168.12.0/24 R1 Loopback0 R2 Loopback0 10.1.1.1/32 10.2.2.2/32
[R1] interface Loopback0 ip address 10.1.1.1 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.12.1 255.255.255.0 ! router ospf 1 network 10.1.1.1 0.0.0.0 area 0 network 192.168.12.1 0.0.0.0 area 0 [R2] interface Loopback0 ip address 10.2.2.2 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.12.2 255.255.255.0 ! router ospf 1 network 10.2.2.2 0.0.0.0 area 0 network 192.168.12.2 0.0.0.0 area 0
設定全文は下記ファイルです。
動作確認
事前準備
R1, R2がtelnet接続可能になるよう設定します。
[R1] line vty 0 4 password cisco login [R2] line vty 0 4 password cisco login
session timeout 1
R1のconsoleに対してsession timeoutを1分と設定します。
[R1] line console 0 session-timeout 1
R1からR2へtelnet接続し、session timeoutの1分後に強制ログアウトされる事を確認します。
[R1] R1#telnet 10.2.2.2 Trying 10.2.2.2 ... Open User Access Verification Password: R2> [Connection to 10.2.2.2 idle too long; timed out]
ターミナルソフトのログ機能から確かに1分後にログアウトしている事を確認します。
[Fri Jan 24 21:32:07.676 2014] R1#telnet 10.2.2.2 [Fri Jan 24 21:32:09.176 2014] Trying 10.2.2.2 ... Open [Fri Jan 24 21:32:09.255 2014] [Fri Jan 24 21:32:09.255 2014] [Fri Jan 24 21:32:09.255 2014] User Access Verification [Fri Jan 24 21:32:09.276 2014] [Fri Jan 24 21:32:09.294 2014] Password: [Fri Jan 24 21:32:10.935 2014] R2> [Fri Jan 24 21:33:11.607 2014] [Connection to 10.2.2.2 idle too long; timed out]
session timeout 2
R1のline consoleに対する設定を削除し、R2のline vtyに対してsession timeoutを設定します。
[R1] line console 0 default session-timeout [R2] line vty 0 4 session-timeout 2
R1からR2へtelnet接続します。これの操作によってR2のline vtyに接続されましたので、R2 line vtyのtimeout設定が適用されるようになります。
その後、R2からR1へ再度接続します。R2 line vtyに対して設定したsession timeoutである2分後に強制ログアウトする事を確認します。
[R1] R1#telnet 10.2.2.2 Trying 10.2.2.2 ... Open User Access Verification Password: R2> R2>telnet 10.1.1.1 Trying 10.1.1.1 ... Open User Access Verification Password: R1> [Connection to 10.1.1.1 idle too long; timed out] R2> [Connection to 10.2.2.2 closed by foreign host] R1#
ターミナルソフトのログ機能から確かに2分後にログアウトしている事を確認します。
[Fri Jan 24 21:41:37.850 2014] R1#telnet 10.2.2.2 [Fri Jan 24 21:41:42.489 2014] Trying 10.2.2.2 ... Open [Fri Jan 24 21:41:42.570 2014] [Fri Jan 24 21:41:42.570 2014] [Fri Jan 24 21:41:42.570 2014] User Access Verification [Fri Jan 24 21:41:42.591 2014] [Fri Jan 24 21:41:42.610 2014] Password: [Fri Jan 24 21:41:44.110 2014] R2> [Fri Jan 24 21:41:45.590 2014] R2>telnet 10.1.1.1 [Fri Jan 24 21:41:48.769 2014] Trying 10.1.1.1 ... Open [Fri Jan 24 21:41:48.870 2014] [Fri Jan 24 21:41:48.870 2014] [Fri Jan 24 21:41:48.871 2014] User Access Verification [Fri Jan 24 21:41:48.891 2014] [Fri Jan 24 21:41:48.910 2014] Password: [Fri Jan 24 21:41:50.570 2014] R1> [Fri Jan 24 21:43:50.719 2014] [Connection to 10.1.1.1 idle too long; timed out] [Fri Jan 24 21:43:50.779 2014] R2> [Fri Jan 24 21:52:00.959 2014] [Connection to 10.2.2.2 closed by foreign host] [Fri Jan 24 21:52:01.052 2014] R1#
exec-timeout
R2のvty lineに対し、exec timeoutを設定します。
[R2] line vty 0 4 exec-timeout 2 20
R1からR2へtelnet接続します。exec timeoutが適用され、何も入力しない状態が2分20秒続いたら強制ログアウトされる事を確認します。
[R1] R1#telnet 10.2.2.2 Trying 10.2.2.2 ... Open User Access Verification Password: R2>ktkr Translating "ktkr" Translating "ktkr" % Unknown command or computer name, or unable to find computer address R2>ktkr Translating "ktkr" Translating "ktkr" % Unknown command or computer name, or unable to find computer address R2> [Connection to 10.2.2.2 closed by foreign host] R1#
ターミナルソフトのログ機能から、何も入力がない状態が2分20秒続きログアウトされた事を確認します。
[Fri Jan 24 22:16:36.148 2014] R1#telnet 10.2.2.2 [Fri Jan 24 22:16:43.584 2014] Trying 10.2.2.2 ... Open [Fri Jan 24 22:16:43.847 2014] [Fri Jan 24 22:16:43.852 2014] [Fri Jan 24 22:16:43.852 2014] User Access Verification [Fri Jan 24 22:16:43.869 2014] [Fri Jan 24 22:16:43.886 2014] Password: [Fri Jan 24 22:16:45.578 2014] R2>ktkr [Fri Jan 24 22:16:50.255 2014] Translating "ktkr" [Fri Jan 24 22:16:50.278 2014] [Fri Jan 24 22:16:50.278 2014] Translating "ktkr" [Fri Jan 24 22:16:50.298 2014] % Unknown command or computer name, or unable to find computer address [Fri Jan 24 22:16:50.397 2014] R2>ktkr [Fri Jan 24 22:17:12.869 2014] Translating "ktkr" [Fri Jan 24 22:17:12.903 2014] [Fri Jan 24 22:17:12.906 2014] Translating "ktkr" [Fri Jan 24 22:17:12.938 2014] % Unknown command or computer name, or unable to find computer address [Fri Jan 24 22:17:13.049 2014] R2> [Fri Jan 24 22:19:33.872 2014] [Connection to 10.2.2.2 closed by foreign host] [Fri Jan 24 22:19:33.930 2014] R1#
absolute-timeout
R2のvty lineに対し、absolute timeoutおよびログアウト事前警告メッセージを設定します
[R2] line vty 0 4 logout-warning 30 absolute-timeout 3
R1からR2へtelnet接続します。入力の有無にかかわらず、3分後に強制ログアウトされる事を確認します。また、強制ログアウトの30秒前に警告メッセージが出力される事を確認します。
[R1] R1#telnet 10.2.2.2 Trying 10.2.2.2 ... Open User Access Verification Password: R2>ktkr Translating "ktkr" Translating "ktkr" % Unknown command or computer name, or unable to find computer address R2> * * * Line timeout expired * * R2> [Connection to 10.2.2.2 closed by foreign host] R1#
ターミナルソフトのログから3分後にログアウトした事と、ログアウト30秒前に警告メッセージが出力された事を確認します。
[Fri Jan 24 22:31:08.410 2014] R1#telnet 10.2.2.2 [Fri Jan 24 22:32:37.597 2014] Trying 10.2.2.2 ... Open [Fri Jan 24 22:32:37.774 2014] [Fri Jan 24 22:32:37.779 2014] [Fri Jan 24 22:32:37.779 2014] User Access Verification [Fri Jan 24 22:32:37.797 2014] [Fri Jan 24 22:32:37.819 2014] Password: [Fri Jan 24 22:32:39.394 2014] R2>ktkr [Fri Jan 24 22:33:26.493 2014] Translating "ktkr" [Fri Jan 24 22:33:26.538 2014] [Fri Jan 24 22:33:26.538 2014] Translating "ktkr" [Fri Jan 24 22:33:26.563 2014] % Unknown command or computer name, or unable to find computer address [Fri Jan 24 22:33:26.671 2014] R2> [Fri Jan 24 22:35:10.323 2014] * [Fri Jan 24 22:35:10.327 2014] * [Fri Jan 24 22:35:10.327 2014] * Line timeout expired [Fri Jan 24 22:35:10.367 2014] * [Fri Jan 24 22:35:10.367 2014] * [Fri Jan 24 22:35:19.947 2014] R2> [Fri Jan 24 22:35:38.514 2014] [Connection to 10.2.2.2 closed by foreign host] [Fri Jan 24 22:35:38.632 2014] R1#