2014年7月22日火曜日

Cisco機器のPing、Traceroute、Telnetをキャンセルする

Cisco機器で、IPアドレスを間違えて入力してしまったり、
Pingを必要以上に多く実行してしまったとき等に、
各コマンドをキャンセルするには、少し特殊な操作が必要です。

WindowsやLinuxでは、大抵のことを[Ctrl]+[C]でキャンセルできますが、
Cisco機器は違います。

■Ping, Tracerouteをキャンセルする場合

[Ctrl]+[Shift]+[6] を押すことでキャンセルできます。

【Ping例】
Rack1R1#ping 100.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.1.1.1, timeout is 2 seconds:
...

↑このあたりで、[Ctrl]+[Shift]+[6] を押します。
Success rate is 0 percent (0/3)
Rack1R1#

【Traceroute例】
Rack1R1#traceroute 100.1.1.1

Type escape sequence to abort.
Tracing the route to 100.1.1.1

  1  *
↑このあたりで、[Ctrl]+[Shift]+[6] を押します。
Rack1R1#

■Telnetをキャンセルする場合

Telnet先の機器にログインできるなら、ログインしてから
"exit"でログアウトするのが手っ取り早いですが、
ログインできない機器にTelnetしてしまった場合には、

[Ctrl]+[Shift]+[6] を押してから、[X]を押すことで接続元に戻り、
"show sessions " コマンドの結果を確認してから、
"disconnect <番号>" を実行してキャンセルします。

接続元に戻った後すぐに[Enter]を押してしまうと再接続するので
注意して下さい。

Rack1R1#telnet 150.1.1.1
Trying 150.1.1.1 ... Open


User Access Verification

Password:

↑このあたりで、[Ctrl]+[Shift]+[6] を押してから、[X]を押します。

Rack1R1#
[Resuming connection 1 to 150.1.1.1 ... ]

↑すぐに、[Enter] を押すと再接続してしまいます。
 再度、[Ctrl]+[Shift]+[6] を押してから、[X]を押します。

Rack1R1#show sessions
Conn Host                Address             Byte  Idle Conn Name
*  1 150.1.1.1           150.1.1.1             43     0 150.1.1.1

↑"show sessions "を実行し、接続先のIPアドレスと、
 左端の"conn"と書かれた番号を確認します。


Rack1R1#disconnect 1
Closing connection to 150.1.1.1 [confirm]


↑"disconnect <先ほど確認した番号> "を実行し、
 確認に対して[Enter]を入力します。

Rack1R1#show sessions
% No connections open

↑無事、Telnetをキャンセルすることができました。

■番外編:誤操作の際の名前解決について

Cisco機器の初期状態では、存在しないコマンドを投入すると、
デフォルトでDNSサーバへ名前解決を求めてしまい、何度かリトライをするので
数分間、操作不能になってしまいます。

これの実行中はキャンセルする方法がありません。

Rack1R1#aaaa
Translating "aaaa"...domain server (255.255.255.255)
 (255.255.255.255)
Translating "aaaa"...domain server (255.255.255.255)

% Unknown command or computer name, or unable to find computer address

なので、これを防止するために、
"no ip domain-lookup" を設定しておくのが一般的です。

Rack1R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Rack1R1(config)#no ip domain-lookup
Rack1R1(config)#^Z

Rack1R1#aaaa
Translating "aaaa"

Translating "aaaa"

% Unknown command or computer name, or unable to find computer address
Rack1R1#

↑その結果、コマンド誤りでもDNSサーバへ名前解決を求めなくなります。