ネットマスク
読み:ネットマスク
外語:Netmask: Network Mask

 IPアドレス(IPv4/IPv6)を、ネットワークアドレスとホストナンバーに分けるための、マスクビット列のこと。サブネットマスク、アドレスマスクとも呼ばれる。
目次

概要
 例えば同一社内で複数のネットワークがあり、お互いをルーターによって接続する場合に、お互いが違ったネットワークであることを明示する手段としてネットマスクが利用されている。
 例えば、その社内ネットワークをスーパーネットと考え、より深いネットマスクによってサブネットを作る。
 こうすることで違ったネットワークであることを表わすことができ、このための手段がネットマスクである。

特徴

表現方法
 例えばIPv4では、ネットマスクを表わすのに、次のような表記を用いる。いずれも同じものを表わしている。
 なお、Cisco Systemsのスイッチやルーターの設定ではIPアドレスに似た表記方法をするが、全ての0と1を反転させた値を用いる(例えば0.0.3.255)。これは例外と言える。
 2進数表記は、殆ど使わないが教科書には必ず載っている。
 IPv6の場合には、もっぱらビット数表記される。

論理演算
 ノードのIPアドレスとネットマスクの論理積(AND演算)を行なうと、ネットワークアドレスになる。
 例えば、あるネットワークのネットワークアドレスが192.168.8.0であり、ネットマスクが/21(255.255.248.0、0xfffff800)だとすると、ノードのIPアドレスが192.168.8.0〜192.168.15.255の範囲である。

ルール
 ネットマスクは、昔は必ずしも先頭からビットを立てる必要はなかったのだが、IPアドレスを連続させるため常識として先頭から立てていた。今はRFCで常に先頭から立てるようにルールが変更されている。
 そして、ネットワークアドレスを表記する際に、「192.0.2.10/24」のように記述することで、先頭24ビットがネットマスクである、と表わすことができる。

マスクビット数とネットマスクの対応表
 以下、使えるアドレス数は、物理的なアドレスの数ではなく、実際に使える数を表わす。
 マスクより下位のビットが全て0なのがネットワークアドレス、全て1なのがブロードキャストアドレスである。これらは通常のホスト用には利用できないので差し引いてある。
 現在の実装では、ネットワークアドレスはホスト用アドレスとして使えることも多いが、原因究明が難しいトラブルの原因となる可能性もあるので、避けた方が無難である。
 これはあくまで利用可能なアドレス数を示すものであり、実際に一つのネットワークに多くのノードを接続するとネットワークが重くなり、使いものにならなくなる場合もある(使いかたにもよるが/24より大きいサブネットは分割を検討した方が良いと思われる)。
ビット数ネットマスク使えるアドレス数
(16進)(10進)
/8 (Class A)0xff000000255.0.0.016,777,214
/90xff800000255.128.0.08,388,604
/100xffc00000255.192.0.04,194,302
/110xffe00000255.224.0.02,097,150
/120xfff00000255.240.0.01,048,574
/130xfff80000255.248.0.0524,286
/140xfffc0000255.252.0.0262,144
/150xfffe0000255.254.0.0131,072
/16(Class B)0xffff0000255.255.0.065,534
/170xffff8000255.255.128.032,766
/180xffffc000255.255.192.016,382
/190xffffe000255.255.224.08,190
/200xfffff000255.255.240.04,094
/210xfffff800255.255.248.02,046
/220xfffffc00255.255.252.01,022
/230xfffffe00255.255.254.0510
/24(Class C)0xffffff00255.255.255.0254
/250xffffff80255.255.255.128126
/260xffffffc0255.255.255.19262
/270xffffffe0255.255.255.22430
/280xfffffff0255.255.255.24014
/290xfffffff8255.255.255.2486
/300xfffffffc255.255.255.2522
/31 (無意味)0xfffffffe255.255.255.2540
/32 (ホスト)0xffffffff255.255.255.255(1)

再検索