目的
異なるネットワークに所属している2台のPCをお互いに通信させます。
クラスフルルーティングとクラスレスルーティングの違いによって、パケットの転送処理に違いがでることを学びます。
接続構成
設定
R1の設定
R1(config)#int f0/0
R1(config-if)#ip add 172.16.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#int s0/0
R1(config-if)#ip add 172.16.2.1 255.255.255.0
R1(config-if)#no shut
R1(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.2
R1(config)#no ip cef
CEFスイッチングを無効化する。この機能を無効化しなければip classlessの有効、無効に関係なくパケットを転送してしまう。
R1(config)#no ip classless
ip classlessを無効化する。
R2の設定
R2(config)#int f0/0
R2(config-if)#ip add 172.16.3.1 255.255.255.0
R2(config-if)#no shut
R2(config-if)#int s0/0
R2(config-if)#ip add 172.16.2.2 255.255.255.0
R2(config-if)#no shut
R2(config)#ip route 0.0.0.0 0.0.0.0 172.16.2.1
R2(config)#no ip cef
PC-1の設定
PC-1> ip 172.16.1.100/24 172.16.1.1
Checking for duplicate address...
PC1 : 172.16.1.100 255.255.255.0 gateway 172.16.1.1
PC-1> save
Saving startup configuration to startup.vpc
. done
PC-2の設定
PC-2> ip 172.16.3.100/24 172.16.3.1
Checking for duplicate address...
PC1 : 172.16.3.100 255.255.255.0 gateway 172.16.3.1
PC-2> save
Saving startup configuration to startup.vpc
. done
設定確認
ルーティングテーブルの確認
R1#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 172.16.2.2 to network 0.0.0.0
172.16.0.0/24 is subnetted, 2 subnets
C 172.16.1.0 is directly connected, FastEthernet0/0
C 172.16.2.0 is directly connected, Serial0/0
S* 0.0.0.0/0 [1/0] via 172.16.2.2
「ip classless」が有効でも無効でも、ルーティングテーブルの内容は同じです。
しかし、パケットをルーティングする時の動作が異なってきます。
ip classless有効
ルーティングテーブルにないサブネット宛のパケットは、デフォルトルートを利用してルーティングする。
ip classless無効時
ルーティングテーブルにないサブネット宛のパケットは、デフォルトルートが存在していても破棄する。
動作確認
Pingの疎通テスト(「ip classlessが無効」)
PC-1とPC-2はお互いに通信できないことを確認する。
PC-1からPC-2
PC1> ping 172.16.3.100
*172.16.1.1 icmp_seq=1 ttl=255 time=16.021 ms (ICMP type:3, code:1, Destination host unreachable)
*172.16.1.1 icmp_seq=2 ttl=255 time=22.428 ms (ICMP type:3, code:1, Destination host unreachable)
*172.16.1.1 icmp_seq=3 ttl=255 time=16.201 ms (ICMP type:3, code:1, Destination host unreachable)
*172.16.1.1 icmp_seq=4 ttl=255 time=15.978 ms (ICMP type:3, code:1, Destination host unreachable)
*172.16.1.1 icmp_seq=5 ttl=255 time=21.891 ms (ICMP type:3, code:1, Destination host unreachable)
PC-2からPC-1
PC2> ping 172.16.1.100
172.16.1.100 icmp_seq=1 timeout
172.16.1.100 icmp_seq=2 timeout
172.16.1.100 icmp_seq=3 timeout
172.16.1.100 icmp_seq=4 timeout
172.16.1.100 icmp_seq=5 timeout
PC-1からPC-2の通信時は、R1に172.16.X.X宛てのルートがないのでパケットが破棄されます。(行きのパケットが破棄される)
PC-2からPC-1の通信時は、R1に172.16.X.X宛てのルートがないのでパケットが破棄されます。(帰りのパケットが破棄される)
Pingの疎通テスト(「ip classlessが有効」)
PC-1からPC-2
PC-1> ping 172.16.3.100
84 bytes from 172.16.3.100 icmp_seq=1 ttl=62 time=62.295 ms
84 bytes from 172.16.3.100 icmp_seq=2 ttl=62 time=62.555 ms
84 bytes from 172.16.3.100 icmp_seq=3 ttl=62 time=62.417 ms
84 bytes from 172.16.3.100 icmp_seq=4 ttl=62 time=62.481 ms
84 bytes from 172.16.3.100 icmp_seq=5 ttl=62 time=78.169 ms
PC-2からPC-1
PC-2> ping 172.16.1.100
84 bytes from 172.16.1.100 icmp_seq=1 ttl=62 time=78.211 ms
84 bytes from 172.16.1.100 icmp_seq=2 ttl=62 time=78.138 ms
84 bytes from 172.16.1.100 icmp_seq=3 ttl=62 time=78.207 ms
84 bytes from 172.16.1.100 icmp_seq=4 ttl=62 time=77.872 ms
84 bytes from 172.16.1.100 icmp_seq=5 ttl=62 time=78.242 ms
上記の検証ではクラスBのアドレス(172.16~)を使用しています。これをクラスCのアドレス(192.168.~)でデフォルトのサブネット(/24)にした場合はクラスフルの通信となるため、ip classlessの有効、無効に関係なく通信することができます。