コンテンツにスキップ

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)に関する設定を行うモード

各モードへの移行は以下図のような関係となる。

IOSモード

ユーザEXECモード

機器のステータスのみを確認できるモード。

特権EXECモード

機器のステータスを制限無しで確認/設定ファイルの操作を行えるモード。

enable

Global Configurationモード

機器全体の設定を行うモード。 具体的にはルータ本体の設定などを行う。

configure terminal
conf t

1.2.4. 設定ファイルとその保存場所

CISCO IOSの重要な設定ファイルにはstartup-configrunning-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. ルータの初期化の方法

ルータの初期化手順は以下の通り。

  1. NVRAM上のstartup-configを消去する
  2. ルータの再起動を行う

コマンドは特権EXECモードで以下の通り行う。

# startup-configの消去
erase startup-config
# 再起動
reload

1.2.6. CISCOルータの起動プロセス

CISCOルータの起動プロセスを以下に示す。

  1. POST(電源投入時自己診断)の実行
  2. BootStrapがCisco IOSをロードする
  3. 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

パイプを使用した絞り込み表示

show running-config | section vlan
コマンド 説明
begin 指定内容に一致した行から表示の開始
exclude 指定内容に一致した行は表示から除く
include 指定内容に一致した行のみを表示する
section 指定内容に一致したセクションのみを表示する

routerのospf設定のみを表示させる例

show runnning-config | section router ospf

1.3.2. copyコマンド - 設定ファイルの保存

特権EXECモードでcopyを実行することで設定ファイルを保存できる。

copy <コピー元> <コピー先>

startup-configに現行の設定を保存する例

running-configをNVRAMのstartup-configに上書きする。 これによりルータ電源を落としても設定が保存できる。

copy running-config startup-config

running-configをTFTPサーバにコピーする例

TFTPサーバに現行の設定をバックアップするためのコマンド。

copy running-config tftp

TFTPサーバに保存されたルータ設定をrunning-configにコピーする例

copy tftp running-config

1.3.3. hostnameコマンド - ルータ/スイッチの名称変更

特権EXECモードでhostnameを実行することでホスト名を変更、no hostnameでホスト名の設定の削除をできる。

hostname Router1

1.4. CISCO機器へのパスワード設定

1.4.1. ユーザEXECモードへのアクセス制限(Consoleパスワード)

Ciscoルータへ管理アクセスする方法にはコンソールポート経由、AUXポート経由、VTYポート経由の大きく3つある。 3つそれぞれのポートからアクセスする際にパスワードの入力を求めるように設定ができる。

コンソールポートへのパスワード設定

(config)#line console 0
(config-line)#password <パスワード>
(config-line)#login

AUXポートへのパスワード設定

(config)#line aux 0
(config-line)#password <パスワード>
(config-line)#login

VTYポートへのパスワード設定

(config)#line vty <開始ライン番号> <終了ライン番号>
(config-line)#password <パスワード>
(config-line)#login

接続の自動ログアウトの設定

(config-line)#exec-timeout <分> [<秒>]

1.4.2. 特権EXECモードへのアクセス制限(Enableパスワード)

Cisco機器の特権EXECモードに移る際(enable)にパスワードの入力を求めるように設定ができる。 パスワードのかけ方はenable passwordenable secretの2つがあり、暗号化される観点から後者の使用が推奨される。

enable password

(config)#enable password <パスワード>

enable secret

(config)#enable secret <パスワード>

1.4.3. パスワードの暗号化

Ciscoルータではenable secretコマンドのパスワードを除き、line vtyやconsoleに設定したパスワードや enable passwordなどは暗号化されずにクリアテキストとしてconfig上に表示されてしまう。 この問題はservice password-encryptionコマンドを設定することで、これらのパスワードが自動的に暗号化するようにできる。

service password-encryption

1.5. ローカル認証の設定とユーザアカウント作成

ローカル認証はパスワードだけでなくユーザー名も認証に必要な設定方法。 コンソールにローカル認証を設定するには以下の手順の通り。

  1. ユーザーアカウントの作成
  2. ラインコンフィグレーションモードに移行する
  3. 作成したユーザーアカウントの使用を指定

設定例を以下に示す。

(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のネットワーク機器にアクセスする場合は以下手順で設定を行う。

  1. ホスト名の設定
  2. ドメイン名の設定
  3. RSA暗号鍵の生成
  4. ユーザアカウントを作成
  5. ローカル認証の指定
  6. SSHの接続許可の設定
  7. 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 <1pアドレス | ホストのアドレス>

拡張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 <IPアドレス | ホストのアドレス>

拡張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コマンドのようにラッピングするための新しいコマンドを作成できる。 あんまり使わないけど役に立つ。

(config)#alias exec <エイリアス名> <エイリアスでラッピングしたいコマンド>
(config)#exit

削除する場合はno alias <エイリアス名> <エイリアスでラッピングしたいコマンド>

1.8.2. 間違ったコマンドを入れた際の名前解決を停止する

よくCisco IOSに誤ったコマンドを入れるとコマンドをドメインと勘違いして接続を試みようとして数十秒操作不能になる。 これを防ぐにはno ip domain-lookupを入れることで名前解決を試みなくなる。

1.8.3. ルータでメッセージを送る

接続中のセッション(ユーザコンソール)にメッセージを送る 送る際は実際にはshow usersでセッションを確認すると良い。

# vty 1に送る例
send vty 1

入力画面 Ctrl+Z で送信可能。