1. CISCO機器の基礎
CISCO機器のL2スイッチやルータを操作・扱うための備忘録を記載する。
1.1. CISCO機器への接続
CISCOのルータやスイッチにアクセスする方法は3つある。
方法 | 説明 |
---|---|
コンソール接続 | ConsoleポートとPCをコンソールケーブルで接続する |
VTY(仮想端末)接続 | ネットワーク経由でリモートでTELNET/SSHで接続する |
AUX接続 | AUXポートとモデムを接続し電話回線経由で接続する |
基本的にはコンソール接続やVTY接続はTeraTerm等のターミナルエミュレータを使用して機器にアクセスして設定を行う。
1.1. コンソール接続
コンソールケーブル(ロールオーバケーブル)でPCとルータ等のConsoleポートを接続する方法。 最近はPC側にDB-9コネクタがない場合が多いので、USBへの変換ケーブルを挟んで使用する場合が多い。
1.2. VTY接続
遠隔操作用のプロトコルであるTelnet/SSHを使用して設定/状態確認を行う方法。
Telnetの場合
通信経路上で入力した情報が暗号化されずに平文で送信されるためパスワードなどが漏洩する可能性がある。
SSHの場合
通信経路上で暗号化して送信されるためパスワード等が漏洩する危険性が低い。
1.2. CISCOルータ操作の基本知識
1.2.1. CISCOのIOS
CISCO製品のルータやスイッチはCISCO独自のCisco IOSがOSとして使用されている。 アクセスは基本的にはCLIで行う必要がある。
1.2.2. CISCO IOSの初期状態
CISCOルータ/スイッチの初期状態ではアクセスするとSetup モードとなっている。
Setupモードでは質問の1つずつ答えることで設定が可能となるが、一般的には使用されない。
初回時にyes
と答えるとSetupモードで設定ができ、no
と答えるとSetupモードではなく手動で設定が可能。
1.2.3. CISCO IOSのモード
Cisco IOSには操作モードがいくつかあり、それぞれの状態でできることが異なる。
モード名 | プロンプト | 説明 |
---|---|---|
ユーザEXECモード | > | 機器のステータスを確認できるモード |
特権EXECモード | # | 制限なく機器の動作/ステータスを確認できるモード |
Global Configurationモード | (config)# | 機器全体に関わる設定を行うモード |
Interface Configurationモード | (config-if)# | インターフェイスに関する設定を行うモード |
Routing Configurationモード | (config-router)# | ルーティングに関する設定を行うモード |
Line Configurationモード | (config-line)# | (コンソール、AUX、VTY)に関する設定を行うモード |
各モードへの移行は以下図のような関係となる。
ユーザEXECモード
機器のステータスのみを確認できるモード。
特権EXECモード
機器のステータスを制限無しで確認/設定ファイルの操作を行えるモード。
Global Configurationモード
機器全体の設定を行うモード。 具体的にはルータ本体の設定などを行う。
1.2.4. 設定ファイルとその保存場所
CISCO IOSの重要な設定ファイルにはstartup-config、running-configという2つのファイルがある。
startup-config
起動時に読み込まれるファイルでNVRAMに保存されるルータが再起動しても内容が消えない設定ファイル。 再起動時にデータが消えないようにするにはこのファイルに書き込む必要がある。
runnning-config
ルータが再起動すると消えるファイル。現在動作している設定内容が保存されているファイル。
ルータのメモリ領域
CISCOルータには4つのメモリ領域がある。
種類 | 保存内容 | 説明 |
---|---|---|
RAM | running-configなど | 読み書き可能、電源を消しても内容は消える |
NVRAM | startup-config, コンフィギュレーションレジスタ | 読み書き可能、電源を消しても内容は消えない |
ROM | Mini IOS, POST, BootStrap, ROMモニタ | 読み書き専用、電源を消しても内容は消えない |
フラッシュメモリ | IOS | 読み書き可能、電源を消しても内容は消えない |
RAMは揮発性メモリであり、running-configやパケットなどを一時保持するバッファ、ルーティングテーブルなどがここに保持される。
NVRAMは不揮発性メモリであり、startup-configやコンフィギュレーションレジスタが保存される。 このコンフィギュレーションレジスタはルータのブート制御に使用される。 以下にコンフィギュアレーションのレジスタ値を示す。
レジスタ値 | 説明 |
---|---|
0x2100 | ROMモニタで起動、パスワード復旧時に使用する |
0x2101 | Mini IOSでブート、IOSバージョンアップで使用する |
0x2102 | 通常通りIOSや設定を読み込んで起動 |
0x2142 | パスワードリカバリの際に使用される |
コンフィギュレーションレジスタ値はshow version
で確認可能。
またコンフィギュレーションレジスタ値の変更はconfigure-registor <レジスタ値>
で行う。
ROMはルータ起動/ハードウェアチェックを行うためのプログラムが格納される。 ROMに保存されるプログラムを以下表に示す。
プログラム | 説明 |
---|---|
POST | ハードウェアチェックを行う |
BootStrap | OSをロードする |
ROMMON | パスワードリカバリやIOSのリカバリの際に使用される |
Mini OS | IOSの最小限機能を持ち、ハードウェアエラーの際に読み込まれる |
フラッシュメモリにはCisco IOSの情報が保持される。
1.2.5. ルータの初期化の方法
ルータの初期化手順は以下の通り。
- NVRAM上のstartup-configを消去する
- ルータの再起動を行う
コマンドは特権EXECモードで以下の通り行う。
1.2.6. CISCOルータの起動プロセス
CISCOルータの起動プロセスを以下に示す。
- POST(電源投入時自己診断)の実行
- BootStrapがCisco IOSをロードする
- Cisco IOSが有効なコンフィギュレーションファイルをロードする
1.2.7. コマンド入力補助機能
UNIXコマンドと同じようにCISCO IOSにも似た補完機能がある。
機能 | 入力キー | 説明 |
---|---|---|
ヘルプ機能 | ? | コマンドやオプションを忘れた際に入力中のコマンドに続く候補を教えてくれる |
補完機能 | tabキー | コマンドの後ろ部分を保管してくれる機能 |
直前コマンド入力機能 | ↑キー もしくは Ctrl+P | 以前に入力したコマンドの表示 |
次コマンド入力機能 | ↓キー もしくは Ctrl+N | 次に入力したコマンドの表示 |
do コマンド | Global Configurationモードでdo をつけると特権EXECモードでコマンドが実行可能 |
なおコマンドの履歴は特権EXECモードでshow historyコマンドを実行すると表示される。
1.3. 基本的なCISCOコマンド
1.3.1. showコマンド - 設定などの確認
特権EXECモードでshow
を実行することで各種設定を確認できる。
# 現在の設定を確認する例
show running-config
show run
# コマンド履歴の確認
show history
# ConfigureationTerminalとHistoyBufferSizeの表示
show terminal
# インターフェイス情報の詳細表示
show interfaces
# インターフェイス情報の簡潔表示
show interfaces brief
# 時刻の表示
show clock
パイプを使用した絞り込み表示
コマンド | 説明 |
---|---|
begin | 指定内容に一致した行から表示の開始 |
exclude | 指定内容に一致した行は表示から除く |
include | 指定内容に一致した行のみを表示する |
section | 指定内容に一致したセクションのみを表示する |
routerのospf設定のみを表示させる例
1.3.2. copyコマンド - 設定ファイルの保存
特権EXECモードでcopy
を実行することで設定ファイルを保存できる。
startup-configに現行の設定を保存する例
running-configをNVRAMのstartup-configに上書きする。 これによりルータ電源を落としても設定が保存できる。
running-configをTFTPサーバにコピーする例
TFTPサーバに現行の設定をバックアップするためのコマンド。
TFTPサーバに保存されたルータ設定をrunning-configにコピーする例
1.3.3. hostnameコマンド - ルータ/スイッチの名称変更
特権EXECモードでhostname
を実行することでホスト名を変更、no hostname
でホスト名の設定の削除をできる。
1.4. CISCO機器へのパスワード設定
1.4.1. ユーザEXECモードへのアクセス制限(Consoleパスワード)
Ciscoルータへ管理アクセスする方法にはコンソールポート経由、AUXポート経由、VTYポート経由の大きく3つある。 3つそれぞれのポートからアクセスする際にパスワードの入力を求めるように設定ができる。
コンソールポートへのパスワード設定
AUXポートへのパスワード設定
VTYポートへのパスワード設定
接続の自動ログアウトの設定
1.4.2. 特権EXECモードへのアクセス制限(Enableパスワード)
Cisco機器の特権EXECモードに移る際(enable)にパスワードの入力を求めるように設定ができる。 パスワードのかけ方はenable passwordとenable secretの2つがあり、暗号化される観点から後者の使用が推奨される。
enable password
enable secret
1.4.3. パスワードの暗号化
Ciscoルータではenable secretコマンドのパスワードを除き、line vtyやconsoleに設定したパスワードや
enable passwordなどは暗号化されずにクリアテキストとしてconfig上に表示されてしまう。
この問題はservice password-encryption
コマンドを設定することで、これらのパスワードが自動的に暗号化するようにできる。
1.5. ローカル認証の設定とユーザアカウント作成
ローカル認証はパスワードだけでなくユーザー名も認証に必要な設定方法。 コンソールにローカル認証を設定するには以下の手順の通り。
- ユーザーアカウントの作成
- ラインコンフィグレーションモードに移行する
- 作成したユーザーアカウントの使用を指定
設定例を以下に示す。
(config)#username <ユーザー名> [privilege <特権レベル>] password <パスワード>
(config)#line console 0
(config-line)#login local
特権レベルはユーザーの特権レベルを指定する。 0 ~ 15 が指定でき、設定されたレベル以下のコマンドしか実行できなくなる。
privilegeを指定せずに作成したユーザーでログインするとユーザEXECモードから始まり、 実行出来るコマンドは1以下に設定されているコマンドになる。
特権レベル15は特権EXECモードとなり、全てのコマンドが実行出来る。 この場合、ログイン後にユーザEXECモードを経由する事なく特権EXECモードから始まる。
1.6. SSH接続の設定
SSHでCiscoのネットワーク機器にアクセスする場合は以下手順で設定を行う。
- ホスト名の設定
- ドメイン名の設定
- RSA暗号鍵の生成
- ユーザアカウントを作成
- ローカル認証の指定
- SSHの接続許可の設定
- SSHのバージョン指定
設定例は以下の通り。
(config)#ip domain-name <ドメイン名>
(config)#crypto key generate rsa
(config)#
(config)#username <ユーザー名> [privilege <特権レベル>] password <パスワード>
(config)#line console 0
(config-line)#login local
(config-line)#exit
(config)#
(config)#line console 0
(config-line)#tranceport input <telnet | ssh | all | none>
(config-line)#exit
# SSH 1.0の脆弱性からバージョン2の利用が推奨
(config)#ip ssh version <1 | 2>
1.7. ネットワークの調査を行うためのコマンド
1.7.1. tracerouteと拡張traceroute
traceroute
tracerouteはコンピュータからIPネットワーク上の対象機器までの経路を調べ、パケットがそこに至るまでの中継機器のアドレス等を一覧で表示する機能。
Ciscoのルータではこの機能をサポートしている。
拡張traceroute
拡張tracerouteコマンドは特権モードでのみ使用できる。 拡張tracerouteコマンドはtracerouteコマンドの後に何もパラメータを指定しないで実行する。
実行後、様々なパラメータを入力するように促され、tarcerouteを細かく設定できる。
- Target IP address…宛先IPアドレスを指定
- Source address…送信元IPアドレスを指定
- Probe count…送信するプローブパケットの数を指定
- Minimum Time to Live…最小のTTLを指定(2を指定した場合は2ホップ目からの情報が表示される)
- Maximum Time to Live…最大のTTLを指定
1.7.2. pingと拡張ping
ping
pingは疎通確認用のL3以上のプロトコル。
拡張ping
拡張Pingを行った場合、さまざまなパラメータを指定できる。 拡張Pingで指定できる主なパラメータを以下に記す。
- Protocol
- Target IP address
- epeat count(パケットの数)
- Datagram size
- Timeout in seconds
- Source address or interface
1.8. お役立ちCISCO IOSコマンドメモ
役に立つかわからないけど、Cisco IOSのコマンドやシステムに関するメモを記載します。
1.8.1. alias exec - コマンドの代替え
コマンドをLinuxのaliasコマンドのようにラッピングするための新しいコマンドを作成できる。 あんまり使わないけど役に立つ。
削除する場合はno alias <エイリアス名> <エイリアスでラッピングしたいコマンド>
1.8.2. 間違ったコマンドを入れた際の名前解決を停止する
よくCisco IOSに誤ったコマンドを入れるとコマンドをドメインと勘違いして接続を試みようとして数十秒操作不能になる。
これを防ぐにはno ip domain-lookup
を入れることで名前解決を試みなくなる。
1.8.3. ルータでメッセージを送る
接続中のセッション(ユーザコンソール)にメッセージを送る
送る際は実際にはshow users
でセッションを確認すると良い。
入力画面 Ctrl+Z で送信可能。