コンフィギュレーションレジスタのお話
ご無沙汰しております。
1年以上更新が止まっていた当ブログですが、全く更新がないにも関わらずアクセスしてくれる方がいらっしゃるようで、、
そういうことなら久しぶりに更新しようとネタ探しをするもののなかなかいいネタが見つからず。。
とはいえここまで書き出してしまったので、先日購入したCiscoルータの設定の話でもしようと思います。
今日は"コンフィギュレーションレジスタ"について勉強になった話を。
失敗談 --------------------------------------------------------------------------------------
①購入したルータの簡単な動作確認をしようと、適当にホスト名やVTYログインの設定を実施
②"copy run start"後、"sh startup-config"でNVRAMに設定した内容が反映されていることを確認
③ルータの再起動を実施
④再起動後、running-configを確認するも、先ほど設定した内容が反映されていない
⑤startup-configには設定が保存されている
⑥なぜじゃい!!
-----------------------------------------------------------------------------------------------
となった訳である。
精通している方にとっては瞬殺問題なんでしょうが、何せへっぽこエンジニアなもので、意味がわからず頭をかきむしりました。
色々試行錯誤するも解決せず、もうルータを破壊しようと金槌を持ってきたところ、ふとあるワードを思い出しました。
それが、、
ここでコンフィギュレーションレジスタとはなんぞやを簡単におさらい。
コンフィギュレーションレジスタは、NVRAMに保存されている、ルータの動作を制御する16ビットの値。
各桁のビットの値によって、次回の再起動または電源投入時のルータの動作に影響を与える。コンフィギュレーションレジスタを使用して次のことができる。
・パスワードのリカバリ
・ROMモニタで強制的にブート
・ブート元及びデフォルトのブートファイル名を変更する
・ブロードキャストアドレスを変更
・コンソールの回線速度を変更
要するにこの16ビットの値の該当桁をオンオフすることで上記のような設定を明示的に行うことができる。ちなみにデフォルトは0x2102。
◾︎デフォルトのコンフィギュレーションレジスタ値
ここで注目すべきは7ビット目。(ビット番号6)
7ビット目ではstartup-configを制御している。
"1にすると、起動時にstartup-configを無視しセットアップコンフィグを呼び出す"
"0にすると、起動時にstartup-configを読み込む"
上の表からわかるように、デフォルトだと該当ビットは0になっている。(つまり起動時にstartup-configを読み込む)
例えばここが1になっていたとしたら、今回の事象に納得が行くと思い、恐る恐るShow versionを打ち込んだ出力がこれ。
ドンピシャーー!!
"Configuration register is 0x2142"になってやがる。
つまりこういうこと。
7ビット目が立っているので、起動時にstartup-config を無視してセットアップモードで起動していた(=設定を保存しても反映されていないように見えていた)
このままでは困るので、コンフィギュレーションレジスタ値を変更。。
コマンドは"(config)#config-register 0x2102"
再度sh verで確認すると。
再起動後に0x2102になると書いてあるので、迷わず再起動。
するとStartup-configから起動してくれました。
念のため再度確認。
コンフィギュレーションレジスタがデフォルトになっていることを確認。
というお話でした。
デフォルトではstartup-configから読み込むはずなので、前の使用者が設定を戻し忘れていたのかねえ。
基本的には僕のような目に遭うことはないはず。。
次回は起動繋がりで起動時のシーケンスについて勉強してみようかと思います〜。