ip subnet-zero

 現在、IPv4では、IPアドレスを節約するために、様々な拡張がなされ、IPプロトコルが登場した時と比べると制約が緩くなり、自由度が高くなっています。

 ここで、紹介している「ip subnet-zero」コマンドについては、今では、おそらく、使用することはないでしょう。Packet Tracer においても、このコマンドをサポートしてないようです。ここで解説している内容は、読み飛ばしてもよいでしょう。

 ここで説明している内容は、オール0サブネット、オール1サブネットを使用することができなかった時代と、使用できるようになった時代の端境期に設定したコマンドの解説です。

 制約が多かった時代の名残で、用意されているコマンドが、「ip subnet-zero」です。例えば、200.200.200.0のネットワークをホスト部から3ビット借りてきて8つのサブネットを作成すると、下のような8つのサブネットができます。

第4オクテットだけ、2進数で表現すると以下のようになります。

 200.200.200.000(000-00000) *オール0サブネット
 200.200.200.032(001-00000)
 200.200.200.064(010-00000)
 200.200.200.096(011-00000)
 200.200.200.128(100-00000)
 200.200.200.160(101-00000)
 200.200.200.192(110-00000)
 200.200.200.224(111-00000) *オール1サブネット

 「200.200.200.0/27」の用にホスト部から借りたビットが全て0のサブネットのことを『ゼロサブネット』と言います。この『ゼロサブネット』と、借りたビットが全て1のサブネットは、歴史的に使わないことが推奨されてきました。

 第0サブネットの「200.200.200.0/27」は、分割していないクラスフルのネットワークアドレス「200.200.200.0/24」と番号が重複し混乱を引き起こしてしまう可能性があります。

 また、第7サブネット「200.200.200.224」のブロードキャストアドレスは、「200.200.200.255」になり、こちらも分割しないクラスフルの「200.200.200.0/24」ネットワークのブロードキャストアドレスと混乱してしまいます。

 以前は、この混乱を避けるために、オール0サブネット、オール1サブネットの使用は禁止されていましたが、これだと、使用されないアドレスをたくさん生み出してしまう結果になります。

/27サブネットだとと利用すると各サブネットに

25-2=30個の使用可能なIPアドレスが存在します。(それぞれのサブネットで、オール0、オール1は予約)

 つまり、オール0サブネット、オール1サブネットの2つのサブネットを使用しないとすると、合計60個のアドレスを失ってしまうことになるのです。

 インターネットが始まったばかりの頃は、IPアドレスは、十分足りていましたが、誰もがインターネットに接続するようになってくるとすぐに、IPアドレスが不足するようになってきました。

IPアドレスは、32bitですから、

単純計算でも

232 = 約43億

しかありません。そうです。1人、1アドレスないのです。

ということから、現在は、IPアドレスを節約して大切に使うようになってきています。

 その結果、現在では、オール0サブネット、オール1サブネットの使用については、ネットワーク機器のベンダーやネットワーク管理者に任されるようになっています。

CiscoのIOSでは、サブネット0を使うかどうかは、「ip subnet-zero」コマンドで指示するようになっています。

Rotuer(config)#ip subnet-zero

このコマンドは、Cisco IOS 12.0からは、デフォルトで有効になっています。

最近のIOSを使用しているのであれば、このコマンドを意識する必要はあまりないと思います。

ちなみに、『no ip subnet-zero』の状態で、下のようにIPアドレスを設定するとルータに怒られてしまいます。

Router(config)#interface ethernet 0
Router(config-if)#ip address 10.0.0.1 255.255.255.0
Bad mask /24 for address 10.0.0.1

「ip subnet-zero」コマンドを入力すれば、「ゼロサブネット」のホストアドレスである「10.0.0.1」が設定できます。