TCP/IP編4

TCP/IP編1
TCP/IP編2
TCP/IP編3
TCP/IP編4
TCP/IP編5
TCP/IP編6
TCP/IP編7
TCP/IP編8
TCP/IP編9
TCP/IP番外編

サイトマップ

 

 

第五章 サブネット

5-1、サブネット

インターネット アドレス クラスは、3つの異なる規模のインターネットワークに適応させるために設計されたものであり、ネットワークとそのネットワークごとにいくつのホストが必要とされるかによって、32ビットのIPアドレスを、ネットワークIDとホストIDとに配分している。多数のホストを持つネットワークの場合、ブロードキャスト トラフィックを抑えるために、ネットワークをより小さなネットワーク(セグメント)に分割して、それぞれのネットワークをルーターによって分割することがよくある。そのように分割したネットワークを「サブネット」と呼ぶ。サブネット化されたネットワークIDは、元のクラス ベースのネットワークIDのうち、ホストID部分のビットを使って作られる。

5-2、サブネット マスク

サブネッティングが行われていると、本来のIPアドレスクラスの定義に基づいて、IPアドレスからネットワークID部分を決定することはできない。この問題を解決するため、どこまでがネットワークIDで、どこからがホストIDなのかを決定するための新しい値が用意された。それが「サブネット マスク」である。サブネット マスクを使うと、任意のIPアドレスから、ネットワークIDとホストIDを正しく取り出すことができる。サブネット マスクのビットは以下のように定義されている。

ネットワークIDに対応するビットはすべて1にセットされる。

ホストIDに対応するビットはすべて0にセットされる。

TCP/IPネットワーク上のホストは、たとえ単一セグメントのネットワークであっても、サブネット マスクが必要とされる。各TCP/IPノードでは、クラス ベースのネットワークIDのときには「デフォルト サブネット マスク」が使われ、サブネッティングやスーパーネッティングしたときには「カスタム サブネット マスク」が使われる。

○サブネット マスクのドット区切り10進表記

サブネット マスクもドット区切り10進表記で表現することがよくある。ネットワークID部とホストID部のそれぞれのビット位置が決まると、最終的な32ビットの数がドット区切り10進表記に変換される。ただし、ドット区切り10進表記で表現されてはいるが、サブネット マスクはIPアドレスではないことに注意する必要がある。

デフォルト サブネット マスクは、IPアドレス クラスに基づいて決められており、サブネット化されていないTCP/IPネットワーク上で使われる。

アドレス クラス サブネット マスク ビット サブネット マスク
クラスA 11111111 00000000 00000000 00000000 255.0.0.0
クラスB 11111111 11111111 00000000 00000000 255.255.0.0
クラスC 11111111 11111111 11111111 00000000 255.255.255.0

カスタム サブネット マスクは上記のデフォルト サブネット マスクとは異なるものになる。

○サブネット マスクのネットワーク プレフィックス長表記

ネットワークIDのビットは常に最上位から連続するように選ばれるので、サブネット マスクのネットワークID部で使われるビット数を簡単に表現するために、「/<ビット数>」というネットワークプレフィックス表記が使われることがある。

アドレス クラス サブネット マスク ビット ネットワーク プレフィックス
クラスA 11111111 00000000 00000000 00000000 /8
クラスB 11111111 11111111 00000000 00000000 /16
クラスC 11111111 11111111 11111111 00000000 /24

○ホスト ビット数の決定

ホスト ビット部分を使ってサブネッティング化のためには、まずサブネッティングに使われるホスト ビット数を決定する必要がある。

サブネッティングに使われるホスト ビットの数によって、サブネットの数とそこに収容できるホストの数が決まる。ホスト ビット数をより多くすれば、それだけ多くのサブネットを持つことができるが、収容できるホストの総数は少なくなる。

一般的にサブネット上のノードは同じブロードキャスト トラフィックを共有することになるので、ネットワークのトラフィックを抑えるためには、サブネットごとのホスト数を多くするよりも、利用できるサブネット数を多くするほうが好まれる。

) 割り当てられたネットワークアドレス = 205.2.3.0 14のサブネットを必要とする

デフォルトサブネットマスク = 11111111.11111111.11111111.00000000 =255.255.255.0

サブネットアドレスとするビット数をnとすると
2のn乗 - 2 14 (全て01となるパターンを除くため2を引く)
n ≧ 4

サブネットアドレスに4ビット取ることで14のサブネットを設定できる
ホストアドレスには残る4ビットを使うことになる

カスタマイズサブネットマスク
11111111.11111111.11111111.11110000 = 255.255.255.240

一つのサブネットに対し設定できるホスト数
2の4乗 - 2 = 14

最後のオクテットのビット

サブネット10001|---- : 16+x 0001|0001 : 17 >>> 0001|1110 : 30
IPアドレス:205.2.3.17 - 205.2.3.30

サブネット20010|---- : 32+x 0010|0001 : 33 >>> 0010|1110 : 46
IPアドレス:205.2.3.33 - 205.2.3.46

サブネット30011|---- : 48+x 0011|0001 : 49 >>> 0011|1110 : 62
IPアドレス:205.2.3.49 - 205.2.3.62

サブネット40100|---- : 64+x 0100|0001 : 65 >>> 0100|1110 : 78
IPアドレス:205.2.3.65 - 205.2.3.78

サブネット50101|---- : 80+x 0101|0001 : 81 >>> 0101|1110 : 94
IPアドレス:205.2.3.81 - 205.2.3.94

サブネット60110|---- : 96+x 0110|0001 : 97 >>> 0110|1110 : 110
IPアドレス:205.2.3.97 - 205.2.3.110

サブネット70111|---- : 112+x 0111|0001 : 113 >>> 0111|1110 : 126
IPアドレス:205.2.3.113 - 205.2.3.126

サブネット81000|---- : 128+x 1000|0001 : 129 >>> 1000|1110 : 142
IPアドレス:205.2.3.129 - 205.2.3.142

サブネット91001|---- : 144+x 1001|0001 : 145 >>> 1001|1110 : 158
IPアドレス:205.2.3.145 - 205.2.3.158

サブネット101010|---- : 160+x 1010|0001 : 162 >>> 1010|1110 : 174
IPアドレス:205.2.3.162 - 205.2.3.174

サブネット111011|---- : 176+x 1011|0001 : 177 >>> 1011|1110 : 190
IPアドレス:205.2.3.177 - 205.2.3.190

サブネット121100|---- : 192+x 1100|0001 : 193 >>> 1100|1110 : 206
IPアドレス:205.2.3.193 - 205.2.3.206

サブネット131101|---- : 208+x 1101|0001 : 209 >>> 1101|1110 : 222
IPアドレス:205.2.3.209 - 205.2.3.222

サブネット141110|---- : 224+x 1110|0001 : 225 >>> 1110|1110 : 238
IPアドレス:205.2.3.225 - 205.2.3.238

x = host ID (1 to 14)

10進法

サブネット

クラスAホスト数

クラスBホスト数

クラスCホスト数

.192

2

4,194,302

16,382

62

.224

6

2,097,150

8,190

30

.240

14

1,048,574

4,094

14

.248

30

524,286

2,046

6

.252

62

262,142

1,022

2

.254

126

131,070

510

NA

.255

254

65,534

254

NA

5-3、スーパーネッティングとCIDR

近年のインターネットの成長とともに、クラスBのネットワークIDはすぐに枯渇するであろうと予想されている。たいていの組織では、クラスCのネットワークIDでは十分な数のホストIDを確保することはできず、組織内で柔軟なサブネット構造を構築するためには、クラスBのネットワークIDが必要になる。

そこで、クラスBのネットワークIDを使い切らないようにIDを振り分ける新しい方法が考案された。クラスBのネットワークIDを割り当てるのではなく、組織が必要とする十分な数のネットワークIDとホストIDが確保できるように、連続する複数のクラスCのネットワークIDを割り当てる方法がスーパーネッティングである。たとえば、最大で2000台のホストを持つ組織に対して、クラスBのネットワークID1つ割り当てるのではなく、クラスCのネットワークID8つ割り当てる。個々のクラスCのネットワークIDには254台のホストを収容することができるので、すべて合わせると2032台分になる。

この方法は、クラスBのネットワークIDを保護する一方で、新しい問題を生み出した。従来使われていたルーティング方法では、組織にIPパケットを送るためには、インターネット上のルーターのルーティング テーブル内に、クラスCネットワークIDのエントリを8つもセットする必要がある。そこで、インターネット ルーターがルート情報で過負荷にならないように、「CIDR」と呼ばれる方法が使われることになった。これは、組織に割り当てられた複数のクラスCのネットワークIDをすべてまとめて1つのエントリにして扱う手法である。

220.78.168.0というネットワークIDから始まる8つのクラスCネットワークIDが割り当てられているとすると、次のように表現することができる。

開始ネットワークID:220.78.168.0 = 11011100 01001110 10101000 00000000
終了ネットワークID:220.78.175.0 = 11011100 01001110 10101111 00000000

先頭の21ビットが同じである。3バイト目の末尾3ビットは、000から111まで変わる。インターネット上のルーターのルーティング テーブルにおけるCIDRエントリは次のようになる。

ネットワークID サブネット マスク サブネット マスク(2進数)
220.78.168.0 255.255.248.0 11111111 11111111 11111000 00000000

ネットワークのプレフィックス表記では220.78.168.0/21となる。

 

お薦めの書籍