HOME > コンテンツリスト > ラボ・シナリオ for CCNA > [ < 前へ 次へ > ]

デフォルトルート使用時の ip classless の必要性を知る

※ 前の「シナリオ」の続きとして記載しています。
想定するネットワーク構成図

どのテキストを見ても「デフォルトルートを使用した時は ip classless が必須である」と記載しています。しかし、今までのシナリオには ip classless については何も触れませんでした。ip classless は IOS 11.3 以降デフォルトで有効化されており、RT-A で sh run を表示させても「ip classless」はどこにも載っていません。ip classless を無効化した時に「no ip classless」が sh run の中に載ります。
(ただし、使用している IOS によっては、sh run に ip classless が載っている場合もあります。)

ということで、前のシナリオは「ip classless」が有効化されている時の場合で、これを無効化した場合どうなるのかを次に行います。

ただしその前に、Cisco ルータで「ip cef」が有効になっている場合、ルーティングテーブル通りの動作をしないので、まず先に「ip cef」を無効にしてから行います。
  1. RT-A、RT-B、RT-C で ip cef を無効化させなさい。
  2. < RT-A >
    RT-A# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    RT-A(config)# no ip cef
    
    < RT-B >
    RT-B# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    RT-B(config)# no ip cef
    
    < RT-C >
    RT-C# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    RT-C(config)# no ip cef
    
  3. RT-A で ip classless を無効化させなさい。
  4. < RT-A >
    RT-A(config)# no ip classless
    RT-A(config)# ^Z
    RT-A#
    
  5. RT-A のルーティングテーブルを表示させなさい。
  6. < RT-A >
    RT-A# sh ip route | begin Gateway
    Gateway of last resort is 172.16.2.2 to network 0.0.0.0
    
    S*    0.0.0.0/0 [1/0] via 172.16.2.2
          172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
    C        172.16.1.0/24 is directly connected, FastEthernet0/0
    L        172.16.1.1/32 is directly connected, FastEthernet0/0
    C        172.16.2.0/24 is directly connected, FastEthernet0/1
    L        172.16.2.1/32 is directly connected, FastEthernet0/1
    RT-A#
    
    no ip classless を実行する前と変わりません。
    ip classless はルーティング テーブル作成には影響を与えず、パケットの転送処理にのみ作用します。
  7. PC-A から RT-C の F0/0 へ ping を実行しなさい。
  8. < PC-A >
    C:\> ping 172.16.3.3
    
    172.16.3.3 に ping を送信しています 32 バイトのデータ:
    172.16.1.1 からの応答: 宛先ホストに到達できません。
    172.16.1.1 からの応答: 宛先ホストに到達できません。
    172.16.1.1 からの応答: 宛先ホストに到達できません。
    172.16.1.1 からの応答: 宛先ホストに到達できません。
    
    172.16.3.3 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    
    C:\>
    
    ping は失敗しました。
  9. PC-A から RT-C の F0/1 へ ping を実行しなさい。
  10. < PC-A >
    C:\> ping 10.10.10.3
    
    10.10.10.3 に ping を送信しています 32 バイトのデータ:
    10.10.10.3 からの応答: バイト数 =32 時間 =3ms TTL=253
    10.10.10.3 からの応答: バイト数 =32 時間 =3ms TTL=253
    10.10.10.3 からの応答: バイト数 =32 時間 =3ms TTL=253
    10.10.10.3 からの応答: バイト数 =32 時間 =3ms TTL=253
    
    10.10.10.3 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
        最小 = 3ms、最大 = 3ms、平均 = 3ms
    
    C:\>
    
    ping は成功しました。
    10.10.10.3 への ping は成功し、172.16.3.3 への ping は失敗したのは何故でしょうか?



    両者に何の違いがあるのでしょうか?

    以下は RT-A のルーティングテーブルです。
    Gateway of last resort is 172.16.2.2 to network 0.0.0.0
    
    S*    0.0.0.0/0 [1/0] via 172.16.2.2
          172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
    C        172.16.1.0/24 is directly connected, FastEthernet0/0
    L        172.16.1.1/32 is directly connected, FastEthernet0/0
    C        172.16.2.0/24 is directly connected, FastEthernet0/1
    L        172.16.2.1/32 is directly connected, FastEthernet0/1
    
    10.10.10.3 はこのルーティングテーブルに載っていない宛先です。
    この場合は、no ip classless でもデフォルトルートに指定された宛先 (172.16.2.2) にパケットを転送します。

    172.16.3.2 もこのルーティングテーブルに載っていない宛先ですが、no ip classless を実行すると、ルータはクラスフルな動作を行います。172.16.3.3 はクラスBのアドレスですので、172.16.0.0/16 のネットワーク上のアドレスです。このネットワークをサブネット化したネットワークが RT-A のルーティングテーブルには2つあります。
    C        172.16.1.0/24 is directly connected, FastEthernet0/0
    C        172.16.2.0/24 is directly connected, FastEthernet0/1
    
    no ip classless では、ネットワークがサブネット化されている場合、メジャーネットワーク (172.16.0.0) が同じでかつ未知のサブネット (ルーティングテーブルに載っていないサブネット、つまり、172.16.1.0/24 と 172.16.2.0/24 以外) 宛てのパケットは破棄します。
    (もちろん、172.16.1.0/24 宛てのパケットは FastEthernet0/0 に転送され、172.16.2.0/24 宛てのパケットは FastEthernet0/1 に転送します。)
    そのため、メジャーネットワークが 172.16.0.0 でかつ、ルーティングテーブルに載っていないサブネット宛ての 172.16.3.3 のパケットは破棄されます。

    これらを破棄させずにデフォルトルート宛てにパケットを転送するには ip classless が必須なわけです。
  11. RT-A の running-config を確認しなさい。
  12. < RT-A >
    RT-A# sh run 
    Building configuration...
    !
    no ip classless   ← ip classless 無効
    !
    ip route 0.0.0.0 0.0.0.0 172.16.2.2   ← デフォルトルート
    !
    
  13. RT-B の running-config を確認しなさい。
  14. < RT-B >
    RT-B# sh run 
    Building configuration...
    !
    ip route 10.10.10.0 255.255.255.0 172.16.3.3   ← スタティックルート
    ip route 172.16.1.0 255.255.255.0 172.16.2.1   ← スタティックルート
    !
    
  15. RT-C の running-config を確認しなさい。
  16. < RT-C >
    RT-C# sh run 
    Building configuration...
    !
    ip route 0.0.0.0 0.0.0.0 172.16.3.2   ← デフォルトルート
    !