Cisco IOS に慣れ親しむために

1998年8月18日 豊田英司

目標

IOS は OS といっても UNIX, MS-DOS などの OS とは一味違った操作体系となっている。 おまけにドキュメンテーションの先頭にそのようなことが書いてあるわけではないので いきなりプロンプトを見る羽目になっても少々当惑するかもしれない。 本稿ではそのような IOS を UNIX と対比して説明することで IOS コマンドを オマジナイとしてではなく、キモチが判って読めるようになることを目指す。

現行の設定については不揮発メモリまたはそのバックアップを参照して学習されたい。 また、IOS のコマンドの詳細についてはドキュメンテーション CD-ROM あるいは 別売リファレンスを参照して学習されたい。

なお、本稿の内容が正しいことは誰にも保証されていない。

1 準備

1.1 ドキュメンテーション CD-ROM

IOS に限らず、Cisco の各種のドキュメンテーションは HTML で存在し、 製品添付の CD-ROM に焼かれているだけではなく http://www.cisco.com/ 以下で公開されている。

ここで参照されたいというとき念頭に置いているのは Cisco IOS Command summary であるが、 それは CD-ROM の ... に存在する。 CD-ROM の表紙とおぼしき \HOME\HOME.HTM からは ... のようにリンクをたどってゆけば到達できる。

2 操作の流れ

状態遷移図

UNIX マシンと似て、 ルータではシリアルポートのコンソールや ネットワークの telnet を通じてコマンドを打ち込むことができる。 操作の開始はコンソールならば電源投入または Enter の打鍵 [図の左上]、 telnet ならば接続開始 [図の右上] である。 telnet (またはシリアルポートでもダイヤルアップで) 接続した場合は パスワードによる認証が要求される。

接続するとすぐに見られるプロンプトはルータのホスト名に > を続けたものである。 これは UNIX でいえば一般ユーザ程度のもので、 この状態では若干の診断と PING ができる程度で設定はまったくできない。 このプロンプトを EXEC prompt、 この状態で実行できるコマンドを EXEC command と呼ぶ。 マニュアルで EXEC command と書いてあればこの状態で実行できるわけである。 接続を切るには quit コマンドを使う。

設定を行うためには別のパスワードを投入し、さらに認証を経なければならない。 UNIX で su にあたるのは enable である。 enable されると UNIX の多くのシェルと同様、プロンプトが ホスト名# に変わる。 このプロンプトを privileged EXEC prompt、 この状態で実行できるコマンドを privileged EXEC command と呼ぶ。 enable された状態を終了するのは disable である。

UNIX では、設定はいくつかのコマンドを直接打つこともあるが、 そのような設定はたいてい再起動後まで保存されるようなものではなく、 多くはコマンドが書かれたスクリプトなり、 コマンドが読み込む設定ファイルなりをテキストエディタで編集することになるだろう。 しかし IOS にはテキストエディタのようなものは存在せず、 すべての設定は

  1. configure terminal コマンドで設定モード [図の緑枠] に入る
  2. 設定コマンドを打つ
  3. end コマンドで privileged EXEC プロンプトに戻る
  4. この設定を再起動後にも維持したければ不揮発メモリに書き込む
という処理になる。 設定モードに入るとプロンプトは ホスト名(config)# という形に変わる。 この状態で発行できるコマンドを general configuration command と呼ぶ。

設定コマンドを受け付ける状態はひとつの状態ではなく、 文脈とでもいうべき状態を持つ。 たとえば個々のネットワークインターフェイスを設定するコマンドは configure terminal 直後には実行できず、 interface コマンドで「どのインターフェイスに対しての設定か」を 示してからでなければならない。 インターフェイスを特定するとプロンプトは ホスト名(config-if)# という形に変わる。 この状態で発行できるコマンドを interface configuration command と呼ぶ。

同様にルーティングプロトコルの指定を行うとその後はプロトコルに固有の設定を 行う状態となり、プロンプトは ホスト名(config-router)# という形に変わる。 この状態で発行できるコマンドを router configuration command と呼ぶ。 他にも configuration command の持つ状態は存在する。

3 コマンドライン編集・補完機能

設定モードを含むすべてのコマンドプロンプトに対して UNIX の tcsh に類似した コマンドライン編集機能が使える。

Ctrl-A
カーソルを行頭へ移動
Ctrl-B
カーソルを1文字後退、現在位置の文字を消さない
Ctrl-C
現在行の放棄: コマンドを発行しないで次の行へ
Ctrl-H (BS)
カーソルを1文字後退、現在位置の文字を消す
Ctrl-I (TAB)
補完
Ctrl-K
カーソル以降の文字のクリア
Ctrl-N
次のコマンド: Ctrl-P と反対にヒストリを順にたどる
Ctrl-P
前のコマンド: ヒストリを逆にたどる
Ctrl-U
現在行のクリア
Ctrl-W
現在の語のクリア
?
補完の候補を表示

4 データの流れ

データの流れの図

IOS には UNIX に類似したファイルという概念があることはあるが、 実際に RAM ディスクにおいたファイルを使えるのはかなりの上位機種だけである。 しかし、「現在の設定」「不揮発メモリに書かれた設定」というものを ひとつのファイルのように扱うことができる。

ファイル名のようなものは以下の通りである:

running-config
現在の設定
startup-config
不揮発メモリに書かれた設定

コマンドは copyshow の 2 つだけである。