デバイスの管理【IOS管理 / その他管理機能】

CCNAの試験に向けて学習中。
復習に見返せるようにメモしていきます。
ほぼ自分の勉強メモです。
過度な期待はしないでください。

前回投稿記事
-
こちらの[デバイスの管理【システムログとNPT】](https://qiita.com/k-yasuhiro/items/7dac48bca221c9754e5a)投稿記事と、
こちらの[デバイスの管理【CDP / LLDP】](https://qiita.com/k-yasuhiro/items/82689fb98f5073d3730f)投稿記事の続きです。
<br>

4.IOSの管理とその他の管理機能
-
#### 4-1.IOSの管理
Cisco IOSとは、Internetwork Operating System の略称で、米シスコシステムズ社製の
ルータやスイッチなどのネットワーク機器に組み込まれた制御用の OSの事をいいます。
また、ルータ等に最も求められているのは、「24時間365日安定して動作すること」です。
その為ルータ等にはGUIのような凝ったものは使わずに、CLIを使用しています。

##### ■ 4-1-1.IOSイメージファイルの確認
IOSには様々なバージョンがあり、使用したい機能があった場合、現在動作している機器で
設定可能かどうかを調べる必要があります。そこで、現在使用している機器にどんなIOS
イメージファイルがインストールされているかを確認する必要があります。

IOSイメージファイルは、通常フラッシュメモリに格納されているので、フラッシュメモリを
確認します。フラッシュメモリを確認するには、<b>特権EXECモード</b>で
次の <font color="Red"><b>show flash コマンド</b></font>を実行します。

```
# show flash
```

show flash コマンドの実行結果を確認していきます。
<img width="600" alt="ファイル名" src="https://i.gyazo.com/ef62eaa21eeeafbe7f55e706fc8a93ef.png">
>
フラッシュメモリ内に保存されているファイルが確認出来ます（ 1行 ~ 10行目 ）
また最後の行では、フラッシュメモリの容量が確認出来ます。（　）の中には
現在の使用量が表されています。

また、<b>特権EXECモード</b>で次の <font color="Red"><b>show version コマンド</b></font>を実行しても確認する事が出来ます。

```
# show version
```
※詳細は[こちらの投稿記事](https://www.infraexpert.com/study/ciscorouter3.html)をご覧ください

<br>
##### ■ 4-1-2.IOSユニバーサルイメージ
現在の機種で採用されているユニバーサルイメージは、ライセンスの購入・有効化で使用する機種を
変更する事が出来ます。機能をアップグレードする際は、必要なライセンスを購入し有効化する
だけで、IOSイメージ自体の入れ替えは不要となっています。
show version コマンドで、IOSのフィーチャーを確認出来る所で<font color="Green">「C1900-UNIVERSALK9-M」</font>と
表示されていればユニバーサルイメージが使用されている事がわかります。
>
従来の機種では、インストールされているIOSはフューチャーセットにより使用出来る機能が
細かく分類されていました。その為、使用したい機能を確認して、条件を満たす
フューチャーセットを1つ選択して機器にインストールする必要がありました。また、機能を
アップグレードさせるには IOSイメージの入れ替えが必要です。


##### ■ 4-1-3.IOSの起動の手順
⚫️ STEP① ハードウェアのチェック
ROM内のPOST※1を実行してハードウェアのチェックを開始します。
>
※1 電源投入時に実行する自己診断プログラム。CPU、メモリ、インターフェースの
ハードウェア試験を実施するもの。

⚫️ STEP② ブーストトラップの実行
ROM内のブーストトラップ※2を実行して、NVRAM※3に保存されているコンフィグレーションレジスタの
値が読み込まれて、その値により起動モードが決定します。
>
※2 ブーストトラップとは、Cisco IOSのロードをする為のプログラムで、ブートストラップは
コンフィグレーションレジスタ値の参照とCisco IOSの検索と読み込みを行います。
コンフィグレーションレジスタ値に従い起動方法を指示して、その後Cisco IOSを検索して
Cisco IOSをロードします。
>
※3 NVRAM（エヌ‐ブイ‐ラム）は、読み書き可能なメモリです。
不揮発性ランダムアクセスメモリであるNVRAMはRAMとは異なりルータの電源OFF時にも
NVRAM内に格納された情報は保持されます。NVRAMには、<font color="Green">保存された設定情報(startup-config)</font>
と<font color="Green">コンフィグレーションレジスタ（ルータの起動方法を決定する値）</font>の2つが存在します。

⚫️ STEP③ IOSの読み込みと起動
ブートストラップによりIOSが読み込まれます。
その時に、NVRAMに保存されている startup-configに boot system コマンド※4で定義した内容に
従って、読み込むIOSを決定します。
>
※4 boot systemコマンドは、Flash内のIOSもしくは、TFTPサーバ上に置かれたIOSを
指定して起動させる事が出来ます。

⚫️ STEP④ IOSのロード
ブートストラップによりIOSがロードされます。
boot systemコマンドで定義した内容に従いIOSが読み込まれますが、boot systemコマンドでの
定義がない場合、<font color="Green">フラッシュメモリ内にあるIOS</font>が読み込まれて RAMにロードされる。
フラッシュメモリ内にIOSイメージファイルがない場合、ブロードキャストにより、
<font color="Red">TFTP</font>サーバーを探し、そこから IOSイメージファイルを読み込みます。
それでも、IOSイメージファイルが見つからない場合、<font color="Red"><b>ROMモニターモード</b></font>で起動します。

STEP⑤ 初期設定
IOSが起動したら、NVRAM内にstartup-configが存在する場合を、startup-configを読み込んで
初期設定を行います。startup-configが存在しない場合は、<font color="Red"><b>Setupモード</b></font>で起動します。

下記の画像は、上記のIOSの起動手順を示しています。
<img width="500" alt="ファイル名" src="https://i.gyazo.com/ff55d5661939cbe06094f8b31f123fc5.png">


<br>
##### ■ 4-1-4.IOSのTFTP※4を使用したバックアップ
>
※4 TFTP（Trivial File Transfer Protocol) とは、FTP※5を簡易化したアプリケーション層の
プロトコルです。FTPとは異なり、<font color="Green">ユーザ認証がいらずUDP上で動作</font>し、<font color="Red">ポート69</font>を
使用します。TFTPは、主にルータのバックアップやアップグレードする時によく使用します。
>
※5 FTPは、ファイルを送受信する時に使うプロトコルです。
ユーザ名とパスワード認証が行われ、TCP上で動作する信頼性のある通信になります。

TFTPサーバを利用したバックアップの手順下記の通りになります。

⚫️ STEP① TFTPサーバの準備
先ずは、TFTPサーバを用意します。
サーバには、LinixやWindows用のTFTPサーバソフトウェアインストールします。

下記のサイトはサーバ準備の参考資料になります。
[TCP/IP - FTP Server by 3CDaemon
](https://www.infraexpert.com/study/tcpip22.html)

⚫️ STEP② TFTPクライアントの準備
先ず、Cisco機器にはIPアドレスを設定します。
この際に、サーバーへ到達出来るかどうかを確かめる為に pind コマンド使用して確認する。

⚫️ STEP③ ファイルのアップロード
TFTPサーバにファイルをアップロードするには、<b>特権EXECモード</b>で
次の <font color="Red"><b>copy コマンド</b></font>を実行します。

```
# copy <コピー元> tftp:
```
>
＜コピー元＞には、「running-config」や「flash」などが入ります。

##### ■ 4-1-5.IOSのアップグレード
IOSのバージョンによっては、設定出来る項目が異なります。現在使用中のバージョンでは、
必要な機能を使用できない場合や既存のIOSに不具合などがあってIOSを変更したい場合など
IOSのアップグレードが必要になります。
なお、ユニバーサルイメージを採用している場合は、<font color="Green">必要なライセンスを購入し有効化</font>するだけで、
アップグレードされます。

IOSをアップグレードするには、<b>特権EXECモード</b>で
次の <font color="Red"><b>copy コマンド</b></font>を実行します。

```
# copy tftp: flash:
```
>
上記のまま入力するだけで、アップグレードされる。
>
フラッシュメモリに空き容量がない場合、現在のIOSを削除して空き容量を確保する必要が
あるので、delete flash：コマンドにより現在のIOS名を指定して削除します。
構文は<font color="Red">「delete flash:IOS名」</font>となります。

<br>
#### 4-2.パスワードリカバリ
パスワードリカバリとは、ルータのパスワードを忘れてログイン出来なくなってしまった際、
設定はそのままで、パスワードだけ変更する事をいいます。

##### ■ パスワードリカバリの手順
⚫️ STEP① ルータの電源のオンとオフ
コンソールに接続し、ルータの電源を落とした後、再度電源を入れます。
<br>
⚫️ STEP② ブレイク信号の送信
60秒以内にブレイク信号※6を送信します。
ブレイク信号の送信方法は、ターミナルエミュレータによって異なります。

TeraTermの場合
[Alt]キーと[B]キーを同時に押します。
正常にブレイク信号が送信されると <font color="Red">rommon1></font> というプロンプトが表示されます。
>
※6 実行中の処理を停止させる信号の事

⚫️ STEP③ コンフィグレーションレジスタ値の変更
レジスタの値を、<font color="Red"><b>0x2142</b></font>にすることで、ルータ起動時に保存されているstartup-configを
使用せずに初期状態の設定で起動します。
コンフィグレーションレジスタ値の変更するには、下記のコマンドを実行する。

```
rommon1> confreg 0x2142
```
>
プロンプトは、ブレイク信号を送信した事で変更される。

⚫️ STEP④ ルータの再起動
reset コマンドを使用してルータを再起動させます。
コンフィグレーションレジスタを変更した事により、設定を無視して起動する為、
Setupモードになります。
<br>
⚫️ STEP⑤ Setupモードをスキップ
ルータは初期状態で起動しますので、Setupモードが立ち上がります。
すべての設問に no を入力するか、[Ctrl + c]でSetupモードをスキップさせます。
<br>
⚫️ STEP⑥ 特権モードに移動
初期状態なので、パスワード無しで移行出来ます。

```
Router> enable
Router#
```
<br>
⚫️ STEP⑦ 保存されている設定ファイルの内容を反映させる
パスワード以外の設定はそのままで、パスワードのみを変更させる必要があります。
そこで、一度設定したファイルの内容をルータに反映させます。
保存されている設定ファイルの内容を反映させるには、<b>特権EXECモード</b>で
次の <font color="Red"><b>copy startup-config running-config コマンド</b></font>を実行します。

```
# copy startup-config running-config
```
<br>
⚫️ STEP⑧ パスワードを再設定する
パスワードを設定するには、ラインコンフィグレーションモードで passwordコマンドを
実行する。

```
# configure terminal

(config)# enable < password >
(config)# exit
```
<br>
⚫️ STEP⑨ コンフィグレーションレジスタの値の復帰
このままでは次回再起動した時に設定ファイルを読み込まないので、
コンフィグレーションレジスタを通常起動の <font color="Red"><b>0x2102</b></font>に戻します。
コンフィグレーションレジスタの値を変更するには、<b>グローバルコンフィグレーションモード</b>で
次の <font color="Red"><b>config-register コマンド</b></font>を実行します。

```
# configure terminal

(config)# config-register 0x2102
(config)# exit
```
<br>
⚫️ STEP⑩ 設定の保存
最後に設定を startup-config に保存します。

```
# copy running-config startup-config
```

<br>
#### 4-3.リモートアクセス管理
PCからCisco機器にTELNET接続ができるように、Cisco機器からCisco機器へと
TELNET接続が行えます。下図の通り、PCからCisco機器にコンソール接続を行い、
その機器からまた別のCisco機器にTELNET接続が出来ます。
<img width="600" alt="ファイル名" src="https://i.gyazo.com/e933aa04fc3066f9c0f1d8d68bbb929d.png">

##### ■ 4-3-1.ルータやスイッチからのTELNET・SSH接続
⚫️ ルータやスイッチから他の機器にTELNET接続するには、<b>特権EXECモード</b>で
次の <font color="Red"><b>TELNET コマンド</b></font>を実行します。

```
# telnet < IPアドレス | ホスト名 >
```
>
＜IPアドレス | ホスト名＞には、接続したい機器のIPアドレスかホスト名を指定します。
ホスト名を指定する場合は、そのホスト名からIPアドレスが解決出来る必要があります。

⚫️ ルータやスイッチから他の機器にSSH接続するには、<b>特権EXECモード</b>で
次の <font color="Red"><b>ssh コマンド</b></font>を実行します。

```
# ssh -l < ユーザ名 > < IPアドレス | ホスト名 >
```
>
sshではログインする＜ユーザ名＞を、-lオプションで指定する必要があります。

##### ■ 4-3-2.リモート接続の切断
リモート接続を終了するには、<b>ユーザEXECモード</b>や<b>特権EXECモード</b>で
次の <font color="Red"><b>exit コマンド</b></font>か <font color="Red"><b>logout コマンド</b></font>を実行します。

```
# exit 
```
>
[ logout ]コマンドでも同様の動作をします。


##### ■ 4-3-3.セッションの中断
TELNET接続を終了せずに、元のデバイス（R1）に戻る為には、<font color="Red"><b>「Ctrl + Shift + 6」</b></font>キーを同時に
押してから、その全てのキーを放して<font color="Red"><b>「X」</b></font>キー押します。
そうする事で、TELNETセッションを維持したまま、元のデバイスの方に戻る事が出来ます。
<img width="600" alt="ファイル名" src="https://i.gyazo.com/212cf78327073d6c94b7e09e8aa20d11.png">
<br>
##### ■ 4-3-4.セッションの再開
中断しているセッションを再開するには、<b>特権EXECモード</b>で次の <font color="Red"><b>resume コマンド</b></font>を実行します。

```
# resume [< セッション番号 >]
```
>
＜セッション番号＞には、再開したいセッション番号を指定します。
省略すると、最後のセッションに戻ります。
>
また、resumeを省略して、＜セッション番号＞だけ指定する事も出来ます。
こうした場合、直前に中断したセッションが再開されます。

<br>
##### ■ 4-3-5.セッションの確認
複数のリモートセッションを中断していた場合には、どのセッションに戻るのかを
指定する必要があります。その為、現在存在しているリモートセッションを確認する必要が
あります。現在存在するリモートセッションを確認するには、<b>特権EXECモード</b>で
次の <font color="Red"><b>show sessions コマンド</b></font>を実行します。

```
# show sessions
```

<br>
##### ■ 4-3-6.中断しているセッションの切断
<img width="600" alt="ファイル名" src="https://i.gyazo.com/84b561352bcf2cf5cd58abfb34a94ee3.png">
セッションの中断を行って元のデバイスに戻ったものの、接続先のデバイスへの
TELNETセッションの再開は必要ないと考え、元のデバイスでセッションを切断しようとした
場合、<b>特権EXECモード</b>で次の <font color="Red"><b>disconnect コマンド</b></font>を実行します。

```
# disconnect < セッション番号 >
```

<br>
##### ■ 4-3-7.ログインしてきているセッションの確認
自身のルータにログインされているユーザの確認をする事が出来ます。
ログインしているユーザを確認するには、<b>特権EXECモード</b>で次の <font color="Red"><b>show users コマンド</b></font>を実行します。

```
# show users
```

<br>
#### 4-4.バナーメッセージの設定
ユーザがデバイスにリモート接続やコンソール接続した際に、認証の前にメッセージを出す事が
出来ます。これを、バナーメッセージといいます。ルータへのアクセスを注意する警告などを
表示させたり出来ます。

バナーメッセージを設定するには、<b>グローバルコンフィグレーションモード</b>で
次の <font color="Red"><b>banner-moth コマンド</b></font>を実行します。

```
(config)# banner-moth < 区切り文字 >
```
>
＜区切り文字＞には、メッセージを終了する際に入力する文字を指定します。