Cisco IOSによるルータ設定

目次

本サイトの枠から少し出てしまいますが、Ciscoルータを使ってブロードバンドルータ的な設定をしたことが以前にありましたので作業履歴としてまとめました。詳しい情報はCisco専門の解説ページを参照してください。

IOSデバイスに接続する
IOSのアクセスレベル
IOSとメモリの種類
設定モード
IOS DHCP
NAT

戻る

IOSデバイスに接続する

IOSデバイス(Ciscoルータ)には3種類の接続方法があります。IOSデバイスには直接入出力するインターフェイスがありませんので、その3種類のどれかの方法で間接的に操作するしかありません。次の図はCisco 2600シリーズの背面です。ほとんどのIOSデバイスにはこれらのポートが装備されていますので、各環境にあわせて接続し、操作してください。もちろんプラットフォーム(OS)に関係なく接続できます。

<Console>
初期の段階で最も利用頻度の高い接続方法がコンソール接続です。Sun NetraやSun Fireに接続するのと同じ様にワークステーションのシリアルポートとIOSデバイスのコンソールポートを接続した後にtipコマンドを実行して下さい。尚、Windowsから接続する場合はハイパーターミナルやTeraterm等のソフトを利用して下さい。下にSun ワークステーションから接続した例を記しました。/dev/ttyaのデバイス名は環境によって異なると思います。

> tip -9600 /dev/ttya

<AUX>
ほとんどのIOSデバイスの背面にはAuxiliaryポートがあると思います。略してAUXと記されていると思います。このAUXポートを使うとコンソールと同様ネットワークに一切介さずに直接接続することができます。一般に遠隔地に設置されたCiscoルータを設定する環境ではAUXポートとモデムとを接続してダイアルアップによりIOSデバイスを操作します。これにより設定頻度が高い場合も、遠隔地にエンジニアを派遣する必要はありません。

<Ethernet>
IOSデバイスがネットワークに接続されていれば、IOSデバイスへのアクセスはTelnetを介して行うことができます。コンソールの様に対1の接続環境ではなく不特定多数の端末から操作できるところが利点です。初期の状態ではIOSデバイスへの Telnet接続が認証なしで許可されていますので次の様にユーザーとパスワードを登録してください。次に、line vty で local のユーザ名とパスワードでログインするように設定します。

Router#configure
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#username hoge password 7 hoge
Invalid encrypted password: hoge
Router(config)#line vty 0 4
Router(config-line)#login local
Router(config-line)#^Z

次のコマンドラインはIOSデバイスのTelnet セッションが切れる時間を長くします。

Router#configure
Router(config)#line vty 0 4
Router(config-line)#exec-timeout 0 0

IOSのアクセスレベル

IOSにはUNIXの様に一般モードと特権モードの2種類があります。特権モードとはUNIXのroot権限の様なものです。特権モードに入るにはenableコマンドを実行して下さい。(特権モードはenableモードとも言います)

<パスワードについて>
特権モードを利用するにはパスワードが必要です。これはUNIXと同様に外部に漏らさない様に大切に扱って下さい。またパスワードにはenable passwordとenable secretの2種類がありますが、後者の暗号化アルゴリズムを使ったパスワードを利用する事をお勧めします。

> enable
Password :
#

IOSとメモリの種類

Cisco機器には3種類のメモリがあります。そのうち2つにはデバイス設定コマンドが保存されており、もう1つはIOSのオペレーションシステムが保存されています。

<デバイス設定メモリ>
2種類のデバイス設定コマンドが保存されているメモリはRAMとNVRAMに分けられます。前者は動作中のデバイス設定が保存されていることからrunning-configファイルに設定が保存されています。また後者のNVRAMはデバイスの電源が切られても設定が削除されない不揮発性メモリでRAMの変更内容をコピーして保存するときに使用します。NVRAMに保存しておかなければ電源を切った時に設定内容も消えてしまいます。これはstartup-configファイルに内容保存されています。どちらもenableモードで実行してください。

# show runnning-config
# show startup-config

なお動作中の設定内容をNVRAMにコピーする場合はcopyコマンドを実行します。

# copy running-config startup-config

また次のようにcopyコマンドの引数を逆にすればNVRAMの中の起動時設定をRAMにコピーする事もできます。

# copy startup-config running-config

起動時設定はeraseコマンドを使って削除することもできます。

# erase startup-config

ここで電源をオフにしたり特権モードのreloadコマンドを実行するとデバイスが起動した時の設定は空のままです。起動時にNVRAMが空である場合、IOSはシステム設定ダイアログを呼び出します。(これはsetupコマンドと同じです。)

<IOSフラッシュメモリ>
Cisco IOSオペレーションシステムはバイナリ形式でフラッシュメモリに保存されています。IOSイメージは先ほどのIOS設定ファイルを解析して実行するプログラムです。フラッシュメモリの容量とIOSイメージの容量にもよりますが1つのデバイスの複数のIOSイメージを保存することもできます。複数のIOSイメージがある場合、リロードの後でどのイメージをデバイスに実行させるか指定することができます。下記はCisco2514のIOSイメージを調べています。IOSイメージのファイル名はshowコマンドで参照してください。

# show flash
System flash directory:
File Length Name/status
1 14402784 c2500-ik8os-l.122-12a.bin
[14402848 bytes used, 2374368 available, 16777216 total]
16384K bytes of processor board System flash (Read ONLY)

ここで表示されるc2500-ik8os-l.122-12a.binがIOSイメージのバイナリファイルです。このIOSイメージファイルをTFTP、FTP、rcpを使って他のディスクにコピーすることもできます。UNIXには標準でこれらのプロトコルがサポートされていますので、一度はUNIXホスト側で許可を与えてからIOSイメージのバックアップ(コピー)をとりましょう。次のコマンドラインはFTPアカウントをip ftpコマンドで指定した後、FTPプロトコルでリモートホストsun-u60にバックアップを取る手順です。

# configure
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
(config)#ip ftp username xxxxx
(config)#ip ftp password xxxxx
(config)#^Z
# copy flash ftp
Source filename [c2500-ik8os-l.122-12a.bin]?
Address or name of remote host []? sun-u60
Destination filename [c2500-ik8os-l.122-12a.bin]?

リカバリーは最後に正常に動作した実績のあるIOSイメージがFTPサーバーにある事が重要になります。バックアップを取っておけばCisco IOSが正常に動作しなくたったりしても、copy ftp flashコマンドを使って実行可能なIOSイメージに戻すことができます。リカバリ時にはFTPのアカウントがセットされているものとして次の様に実行します。

# copy ftp flash
System flash directory:
File Length Name/Status
1 14402784 c2500-ik8os-l.122-12a.bin
[14402848 bytes used, 2374368 available, 16777216 total]
IP address or name of remote host []? sun-u60

Name of file to copy ? c2500-ik8os-l.122-12a.bin
Copy c2500-ik8os-l.122-12a.bin from
sun-u60 into flash memory? [confirm]

フラッシュメモリの容量の問題から内容を削除するような場合があります。フラッシュメモリの内容を全て削除する場合はerase flashコマンドを実行してください。また特定のIOSイメージだけを削除するにはdeleteコマンドを使います。

# delete c2500-ik8os-l.122-12a.bin
# squeeze

一般に(slot0)フラッシュメモリカードを使っている場合はdeleteコマンドだけでは削除マークだけ付けられ実際には削除されていません。完全にファイルを削除する場合はsqueezeコマンドを実行してください。

設定モード

IOSの設定はconfigureコマンドを使います。ここでは端末からの設定を考えてその他の設定方法は紹介いたしません。本来はconfigureコマンドを実行した後で3種類の設定方法の中らか1つを選択します。尚、tを引数にすることでterminalからの設定になります。

Router#configure
Configuring from terminal, memory, or network [terminal]? <ENTER>
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#

(config)#となれば設定モードに移った事になります。ただし、これはrunning-configのコンフィグレーションです。
それでは設定モードのコマンドを次に紹介します。

IOSのデフォルト設定ではホスト名がRouterになっています。これをCisco2500に変更する場合は次の様に実行してください。

Router(config)#hostname cisco2500

インターフェイスのアドレスを変更する場合は次の様に実行します。

Router(config)#interface Ethernet0
Router(config-if)#ip address 192.168.0.20 255.255.255.0
Router(config-if)#^Z

IOS DHCP

DHCPサーバーの設定をします。尚、下記ではpool synsとしていますが、これはsynsをpool名をして指定しており、一般にはなんでもかまいません。
ドメインsyns.netとしリース期間は30日間と指定しました。また192.168.0.1〜192.168.0.100 をアドレス配布対象から除外しています。

Router(config)#ip dhcp pool syns
Router(dhcp-config)#network 192.168.0.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.0.20
Router(dhcp-config)#domain-name syns.net
Router(dhcp-config)#dns-server 192.168.0.1
Router(dhcp-config)#lease 30
Router(dhcp-config)#exit
Router
(config)#ip dhcp excluded-address 192.168.0.1 192.168.44.100

次はMAC アドレスに対応した IP アドレスを手動で設定しています。 client-identifierにてMAC アドレスが 00-21-c1-f6-25-d1 からの Ethernet の識別番号 01 を先頭につけた識別子を指定します。

Router (config)#ip dhcp pool orange
Router(dhcp-config)#host 192.168.0.111/24
Router(dhcp-config)#default-router 192.168.0.20
Router(dhcp-config)#domain-name syns.net
Router(dhcp-config)#dns-server 192.168.0.1
Router(dhcp-config)#client-identifier 0100.21.c1.f6.25.d1
Router(dhcp-config)#exit

これでホストorangeには毎回 192.168.0.111 が割り当てられます。
ここでEXECコマンドshow ip dncp bindingよりアドレスの割り当て情報を確認することもできます。

Router>show ip dhcp binding

DHCPを無効にする場合は以下の様に実行してください。

Router(config)#no ip dhcp pool syns

NAT

NATの設定を行います。ここでは192.168.0.1〜192.168.0.254 にある端末をグローバル IP アドレスで共有してインターネット接続をします。下記の例では内側のNICをEthernet0とし、外側のNICをEthernet1としています。

Router#configure
Router(config)#interface Ethernet0
Router(config-if)#ip nat inside
Router(config-if)#exit

内側のEthernet0インターフェイスをNAT [inside]として設定します。

Router(config)#interface Ethernet1
Router(config-if)#ip nat outside
Router(config-if)#exit

外側のEthernet1インターフェイスをNAT [outside]として設定します。

Router(config)#access-list 2 permit 192.168.0.0 0.0.0.255
Router(config)#ip nat inside source list 2 interface Ethernet1 overload

ip nat inside sourceコマンドの list-idパラメータを指定して、アクセス・リストを作成します(この例では、すべてのIPアドレスを許可するように指定しています)。

ポートフォワード (PAT)
Ethernet1に対してHTTP ポートに接続要求があった場合192.168.0.28にフォワードします。下記の例ではグローバル IP が割り当てられているEthernet1からのアクセスをHTTP パケットのみ許可します。当然 ポートフォワード
では特定のホストを割り当てることなども可能です。

Router(config)#ip nat inside source static tcp 192.168.0.28 80 int Ethernet1 80

 


<戻る>