スーパーネット化された環境のxxx.xxx.xxx.255はホスト割り当てできず問題になったことがあったのか
2018/04/24
CIDRやサブネットマスクなどからIPアドレスの範囲を求め、
そのネットワークで割り当て可能なホスト数を算出する際には、
ネットワークアドレス、ブロードキャストアドレスを除外した、
「総IP数ー2」で求められることが一般的です。
しかし、その算出方法では割り当てられるホスト数を下回る場合もあります。
(注意) OSの古い環境での話です。
本記事は以下のMicrosoftサポートページの事象をもとに作成されています。
スーパーネット化された IP アドレス範囲を使用する場合の問題
事象と原因
このページでは以下のように書かれています。
(上記より抜粋引用)
現象
クライアントのアドレスが x.x.x.255 に設定された場合、それが DHCP サーバーから割り当てられたものか静的に構成されたものかにかかわらず、クライアントで TCP/IP プロトコルを使用した通信が不可能になってしまうことがあります。
詳細
この問題は、スーパーネットが適用された IP アドレスを使用している場合に発生します。スーパーネット化された環境では、次のような IP アドレスは、正しいアドレスであったとしても使用できません。
クラス C ベースのアドレス x.x.x.255
クラス B ベースのアドレス x.x.255.255
クラス A ベースのアドレス x.255.255.255たとえば、ネットワーク アドレスが 200.57.8.0、ネットマスクが 255.255.252.0 であるとします。これは、スーパーネット化されたクラス C のアドレス範囲となります。つまり、2 つのアドレスが同一のネットワーク上に存在するためには、最初の 2 つのオクテットが完全に一致し、かつ、3 番目のオクテットの先頭 6 ビット (252=11111100) が一致している必要があります。最後のオクテットは何でもかまいません。この範囲では、200.57.8.0 はネットワーク アドレス、200.57.11.255 はサブネット ブロードキャスト アドレスとなります。これら 2 つの間であれば、すべて有効な IP アドレスです。ただし、以下のアドレスは、クラス C の標準的なサブネット マスク 255.255.255.0 に基づくサブネット ブロード キャスト アドレスとして解釈されるため、使用することはできません。
200.57.8.255
200.57.9.255
200.57.10.255文書番号: 281579 – 対象製品
この資料は以下の製品について記述したものです。
- Microsoft Windows 2000 Professional Edition
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows NT Workstation 4.0 Developer Edition
- Microsoft Windows NT Server 4.0 Standard Edition
- Microsoft Windows NT Server 4.0 Terminal Server
さてこれはどういう事でしょうか。
上記のケースを解剖
まず、スーパーネット化という部分からですが、
スーパーネット化は、ある2つの連続するIPアドレスを
1つのネットワークとしてまとめた構成を示しています。
要は、複数のサブネットを連結することによって、
より大きな一個のネットワーク単位にまとめる方法を示しています。
上記を例にご紹介します。
ネットワーク アドレス: 200.57.8.0(11001000.00111001.00001000.00000000)
ネットマスク: 255.255.252.0(11111111.11111111.11111100.00000000)
この場合、CIDR的には「 200.57.8.0/22 」となります。
IPアドレスの範囲は「 [twoip_ext_link bip=200.57.8.0 tip=200.57.11.255] 」
有効ホスト数は 1,022 台 のクラスC ネットワークです。
上記の範囲を見てみると、
以下のサブネットワークに分割ができることが容易に想像できます。
※サブネットワークの構成はこの限りではありませんが。
- [twoip_ext_link bip=200.57.8.0 tip=200.57.8.255]
- [twoip_ext_link bip=200.57.9.0 tip=200.57.9.255]
- [twoip_ext_link bip=200.57.10.0 tip=200.57.10.255]
- [twoip_ext_link bip=200.57.11.0 tip=200.57.11.255]
こうした複数のサブネットワークを、
大きな1つのネットワークにまとめることが「スーパーネットワーク化」です。
さて、この4つのサブネットワークの範囲を見てみると、
それぞれに、以下のようなIPアドレスが表示されています。
- 200.57.8.255
- 200.57.9.255
- 200.57.10.255
- 200.57.11.255
この4つのIPアドレスはそれぞれのサブネットワーク内では、
どれもブロードキャストアドレスとなっています。
CIDR | ネットワークIP | ブロードキャストIP | サブネットマスク |
---|---|---|---|
200.57.8.0/24 | 200.57.8.0 | 200.57.8.255 | 255.255.255.0 |
200.57.9.0/24 | 200.57.9.0 | 200.57.9.255 | 255.255.255.0 |
200.57.10.0/24 | 200.57.10.0 | 200.57.10.255 | 255.255.255.0 |
200.57.11.0/24 | 200.57.11.0 | 200.57.11.255 | 255.255.255.0 |
この「xxx.xxx.xxx.255」というブロードキャストアドレスが、
スーパーネットワーク化された大きなネットワークから見た時に、
本来は有効なIPアドレスであり、ホストに割り当て可能なはずが、
上記のOSバージョンでは、
一律でブロードキャストアドレスと解釈されてしまう。
というと言うことのようです。
確かになにか気持ち悪い違和感
規模が大きいネットワークなら、
確かに、255を含むIPアドレスが割り当て可能なことは分かるものの、
気持ち的には、どこか気持ち悪い気がしてしまいます。
現実的には以下のような255が出現するネットワーク構成もできるわけで、
255という値が悪というわけではないのですが。
でも、あんまり使いたくないですね。
192.168.255.0/24自分のPCに「200.57.8.255」が割り当てられていたら、
「え?」って一瞬思っちゃいます。
大丈夫なのかシスタン(システム担当者)に聞いて確認してしまいそう・・・。
実際のところ自宅でこのような、
スーパーネットワーク構成を行うことはないでしょうし、
直面することもないでしょう。
ましてWindows2000ですし、WindowsNTが現役なんてこともないでしょう。
当時は、おそらく以下のサブネットマスクを直接判定してしまっていたのでしょうね。
クラス C ベースのアドレス x.x.x.255
クラス B ベースのアドレス x.x.255.255
クラス A ベースのアドレス x.255.255.255
しかし、もしこうしたケースに直面した場合には、
サブネットワークのブロードキャストアドレスの起因を、
疑ってみるといいかもしれません。
スーパーネットワーク化の概念が出てきたタイミングとの
兼ね合いだったのかもしれませんが。
関連記事
-
CIDRをIPアドレスに展開するのは意外と需要があった。
当初自分は「CIDR」で指定したIP帯に対して、 目的のIPアドレス(自分のグロ …
-
大量のデータを含むCSV。どうやってレンサバに突っ込む?
レンタルサーバー上のデータベースに対して、 政府などが公開しているデータのCSV …
-
サイトが生まれたきっかけは「キャリアCIDRをまとめたい」だった
サイトを作るにまで至ってしまった本来の目的は、 「携帯各社のグローバルIPアドレ …
-
「CIDR+CIDR結合」ツールのメリットが分かりやすいケースに出会ったのでご紹介
当サイトでは、複数のCIDR形式によるIPアドレス範囲同士を結合し、 より少ない …