CiscoIOSのコマンドで細かい設定を行う前に,Ciscoルータはどのような内部構造でどこに何があるのか,そしてどのように起動するのかということを覚えましょう。そして設定はどこに保存され,どのようにバックアップするのか,OSはどうするのか,などの点を理解しましょう。
ルータの起動モード
Ciscoルータには第1回で解説したように記憶装置として複数のメモリが用意されています。そこには,ルータの起動と動作に必要なファイルや設定が保存されています。
- ROM
- POST(起動時自己診断プログラム) ・・・ ルータの起動時に実行されて,ハードウェアの障害などを検出するプログラム
- ブートストラップローダ ・・・ OSをロードするためのプログラム。通常は自動的にOSをロードするが,障害時は手動で操作が可能
- MiniIOS ・・・ 最小構成のIOS。必要最低限の機能を持っている。OSをアップグレードする時などで使用する
- NVRAM
- 設定ファイル ・・・ ルータの設定が保存されているファイル。OS起動後に読み込む
- コンフィギュレーションレジスタ ・・・ 起動時の動作設定を保存しておくソフトウェアレジスタ
- フラッシュメモリ
- IOS ・・・ Ciscoルータを動作させるためのOS
- RAM
- 起動後にIOSや設定ファイルなどを読み込む。またルーティングテーブル,ARPテーブルなども配置される
これらのファイルやプログラムを順に読み込んで実行することでルータは動作します。ルータの起動には四つのモードがあります。
図1 ROMMONモード
図2 RXBOOTモード
図3 セットアップモード
図4 通常の起動
セットアップモードは通常のIOS起動後に起動するモードなので,厳密に言えばブートストラップ(ROMMON),RXBOOT(MiniIOS),通常(IOS)の3種類のいずれかを操作することになります。
ルータの起動順序と設定
ROMMONモードやRXBOOTモードではなく,通常のIOSを起動する場合,以下の順序で起動します(図5)。
- 電源投入,POSTが起動し,ハードウェアを診断します
- ブートストラッププログラムが起動します
- コンフィギュレーションレジスタの値を読み込み,起動モードを決定します
- 設定ファイルのboot systemが書かれた行を読み込み,起動するIOSを決定します
- 決定されたIOSを読み込み,起動します
- 設定ファイルを読み込み,ルータの設定をします
図5 ルータの起動順序
この図5はFlashを利用しています。表示にはFlash Playerが必要です
ブートストラッププログラムが起動後に読み込まれるコンフィギュレーションレジスタは,NVRAM内に書かれている2バイトのソフトウェアレジスタです。このレジスタに書かれている値により,起動モードが決定されます。このレジスタには4ビットごとに意味があります。
先頭~4ビット目 (15ビット~12ビット) | 0010・・・IOSの読み込み失敗時,MiniIOSを起動(RXBOOTモードへ) |
5ビット目~8ビット目 (11ビット~8ビット) | 0001・・・ブレーク無効 |
9ビット目~12ビット目 (7ビット~4ビット) | 0000・・・設定ファイルを読み込む 1000・・・設定ファイルを読み込まない |
13ビット目~16ビット目 (3ビット~0ビット) | 0000・・・ROMMONモード 0001・・・RXBOOTモード それ以外・・・設定されたIOSを起動(0010はFlashメモリのIOSを使用) |
コンフィギュレーションレジスタは通常は16進数で表記されます。例えば,失敗時はMiniIOS起動,ブレーク無効,設定を読み込む,通常のIOSを使用(0010-0001-0000-0010)の場合は,0x2102と表記されます。よく使われるコンフィギュレーションレジスタの値は以下の通りになります。
- 0x2102 ・・・ 通常起動
- 0x2142 ・・・ パスワード回復時に使用する。設定ファイルを読み込まず起動
- 0x2101 ・・・ RXBOOTモード。IOSのアップ/ダウングレード時に使用
- 0x2100 ・・・ ROMMONモード
コンフィギュレーションレジスタは,グローバルコンフィギュレーションモードでのconfig-register コマンドで変更が可能です。確認はshow versionコマンドで行います(図6)。
- (config)# config-register [レジスタの値]
図6 show version
さらに,通常IOSはフラッシュメモリ上にあり,標準設定ではそこからロードし起動しますが,このIOSをロードする場所を変更することができます。また,フラッシュメモリに複数のIOSが入っている場合,どのIOSをロードするかということも決めることができます。グローバルコンフィギュレーションモードのboot systemコマンドで決定します。複数のコマンドを入力した場合,コマンドを入力した順番でIOSを探し,ロードします(図7)。
- (config)# boot system [IOSの場所]
- [IOSの場所]
- rom ・・・ ROM上のMiniIOSを起動
- flash ・・・ フラッシュメモリ上のIOSを起動。フラッシュメモリに複数のIOSファ イルがある場合,続けてIOSファイル名も指定できる
- tftp ・・・ ネットワーク上のTFTPサーバに配置してあるIOSを起動。続けてIOS ファイルとTFTPサーバのIPアドレスを指定する
- [IOSの場所]
図7 boot system コマンド
設定ファイルとIOSファイル
IOSの設定ファイルはNVRAM上に保存されます。IOS起動後にRAM上に読み込まれ,ルータはその設定を使用して稼働します。コマンドにより設定が変更された場合,RAM上の設定ファイルが変更されることになります。
NVRAM上に保存された起動時に読み込む設定ファイルをstartup-configと呼び,一方,RAM上に読み込まれた設定ファイルをrunning-configと呼びます(図8)。
図8 二つの設定ファイル
また,設定ファイルはバックアップのため,ネットワーク上のTFTPサーバに保存することもできます。保存するためのコマンドとしてcopyコマンドを使用します。
- # copy [コピー元] [コピー先]
- [コピー元],[コピー先]
- running-config ・・・ RAM上の現在使用している設定ファイル
- startup-config ・・・ NVRAM上の起動時に使用する設定ファイル
- tftp ・・・ ネットワーク上のTFTPサーバに配置してある設定ファイル。TFTPサーバのIPアドレスとファイル名を追加で入力する
- [コピー元],[コピー先]
例えば,現在使用している設定ファイルをTFTPサーバ上に保存したい場合はcopy running-config tftp とコマンドを入力します(図9)。
図9 copy running-config tftp
特にcopyコマンドで重要なことは,設定を変更した場合です。設定を変更した場合はRAM上のrunning-configが変更され,startup-configは変更されません。RAM上のrunning-configは電源を落としたり,再起動すると消えてしまいます。そのため,設定を変更した場合,copy running-config startup-configで設定を保存することを忘れないようにしないといけません。
IOSのアップ/ダウングレードにもcopyコマンドを使用します。使い方は設定ファイルのcopyと同じですが,対象となるパラメータが違います。
- # copy [コピー元] [コピー先]
- [コピー元],[コピー先]
- flash ・・・ フラッシュメモリ上のIOSファイル
- tftp ・・・ ネットワーク上のTFTPサーバに配置してあるIOSファイル。TFTPサーバのIPアドレスとファイル名を追加で入力する
- [コピー元],[コピー先]
例えばアップグレードを行いたい場合,TFTPサーバ上に新しいバージョンのIOSファイルを配置しておき,copy tftp flashでフラシュメモリに保存します。