- RT-A の各インターフェイスに、ネットワーク構成図に示す通りIPアドレスを設定し、インターフェイスを有効にしなさい。
< RT-A >
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# int f0/0
Router(config-if)# ip add 192.168.1.1 255.255.255.0
Router(config-if)# no shut
Router(config-if)# int f0/1
Router(config-if)# ip add 192.168.2.1 255.255.255.0
Router(config-if)# no shut
Router(config-if)# ^Z
Router#
- PC-A と PC-B それぞれに、ネットワーク構成図に示す通りIPアドレスとサブネットマスクを設定しなさい。
ただし、デフォルトゲートウェイは設定しない。
< PC-A >
C:\> netsh interface ipv4 set address "イーサネット" static 192.168.1.10 255.255.255.0
C:\> ipconfig
Windows IP 構成
イーサネット アダプター イーサネット:
接続固有の DNS サフィックス . . . . .:
IPv4 アドレス . . . . . . . . . . . .: 192.168.1.10
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .:
C:\>
< PC-B >
C:\> netsh interface ipv4 set address "イーサネット" static 192.168.2.10 255.255.255.0
C:\> ipconfig
Windows IP 構成
イーサネット アダプター イーサネット:
接続固有の DNS サフィックス . . . . .:
IPv4 アドレス . . . . . . . . . . . .: 192.168.2.10
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .:
C:\>
- PC-A から RT-A の F0/0 に対して ping を実行しなさい。
< PC-A >
C:\> ping 192.168.1.1
192.168.1.1 に ping を送信しています 32 バイトのデータ:
192.168.1.1 からの応答: バイト数 =32 時間 =1ms TTL=255
192.168.1.1 からの応答: バイト数 =32 時間 =1ms TTL=255
192.168.1.1 からの応答: バイト数 =32 時間 =1ms TTL=255
192.168.1.1 からの応答: バイト数 =32 時間 <1ms TTL=255
192.168.1.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 1ms、平均 = 0ms
C:\>
ping は成功しました。
- PC-B から RT-A の F0/1 に対して ping を実行しなさい。
< PC-B >
C:\> ping 192.168.2.1
192.168.2.1 に ping を送信しています 32 バイトのデータ:
192.168.2.1 からの応答: バイト数 =32 時間 =1ms TTL=255
192.168.2.1 からの応答: バイト数 =32 時間 =1ms TTL=255
192.168.2.1 からの応答: バイト数 =32 時間 =1ms TTL=255
192.168.2.1 からの応答: バイト数 =32 時間 <1ms TTL=255
192.168.2.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 1ms、平均 = 0ms
C:\>
ping は成功しました。
- PC-A から PC-B に対して ping を実行しなさい。
< PC-A >
C:\> ping 192.168.2.10
192.168.2.10 に ping を送信しています 32 バイトのデータ:
ping: 転送に失敗しました。一般エラーです。
ping: 転送に失敗しました。一般エラーです。
ping: 転送に失敗しました。一般エラーです。
ping: 転送に失敗しました。一般エラーです。
192.168.2.10 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、
C:\>
ping は失敗しました。
何故 ping は失敗するのでしょうか?
ただし、PC-A、PC-B 双方で ping 着信許可 (または、Windows ファイアウォールの無効化) の設定は行っているものとします。
- RT-A から PC-A、PC-B それぞれに ping を実行しなさい。
< RT-A >
Router# ping 192.168.1.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms
Router#
Router# ping 192.168.2.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms
Router#
ping は成功しました。
各 PC からルータへの ping も、ルータから各 PC への ping も成功しますが、PC 同士の ping は失敗します。
PC-A - RT-A (F0/0) | 成功 |
RT-A (F0/1) - PC-B | 成功 |
PC-A - PC-B | 失敗 |
RT-A でスタティックルートの設定が必要でしょうか?
それともダイナミックルーティングの設定が必要でしょうか?
いいえ、スタティックルートもダイナミックルーティングも、
ルータが複数台あった場合に必要な設定で、ルータが1台しかない場合は必要ありません。
では、PC 同士の ping を成功させるためには何が必要でしょうか?
ネットワーク構成図を見るとわかりますが、192.168.1.0/24 のネットワークと 192.168.2.0/24 のネットワークの2つのネットワークをルータ RT-A で接続しています。つまり、PC-A と PC-B は異なるネットワーク上にあります。
同一ネットワーク上の機器同士が TCP/IP で通信するには必要ないが、異なるネットワーク上の機器同士が TCP/IP で通信するのに必要なもの、そうデフォルトゲートウェイの設定が必要です。
- PC-A にデフォルトゲートウェイを設定しなさい。
< PC-A >
C:\> netsh interface ipv4 set address "イーサネット" static 192.168.1.10 255.255.255.0 192.168.1.1
C:\> ipconfig
Windows IP 構成
イーサネット アダプター イーサネット:
接続固有の DNS サフィックス . . . . .:
IPv4 アドレス . . . . . . . . . . . .: 192.168.1.10
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: 192.168.1.1
C:\>
この設定で、PC-A から別ネットワーク宛のパケットは全てデフォルトゲートウェイとして指定された RT-A に送られます。デフォルトゲートウェイの設定は終わりましたので、早速 PC-B 宛に ping を実行しましょう。
- PC-A から PC-B に対して ping を実行しなさい。
< PC-A >
C:\> ping 192.168.2.10
192.168.2.10 に ping を送信しています 32 バイトのデータ:
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
要求がタイムアウトしました。
192.168.2.10 の ping 統計:
パケット数: 送信 = 4、受信 = 0、損失 = 4 (100% の損失)、
C:\>
またも ping は失敗しました。
PC-A にデフォルトゲートウェイの設定を行うことにより、PC-B 宛の ICMP パケット (エコー要求) は RT-A に送られ、その ICMP パケットを RT-A は PC-B 宛に送ります。PC-B は受け取った ICMP パケットの返事 (エコー応答) を PC-A に返さなければいけないのですが、PC-B にとっても PC-A は別ネットワーク上のホストです。そのため、PC-B は PC-A 宛のパケットを RT-A に送らなくてはいけません。そのためには PC-B にもデフォルトゲートウェイの設定が必要になります。
- PC-B にデフォルトゲートウェイを設定しなさい。
< PC-B >
C:\> netsh interface ipv4 set address "イーサネット" static 192.168.2.10 255.255.255.0 192.168.2.1
C:\> ipconfig
Windows IP 構成
イーサネット アダプター イーサネット:
接続固有の DNS サフィックス . . . . .:
IPv4 アドレス . . . . . . . . . . . .: 192.168.2.10
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: 192.168.2.1
C:\>
- PC-B から PC-A に対して ping を実行しなさい。
< PC-B >
C:\> ping 192.168.1.10
192.168.1.10 に ping を送信しています 32 バイトのデータ:
192.168.1.10 からの応答: バイト数 =32 時間 =5ms TTL=127
192.168.1.10 からの応答: バイト数 =32 時間 =1ms TTL=127
192.168.1.10 からの応答: バイト数 =32 時間 =1ms TTL=127
192.168.1.10 からの応答: バイト数 =32 時間 =1ms TTL=127
192.168.1.10 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 1ms、最大 = 5ms、平均 = 2ms
C:\>
今回は ping が成功しました。
念のため、PC-A からも ping を行ってみましょう。
- PC-A から PC-B に対して ping を実行しなさい。
< PC-A >
C:\> ping 192.168.2.10
192.168.2.10 に ping を送信しています 32 バイトのデータ:
192.168.2.10 からの応答: バイト数 =32 時間 =3ms TTL=127
192.168.2.10 からの応答: バイト数 =32 時間 =1ms TTL=127
192.168.2.10 からの応答: バイト数 =32 時間 =1ms TTL=127
192.168.2.10 からの応答: バイト数 =32 時間 =2ms TTL=127
192.168.2.10 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 1ms、最大 = 3ms、平均 = 1ms
C:\>
当然ながら ping は成功します。
- RT-A のルーティングテーブルを表示させなさい。
< RT-A >
Router# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+ - replicated route, % - next hop override
Gateway of last resort is not set
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, FastEthernet0/0 ← 直接接続されたネットワーク
L 192.168.1.1/32 is directly connected, FastEthernet0/0
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, FastEthernet0/1 ← 直接接続されたネットワーク
L 192.168.2.1/32 is directly connected, FastEthernet0/1
Router#
「Gateway of last resort is not set」から下の行のうち、先頭に「C」の文字がある行が RT-A のルーティングテーブルの特定のネットワークへのルート情報になります。
先頭の「C」は「connected」を意味し、RT-A に「直接接続されたネットワーク」を示します。
つまり、次の行は、FastEthernet0/0 には 192.168.1.0/24 のネットワークが接続されているということです。
C 192.168.1.0/24 is directly connected, FastEthernet0/0
これは、FastEthernet0/0 にIPアドレス 192.168.1.1/24 を設定し、インターフェイスを有効化したことで、ルーティングテーブルに自動的に作られます。IPアドレス 192.168.1.1/24 は、192.168.1.0/24 のネットワークのアドレスです。
先頭「L」の行は、Cisco ルータでは IOS 15.0 以降に追加されたもので、ホストルート (/32 マスク) を示し、自分のインターフェイスに設定しているIPアドレスが表示されます。IOS 12.4 までの show ip route は以下のように表示されていました。
Router# sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
C 192.168.0.0/24 is directly connected, FastEthernet0/0 ← 直接接続されたネットワーク
C 192.168.2.0/24 is directly connected, FastEthernet0/1 ← 直接接続されたネットワーク
Router#
では、FastEthernet0/0 インターフェイスを無効化して、ルーティングテーブルがどうかわるか確認しましょう。
- F0/0 インターフェイスを無効にしなさい。
< RT-A >
Router# conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# int f0/0
Router(config-if)# shut
Router(config-if)# ^Z
Router#
- RT-A のルーティングテーブルを表示させなさい。
< RT-A >
Router# show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, + - replicated route
Gateway of last resort is not set
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, FastEthernet0/1
L 192.168.2.1/32 is directly connected, FastEthernet0/1
Router#
ルーティングテーブルから「C 192.168.1.0/24 ・・・」の行が消えました。
ルータは自身のルーティングテーブル (下記の場合) を見て、ルータが受け取ったパケットが「192.168.1.0/24」ネットワーク宛なら、そのパケットを FastEthernet0/0 インターフェイスから送出し、「192.168.2.0/24」ネットワーク宛なら、そのパケットを FastEthernet0/1 インターフェイスから送出します。
C 192.168.1.0/24 is directly connected, FastEthernet0/0
C 192.168.2.0/24 is directly connected, FastEthernet0/1
もし「C 192.168.1.0/24 ・・・」の行がなければ、ルータが 192.168.1.0/24 のネットワーク宛てのパケットを受け取っても、そのパケットをどのインターフェイスから送出すればいいかわかりません。ルータはどのインターフェイスでパケットを受信したかは関係なく、受信パケットの送出先をルーティングテーブルで調べ送出します。
では何故、F0/0 で受け取ったパケットを、F0/1 にルーティングしたのでしょうか?