たまたまciscoルータが手に入ったときに設定したいなぁーと思うことありますよね。今回はとりあえず動くレベルを目指して、ルータ設定する手順について説明します。
小さい開発環境くらいなら本記事の内容で対応できると思いますので、ぜひ試してみてください。
この記事で解説しないこと
・Cisco以外のルータ操作
・プロトコル、IPアドレスなどのネットワーク基礎知識
・ダイナミックルーティング
・ACL(アクセスコントロールリスト)
・NAT
・IPv6
解説しないことがメチャ多いですが、逆にいうととりあえず動く設定をするだけなら気にしなくていいものがたくさんあるということです。
この記事で解説すること
・Ciscoルータの基本操作
今回使用するのはcisco 891fj-k9です。本機種は残念ながらすでにEOL(End of Life、サポート終了の意味)となっていますが、学習用や小規模開発環境用ならまだ使えると思います。
Cisco公式のスペック表はこちらをご確認ください。
・以下の構成の実現方法
2つのLANにまたがる開発環境用の設計。ルータどうしはWANポートどうしを結線してつなぎます。実際にはルータは、さらにいくつかのルータを経て、インターネットプロバイダが提供する装置へ結線するようなイメージです。そういう意味で疑似WANと表現しています。"vlan1扱い〜"はよくわからなくてもあとで解説するので大丈夫です。
なお、本記事ではRouterAの設定までを範囲にしています。とはいえRouterBの設定方法も同じなので、RouterAの設定方法の解説だけで十分だと思います。
この図のアイコンはCisco公式で配布されているものを使用しました。ここから入手可能です。
Network Topology Icons - Doing Business With Cisco - Cisco
ちなみにセグメントを分割するだけならルータ1台で十分です。しかし今回はインターネットを介して2拠点間を繋ぐ…という想定にしますので、擬似WANを構成しています。
本来はルータとルータ、PCとルータの結線はクロスケーブルを使用するのですが、最近のルータは賢いのでストレートケーブルでオッケーです。
なぜクロスケーブルとストレートケーブルを使い分けるのか気になる方は以下の記事を読んでください。
Ethernet LAN - ストレートケーブルとクロスケーブル
https://note.cman.jp/network/lan_cable_cross.cgi
それでは早速やっていきましょう。
必要なもの用意
・設定作業用のPC
ノートPCでもデスクトップでも良いです。ぼくは Windows10のノートPCを使いました。
・Teraterm
設定作業用PCからルータを操作するために必要なフリーソフトです。別にTeratermじゃないといけない理由はないので、好みのターミナルエミュレータがあるならそちらを使用してください(本記事ではTeratermで解説します)
注意点としては、TeratermはWindowsOSでしか使用できません。
・コンソールケーブル
ルータと設定作業用PCをつなぐのに必要なものです。初期状態のルータは当然ですがIPアドレスを持っていないので、なにかしらで操作できるように結線しないといけませんよね。それがコンソールケーブルです。ロールオーバーケーブルとも呼びます。
ルータのコンソールポートとはシリアル接続という規格で通信を行います。まあ、IPアドレスが割り当てられていない相手と通信を行うためのもの、くらいに捉えてください。
コンソールケーブルはルータに付属してくることが多いですが、最近のPCにはシリアル接続用のポートが付いていません。そこで、シリアル端子とUSBポートの変換器を挟みます。こういった変換器を使う場合、デバイスドライバのインストールが必要です。
ただ、なぜか僕のPCではドライバがうまく入らなかったので、今回は以下の製品を使いました。ルータのコンソールポートと、設定作業用PCのUSBポートをこれで結線します。
設定作業用PCにはこのケーブルに対応したデバイスドライバをインストールしないといけないので、以下のサイトを参考にしてインストールしてください。
FTDIのUSBシリアル変換器のドライバのインストール法(1) - しなぷすのハード製作記
ちなみにRJ-45という規格名を目にすることがあると思いますが、これはLANケーブルの差込口でよく見るポートのことです。
・LANケーブル
ストレートケーブルで十分です。最終的に結線したい端末の数だけ用意してください。
設定値の決定
手書きでもPowerPointでもExcelでもなんでも良いです。設定作業を始める前に決めておきたい設定値の一覧がこちらです。
・ルータのホスト名
→複数台のルータを設定する場合は、区別するために設定しておくと良いです。
・ルータのユーザー名とパスワード
→セキュリティのためです。設定しなくてもルータの機能上は問題ないですが、リモート接続に必要だったりするので、設定します。
・ルータの各ポートに割り振るIPアドレス
→ルータはポートごとにIPアドレスを設定できる機器です。ポートにIPアドレスを割り当てることで、ルータ宛の通信、ルータからの通信が可能になります。
・ルーティングテーブルの設定値
どこ宛の通信をどのポート宛に送信するか?を決定するのがルータの機能です。今回は手動で設定するスタティックルーティングを設定します。詳しくは後述。
ネットワークエンジニアの友達に聞いてみたら、こういう設定値は抜け漏れ防止の観点も含めて、エクセルのマクロを使うとかで、テキストファイルに一括出力するのが多いらしいです。
今回はお勉強なので、上記のメモ書きをもとに設定していきます。
ルータの外観チェック
まずは外観を押さえておきましょう。意外にどのポートに対して設定しているのか、分からなくなったりするものです。なぜかCisco公式サイトでちょうどよい資料がみつからなかったので、実物の写真を撮りました。
まずは前面です。
Cisco891FJ-k9の場合、WAN用ポートが3つと、コンソールポートが1つ。あとはPCなどの端末から結線される物理ポートが8つ付いています。これら物理的なポートのことをインターフェースと呼び、0から順に番号を付けて区別します。
とりあえず押さえておきたいのは、WAN側ポートですね。これは往々にしてインターネット側に接続するときのポートなので、他のポートとはちょっと意味合いが違うようです。
上記の写真の場合、GigabitEthernet8インタフェース(ルータに備え付けられているポートのうち、GigabitEthernet8のポートのこと)がWAN側ポートという意味です。
ほかにもSFP0、FE0というポートがWAN用ポートとされていますが、今回はこの2つのポートは使いません。
続いて背面を見ると、物理的なポートや電源スイッチが並んでいます。
WAN側用ポートは他の物理ポートから離れた位置に並んでいますね。あと見ておくべきは電源スイッチです。リンゴマークみたいなマークの近くに、オン・オフできる電源スイッチがあります。
当然ではありますが、ルータ本体に電源ケーブルを接続しても電源スイッチをオンにしないと起動しないので地味に注意してください。黒塗りにしているのはシリアル番号なので、気にしないで大丈夫です。
PoEはPower of Ethernetの略です。LANケーブル経由で電源供給できる機能のことです。
ルータAの設定
まずはルータAから設定していきます。
ルータの電源オン
ルータに電源ケーブルを繋いだら、電源スイッチをオンにしてみましょう。前面のLEDランプ点滅が終わったら電源オン完了です。
設定作業用PCでTeratermを起動する
設定作業用PCとルータをシリアルケーブルで接続します。
続いて設定作業用PCでTeratermを起動して、新しい接続で「シリアル」を選択します。表示されるポート名は環境によって違うので、うまいこと選んでください。
既にルータに設定が施されている場合は、こんな画面になるはずです(ユーザーアカウント名あるいはパスワードの入力待ち)
今回ははまっさらな環境から設定作業を行いたいので、初期化作業を行ってください。すでに初期化されている場合は、「 セットアップモードを無視する」まで飛ばして大丈夫です。
ciscoルータでは、複数の設定モードを行き来して設定を進めていきます。以下のサイトがわかりやすいので、各設定モードの意味合いは把握しておいてください。
Cisco IOSモードの設定:ネットワークの基礎を学習する CCNA対策講座(11)(1/2 ページ) - @IT
ルータの設定初期化
もしパスワードがかかっていてよく分からないルータを手に入れた場合は、設定初期化を行います。以下のリカバリ手順1~9を実施してください。
リカバリ手順1.
・ルータと設定作業用PCをコンソールケーブルで結線した状態で、ルータの電源(891fj-k9の場合、背面の物理スイッチ)を落とす。
リカバリ手順2.
・ルータの電源を再度いれる。
リカバリ手順3.
・設定の読み込みメッセージが流れている状態で、Teratermの[コントロール]-[ブレーク送信]を選択する。
プロンプトに「ROMMON1>」と表示されていれば成功です。
リカバリ手順4.
・ROMMONモードでレジスタ値を変更する。以下のコマンドを入力してください。
「confreg 0x2142」
起動時にstartup-configを読み込まないように設定しています。セーフモードでのOS起動のようなものです。
リカバリ手順5.
・ルータを再起動する。以下のコマンドを入力してください。
「reset」
ルータが再起動され、以下のメッセージが表示されれば成功です(画像例はルータ起動中にEnterキーを何度か連打してしまったので、メッセージが繰り替えし表示されているだけです)
Ctrl + Cでダイアログをスキップしてください。「no」と入力してEnterキーでもオッケーです。
リカバリ手順6.
ちょっとずらずらとメッセージが出ていて見づらいですが・・・プロンプト表示が「Router>」となったら、特権EXECモードへ移行してください。
「Router> enable」
リカバリ手順7.
起動時に読み込む設定を初期化する。
「Router# erase strtup-config」
「本当に初期化するの?」と聞かれるので、Enterキーを押下します。
リカバリ手順8.
「complete」と表示されれば、設定初期化完了です。レジスタ値を元に戻しましょう。
「Router# configure terminal」
「Router(config)# config-register 0x2102」
画像の例だとコマンドをタイプミスしていますが、ROMMONモードでないときは上記のようにコマンド入力してください。
リカバリ手順9.
ルータのstartup-configをまっさらな状態に戻したので、ルータを再起動します。
「Router(config)# exit」
「Router# reload」
設定を保存するかどうかのダイアログはnoを入力してEnterキーです。
再起動を続行するかのダイアログはEnterキーを押下してください。「Proceed with reload?」というメッセージです。ここでEnterキーを押せばルータが再起動されます。
startup-configを初期化しているので、セットアップモードで起動するはずです。これはnoを入力してください。どうも通常はセットアップモードは使用しないみたいです(Ciscoの公式試験であるCCNAの試験参考書にもそう書いてありました)
これでまっさらな状態からルータを設定する準備が整いました。
ここまでのリカバリ手順について参考にさせていただいた記事です。単にパスワードを忘れただけなら、以下記事の通りに実行すれば復旧できます。
セットアップモードを無視する
ルータのstartup-configがない場合はこんなメッセージが表示されます。
これはnoを入力してエンターキーを押下するか、「Ctrl + C」キーを押下してください。「no」と入力してEnterキーでもオッケーです。
設定作業でしくじったらどうする?
閑話休題。変なコマンドを打ってしまってよくわからなくなったら、とりあえずreloadコマンドを実行して再起動してください。
ここまで触れて来ませんでしたが、ciscoルータの設定にはstartup-conflgとrunning-configの2つがあります。ルータへの設定作業では、running-configを変更して、最後にstartup-configに反映させる順序となります。
変なことになったらstartup-configに反映させる前にreloadしましょう。
事前に決めておいた設定値を設定していく
さて、ここからルータへの具体的な設定作業に入ります。ciscoルータでの設定作業は特権EXECモードというものに移行する必要があるので、次のコマンドを実行してください。
「Router> enable」
コンソールの先頭の表示にナンバーサイン(#)が付けばオッケーです。
ホスト名(config)
ルータを区別するためにホスト名を設定します。
「Router(config)# hostname <ホスト名>」
ユーザアカウント設定(config)
ルータに接続するときのユーザーアカウントを作成します。
「RouterA(config)# username <ユーザ名> password <パスワード>」
今回はユーザー名が「alice」で、パスワードが「alice」としています。
イネーブルパスワードの設定(config)
特権EXECモードへの移行にもパスワードを設定しておきます。
「RouterA(config)#> enable secret <パスワード>」
今回はこのパスワードもaliceとしておきましょう。
ローカル認証の有効化(config-line)
ルータへの接続時にアカウント名とパスワードの入力を要求するように設定します。ラインコンフィグレーションモードで設定します。
「RouterA(config)# line vty 0 4」→「RouterA(config-line)#> login local」
0 4 の表記は、「回線番号0から4まで」を意味しています。891FJ-K9の場合、vty接続は5回線まで同時接続可能なので、すべての回線番号に対して認証を設定するという意味です。
VTYというのはコンソールケーブル経由のような直接接続ではなく、TELNETやSSHなどのプロトコルを利用したリモート接続全般のことです。
これで、Teratermからのtelnet接続や、今回は設定しませんがSSHでの接続にパスワードが設定されました。
ちなみに、スイッチやルータの機種によってVTY接続の回線数は異なります。
VTY接続の有効化(config-line)
telnetやsshでのルータアクセスを有効化します。
「RouterA(config-line)# transport input all」
設定をいったん保存する
ここまでの設定内容をいったん保存しておきましょう。
「Router(config)# copy running-config startup-config」
コンソールの最後に[OK]が表示されていれば保存成功です。
vlan1へIPアドレス割り振り(config-if)
ここで、ルータ―内にデフォルトで作成されているvlan1へIPアドレスを割り振ります。これを行うと、設定作業用PCからルータのLAN側のどの物理ポートにLANケーブルを挿しても、telnetで接続できるようになります。
sshで接続するにはもう少し設定が必要になるので今回は省きます。グローバルコンフィグレーションモードから、以下のコマンドでvlan1にipアドレスを割り振ります。ちょっとコマンド入力が長くなるので、画像を参照してください。
インターフェースにいろいろ設定してますが、最後に「no shutdown」を忘れないでください。デフォルトではインタフェースが有効化されていないので、このコマンドで有効化しています。
ここまででRouterAへLANケーブル経由でtelnet接続できるようになりました。
その場合、設定作業用PCのIPアドレスをルータと同じセグメント(192.168.171.XXX)の体系にそろえることを忘れずに。
引き続きコンソールポート経由で設定を続けてもオッケーです。
WAN側ポートの有効化(config-if)
今回のNW設計ではルータのWAN側ポートどうしを直接LANケーブルで結線します。なので、WANポートにもそれぞれIPアドレスを割り当てる必要があります。
といってもWAN側ポートもインタフェースのひとつなので、さきほどvlan1にIPアドレスを割り当てたのと同じ要領です。
IPアドレスを10.〜としているのは特に深い意味はないですが、インターネット経由での接続っぽくなるように、RouterA側、B側どちらのセグメントとも違う体系を採用しただけです。
「RouterA(config-if)# ip address 10.1.3.1 255.255.255.0」
「RouterA(config-if)# no shutdown」
ルーティングテーブルの作成(config)
ようやくルータっぽい設定が出てきましたね!
ルータはOSI参照モデルやTCP/IPモデルでいうところのネットワーク層(インターネット層)で動作する機器です。
そしてネットワーク層の役割は、受け取ったパケットを次の機器に送信することです。
パケットの送信先を知っていなければなりませんので、ルーティングテーブルを作成します。
「RouterA(config) #ip route <宛先ネットワーク> <サブネットマスク> <ネクストホップもしくは送信先IPアドレス>」
ネクストホップは、宛先ネットワーク宛の通信があったときに、次にどのIPアドレス宛に転送するかという意味です。IPアドレスの代わりにインタフェース名を指定することもできますが、その場合はそのパケットを送出する、自分自身のインタフェース名を記述します。
ルータと直接接続しているネットワークに関しては、接続ルートとして勝手にルーティングテーブルに設定されてくれます。
今回の例で言うとWAN側ポートどうしが直接接続されているので、10.1.3.1と10.1.3.2の間の通信は自動的にルーティングテーブルに登録されます。
スパニングツリープロトコルの拡張設定(config)
リンクアップされたポートをすぐに通信可能とする設定をしておきます。
「RouterA(config)# spanning-tree portfast default」
理屈が気になる方はこちらの記事を読んでみてください。
running-configへの設定保存
ここまででひと通りの設定は完了です。忘れずにstartup-configへ設定保存しましょう。
「RouterA# copy running-config startup-config」
さて、実はRouterBに施す設定も同じ要領でオッケーです。ホスト名やIPアドレス、ルーティングテーブルの設定さえしておけば、かくルータに接続したPCから相互に通信可能です。
本来はトラフィック測定のための設定とか、QoSの設定検証もできるようにすべきところですが、まずはここまでということで。
RouterBの設定および通信確認については、また時間のあるときに書きます。今回はここまで。
ではでは。