初心者向けサブネットマスク早見表 | 覚え方と使い方を徹底解説
ネットワークの世界に足を踏み入れたばかりの皆さん、こんにちは!
インターネットや社内ネットワークといった言葉を耳にする機会は多いと思いますが、その根幹を支える技術の一つに「IPアドレス」と「サブネットマスク」があります。特に「サブネットマスク」は、ネットワークの構成を理解したり、トラブルの原因を特定したりする上で非常に重要な概念ですが、初めて学ぶ方にとっては少し難解に感じられるかもしれません。
「255.255.255.0ってよく見るけど、あれは何?」
「/24とか/16ってどういう意味?」
「なぜネットワークを分ける必要があるの?」
この記事は、そんな疑問を抱えている初心者の方のために書かれています。サブネットマスクの「早見表」を使いこなせるようになることを目標に、サブネットマスクが一体何者なのか、どのように計算されているのか、そしてその早見表をどのように活用すれば良いのかを、約5000語というボリュームで、基礎から徹底的に、できる限り分かりやすく解説していきます。
サブネットマスクの計算は、最初はバイナリ(2進数)が出てきて戸惑うかもしれませんが、基本をしっかり押さえれば決して難しいものではありません。早見表を理解し、使いこなせるようになれば、ネットワーク構成図を読んだり、自分で簡単なネットワーク設計を考えたりする力が格段に向上するはずです。
さあ、一緒にサブネットマスクの謎を解き明かしていきましょう!
1. ネットワークの基本を知ろう:なぜサブネットマスクが必要なのか?
サブネットマスクを理解するためには、まずIPアドレスの基本的な考え方を理解する必要があります。そして、なぜネットワークを分割する(サブネット化する)必要があるのかを知ることで、サブネットマスクの存在意義が見えてきます。
1.1 IPアドレスとは?
IPアドレスは、インターネットなどのネットワーク上でコンピューターやスマートフォンなどのデバイスを識別するための「住所」のようなものです。郵便物が住所に基づいて配達されるように、ネットワーク上のデータ(パケット)もIPアドレスを頼りに送受信されます。
現在、広く使われているIPアドレスの形式は「IPv4」と呼ばれるものです。IPv4アドレスは32ビットの数値で構成されており、これを人間が読みやすいように「.(ドット)」で4つに区切って10進数で表現します。例えば、「192.168.1.1」のような形です。
各区切り(オクテットと呼びます)は8ビットの情報を持っており、8ビットで表現できる数値は 0 から 255 までです。つまり、IPv4アドレスは「0.0.0.0」から「255.255.255.255」までの約43億個のアドレスが存在します。
1.2 ネットワーク部とホスト部
IPアドレスは、単なる32ビットの数字の羅列ではありません。そこには重要な役割分担があります。IPアドレスは大きく分けて以下の二つの部分から構成されています。
- ネットワーク部 (Network Portion): どのネットワークに所属しているかを示す部分です。同じネットワークに所属するデバイスは、このネットワーク部が共通しています。例えるなら、「〇〇県△△市」といったエリア情報です。
- ホスト部 (Host Portion): そのネットワーク内で、個々のデバイスを識別するための部分です。例えるなら、「□□番地のビル1階の山田さん」といった個別の情報です。
郵便配達を想像してみてください。「〇〇県△△市」まではエリアごとにまとめて配送されます。そして、そのエリアに到着してから「□□番地」「山田さん」といったホスト情報を見て、個別の宛先に届けられます。ネットワーク上のデータ配送もこれと同じ仕組みです。データはまずネットワーク部を見て目的のネットワーク(ルーターなどが担当)まで運ばれ、そこでホスト部を見てネットワーク内の特定のデバイスに届けられます。
1.3 なぜネットワークを分割するのか?(サブネット化の必要性)
さて、IPアドレスにはネットワーク部とホスト部があることが分かりました。では、なぜネットワークを分割(サブネット化)する必要があるのでしょうか?
大きな理由としては以下の点が挙げられます。
- IPアドレスの効率的な利用: IPアドレスの総数は約43億個と聞くと膨大に思えますが、インターネットが普及した現代では、この数は決して無限ではありません。特に、一つの大きなネットワークアドレス空間を丸ごと使うと、その中に含まれる膨大なホストアドレスのほとんどが未使用になってしまう可能性があります。サブネット化によって、必要な規模に合わせてネットワークを分割することで、IPアドレスを無駄なく効率的に利用できます。
- ネットワーク管理の効率化: 一つのネットワークにあまりにも多くのデバイスが存在すると、管理が非常に煩雑になります。サブネット化によって、部署ごと、フロアごと、機能ごとなどにネットワークを分割することで、管理者が特定の範囲を集中して管理できるようになり、効率が向上します。
- ネットワークパフォーマンスの向上:
- ブロードキャストドメインの縮小: ネットワーク上では、特定のデバイスだけでなく、そのネットワークに所属する全てのデバイスにデータを送信する「ブロードキャスト」という通信が行われることがあります(例: ARPプロトコルによるIPアドレスからMACアドレスの解決)。一つのネットワークが大きいと、ブロードキャストの範囲も広くなり、関係ないデバイスにもデータが届いてしまい、ネットワーク全体の負荷が高まります。サブネット化によってブロードキャストの範囲を限定することで、ネットワークのパフォーマンスが向上します。
- トラフィックの局所化: サブネット間の通信はルーターを介して行われます。これにより、あるサブネット内で発生した通信が他のサブネットに流れ込むのを防ぎ、トラフィックを特定の範囲に閉じ込めることができます。
- セキュリティの向上: サブネットごとにアクセス制限を設定することで、 unauthorized なアクセスを防ぎ、セキュリティレベルを向上させることができます。例えば、経理部のネットワークから開発部のネットワークへのアクセスを制限するといったことが可能になります。
このように、サブネット化はIPアドレスの有効活用、ネットワーク管理の効率化、パフォーマンス向上、セキュリティ強化のために不可欠な技術です。
1.4 サブネットマスクの役割
ここでいよいよサブネットマスクが登場します。
サブネットマスクは、「このIPアドレスのどの部分がネットワーク部で、どの部分がホスト部か」を示すための32ビットの数値です。
サブネットマスクは、ネットワーク部に対応するビットが「1」で、ホスト部に対応するビットが「0」の連続で構成されます。
- サブネットマスクのビットが「1」の部分: 対応するIPアドレスのビットはネットワーク部
- サブネットマスクのビットが「0」の部分: 対応するIPアドレスのビットはホスト部
例えば、IPv4アドレスで非常によく見かけるサブネットマスクに「255.255.255.0」があります。これを32ビットのバイナリで見てみましょう。
- 255 -> 11111111
- 255 -> 11111111
- 255 -> 11111111
- 0 -> 00000000
つまり、「255.255.255.0」というサブネットマスクは、バイナリでは「11111111.11111111.11111111.00000000」となります。
このサブネットマスクがIPアドレス「192.168.1.10」に適用された場合、IPアドレスのバイナリ表現も見てみます。
- 192 -> 11000000
- 168 -> 10101000
- 1 -> 00000001
- 10 -> 00001010
第1オクテット | 第2オクテット | 第3オクテット | 第4オクテット | |
---|---|---|---|---|
IPアドレス | 11000000 | 10101000 | 00000001 | 00001010 |
サブネットマスク | 11111111 | 11111111 | 11111111 | 00000000 |
サブネットマスクの「1」が立っている最初の3オクテット(24ビット)がネットワーク部、「0」が立っている最後の1オクテット(8ビット)がホスト部であることが分かります。
このように、サブネットマスクはIPアドレスと組み合わせることで、そのIPアドレスが「どのネットワークに所属している、どのデバイスか」を識別するための目印となるのです。
2. バイナリ(2進数)と10進数の変換
サブネットマスクを理解し、早見表を使いこなす上で、バイナリ(2進数)と10進数の変換は避けて通れません。しかし、これも仕組みを理解すれば簡単です。
コンピュータは0と1の電気信号で情報を扱います。これがバイナリ(2進数)です。私たちが普段使っているのは10進数ですね。
8ビットのバイナリ数値が、どのように10進数に変換されるかを見てみましょう。8ビットの各桁には、右から順に 2^0, 2^1, 2^2, …, 2^7 という重みがあります。
桁の重み (2のべき乗) | 2^7 (128) | 2^6 (64) | 2^5 (32) | 2^4 (16) | 2^3 (8) | 2^2 (4) | 2^1 (2) | 2^0 (1) |
---|---|---|---|---|---|---|---|---|
8ビットバイナリ例 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
上の例のバイナリ「11000000」を10進数に変換するには、各桁の数値(0または1)と桁の重みを掛けて、全て足し合わせます。
(1 * 128) + (1 * 64) + (0 * 32) + (0 * 16) + (0 * 8) + (0 * 4) + (0 * 2) + (0 * 1) = 128 + 64 + 0 + 0 + 0 + 0 + 0 + 0 = 192
これが「11000000」が10進数で「192」になる理由です。
サブネットマスクの各オクテットの値(0〜255)は、この8ビットのバイナリ表現に対応しています。特にサブネットマスクでは「1」が連続するという特徴があるので、この位取り(128, 64, 32, 16, 8, 4, 2, 1)を覚えておくと、サブネットマスクの10進数値を計算したり、覚えたりするのに役立ちます。
- 1個の1: 10000000 -> 128
- 2個の1: 11000000 -> 128 + 64 = 192
- 3個の1: 11100000 -> 128 + 64 + 32 = 224
- 4個の1: 11110000 -> 128 + 64 + 32 + 16 = 240
- 5個の1: 11111000 -> 128 + 64 + 32 + 16 + 8 = 248
- 6個の1: 11111100 -> 128 + 64 + 32 + 16 + 8 + 4 = 252
- 7個の1: 11111110 -> 128 + 64 + 32 + 16 + 8 + 4 + 2 = 254
- 8個の1: 11111111 -> 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
このパターンは、サブネットマスクの計算や早見表を理解する上で非常に重要です。
3. プレフィックス長(CIDR表記 /n)とは?
最近のネットワーク設定では、「192.168.1.0/24」のように、IPアドレスの後ろに「/24」といった数字が付いているのを見かけることが多くなりました。これは「プレフィックス長」または「CIDR (Classless Inter-Domain Routing) 表記」と呼ばれるものです。
この数字は、サブネットマスクのバイナリ表現において、「1」が連続しているビット数を表しています。
例えば、先ほどの「192.168.1.0/24」の場合、スラッシュの後ろの「24」がプレフィックス長です。これは、サブネットマスクのバイナリ表現の最初の24ビットが「1」であり、残りの32 – 24 = 8ビットが「0」であることを意味します。
サブネットマスク(バイナリ): 11111111.11111111.11111111.00000000
サブネットマスク(10進数): 255.255.255.0
このように、プレフィックス長を知っていれば、サブネットマスクの10進数値をすぐに特定できます。また、逆にサブネットマスクの10進数値をバイナリに変換すれば、プレフィックス長が分かります。
プレフィックス長による表記は、サブネットマスクをより簡潔に表現できるため、現在のネットワークでは広く利用されています。
4. サブネットマスク早見表の作成と解説
いよいよサブネットマスク早見表を作成し、その内容を詳しく見ていきましょう。この早見表は、プレフィックス長(/n)に対応するサブネットマスクの値、そこから導かれるネットワークの数、そして各ネットワークで使用できるホストの数を示したものです。
サブネットマスクは32ビットの数値で、ネットワーク部を示す「1」が連続し、ホスト部を示す「0」が連続するというルールがあります。したがって、サブネットマスクとして有効なのは、プレフィックス長(「1」のビット数)が0から32までのパターンのみです。
早見表を作成するにあたり、プレフィックス長(/n)ごとに以下の情報を算出します。
- プレフィックス長 (/n): ネットワーク部のビット数。0から32までの整数。
- サブネットマスク(バイナリ): プレフィックス長の数だけ「1」が連続し、残りが「0」となる32ビットのバイナリ。
- サブネットマスク(10進数): 上記バイナリをドット区切りの10進数に変換したもの。
- ネットワーク数: 元のネットワークアドレス空間を、そのサブネットマスクで分割した場合にいくつのネットワークが作成できるか。
- ホスト数: そのサブネットマスクで作成された各ネットワークで、IPアドレスを割り当て可能なホスト(デバイス)の最大数。
4.1 各プレフィックス長における計算(例)
いくつかのプレフィックス長を例に、上記の項目を計算してみましょう。
例1: /24
- プレフィックス長 (/n): 24
- サブネットマスク(バイナリ): 最初の24ビットが1、残りの32-24=8ビットが0。
11111111.11111111.11111111.00000000 - サブネットマスク(10進数):
- 11111111 -> 255
- 11111111 -> 255
- 11111111 -> 255
- 00000000 -> 0
255.255.255.0
- ネットワーク数: これは元のネットワークアドレス空間が何かによって変わります。例えば、クラスCのネットワークアドレス(例: 192.168.1.0)の場合、元々ネットワーク部は24ビットです。それを/24で分割しても、サブネット部は0ビット、ホスト部が8ビットとなります。この場合、サブネット化は行われていないと考えられますが、実質的に1つのネットワーク(サブネット)として扱われます。
より一般的には、ある大きなネットワーク(例: /16のネットワーク)を/24に分割する場合、分割に利用できるビット数は 24 – 16 = 8 ビットです。この8ビットを使ってネットワークを識別するため、作成できるネットワーク数は 2^8 = 256個となります。
早見表では、「ホスト部から何ビットをネットワーク部に借りたか」という観点からネットワーク数を考えることが多いです。例えば、/8(ホスト部24ビット)のネットワークを/24(ホスト部8ビット)に分割する場合、24-8=16ビットをネットワーク部に借用しています。この16ビットで識別できるネットワーク数は 2^16 = 65,536個となります。
早見表では分かりやすさのため、「そのプレフィックス長によって識別できるサブネット数(/0を基準とした場合)」または「ホスト部を分割に使った場合のサブネット数」を示すことが多いですが、ここではより汎用的に「ホスト部から何ビットをネットワーク部に割り当てたか(サブネット部のビット数)」を意識して数値を捉えましょう。/24の場合、ホスト部は8ビットです。もし元のネットワークが/8であれば、24-8=16ビットをサブネット部にしたことになります。2^16 = 65536 個のサブネットが作れます。 - ホスト数: ホスト部は残りの8ビットです。8ビットで表現できる値は2^8 = 256個です。ただし、このうちネットワークアドレスとブロードキャストアドレスの2つは、特定の用途に使われるため、通常のホスト(デバイス)には割り当てることができません。
- ネットワークアドレス: ホスト部の全てのビットが「0」になっているアドレス。そのネットワーク全体を指すアドレスです。例: 192.168.1.0/24 のネットワークアドレスは 192.168.1.0。
- ブロードキャストアドレス: ホスト部の全てのビットが「1」になっているアドレス。そのネットワークに所属する全てのデバイスにデータを送信するためのアドレスです。例: 192.168.1.0/24 のブロードキャストアドレスは 192.168.1.255。
したがって、利用可能なホストアドレスの数は 2^8 – 2 = 256 – 2 = 254個 となります。
例2: /25
- プレフィックス長 (/n): 25
- サブネットマスク(バイナリ): 最初の25ビットが1、残りの32-25=7ビットが0。
11111111.11111111.11111111.10000000 - サブネットマスク(10進数):
- 11111111 -> 255
- 11111111 -> 255
- 11111111 -> 255
- 10000000 -> 128 (第4オクテットの最初のビットが1)
255.255.255.128
- ネットワーク数: /24のネットワーク(ホスト部8ビット)を/25に分割する場合、ホスト部の1ビットをネットワーク部に借用しています。この1ビットで識別できるネットワーク数は 2^1 = 2個 となります。
- ホスト数: ホスト部は残りの7ビットです。利用可能なホストアドレスの数は 2^7 – 2 = 128 – 2 = 126個 となります。
例3: /16
- プレフィックス長 (/n): 16
- サブネットマスク(バイナリ): 最初の16ビットが1、残りの32-16=16ビットが0。
11111111.11111111.00000000.00000000 - サブネットマスク(10進数):
- 11111111 -> 255
- 11111111 -> 255
- 00000000 -> 0
- 00000000 -> 0
255.255.0.0
- ネットワーク数: /8のネットワーク(ホスト部24ビット)を/16に分割する場合、ホスト部の16-8=8ビットをネットワーク部に借用しています。2^8 = 256個 のネットワークが作れます。
- ホスト数: ホスト部は残りの16ビットです。利用可能なホストアドレスの数は 2^16 – 2 = 65536 – 2 = 65534個 となります。
これらの計算を、プレフィックス長 0 から 32 まで全て行うことで早見表が完成します。
4.2 サブネットマスク早見表
それでは、計算結果をまとめた早見表を見てみましょう。
プレフィックス長 (/n) | サブネット部ビット数 (n – 元のネットワーク部ビット数)* | サブネットマスク (バイナリ) | サブネットマスク (10進数) | ホスト部ビット数 (32 – n) | ホスト数 (2^(32-n) – 2) | サブネット数 (2^(サブネット部ビット数))* |
---|---|---|---|---|---|---|
/0 | – | 00000000.00000000.00000000.00000000 | 0.0.0.0 | 32 | 4,294,967,294 | 1 (分割なし) |
/1 | 1 (from /0) | 10000000.00000000.00000000.00000000 | 128.0.0.0 | 31 | 2,147,483,646 | 2 |
/2 | 2 (from /0) | 11000000.00000000.00000000.00000000 | 192.0.0.0 | 30 | 1,073,741,822 | 4 |
/3 | 3 (from /0) | 11100000.00000000.00000000.00000000 | 224.0.0.0 | 29 | 536,870,910 | 8 |
/4 | 4 (from /0) | 11110000.00000000.00000000.00000000 | 240.0.0.0 | 28 | 268,435,454 | 16 |
/5 | 5 (from /0) | 11111000.00000000.00000000.00000000 | 248.0.0.0 | 27 | 134,217,726 | 32 |
/6 | 6 (from /0) | 11111100.00000000.00000000.00000000 | 252.0.0.0 | 26 | 67,108,862 | 64 |
/7 | 7 (from /0) | 11111110.00000000.00000000.00000000 | 254.0.0.0 | 25 | 33,554,430 | 128 |
/8 | 8 (from /0) | 11111111.00000000.00000000.00000000 | 255.0.0.0 | 24 | 16,777,214 | 256 |
/9 | 1 (from /8) | 11111111.10000000.00000000.00000000 | 255.128.0.0 | 23 | 8,388,606 | 2 |
/10 | 2 (from /8) | 11111111.11000000.00000000.00000000 | 255.192.0.0 | 22 | 4,194,302 | 4 |
/11 | 3 (from /8) | 11111111.11100000.00000000.00000000 | 255.224.0.0 | 21 | 2,097,150 | 8 |
/12 | 4 (from /8) | 11111111.11110000.00000000.00000000 | 255.240.0.0 | 20 | 1,048,574 | 16 |
/13 | 5 (from /8) | 11111111.11111000.00000000.00000000 | 255.248.0.0 | 19 | 524,286 | 32 |
/14 | 6 (from /8) | 11111111.11111100.00000000.00000000 | 255.252.0.0 | 18 | 262,142 | 64 |
/15 | 7 (from /8) | 11111111.11111110.00000000.00000000 | 255.254.0.0 | 17 | 131,070 | 128 |
/16 | 8 (from /8) | 11111111.11111111.00000000.00000000 | 255.255.0.0 | 16 | 65,534 | 256 |
/17 | 1 (from /16) | 11111111.11111111.10000000.00000000 | 255.255.128.0 | 15 | 32,766 | 2 |
/18 | 2 (from /16) | 11111111.11111111.11000000.00000000 | 255.255.192.0 | 14 | 16,382 | 4 |
/19 | 3 (from /16) | 11111111.11111111.11100000.00000000 | 255.255.224.0 | 13 | 8,190 | 8 |
/20 | 4 (from /16) | 11111111.11111111.11110000.00000000 | 255.255.240.0 | 12 | 4,094 | 16 |
/21 | 5 (from /16) | 11111111.11111111.11111000.00000000 | 255.255.248.0 | 11 | 2,046 | 32 |
/22 | 6 (from /16) | 11111111.11111111.11111100.00000000 | 255.255.252.0 | 10 | 1,022 | 64 |
/23 | 7 (from /16) | 11111111.11111111.11111110.00000000 | 255.255.254.0 | 9 | 510 | 128 |
/24 | 8 (from /16) or 0 (from /24) | 11111111.11111111.11111111.00000000 | 255.255.255.0 | 8 | 254 | 256 (from /16) or 1 (from /24) |
/25 | 1 (from /24) | 11111111.11111111.11111111.10000000 | 255.255.255.128 | 7 | 126 | 2 |
/26 | 2 (from /24) | 11111111.11111111.11111111.11000000 | 255.255.255.192 | 6 | 62 | 4 |
/27 | 3 (from /24) | 11111111.11111111.11111111.11100000 | 255.255.255.224 | 5 | 30 | 8 |
/28 | 4 (from /24) | 11111111.11111111.11111111.11110000 | 255.255.255.240 | 4 | 14 | 16 |
/29 | 5 (from /24) | 11111111.11111111.11111111.11111000 | 255.255.255.248 | 3 | 6 | 32 |
/30 | 6 (from /24) | 11111111.11111111.11111111.11111100 | 255.255.255.252 | 2 | 2 | 64 |
/31 | 7 (from /24) | 11111111.11111111.11111111.11111110 | 255.255.255.254 | 1 | 0 | 128 |
/32 | 8 (from /24) | 11111111.11111111.11111111.11111111 | 255.255.255.255 | 0 | -2 | 256 |
*「サブネット部ビット数」と「サブネット数」は、元のネットワークが/24の場合を主に想定した値です。例えば/25の場合、「サブネット部ビット数」が1bit(/24より1bitネットワーク部を増やした)なら「サブネット数」は2^1=2個、となります。元のネットワークが/8であれば、/24はサブネット部16bit(24-8)、サブネット数2^16=65536個となります。この列は、あくまでサブネット化によって元のネットワークが何個に分割されるか、という目安として見てください。特に重要なのは「ホスト部ビット数」と「ホスト数」です。
注意点:
- プレフィックス長/31と/32について:
- /31はホスト部が1ビットとなり、ホスト数は2^1 – 2 = 0個となります。通常はホストを割り当てられませんが、特別な用途(主にルーター間のPoint-to-Pointリンク)で利用されることがあります。
- /32はホスト部が0ビットとなり、ホスト数は2^0 – 2 = 1 – 2 = -1個となり、これもホストは割り当てられません。特定のホスト1台だけを指す場合(例: ループバックアドレスやルートのエントリー)に使用されることがあります。
初心者の方はまず/30までの範囲を理解することに注力し、/31と/32は特殊なケースとして覚えておけば十分です。
- 「サブネット数」は、元のネットワークサイズによって変わります。例えば、/16のネットワークを/24に分割した場合、サブネット部は24-16=8ビットになるため、2^8=256個のサブネットが作成できます。上記の表の「サブネット数」列は、主に一般的な/24ネットワークをさらに細かいサブネットに分割する場合(/25以降)や、広く使われる/8や/16といった一般的なプレフィックスに対するサブネット数を参考として示しています。最も重要なのは「ホスト数」です。
この早見表は、IPアドレスをバイナリ変換して計算することなく、プレフィックス長からサブネットマスクやホスト数を即座に知るために役立ちます。
5. サブネットマスク早見表の使い方
早見表は、ネットワークの設定や設計を行う際に非常に役立ちます。具体的な使い方をいくつか見てみましょう。
5.1 サブネットマスクからプレフィックス長やホスト数を知る
ネットワーク機器やPCの設定画面で「サブネットマスク: 255.255.255.192」と表示されている場合、この早見表を使って以下の情報を得ることができます。
- 早見表の「サブネットマスク (10進数)」の列で「255.255.255.192」を探します。
- 対応する行の「プレフィックス長 (/n)」を見ると「/26」であることが分かります。
- 同じ行の「ホスト部ビット数 (32 – n)」を見ると「6」であることが分かります。
- さらに「ホスト数 (2^(32-n) – 2)」を見ると「62」であることが分かります。
これで、そのネットワークは/26で設計されており、最大で62台のデバイスにIPアドレスを割り当てられることがすぐに理解できます。
5.2 必要なホスト数から最適なプレフィックス長を知る
新しいネットワークを設計する際に、「このネットワークには最大で50台のPCをつなぎたい」といった要件があったとします。この要件を満たす最適なプレフィックス長を早見表から探すことができます。
- 早見表の「ホスト数 (2^(32-n) – 2)」の列を見ます。
- ホスト数が50台以上確保できる最小の行を探します。
- /28: ホスト数 14 (不足)
- /27: ホスト数 30 (不足)
- /26: ホスト数 62 (十分)
- ホスト数62を確保できる最小のプレフィックス長は「/26」であることが分かります。
- 対応するサブネットマスクは「255.255.255.192」です。
この早見表を使うことで、無駄なく効率的にIPアドレスを割り当てられる最適なネットワークサイズ(プレフィックス長)を選択できます。ホスト数が少ないのに/24のような大きなネットワークを割り当てると、多くのIPアドレスが無駄になってしまいます。
5.3 特定のIPアドレスがどのネットワークに属するかを知る
IPアドレスとサブネットマスク(またはプレフィックス長)が分かれば、そのIPアドレスが属するネットワークのネットワークアドレス、ブロードキャストアドレス、そして利用可能なホストアドレスの範囲を知ることができます。早見表自体はこれらのアドレス値を直接示すものではありませんが、早見表でホスト部ビット数を把握することで、これらのアドレスを計算する準備ができます。
計算方法はIPアドレスとサブネットマスクのAND演算を使いますが、初心者向けに分かりやすく解説します。
AND演算とは?
2つのビットのAND演算は以下のようになります。
* 1 AND 1 = 1
* 1 AND 0 = 0
* 0 AND 1 = 0
* 0 AND 0 = 0
つまり、両方のビットが1の場合のみ結果が1となり、それ以外は全て0となります。
ネットワークアドレスの計算:
IPアドレスとサブネットマスクをバイナリに変換し、それぞれの対応するビットごとにAND演算を行います。結果がネットワークアドレスのバイナリ表現になります。
例: IPアドレス 192.168.1.10、サブネットマスク 255.255.255.0 (/24)
第1オクテット | 第2オクテット | 第3オクテット | 第4オクテット | |
---|---|---|---|---|
IPアドレス | 11000000 | 10101000 | 00000001 | 00001010 |
サブネットマスク | 11111111 | 11111111 | 11111111 | 00000000 |
AND演算 | 11000000 | 10101000 | 00000001 | 00000000 |
結果のバイナリを10進数に戻すと:
11000000 -> 192
10101000 -> 168
00000001 -> 1
00000000 -> 0
したがって、ネットワークアドレスは 192.168.1.0 です。
ブロードキャストアドレスの計算:
ブロードキャストアドレスは、ネットワークアドレスのホスト部を全て「1」にしたものです。
例: IPアドレス 192.168.1.10、サブネットマスク 255.255.255.0 (/24)
ネットワークアドレスは 192.168.1.0。ホスト部は第4オクテット(8ビット)。
ネットワークアドレスのバイナリ: 11000000.10101000.00000001.00000000
ホスト部(最後の8ビット)を全て1にする: 11000000.10101000.00000001.11111111
結果のバイナリを10進数に戻すと:
11000000 -> 192
10101000 -> 168
00000001 -> 1
11111111 -> 255
したがって、ブロードキャストアドレスは 192.168.1.255 です。
利用可能なホストアドレスの範囲:
利用可能なホストアドレスは、ネットワークアドレスの次のアドレスから、ブロードキャストアドレスの直前のアドレスまでです。
例: IPアドレス 192.168.1.10、サブネットマスク 255.255.255.0 (/24)
ネットワークアドレス: 192.168.1.0
ブロードキャストアドレス: 192.168.1.255
利用可能なホストアドレスの範囲: 192.168.1.1 から 192.168.1.254
早見表を使えば、IPアドレスとサブネットマスクからホスト部が何ビットあるかがすぐに分かります。そのホスト部ビット数(n)が分かれば、2^n-2個のホストが収容でき、ネットワークアドレスとブロードキャストアドレスがそれぞれホスト部の最小値(全て0)と最大値(全て1)に対応することが分かります。
5.4 サブネット化によるネットワーク分割の計画
既存のネットワークアドレス空間を複数の小さなネットワークに分割したい場合、早見表が役立ちます。
例: 現在 192.168.1.0/24 のネットワークを使っているが、部署ごとに2つのネットワークに分けたい。
- 現在のネットワークは/24です。ホスト部は8ビット(254ホスト)あります。
- これを2つのネットワークに分けるには、ネットワーク識別用に1ビットをホスト部から借用する必要があります。2^1 = 2個のネットワークが作成できます。
- ホスト部の8ビットから1ビットをネットワーク部に借用するので、新しいネットワーク部のビット数は 24 + 1 = 25ビットとなります。つまり、新しいプレフィックス長は /25 です。
- 早見表で/25の行を見ると、新しいサブネットマスクは255.255.255.128、ホスト数は126個であることが分かります。
- 元のネットワークアドレス 192.168.1.0/24 を/25で分割すると、以下の2つのサブネットが作成されます。
- 1つ目のサブネット:
- ネットワークアドレス: 192.168.1.0 (ホスト部10進数 0-127 に対応)
- ブロードキャストアドレス: 192.168.1.127 (ホスト部バイナリ 01111111 に対応)
- 利用可能ホスト範囲: 192.168.1.1 ~ 192.168.1.126
- 2つ目のサブネット:
- ネットワークアドレス: 192.168.1.128 (ホスト部10進数 128-255 に対応)
- ブロードキャストアドレス: 192.168.1.255 (ホスト部バイナリ 11111111 に対応)
- 利用可能ホスト範囲: 192.168.1.129 ~ 192.168.1.254
- 1つ目のサブネット:
このように、早見表で分割後のホスト数やサブネットマスクを確認しながら、ネットワーク分割の計画を立てることができます。
6. サブネットマスクの覚え方
早見表を見れば必要な情報は分かりますが、よく使うサブネットマスクの値や、簡単な計算方法は覚えておくと便利です。全ての値を丸暗記する必要はありませんが、特に以下の点は押さえておくと良いでしょう。
6.1 主要なプレフィックス長とサブネットマスクを覚える
ネットワークで頻繁に使われるプレフィックス長と、それに対応するサブネットマスクは覚えてしまいましょう。
- /8: ネットワーク部が8ビット。255.0.0.0。非常に大きなネットワーク(ホスト数約1600万)。クラスAのデフォルトマスク。
- /16: ネットワーク部が16ビット。255.255.0.0。中規模ネットワーク(ホスト数約6万5千)。クラスBのデフォルトマスク。
- /24: ネットワーク部が24ビット。255.255.255.0。小規模ネットワーク(ホスト数254)。クラスCのデフォルトマスク。プライベートネットワークで最もよく使われます。
これら3つは最も基本となるサブネットマスクです。
6.2 ホスト部のビット数とホスト数の関係を覚える
「ホスト数 = 2^(ホスト部ビット数) – 2」という関係性は非常に重要です。特に、ホスト部が少ないビット数の場合のホスト数を覚えておくと、早見表を見なくてもすぐに判断できるようになります。
- ホスト部 1ビット (/31): 2^1 – 2 = 0 (特殊用途)
- ホスト部 2ビット (/30): 2^2 – 2 = 2 (PtoPリンクなど)
- ホスト部 3ビット (/29): 2^3 – 2 = 6
- ホスト部 4ビット (/28): 2^4 – 2 = 14
- ホスト部 5ビット (/27): 2^5 – 2 = 30
- ホスト部 6ビット (/26): 2^6 – 2 = 62
- ホスト部 7ビット (/25): 2^7 – 2 = 126
- ホスト部 8ビット (/24): 2^8 – 2 = 254
このリストは、少ないホスト数に対応するサブネットを設計する際に非常に役立ちます。例えば、「ホストが30台以下のネットワークが必要」であれば、すぐに/27が候補に挙がります。
6.3 可変するオクテットのサブネットマスク値を覚える(特に第4オクテット)
サブネットマスクの値は、左から「255.255.255.0」のように255が並び、途中で255以外の値が出てきて、残りは0、というパターンになります。255以外の値が出てくるオクテットが、ネットワーク部とホスト部の境界がある場所です。
例えば、サブネットマスクが「255.255.255.xxx」となっている場合(/24以降)、変化するのは最後の第4オクテットのみです。この第4オクテットの値と、それが何ビットのネットワーク部に対応するかを覚えるのが、サブネットマスクを覚える上で最も実用的です。
第4オクテットは8ビットです。プレフィックス長が/24の場合、第4オクテットの8ビット全てがホスト部で「00000000」= 0 です(255.255.255.0)。
/24からプレフィックス長を1つ増やす(ホスト部から1ビットネットワーク部に借りる)ごとに、第4オクテットの左から1ビットずつ「1」になっていきます。
プレフィックス長 | 第4オクテットのバイナリ | 第4オクテットの10進数 | ホスト部ビット数 | ホスト数 | 備考 |
---|---|---|---|---|---|
/24 | 00000000 | 0 | 8 | 254 | 255.255.255.0 |
/25 | 10000000 | 128 | 7 | 126 | 255.255.255.128 |
/26 | 11000000 | 192 | 6 | 62 | 255.255.255.192 |
/27 | 11100000 | 224 | 5 | 30 | 255.255.255.224 |
/28 | 11110000 | 240 | 4 | 14 | 255.255.255.240 |
/29 | 11111000 | 248 | 3 | 6 | 255.255.255.248 |
/30 | 11111100 | 252 | 2 | 2 | 255.255.255.252 (PtoPによく利用) |
/31 | 11111110 | 254 | 1 | 0 | 255.255.255.254 (特殊用途: Point-to-Point) |
/32 | 11111111 | 255 | 0 | -2 | 255.255.255.255 (特定ホスト、ブロードキャスト) |
この表の第4オクテットの値(0, 128, 192, 224, 240, 248, 252, 254, 255)と、それに対応するホスト数(254, 126, 62, 30, 14, 6, 2, 0, -2)の関係を覚えておくと、/24以降のサブネットマスクに関しては早見表を見ずに判断できるようになります。
例えば、「サブネットマスクが255.255.255.240」であれば、最後のオクテットが240なので、上の表から/28であることがすぐに分かり、ホスト数は14だと判断できます。
他のオクテットが変化する場合(例: 255.255.192.0)、これも同じ考え方です。192はバイナリで11000000なので、そのオクテットの中でネットワーク部が2ビット分増えていることを意味します。255.255.192.0は/16からホスト部の8ビットのうち2ビットをネットワーク部に借りているため、プレフィックス長は16+2=18となります。ホスト部は残りの6ビット + 8ビット = 14ビットなので、ホスト数は2^14 – 2 = 16382となります。
6.4 ネットワーク数とホスト数のトレードオフを理解する
サブネットマスクの「1」の数を増やす(プレフィックス長を長くする)ほど、ネットワーク部は大きくなり、ネットワークの数は増えます。しかしその分、ホスト部は小さくなるため、各ネットワークで収容できるホストの数は減ります。
逆に、「1」の数を減らす(プレフィックス長を短くする)ほど、ネットワーク部は小さくなり、ネットワークの数は減ります。その代わり、ホスト部は大きくなるため、各ネットワークで収容できるホストの数は増えます。
これは常にトレードオフの関係にあります。必要なネットワーク数と各ネットワークに必要なホスト数に応じて、適切なサブネットマスク(プレフィックス長)を選択する必要があります。早見表の「ホスト数」と「サブネット数」の列を見比べると、この関係がよく理解できます。
7. サブネット化の応用(VLSMとは?)
これまでに解説したサブネット化は、一つのネットワークアドレス空間を、全て同じサイズのサブネットに分割する「固定長サブネットマスク(FLSM: Fixed Length Subnet Masking)」の考え方が基本になっています。早見表もこの考えに基づいています。
しかし実際のネットワークでは、部署Aは100台、部署Bは20台、部署Cは5台、といったように、各ネットワークで必要なホスト数は異なるのが一般的です。このような状況でFLSMを使うと、例えば最大の部署に合わせて/24で分割し、ホストが少ない部署には/24のネットワークを丸ごと割り当てることになり、多くのIPアドレスが無駄になってしまいます。
そこで登場するのが「可変長サブネットマスク(VLSM: Variable Length Subnet Masking)」です。VLSMは、一つの大きなネットワークアドレス空間の中で、サブネットごとに異なる長さのサブネットマスクを使用する技術です。
例えば、192.168.1.0/24 のネットワークをVLSMで分割する場合:
- 部署A(100台必要)には、ホスト数126を確保できる /25 (255.255.255.128) のネットワーク 192.168.1.0/25 を割り当てる。
- 残りのアドレス空間(192.168.1.128 ~ 192.168.1.255)をさらに分割する。
- 部署B(20台必要)には、ホスト数30を確保できる /27 (255.255.255.224) のネットワーク 192.168.1.128/27 を割り当てる。
- 残りのアドレス空間(192.168.1.160 ~ 192.168.1.255)をさらに分割する。
- 部署C(5台必要)には、ホスト数6を確保できる /29 (255.255.255.248) のネットワーク 192.168.1.160/29 を割り当てる。
- ・・・といった形で、必要に応じて細かく分割していくことができます。
VLSMを利用することで、IPアドレスをより効率的に利用し、IPアドレスの枯渇を防ぐことができます。現在のほとんどのネットワークはVLSMに対応しており、実務ではVLSMを用いたネットワーク設計が一般的です。
早見表は固定長サブネットマスクを理解するための基礎ですが、VLSMを学ぶ上でも、各プレフィックス長に対応するホスト数やサブネットマスクを把握することは非常に重要です。早見表で基本を押さえた後、VLSMについてさらに学習を進めることをお勧めします。
8. よくある疑問・落とし穴
サブネットマスクを学ぶ上で、初心者がつまずきやすい点や疑問に思う点をいくつか挙げてみましょう。
- ネットワークアドレスとブロードキャストアドレスはなぜ使えないの?
前述の通り、ネットワークアドレス(ホスト部全て0)はそのネットワーク全体を指す特別なアドレスであり、個々のホストに割り当ててしまうと、そのネットワーク全体と特定のホストを区別できなくなってしまいます。
ブロードキャストアドレス(ホスト部全て1)は、そのネットワークに所属する全てのホストに一斉にデータを送信するための特別なアドレスです。これも個々のホストに割り当ててしまうと、そのホスト宛ての通信なのか、ネットワーク全体宛ての通信なのかを区別できなくなってしまいます。
これらの特殊なアドレスは、ネットワーク通信の仕組み上予約されているため、通常のホストには割り当てることができません。これが「ホスト数 = 2^(ホスト部ビット数) – 2」となる理由です。 - サブネットマスクを間違えるとどうなる?
PCやネットワーク機器に設定するIPアドレスとサブネットマスクの組み合わせが間違っていると、そのデバイスは正しくネットワークに接続できません。- 同じネットワーク内のデバイスなのにサブネットマスクが違う: ネットワークアドレスの判断がずれるため、同じネットワークにいる他のデバイスと通信できなくなる可能性があります。
- 異なるネットワークのデバイスなのにサブネットマスクが同じ(かつネットワークアドレスが同じと判断される組み合わせ): お互いが同じネットワークにいると勘違いし、ルーターを介さずに直接通信しようとして失敗します。
- IPアドレスとサブネットマスクの組み合わせがそのネットワークのルールに合っていない(例: ホスト部にネットワーク部のビットが1になっているIPアドレスを設定するなど): IPアドレス自体が有効なホストアドレスとして認識されず、通信ができません。
ネットワーク設定を行う際は、IPアドレスとサブネットマスクの組み合わせ、そしてデフォルトゲートウェイ(異なるネットワークと通信するための出口となるルーターのIPアドレス)の設定が非常に重要です。
- クラスA、B、Cはもう関係ないの?
かつて、IPアドレスは先頭のビットによってクラス(A, B, C)に分けられ、それぞれデフォルトのサブネットマスクが固定されていました(クラスA: /8, クラスB: /16, クラスC: /24)。これは「クラスフルアドレッシング」と呼ばれていました。
しかし、この方式ではIPアドレスの割り当てが大雑把になり、枯渇が進んだため、現在ではクラス分けにとらわれずにネットワーク部とホスト部を柔軟に決められるCIDR (Classless Inter-Domain Routing) が主流になっています。
早見表のプレフィックス長(/n)は、まさにCIDRにおけるネットワーク部の長さを表しています。したがって、IPアドレスのクラス分けを知らなくてもサブネットマスクの理解は可能ですが、歴史的な背景として知っておくと良いでしょう。現在のネットワークでは、クラスというよりはCIDRブロックという考え方が一般的です。
9. まとめ
この記事では、初心者向けにサブネットマスクの早見表とその使い方、覚え方について詳しく解説しました。
- サブネットマスクは、IPアドレスをネットワーク部とホスト部に分割するための目印です。
- サブネット化は、IPアドレスの効率的な利用、管理の効率化、パフォーマンス向上、セキュリティ強化のために行われます。
- プレフィックス長 (/n) は、サブネットマスクにおけるネットワーク部のビット数を簡潔に表す方法です。
- サブネットマスク早見表は、プレフィックス長とサブネットマスク(10進数)、そしてそのネットワークで利用可能なホスト数を一覧にしたものです。
- 早見表を使うことで、サブネットマスクからネットワークサイズを知る、必要なホスト数から最適なネットワークサイズを選ぶ、といったことが容易になります。
- サブネットマスクの計算にはバイナリ(2進数)の理解が不可欠ですが、特に第4オクテットの変化パターンを覚えることで、よく使われるマスク値は簡単に判断できるようになります。
- ネットワークアドレスとブロードキャストアドレスはホストには割り当てられない特別なアドレスであり、これが「ホスト数 = 2^n – 2」となる理由です。
- 実務ではVLSMが一般的ですが、早見表で固定長サブネットマスクの基本を理解することが、VLSMを学ぶ上での土台となります。
サブネットマスクは、ネットワークの仕組みを理解するための重要なステップです。最初は難しく感じるかもしれませんが、バイナリ計算の仕組み、サブネットマスクの役割、そして早見表の使い方を繰り返し確認することで、必ず理解できるようになります。
この記事が、皆さんのネットワーク学習の一助となれば幸いです。早見表をぜひ活用して、ネットワークの知識を深めていってください!
用語集
- IPアドレス (Internet Protocol Address): ネットワーク上でデバイスを識別するための住所。
- IPv4 (Internet Protocol version 4): 現在広く使われているIPアドレスの形式。32ビット。
- オクテット (Octet): IPv4アドレスをドットで区切ったそれぞれの8ビットの数値。
- バイナリ (Binary): 2進数。0と1で数値を表現する方法。
- 10進数 (Decimal): 私たちが普段使っている数字(0~9)で数値を表現する方法。
- ネットワーク部 (Network Portion): IPアドレスのうち、どのネットワークに所属するかを示す部分。
- ホスト部 (Host Portion): IPアドレスのうち、そのネットワーク内で個々のデバイスを識別する部分。
- サブネットマスク (Subnet Mask): IPアドレスのネットワーク部とホスト部を区別するための32ビットの数値。ネットワーク部に対応するビットが1、ホスト部に対応するビットが0となる。
- サブネット化 (Subnetting): 一つの大きなネットワークアドレス空間を、サブネットマスクを使って複数の小さなネットワークに分割すること。
- プレフィックス長 (Prefix Length): サブネットマスクにおけるネットワーク部のビット数。「/n」のようにスラッシュの後ろの数字で表現される。
- CIDR (Classless Inter-Domain Routing): クラス分けにとらわれずにIPアドレスのネットワーク部とホスト部を柔軟に決める考え方。プレフィックス長による表記が用いられる。
- ネットワークアドレス (Network Address): ホスト部の全てのビットが0になっているアドレス。そのネットワーク自体を指す。ホストには割り当てられない。
- ブロードキャストアドレス (Broadcast Address): ホスト部の全てのビットが1になっているアドレス。そのネットワークに所属する全てのデバイスに一斉送信するためのアドレス。ホストには割り当てられない。
- 利用可能なホスト数: ネットワークアドレスとブロードキャストアドレスを除いた、デバイスに割り当て可能なIPアドレスの数。(2^(ホスト部ビット数) – 2)で計算される。
- FLSM (Fixed Length Subnet Masking): 一つのネットワークアドレス空間を、全て同じサイズのサブネットに分割する方式。
- VLSM (Variable Length Subnet Masking): 一つのネットワークアドレス空間を、異なるサイズのサブネットに分割する方式。IPアドレスの効率的な利用に優れる。