Cisco機器のメモリ

Ciscoルータの内部には、次の4種類のメモリ領域があり、それぞれのメモリ領域にCiscoルータの起動や動作に必要なプログラムや設定ファイルなどの情報が格納されています。

  • ROM(Read Only Memory)
    読み込み専用で、電源を切っても内容は消えない
  • フラッシュメモリ
    読み書き、消去、再プログラム可能で、電源を切っても内容は消えない
  • NVRAM(Non Volatile Random Access Memory)
    読み書き可能で、電源を切っても内容は消えない
  • RAM(Random Access Memory)
    読み書き可能で、電源を切ると内容が消える
Cisco機器のメモリ領域
1 Cisco機器のメモリ領域

ROMにはルータの起動や保守を行うためのプログラムが格納されています。パソコンでいうとBIOSに当たる部分です。IOSを読み込むためのブートストラップコード、起動時にハードウェアのチェックを行うためのPower On Self Test(POST)コード、IOSをロードできなかった場合に起動するROMモニタがあります。また、モデルによってはミニIOSがROMの中に含まれます。ミニIOSは通常のIOSの機能のごく一部だけを実装したIOSです。

ミニISOは現在の一般的なCiscoルータのモデルには存在しません。

Ciscoルータの電源を投入すると、まずPOSTを実行し、インタフェースやRAMなどのハードウェアの診断を行います。POSTの結果、異常がなければブートストラップコードがIOSを読み込みます。POSTで異常がある場合はブートストラップコードがROMモニタやミニIOSを実行します。

フラッシュメモリにはIOSが格納されています。ルータ起動時にROMの中のブートストラップコードがFlash上のIOSを読み込みます。show flashコマンドでフラッシュメモリの内容を参照できます。また、フラッシュメモリ内に設定ファイルを保存することも可能です。

NVRAMは、電源を切っても内容が消えないメモリです。この中にはstartup-configと呼ばれる設定ファイルが格納されています。startup-configはルータの起動時の設定です。また、NVRAMの中にはルータの起動を制御するコンフィグレーションレジスタも存在します。startup-configの内容を参照するにはshow startup-configコマンドを入力します。コンフィグレーションレジスタの値は、show versionコマンドで確認できます。

RAMはいわゆるメモリです。RAM上にはrunning-configが格納されています。running-configとは、ルータの現在稼動中の設定です。そして、ルータが稼動しているときはルーティングテーブルなどの情報もRAMの中に保持します。

show running-configコマンドでrunning-configの内容を参照することができます。

これらをまとめたものが次の表です。

表 Cisco機器のメモリ

メモリの種類

格納されているもの

説明

確認コマンド

ROM

ブートストラップ、POST、ROMモニタ、ミニIOS(一部のモデル)

ルータの起動や保守を行うためのマイクロコード

フラッシュメモリ

IOS

ルータのOS

show flash

NVRAM

startup-config、

コンフィグレーションレジスタ

ルータ起動時の設定

show startup-config

show version

RAM

running-config、

ルーティングテーブルなどの制御情報

現在稼動中の設定

show running-config

コンフィグレーションレジスタ

コンフィグレーションレジスタは、NVRAMに格納されている16ビットの数値で、これによりルータの起動を制御します。各ビットの意味は次の表のようになります。

表 コンフィグレーションレジスタのビット

ビット番号

意味

00~03

ブートフィールド

06

NVRAMの内容(startup-config)を無視する

07

OEMビット

08

コンソールのBreakキーによるブレーク信号を制御する

09

セカンダリブートストラップを利用する場合

10

IPブロードキャストを全ビット0にする

5,11,12

コンソールの回線速度

13

ネットワークブート失敗時にデフォルトのROMソフトウェアを起動

14

IPブロードキャストにネットワーク番号をつけない

15

診断メッセージをイネーブルにし、NVRAMの内容を無視する

通常、コンフィグレーションレジスタ値は4桁の16進数で表記されます。

各ビットにそれぞれ意味がありますが、通常の運用をしたりCCNA試験ですべてのビットの意味を覚える必要はありません。デフォルトのコンフィグレーションレジスタ値である「0x2102」とパスワードリカバリを行う時の「0x2142」という値について理解していれば十分です。

重要なコンフィグレーションレジスタ値である「0x2102」と「0x2142」の値を2進数に変換したものが次の図です。

重要なコンフィグレーションレジスタ値

コンフィグレーションレジスタで重要なのは、以下のビットです。

  • 1ビット目(0~3ビット目)
  • 6ビット目
  • 8ビット目
  • 13ビット目

0~3ビット目はブートフィールドといいます。「0x2102」「0x2142」というコンフィグレーションレジスタ値では、ビットとしては1ビット目だけしか使いませんが、この4ビット分はセットで考えてください。この4ビットはルータをどのように起動(ブート)させるかを決定するビットです。ブートフィールドの値は次のような意味を持っています。

表 ブートフィールドの意味

ブートフィールドのビット

意味

0000

起動時にROMモニタを起動する

0001

ROM内のIOSを起動する

0010~1111

設定ファイルのboot systemコマンドに従ってIOSを起動する。boot systemコマンドがない場合はフラッシュメモリの最初のIOSを起動する。

デフォルトでは、ブートフィールドの部分は「0010」なので、設定ファイル(startup-config)のboot systemコマンドに従ってIOSを起動します。もしboot systemコマンドが設定されていなければフラッシュメモリの最初のIOSを起動することになります。

boot systemコマンドは起動時のIOSを指定するためのコマンドです。コマンドの構文は次のようになります。

(config)#boot system <file-path>

<file-path>には、flashやrom,usbflashなどルータのローカルストレージのIOSイメージファイルだけでなく、ftpやtftpといったネットワーク上のIOSイメージファイルのパスを指定することもできます。

6ビット目がオンになっていると、起動時にIOSがNVRAM内のstartup-configを読み込まず、初期状態で起動させることができます。このビットはパスワードリカバリのときにオンにします。

8ビット目は、コンソールのBreakキーによるブレーク信号の送信を制御します。このビットがオンになっているとルータはBreakキーによるブレーク信号を無視します。ただし、ルータ起動から60秒間は、このビットがオンになっていてもBreakキーによるブレーク信号を受け付けてブートを中断してROMモニタに移行します。

13ビット目は、ネットワーク上からIOSのブートが失敗したときの動作です。このビットがオンになっている場合は、ネットワーク上からIOSのブートが失敗するとROMモニタでブートします。

以上からデフォルトのコンフィグレーションレジスタ値「0x2102」の意味を図にまとめます。

コンフィグレーションレジスタ「0x2102」の意味
図 コンフィグレーションレジスタ「0x2102」の意味

同じくパスワードリカバリ時のコンフィグレーションレジスタ値「0x2142」の意味は次の図のようになります。

コンフィグレーションレジスタ「0x2142」の意味
図コンフィグレーションレジスタ「0x2142」の意味

コンフィグレーションレジスタの変更は、グローバルコンフィグレーションモードで次のコマンドを入力します。

(config)#config-register <register-value>

このコマンドを入力すると、次回のルータ起動から設定したコンフィグレーションレジスタ値にしたがって起動します。現在のコンフィグレーションレジスタ値を確認するには、show versionコマンドを利用します。

Ciscoのキホン