目次
Cisco機器のメモリ
Ciscoルータの内部には、次の4種類のメモリ領域があり、それぞれのメモリ領域にCiscoルータの起動や動作に必要なプログラムや設定ファイルなどの情報が格納されています。
- ROM(Read Only Memory)
読み込み専用で、電源を切っても内容は消えない - フラッシュメモリ
読み書き、消去、再プログラム可能で、電源を切っても内容は消えない - NVRAM(Non Volatile Random Access Memory)
読み書き可能で、電源を切っても内容は消えない - RAM(Random Access Memory)
読み書き可能で、電源を切ると内容が消える
ROMにはルータの起動や保守を行うためのプログラムが格納されています。パソコンでいうとBIOSに当たる部分です。IOSを読み込むためのブートストラップコード、起動時にハードウェアのチェックを行うためのPower On Self Test(POST)コード、IOSをロードできなかった場合に起動するROMモニタがあります。また、モデルによってはミニIOSがROMの中に含まれます。ミニIOSは通常のIOSの機能のごく一部だけを実装したIOSです。
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の内容を参照することができます。
これらをまとめたものが次の表です。
メモリの種類 |
格納されているもの |
説明 |
確認コマンド |
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の内容を無視する |
各ビットにそれぞれ意味がありますが、通常の運用をしたり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」の意味を図にまとめます。
同じくパスワードリカバリ時のコンフィグレーションレジスタ値「0x2142」の意味は次の図のようになります。
コンフィグレーションレジスタの変更は、グローバルコンフィグレーションモードで次のコマンドを入力します。
(config)#config-register <register-value>
このコマンドを入力すると、次回のルータ起動から設定したコンフィグレーションレジスタ値にしたがって起動します。現在のコンフィグレーションレジスタ値を確認するには、show versionコマンドを利用します。
Ciscoのキホン
- Ciscoルータのメモリ領域とコンフィグレーションレジスタ
- Ciscoルータの起動シーケンス
- 設定のための準備
- Cisco機器の設定ファイル running-configとstartup-config
- Cisco機器の設定の流れ
- Cisco CLIの基礎知識 ~コマンドの種類とモード~
- Cisco機器のインタフェース
- Cisco CLIのヘルプと補完
- Cisco CLIの主なエラーメッセージ
- Cisco 設定コマンドの削除
- default interfaceコマンド ~インタフェースの設定を初期化~
- Cisco コマンドの一括入力
- doコマンド ~コンフィグレーションモードからEXECコマンドを実行~
- interface rangeコマンド ~複数インタフェースの一括設定~
- showコマンド表示のフィルタ ~見たい情報だけを適切に表示~
- Cisco機器の時刻設定
- Cisco IOS 名前解決の設定
- terminal lengthコマンド ~コマンド出力の表示行数の設定~
- debugコマンド ~リアルタイムの動作確認~
- CLIログイン時に自動的に特権EXECモードに移行する
- Cisco 設定ファイルの保存とバックアップ
- 設定ファイルのバージョン管理 ~archiveコマンド~
- IOSファイルシステムの操作
- Catalystスイッチの管理 ~スイッチにIPアドレスを設定する意味~
- VTYアクセス(Telnet/SSH)によるリモート管理
- Cisco IOS SSH待ち受けポート番号の変更
- terminal monitorコマンド ~Telnet/SSHのログイン先のログを表示~
- 多段階Telnetのセッション中断
- Cisco パスワードの最小文字数設定
- ログイン試行の制限 ~login block-forコマンド~
- Cisco 初期設定の例
- CDP ~つながっている機器はなに?~
- Ciscoルータ パスワードリカバリ
- Catalystスイッチのパスワードリカバリ