概要
このドキュメントでは、サブネット0およびすべて1のサブネットの使用について説明します。
前提条件
要件
このドキュメントに特有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
ドキュメントの表記法の詳細は、「テクニカルティップスとその他のコンテンツに表記法を使用する」を参照してください。
背景説明
サブネット化は、ネットワーク アドレスをより小さなサブネットに分割します。Network Address Translation(NAT;ネットワークアドレス変換)やPort Address Translation(PAT;ポートアドレス変換)などの他のテクノロジーと組み合わせることで、使用可能なIPアドレス空間をより効率的に使用できるようになり、アドレス枯渇の問題が大幅に軽減されます。サブネット化には、最初のサブネットと最後のサブネットの使用をカバーするガイドラインがあります。これは、それぞれサブネットゼロとオールワンサブネットと呼ばれます。
ゼロ サブネット
ネットワーク アドレスがサブネット化された場合、ネットワーク アドレス サブネット化の後に得られる最初のサブネットは、サブネット ゼロと呼ばれます。
クラス B アドレス 172.16.0.0 について考えます。デフォルトでは、クラスBアドレス172.16.0.0にはホスト部を表すために16ビットが予約されているため、65534(216-2)の有効なホストアドレスを使用できます。ネットワーク172.16.0.0/16がホスト部から3ビットを借りるためにサブネット化されると、8つの(23)サブネットが取得されます。次の表は、アドレス172.16.0.0をサブネット化することによって得られるサブネット、結果のサブネットマスク、関連付けられたブロードキャストアドレス、および有効なホストアドレスの範囲を示す例です。
サブネットアドレス |
サブネット マスク |
ブロードキャストアドレス |
有効なホスト範囲 |
172.16.0.0 |
255.255.224.0 |
172.16.31.255 |
172.16.0.1 ~ 172.16.31.254 |
172.16.32.0 |
255.255.224.0 |
172.16.63.255 |
172.16.32.1 ~ 172.16.63.254 |
172.16.64.0 |
255.255.224.0 |
172.16.95.255 |
172.16.64.1 ~ 172.16.95.254 |
172.16.96.0 |
255.255.224.0 |
172.16.127.255 |
172.16.96.1 ~ 172.16.127.254 |
172.16.128.0 |
255.255.224.0 |
172.16.159.255 |
172.16.128.1 ~ 172.16.159.254 |
172.16.160.0 |
255.255.224.0 |
172.16.191.255 |
172.16.160.1 ~ 172.16.191.254 |
172.16.192.0 |
255.255.224.0 |
172.16.223.255 |
172.16.192.1 ~ 172.16.223.254 |
172.16.224.0 |
255.255.224.0 |
172.16.255.255 |
172.16.224.1 ~ 172.16.255.254 |
前の例では、最初のサブネット(サブネット172.16.0.0/19)はサブネットゼロと呼ばれます。
サブネット化されたネットワークのクラスと、サブネット化の後に得られるサブネットの数によって、サブネット0は決定されません。ゼロ サブネットは、ネットワーク アドレスをサブネット化したとき最初に得られるサブネットです。また、ゼロ サブネット アドレスを 2 進数で表記すると、すべてのサブネット ビット(この場合はビット 17、18、および 19)がゼロになります。ゼロ サブネットはオールゼロ サブネットとも呼ばれます。
すべて1のサブネット
ネットワーク アドレスをサブネット化したとき、最後に得られるサブネットはオールワン サブネットと呼ばれます。
前の例を参照すると、ネットワーク172.16.0.0(サブネット172.16.224.0/19)をサブネット化する際に得られる最後のサブネットは、すべて1のサブネットと呼ばれます。
サブネット化されたネットワークのクラスと、サブネット化の後に取得されたサブネットの数は、すべて1のサブネットを決定しません。また、オールワン サブネットのアドレスを 2 進数で表記すると、すべてのサブネット ビット(この場合はビット 17、18、および 19)が 1 になります。
サブネット0およびすべて1のサブネットに関する問題
従来、サブネット0とすべて1のサブネットをIPアドレスに使用しないことを強く推奨していました。 RFC 950に基づく「サブネット化されたネットワークでこれらの特別な(ネットワークおよびブロードキャスト)アドレスの解釈を保持し、拡張することは有用です。つまり、サブネットフィールドのすべての0と1の値を実際の(物理)サブネットに割り当てることはできません。 ネットワークエンジニアが3ビットを借りるときに得られるサブネットの数を計算する必要がある理由は、23(8)ではなく23-2(6)を計算するためです。-2は、サブネット0およびすべて1のサブネットが従来は使用されないことを認識しています。
サブネットゼロの問題
IPアドレッシングにサブネット0を使用することは、ネットワークとアドレスが区別できないサブネットに固有の混乱のため推奨されません。
前の例を参照して、IPアドレス172.16.1.10を考えてみます。このIPアドレスに関連付けられたサブネットアドレスを計算すると、サブネット172.16.0.0(サブネット0)という答えが返されます。このサブネットアドレスは、最初にサブネット化されたネットワークアドレス172.16.0.0と同じであることに注意してください。したがって、サブネット化を実行すると、ネットワークとサブネット(サブネット0)が得られ、そのアドレスは区別できません。以前、これは大きな混乱の原因でした。
Cisco IOS®ソフトウェアリリース12.0より前のCiscoルータでは、デフォルトで、サブネット0に属するIPアドレスをインターフェイスに設定することを許可しませんでした。ただし、12.0よりも前のCisco IOSソフトウェアリリースを使用しているネットワークエンジニアが、サブネット0の使用が安全であると判断した場合は、グローバルコンフィギュレーションモードでip subnet-zeroコマンドを使用すると、この制限を克服できます。Cisco IOS ソフトウェア リリース 12.0 から、Cisco ルータはデフォルトで ip subnet-zero を有効にしていますが、ネットワーク エンジニアがゼロ サブネットの使用に不安がある場合は、no ip subnet-zero コマンドでゼロ サブネット アドレスの使用を制限できます。
Cisco IOSソフトウェアリリース8.3より前のバージョンでは、service subnet-zerocommandコマンドが使用されていました。
オールワンサブネットの問題
IPアドレッシングにオールワンサブネットを使用することは、ネットワークと同一のブロードキャストアドレスを持つサブネットに固有の混乱のため、これまで推奨されていませんでした。
前の例を参照すると、最後のサブネット(サブネット172.16.224.0/19)のブロードキャストアドレスは172.16.255.255です。これは、最初にサブネット化されたネットワーク172.16.0.0のブロードキャストアドレスと同じなので、サブネット化を実行するたびに、ネットワークとサブネット(すべて1のサブネット)が同じブロードキャストアドレスで取得されます。つまり、ネットワークエンジニアはルータにアドレス172.16.230.1/19を設定できますが、設定すると、ローカルサブネットブロードキャスト(172.16.255.255(/19))と完全なクラスBブロードキャスト(172.16.255.255(/16))を区別できなくなります。
オールワン サブネットは使用できますが、設定ミスを誘発する可能性があります。
注:詳細については、「ホストとサブネットの数」を参照してください。
何が起こるかについて理解するには、次の点を考慮してください。
誤って設定されたオールインワンサブネット
ルータ 2 から 5 は、それぞれに複数の着信非同期(または ISDN)接続があるアクセス ルータです。ネットワーク(192.168.1.0/24)は、これらの着信ユーザ用に4つに分割されます。分割された各部分がアクセス ルータのいずれかに接続されます。また、非同期回線はconfiguredip unnum e0です。ルータ1には正しいアクセスルータを指すスタティックルートがあり、各アクセスルータにはルータ1にデフォルトルートポイントがあります。
ルータ 1 のルーティング テーブルは次のとおりです。
C 192.168.2.0/24 E0
S 192.168.1.0/26 192.168.2.2
S 192.168.1.64/26 192.168.2.3
S 192.168.1.128/26 192.168.2.4
S 192.168.1.192/26 192.168.2.5
アクセス ルータは、イーサネットへの同じ接続ルートを持ち、同じデフォルト ルートと、各自の非同期回線(Point-to-Point Protocol(PPP)による)へのいくつかのホスト ルートを持ちます。
Router 2 routing table: Router 3 routing table:
C 192.168.2.0/24 E0 C 192.168.2.0/24 E0
S 10.0.0.0/0 192.168.2.1 S 10.0.0.0/0 192.168.2.1
C 192.168.1.2/32 async1 C 192.168.1.65/32 async1
C 192.168.1.5/32 async2 C 192.168.1.68/32 async2
C 192.168.1.8/32 async3 C 192.168.1.74/32 async3
C 192.168.1.13/32 async4 C 192.168.1.87/32 async4
C 192.168.1.24/32 async6 C 192.168.1.88/32 async6
C 192.168.1.31/32 async8 C 192.168.1.95/32 async8
C 192.168.1.32/32 async12 C 192.168.1.104/32 async12
C 192.168.1.48/32 async15 C 192.168.1.112/32 async15
C 192.168.1.62/32 async18 C 192.168.1.126/32 async18
Router 4 routing table: Router 5 routing table:
C 192.168.2.0/24 E0 C 192.168.2.0/24 E0
S 10.0.0.0/0 192.168.2.1 S 10.0.0.0/0 192.168.2.1
C 192.168.1.129/32 async1 C 192.168.1.193/32 async1
C 192.168.1.132/32 async2 C 192.168.1.197/32 async2
C 192.168.1.136/32 async3 C 192.168.1.200/32 async3
C 192.168.1.141/32 async4 C 192.168.1.205/32 async4
C 192.168.1.152/32 async6 C 192.168.1.216/32 async6
C 192.168.1.159/32 async8 C 192.168.1.223/32 async8
C 192.168.1.160/32 async12 C 192.168.1.224/32 async12
C 192.168.1.176/32 async15 C 192.168.1.240/32 async15
C 192.168.1.190/32 async18 C 192.168.1.252/32 async18
非同期回線上で、ホストが255.255.255.192マスクではなく255.255.255.0マスクを持つように誤って設定されている場合はどうなりますか。うまくいってる?
しかし、いずれかのホスト(192.168.1.24)がローカルブロードキャスト(NetBIOS、WINS)を行った場合、何が起こるかに注目します。パケットは次のようなものになります。
s: 192.168.1.24 d: 192.168.1.255
パケットはルータ2で受信されます。Router 2はRouter 1に送信し、Router 1はRouter 5に送信し、Router 1はRouter 5に送信し、Router 1はRouter 5に送信し、さらにTime To Live(TTL;存続可能時間)の期限が切れるまで繰り返されます。
別の例(ホスト192.168.1.240)を次に示します。
s: 192.168.1.240 d: 192.168.1.255
このパケットをルータ 5 が受信します。Router 5はRouter 1に送信し、Router 1はRouter 5に送信し、Router 1はRouter 5に送信し、Router 1はRouter 5に送信し、TTLの期限が切れるまで繰り返されます。この状況が発生した場合、パケット攻撃を受けていたと考えることができます。ルータ 5 に負荷がかかっているため、攻撃と仮定しても無理はありません。
この例では、ルーティング ループが発生しています。ルータ5はオールワンサブネットを処理するため、攻撃を受けます。ルータ 2 から 4 では、ブロードキャストパケットとの遭遇は 1 度のみです。ルータ 1 にもパケットが集中しました。しかし、このルータが、この状況を処理できる Cisco 7513 だったらどうでしょう。その場合には、ホストに正しいサブネット マスクを設定する必要があります。
正しく設定されていないホストから保護するには、各アクセスルータにループバックインターフェイスを作成し、ループバックアドレスへのスタティックルート192.168.1.255を設定します。Null0インターフェイスを使用することもできますが、その場合、ルータはInternet Control Message Protocol(ICMP;インターネット制御メッセージプロトコル)「unreachable」メッセージを生成します。
サブネット0およびすべて1のサブネットを使用する
推奨されませんでしたが、サブネット0とすべて1のサブネットを含むアドレス空間全体が常に使用可能であることに注意する必要があります。オールワン サブネットの使用は明示的に許可され、ゼロ サブネットの使用は Cisco IOS ソフトウェア リリース 12.0 以降、明示的に許可されています。Cisco IOSソフトウェアリリース12.0よりも前のリリースでも、ip subnet-zeroグローバルコンフィギュレーションコマンドを入力すると、サブネット0を使用できます
サブネット0およびオールワンサブネットの使用に関する問題については、RFC 1878を参照してください。現在、サブネット0とすべて1のサブネットの使用が一般に受け入れられ、ほとんどのベンダーがそれらの使用をサポートしています。ただし、一部のネットワーク、特にレガシーソフトウェアを使用するネットワークでは、サブネット0とすべて1のサブネットを使用すると問題が発生する可能性があります。
注:シスコの内部ツールおよび情報にアクセスできるのは、登録ユーザのみです。
関連情報