はじめに
このドキュメントでは、ゼロサブネットとオールワンサブネットの使用について説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
ドキュメント表記の詳細は、『テクニカルティップスとその他の内容のためのフォーマット表記の使用』を参照してください。
背景説明
サブネット化は、ネットワーク アドレスをより小さなサブネットに分割します。Network Address Translation(NAT;ネットワークアドレス変換)やPort Address Translation(PAT;ポートアドレス変換)などの他のテクノロジーと組み合わせることで、使用可能なIPアドレス空間をより効率的に使用できるようになり、アドレス枯渇問題が大幅に軽減されます。サブネット化には、最初と最後のサブネットを使用するガイドラインがあり、それぞれサブネット0およびすべて1のサブネットと呼ばれます。
ゼロ サブネット
ネットワーク アドレスがサブネット化された場合、ネットワーク アドレス サブネット化の後に得られる最初のサブネットは、サブネット ゼロと呼ばれます。
クラス 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が決定されることはありません。ゼロ サブネットは、ネットワーク アドレスをサブネット化したとき最初に得られるサブネットです。また、サブネット0のアドレスを2進数で表すと、すべてのサブネットビット(この場合はビット14、15、および16)がゼロになります。ゼロ サブネットはオールゼロ サブネットとも呼ばれます。
オールワンサブネット
ネットワーク アドレスをサブネット化したとき、最後に得られるサブネットはオールワン サブネットと呼ばれます。
前の例を参照すると、ネットワーク172.16.0.0(サブネット172.16.224.0/19)をサブネット化したときに得られる最後のサブネットは、すべて1のサブネットと呼ばれます。
サブネット化されたネットワークのクラスと、サブネット化の後に得られるサブネットの数は、すべて1のサブネットを決定しません。また、すべて1のサブネットアドレスに相当する2進数を書き込むと、すべてのサブネットビット(この場合はビット14、15、および16)が1になります。これが名前の由来です。
ゼロサブネットとオールワンサブネットの問題
従来は、ゼロサブネットとオールワンサブネットをIPアドレスに使用しないことを強く推奨していました。 RFC 950に基づくと、「サブネット化されたネットワークでのこれらの特別な(ネットワークおよびブロードキャスト)アドレスの解釈を維持し、拡張することは有用です。つまり、サブネットフィールドがすべて0およびすべて1の値は、実際の(物理)サブネットに割り当てることはできません。」 ネットワークエンジニアが3ビットを借りるときに得られるサブネットの数を計算する必要がある場合、23(8)ではなく23-2(6)になります。-2は、サブネット0およびすべて1のサブネットが従来から使用されていないことを認識しています。
サブネットゼロの問題
IPアドレッシングにゼロサブネットを使用することは、ネットワーク固有の混乱とアドレスが区別できないサブネットのために推奨されていませんでした。
前の例を参照して、IPアドレス172.16.1.10について考えます。このIPアドレスに関連付けられたサブネットアドレスを計算すると、サブネット172.16.0.0(サブネット0)という答えが見つかります。このサブネットアドレスは、最初にサブネット化されたネットワークアドレス172.16.0.0と同じであることに注意してください。そのため、サブネット化を実行すると、アドレスが区別できないネットワークとサブネット(ゼロサブネット)が作成されます。以前、これは大きな混乱の原因でした。
Cisco IOS®ソフトウェアリリース12.0より前のリリースでは、シスコルータは、デフォルトで、サブネット0に属するIPアドレスをインターフェイスに設定することを許可しませんでした。ただし、Cisco IOSソフトウェアリリース12.0より古いバージョンを使用しているネットワークエンジニアがゼロサブネットの使用を安全だと考えた場合は、グローバルコンフィギュレーションモードでip subnet-zeroコマンドを使用すると、この制限を克服できます。Cisco IOS ソフトウェア リリース 12.0 から、Cisco ルータはデフォルトで ip subnet-zero を有効にしていますが、ネットワーク エンジニアがゼロ サブネットの使用に不安がある場合は、no ip subnet-zero コマンドでゼロ サブネット アドレスの使用を制限できます。
Cisco IOSソフトウェアリリース8.3より前のバージョンでは、service subnet-zerocommandコマンドが使用されていました。
オールワンサブネットの問題
IPアドレッシングですべて1のサブネットを使用することは、以前は推奨されていませんでした。これは、ネットワークとサブネットが同一のブロードキャストアドレスを持つことで、混乱が生じるためです。
前の例を参照すると、最後のサブネット(サブネット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 が受信します。ルータ5はルータ1に送信し、ルータ5はルータ1に送信し、ルータ5はルータ1に送信し、ルータ1はルータ5に送信するなど、TTLの期限が切れるまで送信を続けます。この状況が発生した場合、パケット攻撃を受けていると考えることができます。ルータ 5 に負荷がかかっているため、攻撃と仮定しても無理はありません。
この例では、ルーティング ループが発生しています。ルータ5はオールワンサブネットを処理するので、高い負荷がかかります。ルータ 2 から 4 では、ブロードキャストパケットとの遭遇は 1 度のみです。ルータ 1 にもパケットが集中しました。しかし、このルータが、この状況を処理できる Cisco 7513 だったらどうでしょう。その場合には、ホストに正しいサブネット マスクを設定する必要があります。
正しく設定されていないホストから保護するには、各アクセスルータにループバックインターフェイスを作成し、そのループバックアドレスへのスタティックルート192.168.1.255を設定します。Null0インターフェイスを使用することもできますが、その場合、ルータはインターネット制御メッセージプロトコル(ICMP)の「到達不能」メッセージを生成します。
ゼロサブネットとオールワンサブネットの使用
推奨されませんでしたが、ゼロサブネットとオールワンサブネットを含むアドレス空間全体が常に使用可能であることに注意する必要があります。オールワン サブネットの使用は明示的に許可され、ゼロ サブネットの使用は Cisco IOS ソフトウェア リリース 12.0 以降、明示的に許可されています。Cisco IOSソフトウェアリリース12.0以前でも、ip subnet-zeroグローバルコンフィギュレーションコマンドを入力すると、ゼロサブネットを使用できます
サブネット0とすべて1のサブネットの使用状況の問題については、RFC 1878を参照してください。現在、ゼロサブネットとオールワンサブネットの使用は一般に認められており、ほとんどのベンダーがそれらの使用をサポートしています。ただし、一部のネットワーク、特にレガシーソフトウェアを使用するネットワークでは、ゼロサブネットとオールワンサブネットの使用が問題を引き起こす可能性があります。
注:シスコの内部ツールおよび情報にアクセスできるのは、登録ユーザのみです。
関連情報