ネットマスクなお話 | もっとコンピュータが好きになるblog

ネットマスクなお話

近パソコンインストラクターを目指している◆三十路ママ♪番茶も出花さんに読者になって頂きました.blogを読んでいくとネットワーク系の問題に弱いとのこと.少しは勉強のお手伝いを出来るかなと思いまして,今回のネタはネットワークの話をしてます.ネットマスクの話をしようと思いますが,ネットワークについて書いてある本なら大抵どこでも書いている事なので,既に理解している方も多いと思いますが,折角なので復習兼ねて読んでみてくださいませ.


現在のネットワークにおいてネットワーク層の主要プロトコルであるIPv4は,80年代に設計されたもので,現在のインターネットのようにここまで大きくネットワークが発展するとは考えていない状況で設計された為,アドレス体系に大きな無駄が発生していました. 

- RFC 791 - Internet Protocol

それが,ClassA,ClassB,ClassCアドレスの問題です.Classとはなんなのか説明しますと,ClassAなら126個のネットワークを作る事が出来,一つのネットワークにつき16777214個のホストを配置できるアドレスという意味で,ClassBなら16382個のネットワークに65534個のホスト,ClassCなら2097150個のネットワークに254個のホストということになります.

昔は,一つの団体に対して,一つのClassAアドレスを割り当てていました.この方法だと,126個の団体しかClassAを与える事が出来ませんし,それに普通に考えて,一つのネットワークに1千万以上のコンピュータが繋がっているという状況は考えづらいものです.そのため,現在のネットワークでは,アドレスの無駄遣いが起こっている状況になっています.世界各地様々な所がインターネットに繋がるようになってきた現在では,無駄に一団体にClassAを割り当てるといったような事が出来なくなってきており,一団体に対して一つ,もしくは二つぐらいのClassCアドレスを与えて,なんとかその範囲のアドレスを使ってネットワークに接続することになってきています.


無駄使いを出来るだけしないようにするための技術がいくつか考えられていまして,その中の一つが今回の話の肝であるネットマスクになります.IPv4の設定をする時には必ず見ることになる255.255.255.0とかいう番号の事です.(上の画像の例では,16進数で書かれている為0xfffffe00[255.255.254.0]となります.意味は10進数で書かれている場合と同じです.)

- RFC 917 - Internet subnets

この数字が何を表しているのかと言いますと,ネットワークの範囲を示している物差しなんです.IPアドレスやネットマスクは通常書きやすいように10進数で書かれていますが,そのままだといまいちわかりづらいので2進数に変換して考えてみます.例をあげてみてゆきます.


IPAddress: 192.168.1.4
NetMask:  255.255.255.0
というホストの場合

IPAddress: 11000000.10101000.00000001.00000100
NetMask:  11111111.11111111.11111111.00000000
となります.


ネットマスクの部分がずっと1が続いているのがわかると思いますが,この1が続いている所までがネットワークの範囲を示しているわけです.つまり,この場合ネットワークの範囲は192.168.1.0~192.168.1.255という事になり,つなげるホスト数は254台という事になります.続けて例を見ていきます.もし,ネットマスクが255.255.255.128になったらどうなるのでしょうか.


IPAddress: 11000000.10101000.00000001.00000100
NetMask:  11111111.11111111.11111111.10000000
となります.


こうなってくると,話はさっきと異なり,ネットワークの範囲は192.168.1.0~192.168.1.127となります.つなげるホスト数は少なくなり,126台となります.つなげるホスト数は減りましたが,ネットワークの個数が多くなったがわかりますでしょうか.これをもっと細かく指定してゆけば,一つのネットワーク領域を細かく分割して小さなネットワークをいくつも作る事ができるので,無駄遣いを減らすことができるようになるわけです.

計算も難しくないです.先ほどの例をそのまま使って計算の仕方もみてみます.


IPAddress: 11000000.10101000.00000001.00000100
NetMask:  11111111.11111111.11111111.10000000

の一番最後だけ抜き出してみます.

IPAddress: 00000100
NetMask:  10000000

ネットマスクの0の部分がホストの個数を表しているので,
00000000 ~ 01111111 というネットワークと
10000000 ~ 11111111 というネットワークの二つが計算から出せます.


最近は自宅にもLANを組む人が多くなってきています.ネットマスクを理解すれば.より効率よくネットワークを構築できるはずです.