シスコ社の製品のうち、ルータは Cisco*** という製品名でスイッチは Catalyst*** という製品名です。いずれも *** は機種番号で、数字が小さいほど小規模ネットワーク向けとなっています。例えば資格試験 CCNA Routing and Switching では小規模および中規模ネットワークが対象です。そのため、中小規模のネットワークのルータおよびスイッチが手元にあるとよいです。例えば以下のような製品です。
- ルータ: Cisco 800, 1900, 2900, 3900
- スイッチ: Catalyst 2960, 3560, 3750
ルータおよび一部を除くスイッチには Cisco IOS (Internetwork Operating System) が搭載されています。ネットワーク技術者は IOS を操作するために、その操作コマンドに習熟していることが求められます。本ページではよく使用する基本的なコマンドを紹介します。
シミュレータの用意
Cisco製品のコマンドを学習するためには手元に実機があることが最も望ましいです。例えばヤフーオークションで一台 5000 円前後で入手できます。しかしながら、学習を進めると一台のルータだけではなく複数台を組み合わせたネットワーク環境が必要になります。その度毎に機器を購入するのは金銭的に負担が大きいため、ここでは騒音もなく静かな環境で学習できるネットワークシミュレータの利用を推奨します。
有料であれば Network Visualizer が有名ですが、残念なことにやや高額なためここではシスコ社製かつ無料の Packet Tracer を利用します。Packet Tracer は公式には会員限定のソフトウェアであるため、例えば こちらのブログ で紹介されている手順で入手する必要があります。2014-12-29(Mon) 現在 MacOSX には対応していないため、Windows環境を用意する必要があります。実機と比較すると機能に不足はありますが、例えばCCNA程度までの基本的な部分はサポートされています。実機とほぼ同じ機能を実現するためにはシミュレータではなくエミュレータが必要です。エミュレータとしては GNS3 (Graphical Network Simulator) が有名です。しかしながら、エミュレートするための IOS を自分で用意する必要があるため、敷居が高くなってしまっています。日本語での情報は Packet Tracer よりも GNS3 のほうが多いため利用を検討する価値はあります。
基本コマンド
コマンドを入力する端末とCisco製品の通信には、TCP/IP通信とシリアル通信の二種類があります。例えば後者の通信にはシリアルケーブルが利用されます。使用するケーブルがそれぞれ異なることには注意が必要です。また、ルータを起動すると "Continue with configuration dialog? [yes/no]" などという文言が表示されますが、学習時には対話形式ではなくコマンドで一つ一つ設定したいため no と入力してください。
モードの切替
- ユーザモード: 起動時のモードです。基本事項の確認用
- 特権モード: 詳細事項の確認用
- グローバルコンフィギュレーションモード: ルータ全体に影響のある一般的な設定変更用
- 詳細なコンフィギュレーションモード: ネットワークインターフェイスの設定変更用のインターフェイスコンフィギュレーションモード等
ユーザモードから特権モードへの切替
Router>enable
Router#
モードを抜けるには disable を使用します。
Router#disable
Router>
特権モードからグローバルコンフィギュレーションモードへの切替
Router#configure terminal
Router(config)#
モードを抜けるには exit を使用します。
Router(config)#exit
Router#
詳細なコンフィギュレーションモードへの切替
例えばギガビットイーサネットのスロット 0 の最初のインターフェイスの設定を行うためには、グローバルコンフィギュレーションモードからインターフェイスコンフィギュレーションモードに切り替えます。特権モードから直接切替はできません。グローバルコンフィギュレーションモードから切り替えてください。
Router(config)#interface gigabitethernet 0/0
R1(config-if)#
モードを抜けるには exit を使用します。
R1(config-if)#exit
Router(config)#
時刻の表示
Router#show clock
*0:14:25.521 UTC Mon Mar 1 1993
ホスト名の変更
グローバルコンフィギュレーションモードまたは詳細なコンフィギュレーションモードにおいて以下のコマンドを実行します。
Router(config)#hostname R1
R1(config)#
ホスト名を既定値に戻すためには以下のコマンドを実行します。
R1(config)#no hostname
Router(config)#
製品情報の確認
製品のモデル名や IOS のバージョンなどが表示されます。
Router#show version
出力例
Cisco IOS Software, C2900 Software (C2900-UNIVERSALK9-M), Version 15.1(4)M4, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2012 by Cisco Systems, Inc.
Compiled Thurs 5-Jan-12 15:41 by pt_team
...
パスワードの設定
特権パスワードの設定
ユーザモードから特権モードに入る際のパスワードを設定できます。グローバルコンフィギュレーションモードにおいて以下のコマンドを実行します。
Router(config)#enable password mypassword
Router(config)#
コンソールパスワードの設定
ルータの設定を行うための最も基本的な手段がコンソール接続です。コンピュータの COM ポート (シリアルポート) とルータのコンソールポートをロールオーバーケーブルで接続します。コンソールポートに接続したPCで TeraTerm などを利用してユーザモードに入る際に必要なパスワード設定できます。まず、グローバルコンフィギュレーションモードからラインコンフィギュレーションモードに切り替えます。コンソールは基本的に1つですのでコンソール番号は 0 とします。
Router(config)#line console 0
パスワードを設定します。login コマンドを入力してはじめてパスワードが有効になることに注意しましょう。確かに password は設定されたのですが、そもそもパスワード認証が OFF になっていたのでは意味がありません。
Router(config-line)#password mypassword
Router(config-line)#login
Router(config-line)#
特権モードまたはユーザモードにおいて exit としてログアウトすると、ログインパスワードを求められることが確認できます。
Router#exit
vty パスワードの設定
ロールオーバーケーブルを用いたコンソールポートへの直接接続以外に telnet を利用した遠隔ログインも可能です。この場合の仮想的なラインをコンソールに対して vty (Virtual Teletype) ラインとよびます。vty ラインにはライン番号が付与されており、個別に vty パスワードを設定可能です。ライン番号を指定してログインすることはできないため、便宜上すべてのラインに同じパスワードを設定するとよいです。一般的な Cisco 製品は、パスワードが設定されていない vty ラインを使用して telnet ログインできない設定になっています。そのため、初期状態では vty ラインは利用できません。ライン番号 0,1,2 の三つにパスワードを設定する例を示します。
Router(config)#line vty 0 2
Router(config-line)#password mypassword
Router(config-line)#login
Router(config-line)#
AUX ポート (参考)
コンソールポートおよび仮想端末 (VTY) による接続の他に、AUX (Auxiliary; 補助の) ポートによるログインをサポートしている機器があります。電話網とモデムを経由して遠隔でログインするために使用されます。
IPの設定
インターフェイスに対して IP を設定する例を示します。IP を設定した後に no shutdown でインターフェイスを up にすることを忘れないようにしましょう。
Router#configure terminal
Router(config)#interface gigabitethernet 0/0
Router(config-if)#ip address 192.168.1.254 255.255.255.0
Router(config-if)#no shutdown
割り当てた IP を消去するには以下のコマンドを実行します。
Router(config-if)#no ip address
現在の設定を確認
インターフェイスの設定を確認
Router#show interfaces gigabitethernet 0/0
GigabitEthernet0/0 is up, line protocol is up (connected)
Hardware is CN Gigabit Ethernet, address is 00e0.a32e.5701 (bia 00e0.a32e.5701)
Internet address is 192.168.1.254/24
...
- "GigabitEthernet0/0 is up": レイヤ 1 で up していることが確認できます (no shutdown していないと administratively down となります)
- "line protocol is up": レイヤ 2 で up していることが確認できます (電気的にレイヤ 1 で up だとしてもレイヤ 2 のプロトコルが相手と異なっている場合などに down となります)
- "bia 00e0.a32e.5701": MACアドレス (bia: burnt in address) が確認できます
インターフェイスを指定せずに実行することもできます。
Router#show interfaces
GigabitEthernet0/0 is up, line protocol is up (connected)
Hardware is CN Gigabit Ethernet, address is 00e0.a32e.5701 (bia 00e0.a32e.5701)
Internet address is 192.168.1.254/24
...
インターフェイスの要約情報の表示
Router#show ip interface brief
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 unassigned YES NVRAM administratively down down
GigabitEthernet0/1 unassigned YES NVRAM administratively down down
Vlan1 unassigned YES NVRAM administratively down down
現在有効なルーティングプロトコルも表示するためには以下のようにします。
Router#show protocols
Global values:
Internet Protocol routing is enabled
GigabitEthernet0/0 is administratively down, line protocol is down
GigabitEthernet0/1 is administratively down, line protocol is down
Vlan1 is administratively down, line protocol is down
ルータ全体の設定を確認
Router#show running-config
出力抜粋
enable password mypassword
...
interface GigabitEthernet0/0
ip address 192.168.1.254 255.255.255.0
...
line con 0
password mypassword
login
...
line vty 0 2
password mypassword
login
...
後述の startup-config についても同様のコマンドで確認可能です。
Router#show startup-config
ルーティングテーブルの表示
Router#show ip route
出力抜粋
L 192.168.1.254/32 is directly connected, GigabitEthernet0/0
設定の保存
ルータには記憶デバイスが複数備わっています。
- RAM: 現在の設定 running-config が一時保存されます。揮発性です
- NVRAM (Non-Volatile RAM): 起動時に使用される設定 startup-config が保存されます。バッテリによって電源が供給されており、擬似的に不揮発性です
- ROM: 起動時に実行するプログラムなどが保存されています。不揮発性です
- flash: IOSイメージが保存されます。不揮発性です
次回起動時のために設定を保存するためには以下のコマンドを実行します。
Router#copy running-config startup-config
保存した設定を削除して初期化するためには以下のようにします。
ルータの初期化
Router#erase startup-config
Router#reload ← システムの再起動
スイッチの初期化
ルータの場合と異なりフラッシュメモリ内の vlan.dat も削除します。
Switch#erase startup-config
Switch#delete vlan.dat
Switch#reload
作業効率を向上させる機能
ヘルプ
ワイルドカードとして ? を挿入したコマンドを実行すると ? に入れることができる候補の一覧を表示できます。
ユーザモードの候補例
Router>?
Exec commands:
<1-99> Session number to resume
connect Open a terminal connection
disable Turn off privileged commands
disconnect Disconnect an existing network connection
enable Turn on privileged commands
exit Exit from the EXEC
logout Exit from the EXEC
ping Send echo messages
resume Resume an active network connection
show Show running system information
ssh Open a secure shell client connection
telnet Open a telnet connection
terminal Set terminal line parameters
traceroute Trace route to destination
特権モードにおける show interfaces に続く候補例
Router#show interfaces ?
Dot11Radio Dot11 interface
Ethernet IEEE 802.3
FastEthernet FastEthernet IEEE 802.3
GigabitEthernet GigabitEthernet IEEE 802.3z
Loopback Loopback interface
Port-channel Ethernet Channel of interfaces
Serial Serial
Tunnel Tunnel interface
Virtual-Access Virtual Access interface
Virtual-Template Virtual Template interface
Vlan Catalyst Vlans
switchport Show interface switchport information
trunk Show interface trunk information
<cr>
コマンドが思い出せない場合に重宝する使用方法の例
Router#s?
send setup show ssh
補完
タブでコマンドを補完できます。
出力のフィルタリング
UNIXコマンドにおける grep のようなことが実現できます。
#show running-config | include ip route ← "ip route" を含む行のみ
#show running-config | begin line vty ← "line vty" から始まる行以下すべて
#show running-config | section password ← password セクションのみ
履歴一覧
以下のコマンドで履歴を表示できます。
Router#show history
enable
show running-config | include hoge
show history
履歴の記憶個数の最大値は以下のコマンドで確認できます。
Router#show terminal ← 現在の設定表示するコマンド
...
History is enabled, history size is 10.
...
変更するためには以下のようにします。
Router#terminal history size 20
既定値に戻すためには以下のようにします。
Router#terminal no history size
ping および traceroute
UNIX コマンドとしてもお馴染の ping や traceroute を使用できます。いずれのコマンドも ICMP を利用しています。IOS で強制終了するためには Ctrl-c ではなく Ctrl + Shift + 6 です。
ping
Router#ping 127.0.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 127.0.0.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
結果の見方
- !: ICMPエコー応答 (成功)
- .: ICMPエコー応答を受信できずにタイムアウト
- U: ICMP到達不能を受信 (途中のルータがルーティングできない可能性)
- Q: ICMP送信元抑制を受信 (宛先がビジー状態)
- M: フラグメンテーションに失敗
- ?: パケットタイプが不明
- &: ICMP時間超過を受信 (TTLが0になって破棄)
拡張 ping
対話的にパラメータ設定して ping することができます。これを拡張 ping とよびます。ネットワーク層のプロトコルとして ip 以外に appletalk や ipv6 などを指定できます。
Router#ping ← 引数なしで ping を実行します
Protocol [ip]:
Target IP address: 127.0.0.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 127.0.0.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
traceroute
上位層に UDP データグラムを利用します。TTL を 1,2,3,... と目的のホストに到達できるまで増加させていきます。例えば TTL = 1 で送信して TTL = 0 になるとパケットが破棄されて ICMP 時間超過メッセージが返されます。返されたメッセージの送信元アドレスを調べることで、どのようなルーティングがなされているかを知ることができるのです。
Router#traceroute 127.0.0.1
Type escape sequence to abort.
Tracing the route to 127.0.0.1
1 * * *
...
結果の見方
- 数値: ICMPメッセージを受信するまでに要したラウンドトリップ時間。単位はミリ秒
- *: 応答を受信できずにタイムアウト
- A: パケットフィルタリングなどの管理上の理由によってパケット転送が禁止された
- Q: ICMP送信元抑制を受信 (宛先がビジー状態)
- I: ユーザによるテストの中断
- U: ICMPポート到達不能
- H: ICMPホスト到達不能
- N: ICMPネットワーク到達不能
- P: ICMPプロトコル到達不能
- T: タイムアウト
- ?: パケットタイプが不明
関連記事
- BIND 9 ゾーンファイル Dynamic Update の設定方法DHCP 環境下などで IP が動的に付与される場合は DNS レコードを動的に更新する必要があります。これを実現する Dynamic Update 機能が BIND 9 には実装されています。使用方法をまとめます。Dynamic Update に対応した DNS を特に Dynamic DNS または DDNS とよぶことがあります。 ゾーンファイルの作成 ローカルホストに example.co...
- VyOS の基本的なルーティング設定本ページでは、複数の LAN をつなぐルータとしての設定方法をまとめます。具体的には、スタティックルーティングおよびダイナミックルーティング (RIP/OSPF/BGP)の設定方法を把握します。 設定方法を検証するための構成 ルーティング設定の検証を行うために VirtualBox で 5 台の VM を用意します。ホスト OS から vyos-0001 へ SSH 接続する部分を除き、「内部ネッ...
- BIND 9.10.2 の公式マニュアルに学ぶ DNS の基本DNS の実装としては Internet Systems Consortium (ISC) の Berkeley Internet Name Domain (BIND) が有名です。本ページは公式サイトの Documentation からダウンロードできる v9.10.2 の PDF マニュアルおよび『DNSの仕組み完全解説』から基本事項を抽出してまとめ
- スタティックルートの設定インターフェイスに IP を設定しただけでは他のデバイスと通信できません。各デバイスにルーティングテーブルを設定する必要があります。ルーティングテーブルの設定方法には動的に自動設定するものと、静的に手動設定するものの二種類があります。ここでは静的に手動設定するスタティックルートの方法を紹介します。 具体的にはまず PC0, PC1, Router0, Router1 それぞれ
- 低レイヤーネットワークプログラミングに関する雑多な知識TCP/IP モデルのうちトランスポート層ではなく、インターネット層およびネットワークインターフェイス層のパケット (正確には PDU) を扱う低レイヤープログラミングの雑多なテクニックをまとめます。『ルーター自作でわかるパケットの流れ』などを参考にしています。バックアップ目的で書籍のサンプルコードをホスティングしました。 検証環境