この演習の目的は通りです。
Internetという巨大で複雑な複合体では、単一のvendor製の装置だけで接続する(1)わけには行きません。たくさんのvenderがそれぞれ異なる方法を用いて作成した装置を互いに持ち寄って、接続する必要があります。
そして、(同じvender間だけでなく(2)..)このような異なる装置間でも、同じ機能が働き、相互(3)に通信可能なことを、Interoperabilityと呼んでいます。
今回の実験の新しい内容として、dynamic routingの設定方法( CISCO, Linux )を学びます。
どんなに複雑なNetworkであっても、dynamic routingを行うことによって、簡単にRoutingが可能であることを学びます。
それでも、やはり、「同じ装置間なら安心」という神話があることは事実です。
このために、既に、市場を支配しているvendor ( i.e. CISCO, Microsoft, Intel, etc.. )が更に、市場の独占度を増す結果になっています。
これは、必ずしも望ましいことではない(市場原理に反する)のですが、技術屋としては、「異なる機種間でだめだったら、同一機種間でも試してみる」は、常に、「成果が期待できる手段」であることを理解して置く必要があります。
今回の実習では、CISCO Routerおよび、Linux RouterによるDynamic Routingを学びます。
CISCOとLinuxを用いて、次のような複雑なNetworkを構成します。
Network Name | Network Address | Subnet Mask |
---|---|---|
Network 1 [LAN] | 192.168.1.0 | 255.255.255.0 (/24) |
Network 2 [LAN] | 192.168.2.0 | 255.255.255.0 (/24) |
Network 3 [LAN] | 192.168.3.0 | 255.255.255.0 (/24) |
Network 4 [WAN] | 192.168.4.0 | 255.255.255.0 (/24) |
Network 5 [LAN] | 192.168.5.0 | 255.255.255.0 (/24) |
Host Name | Interface | IP Address | Subnet Mask | Default Gateway |
---|---|---|---|---|
Windows-A | N/A | 192.168.1.1 | 255.255.255.0 (/24) | 192.168.1.3 |
Windows-B | N/A | 192.168.2.2 | 255.255.255.0 (/24) | 192.168.2.4 |
Windows-C | N/A | 192.168.3.5 | 255.255.255.0 (/24) | 192.168.3.6 |
Windows-D | N/A | 192.168.5.9 | 255.255.255.0 (/24) | 192.168.5.7 |
Linux-L | eth0 | 192.168.1.3 | 255.255.255.0 (/24) | N/A |
eth1 | 192.168.3.3 | 255.255.255.0 (/24) | N/A | |
Linux-M | eth0 | 192.168.2.4 | 255.255.255.0 (/24) | N/A |
eth1 | 192.168.3.4 | 255.255.255.0 (/24) | N/A | |
Linux-N | eth0 | 192.168.3.7 | 255.255.255.0 (/24) | N/A |
eth1 | 192.168.5.7 | 255.255.255.0 (/24) | N/A | |
CISCO-U | ethernet 0 | 192.168.3.6 | 255.255.255.0 (/24) | N/A |
s1 : Serial 1 (DCE) | 192.168.4.6 | 255.255.255.0 (/24) | N/A | |
CISCO-V | ethernet 0 | 192.168.5.8 | 255.255.255.0 (/24) | N/A |
s0 : Serial 0 (DTE) | 192.168.4.8 | 255.255.255.0 (/24) | N/A |
Windows-A Windows-B [192.168.1.1] [192.168.2.2] | | | Netwrok 1 | Netwrok 2 >------+------< >------+------< | 192.168.1.0/24 [LAN] | 192.168.2.0/24 [LAN] | | eth0:[192.168.1.3] eth0:[192.168.2.4] Linux-L Linux-M eth1:[192.168.3.3] eth1:[192.168.3.4] | | | | Netwrok 3 >------+----------------+---------------+------< | | | 192.168.3.0/24 [LAN] | | | e0:[192.168.3.6] [192.168.3.5] eth0:[192.168.3.7] CISCO-U Windows-C | s1:[192.168.4.6] (DCE) | | | | Netwrok 4 | >------+-----------< Linux-N | 192.168.4.0/24 [WAN] | | | s0:[192.168.4.8] (DTE) | CISCO-V | e0:[192.168.5.8] eth1:[192.168.5.7] | | | | Netwrok 5 >------+---------------+----------------+---------< | 192.168.5.0/24 [LAN] | [192.168.5.9] Windows-D
Host ( Windows, Linux, CISCO )の設定は、それぞれ、一回目(Windows)、二回目(Linux)、三回目(CISCO)の手動設定
の所を参考にしてください。
また、IP Address, Subnet Maskは、表2.1.1.2[実験 1 の Host の情報]を参照してください。
なお、Default Gateway, Name Serverの設定は、今回は行いません。
いや、むしろ、積極的に、設定を取り消すようにすることが望ましい。そうでないと、存在しないName Serverに問い合わせに行き、それが原因で、動作が遅くなったり、あるいは、あまりにも遅すぎて、まるで、ハングアップしたかのように見えてしまい、異常が生じていると勘違いする可能性がある。
name serverの設定を無効にするには、Linux, CISCOそれぞれ、次のコマンドを実行したり、設定すればよい。
この状態では、Routingの設定がなされていませんので、原則として、メディアを共有しているHost間のみでの通信が可能です。
なお、実験3, 4の準備として、この時点でのRouting Tableの内容を記録しておいてください。
CISCO Routerでは、Show ip routeの結果、並びにshow running-configを実行し、その中でip route XXXXと書いてある行を抜き出しておきます。
またLinuxでは、netstat -nrの出力を記録しておきましょう。
この実験1は、単に、以前の実験の復習ということだけです。
ただし、既に、学んだように、Windows, Linux, CISCOといった三つの異なるVender間で、共通のIP Connection ( Pingできる)が可能であるというInteroperabilityを確認しておきましょう。
実験2は、実験1のNetworkで、Static Routingの設定を行います。
これも、原則として、四回目(Linux での Routing)、五回目(CISCO での Routing)の実習の復習です。
この状態では、全てのHost間で、pingが通るはずです。試してみてください。
また、実験1と同様にして、この時点でのRouting Tableの内容を記録しておいてください。
この実験2も、以前の実験の復習ということだけです。
ただし、実験1と同様Interoperabilityが確認できるでしょう。
実験3のNetworkも、実験1, 2と同じですが、実験2で設定したstatic routingの内容を取り消し、実験1と同じ状況にします。
もちろん、全てのHostの電源を切り、最初から、設定をしなおせば、実験1と同じ状況になるわけですが、ここでは、その方法をとらず、実験2で行った設定の取り消し方法を学びます。
Linuxでは、route add ...
で、static routingを追加していました。
逆に、削除する場合は、これと対称的にroute delete ...
を使います。このコマンドを利用することによって、自由に、routing tableにrouting情報を、追加したり削除したりできることを確認してみてください。
CISCOでは、設定Mode (Config Mode)で、ip route ...
で、static routingを追加していました。
逆に、削除する場合は、これと対称的にno ip route ...
を使います。このコマンドを利用することによって、自由に、routing tableにrouting情報を、追加したり削除したりできることを確認してみてください。
この状態では、実験1と同じ状況のはずです。
また、実験1と同様にして、この時点でのRouting Tableの内容を確認し、これが、実験1と同じ結果になることを確認してください。
ここでは、主にstatic routingの取り消し方法を学んだわけですが、それと同時に、show ip route(CISCO)
, netstat -nr(Linux)
のように「現時点でのRouting Tableの内容の参照方法とその読み方も、きっちりと、把握しておくことが大事です。
さて、いよいよ、Dynamic Routingの設定方法です。
Dynamic Routingを行うためには、Routing Protocolをまず、最初に決定する必要があります(5)。
今回の実験では、単純であり、どこでも利用可能だという理由(6)から、RIPを利用します。
一つのNetworkで、複数のRouting Protocolを運用することは可能です(これは、後期に予定していますので、是非、お楽しみに.. )。
しかし、一般的に、同一の組織内のLAN間では、単一のRouting Protocolを選択し、その組織内のLANの全てのRouterで、これが動くように設定します。
実験4も、特にNetwork構成の変更はありません。単に、RIPの設定を追加するだけです。
LinuxでのRIPの起動(7)
は、/etc/rc.d/init.d/routed start
で行います(8)。
Linux-L# /etc/rc.d/init.d/routed start Starting routed (RIP) services: [ OK ] Linux-L#
逆に、RIPの停止は、/etc/rc.d/init.d/routed stop
です。
CISCOのRIPは、二つの設定コマンドを必要としています。
routing設定コマンドで、どのRouting Protocolを選択するかを指定します。
今回の場合は、router rip
とします。
networkサブ設定コマンドは、必ず、router設定コマンドに続けて記述し、「どのNetworkから来るRouting情報を有効にするか?」を指定します。
形式は、network ネットワークアドレス
という形で、一つのnetworkサブ設定コマンドでは、一つのネットワークしか有効にできません。
したがって、CISCO Routerの場合、RIPを有効にするには、「Interface (以下、単にI/F)で直接に接続している、全てのNetwork(9)に対応して、Network設定コマンドを行う」必要があります。
今回のCISCO Routerは、共に、二つのI/Fがありますので、それぞれ、二つのNetworkサブ設定コマンドが必要になります。
CISCO-U#config terminal Enter configuration commands, one per line. End with CNTL/Z. CISCO-U(config)# router rip CISCO-U(config-router)# network 192.168.3.0 CISCO-U(config-router)# network 192.168.4.0 CISCO-U(config-router)# ^Z CISCO-U#
CISCO-Uの場合は、eth0が、Class CのNetwork 192.168.3.0/24にs0が、Class CのNetwork 192.168.4.0/24にそれぞれ所属しており、しかも、それをRIP Routingしたいので、両方をNetworkで指定しています。
同様にして、CISCO-Vの場合は、192.168.4.0/24と、192.168.5.0/24をそれぞれnetworkコマンドで指定する必要があります。
なお、ripを停止するには、no router rip
だけで、特にno network ...
としなくても、自動的に、networkサブ設定側の内容は取り消されます。これは、networkサブ設定コマンドが、router設定コマンドの一部として指定されている(10)からです。
本来は、「RIPそのもの起動」という考え方はありません。実際は、「RIPを実装したプログラム( Linuxではroutedになる)の起動」を意味しています。
routedの様に恒常的に働き続けるような特別なプログラムを、Linuxでは、デーモンプログラム
(daemon program)と呼んでいます。
今回の例では、routedというコマンドが、この「RIP用のデーモン」なわけで、これを起動するためのコマンドが、/etc/rc.d/init.d/routed startなわけです。
Linuxでは、このような様々な機能(今回は、RIP Routing )を実現した、デーモンプログラムがたくさん用意されており、それらを選択的に利用することによって、様々なサービス(例えば、Web Server, Mail Server等々)を提供できるようになります。
これらに関しても、後期に予定しています。
実を言えば、Linuxにも色々な流儀(ディストリビューション)があります。
この方法は、特に、RedHat 系と呼ばれているディストリビューションだけで有効な方法であり、他のディストリビューション(例えば、debianなど)では、有効ではない可能性があります。
ましてや、同じPC-Unixでも、Free BSDなども、異なる可能性があることに注意してください。
実は、RIPは、Classfullなので、同じClassの意味での自然なNetwork MaskでのNetwork Addrssだけを指定すれば良いことになっています。
このために、一般にsubnet maskを運用している場合には、Networkコマンドの数は、I/Fの数以下になります。
ただし、今回は、自然なNetwork Maskをsubnet maskとして採用しているため、I/Fの数と、直接Network接続しているNetworkの数は同じになります。
次の二つの点を確認してください。
実験4では、初めてdynamic routingを経験したわけですが、どうでしょう?感想は如何ですか? static routingの設定で四苦八苦した後は、まるで魔法のような気がすると思います。
今日のハイライトは、もちろん、このdynamic routingの設定であり、それは同時にCCNAでの、Router Configurationの最も重要な点でもあります。
前期で行った、一連の実験も実は、このゴールを目指してきたということがお分かりいただけると思います。是非、しっかりと復習しておいてください。