VPNの設定をする時に、サブネットマスクの入力を求められることがあります。ほとんどの場合「255.255.255.0」や「/24」となりますが、これはどういう意味でしょうか。VPNはセキュリティのために導入することが多いので、その役割や仕組みを理解しておくことは大切です。この記事ではサブネットマスクの基本的な概念から、わかりやすく解説いたします。
IPアドレスの基本とサブネットマスクの役割
IPアドレスとサブネットマスクについて、基本的な計算方法や概念から、わかりやすく解説します。
サブネットマスクとは
「サブネットマスク(subnet mask)」とは、IPアドレスの、どこまでがネットーワーク部で、どこからがホスト部かを識別するために使用される数値のことです。
ネットワークは、小規模な「サブネット」に分割することで、効率的なIPアドレス管理ができます。
サブネットマスクは、細かさの程度を示したものです。
ネットワークの階層モデルとIPアドレス
インターネットは、「TCP/IP」という通信モデルを基本としています。
TCP/IPは4階層に分類され、それぞれがアドレスを持ち、相互に変換をしながら通信をしています。
IPアドレスおよびサブネットマスクは、インターネット層で使われるアドレスです。
階層 | 主なプロトコル | 主なアドレス |
---|---|---|
アプリケーション層 | HTTP、HTTPS、FTP、SMTP、DNS、TELNET、SSH | ドメイン名、URL |
トランスポート層 | TCP、UDP | ポート番号 |
インターネット層 | IP、ICMP、ARP | IPアドレス |
リンク層 | Ethernet、Wi-Fi、PPP | MACアドレス |
IPアドレスとサブネットマスクの仕組み
IPアドレスとサブネットマスクの基本的な仕組みと、計算について解説します。
ネットワーク部とホスト部
IPアドレスには、IPv4とIPv6の2つのバージョンがあります。
現在、IPv4とIPv6アドレスが混在している状態ですが、基本的にはIPv4アドレスを使用して通信が行なわれています。
IPv4アドレスは、32ビット(0または1が32桁)と定められており、その全パターン数は232で、約43億個となります。
しかし43億個のままだと使い勝手が悪いので、管理がしやすいように「ネットワーク部」と「ホスト部」という階層構造が取られています。
IPアドレスの数
計算をわかりやすくするために、32ビットではなく、4ビットを例にして説明します。
4ビットとは、0または1が、4桁並んでいるという意味です。
その全パターン数は0000~1111までで16個となります。
- 0000
- 0001
- 0010
- 0011
- 0100
- 0101
- 0110
- 0111
- 1000
- 1001
- 1010
- 1011
- 1100
- 1101
- 1110
- 1111
これを、上位と下位でネットワーク部とホスト部に分けます。
ネットワーク部とホスト部を区切る位置によって、利用できるネットワーク数とホスト数が変わってきます。
ネットワーク部の桁数 | ネットワーク部の範囲 | ホスト部の範囲 | ネットワーク数 | ホスト数 |
---|---|---|---|---|
0 | ― | 0000~1111 | 1 | 16 |
1 | 0~1 | 000~111 | 2 | 8 |
2 | 00~11 | 00~11 | 4 | 4 |
3 | 000~111 | 0~1 | 8 | 2 |
4 | 0000~1111 | ー | 16 | 1 |
全部の16個を並列に扱うよりも、階層構造を持たせた方が、管理がしやすくなります。
実際の利用数に合わせて、適切なネットワーク数とホスト数になるように、選ぶことができます。
4ビットのサブネットマスク
そして、この上位何ビットをネットワーク部としたかを示しているのが、サブネットマスクです。
2進数の1を左詰めで並べています。
これが、4ビットの場合のIPアドレスとサブネットマスクです。
ネットワーク部の桁数 | サブネットマスク |
---|---|
0 | 0000 |
1 | 1000 |
2 | 1100 |
3 | 1110 |
4 | 1111 |
2進数の論理計算
なぜ1を並べているかと言うと、2進数の論理計算で、「AND(積)」計算をするためです。
論理計算の基本は、以下の表のようになります。
A | B | A AND B | A OR B | NOT A | A XOR B |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
「AND」は「AとBの両方が1の時のみ1を出力する」というものなので、「IPアドレス」と「サブネットマスク」の「AND」を計算することで、簡単にネットワーク部のアドレスを出すことができます。
例えば、IPアドレスが「1001」、サブネットマスクが「1110」の場合、ネットワークアドレスは「1000」となります。
IPアドレス | 1 | 0 | 0 | 1 |
サブネットマスク | 1 | 1 | 1 | 0 |
ネットワークアドレス | 1 | 0 | 0 | 0 |
CIDR表記
CIDR(Classless Inter-Domain Routing)表記とは、ネットワーク部の桁数が何桁かを示す表記方法です。
IPアドレスが「1001」、サブネットマスクが「1110」の場合、CIDR表記では「1001/3」と表します。
サブネットマスクとCIDR表記は、同じことを意味しており、書き方が違うだけです。
実際には、次の3種類の書き方があります。
サブネットマスク(2進数) | サブネットマスク(10進数) | CIDR表記 |
---|---|---|
0000 | 0 | /0 |
1000 | 8 | /1 |
1100 | 12 | /2 |
1110 | 14 | /3 |
1111 | 15 | /4 |
ネットワークアドレスとブロードキャストアドレス
上記で、4ビットの場合24で16個のIPアドレスが利用できると書きましたが、厳密には、「ネットワークアドレス」と「ブロードキャストアドレス」という特殊なIPアドレスがあり、一般的なホスト用には使用できません。
ネットワークアドレスとは、ホスト部が全て0のアドレスで、サブネット全体を識別するために使用されます。
ブロードキャストアドレスは、ホスト部が全て1のアドレスで、サブネット内のすべてのデバイスに一斉にデータ送信する際に使用されます。
例として、ネットワークアドレスが「1100」だった場合は、以下のようになります。
IPアドレス | 用途 |
---|---|
1100 | ネットワークアドレス |
1101 | ホストアドレス |
1110 | ホストアドレス |
1111 | ブロードキャストアドレス |
つまり、全部で4個のアドレスを使用できるはずが、特殊なアドレスとして2つ使われるので、ホストアドレスとしては2個しか使用できないということです。
更に言うと、外部ネットワークに接続するためのデフォルトゲートウェイ用として1つ必要となります。
サブネットマスク早見表
今まで説明のために、4ビットで話をしてきましたが、実際のIPv4アドレスは32ビットです。
ただし32ビットだと分かりにくいので、8ビットごとにピリオドで区切ることになっています。
それを表にすると、以下のようになります。
利用できるホスト数は、2ビット数から「-2」をしています。
CIDR表記 | サブネットマスク(2進数) | サブネットマスク(10進数) | 利用できるホスト数 |
---|---|---|---|
/0 | 00000000.00000000.00000000.00000000 | 0.0.0.0 | 4,294,967,294 |
/1 | 10000000.00000000.00000000.00000000 | 128.0.0.0 | 2,147,483,646 |
/2 | 11000000.00000000.00000000.00000000 | 192.0.0.0 | 1,073,741,822 |
/3 | 11100000.00000000.00000000.00000000 | 224.0.0.0 | 536,870,910 |
/4 | 11110000.00000000.00000000.00000000 | 240.0.0.0 | 268,435,454 |
/5 | 11111000.00000000.00000000.00000000 | 248.0.0.0 | 134,217,726 |
/6 | 11111100.00000000.00000000.00000000 | 252.0.0.0 | 67,108,862 |
/7 | 11111110.00000000.00000000.00000000 | 254.0.0.0 | 33,554,430 |
/8 | 11111111.00000000.00000000.00000000 | 255.0.0.0 | 16,777,214 |
/9 | 11111111.10000000.00000000.00000000 | 255.128.0.0 | 8,388,606 |
/10 | 11111111.11000000.00000000.00000000 | 255.192.0.0 | 4,194,302 |
/11 | 11111111.11100000.00000000.00000000 | 255.224.0.0 | 2,097,150 |
/12 | 11111111.11110000.00000000.00000000 | 255.240.0.0 | 1,048,574 |
/13 | 11111111.11111000.00000000.00000000 | 255.248.0.0 | 524,286 |
/14 | 11111111.11111100.00000000.00000000 | 255.252.0.0 | 262,142 |
/15 | 11111111.11111110.00000000.00000000 | 255.254.0.0 | 131,070 |
/16 | 11111111.11111111.00000000.00000000 | 255.255.0.0 | 65,534 |
/17 | 11111111.11111111.10000000.00000000 | 255.255.128.0 | 32,766 |
/18 | 11111111.11111111.11000000.00000000 | 255.255.192.0 | 16,382 |
/19 | 11111111.11111111.11100000.00000000 | 255.255.224.0 | 8,190 |
/20 | 11111111.11111111.11110000.00000000 | 255.255.240.0 | 4,094 |
/21 | 11111111.11111111.11111000.00000000 | 255.255.248.0 | 2,046 |
/22 | 11111111.11111111.11111100.00000000 | 255.255.252.0 | 1,022 |
/23 | 11111111.11111111.11111110.00000000 | 255.255.254.0 | 510 |
/24 | 11111111.11111111.11111111.00000000 | 255.255.255.0 | 254 |
/25 | 11111111.11111111.11111111.10000000 | 255.255.255.128 | 126 |
/26 | 11111111.11111111.11111111.11000000 | 255.255.255.192 | 62 |
/27 | 11111111.11111111.11111111.11100000 | 255.255.255.224 | 30 |
/28 | 11111111.11111111.11111111.11110000 | 255.255.255.240 | 14 |
/29 | 11111111.11111111.11111111.11111000 | 255.255.255.248 | 6 |
/30 | 11111111.11111111.11111111.11111100 | 255.255.255.252 | 2 |
/31 | 11111111.11111111.11111111.11111110 | 255.255.255.254 | 0 |
/32 | 11111111.11111111.11111111.11111111 | 255.255.255.255 | 1 |
グローバルIPアドレスとローカルIPアドレス
IPv4アドレスは最大でも約43億個しかありませんので、全世界の端末に割り当てるには全然足りません。
そのため、グローバルIPアドレス(パブリックIPアドレス)とローカルIPアドレス(プライベートIPアドレス)に分け、変換をするということを行っています。
グローバルIPアドレスは世界でただ一つである必要がありますが、ローカルIPアドレスは、そのローカルな範囲内だけで識別できればよく、異なる組織間で重複していも問題はありません。
これによって、43億個以上のアドレスを使用できるようになりました。
この変換のことをNAT/NAPTと言い、主にルーターの機能として備わっています。
NATタイプとは? 変更するにはどうしたらいいの?
ゲーム機がオンライン接続できない場合、「NAT超えに失敗しました」「NATタイプをご確認ください」などのメッセージが表示されることがあります。そもそもNATとは何でしょうか。この記事では、NATの基本 ...
ローカルIPアドレスの範囲
NATによってIPアドレスが変換されるならば、ローカルIPアドレスとしては何でもよく、実質的に約43億個のアドレスを使えることになります。
理論的にはそうなのですが、仕様として、ローカルIPアドレスは下記の範囲とするように定められています。
クラス | 範囲 | サブネットマスク | 利用可能なホスト数 |
---|---|---|---|
A | 10.0.0.0 ~ 10.255.255.255 | 255.0.0.0 | 16,777,214 |
B | 172.16.0.0 ~ 172.31.255.255 | 255.240.0.0 | 1,048,574 |
C | 192.168.0.0 ~ 192.168.255.255 | 255.255.0.0 | 65,534 |
ほとんどのローカルIPアドレスが「192.168.1.10」「192.168.11.3」のように似通っているのは、このためです。
この範囲外で指定しても動く可能性はありますが、予期せぬ挙動をしたり、セキュリティリスクとなったりする可能性がありますので、普通は仕様の範囲内で設定をします。
サブネットマスクの役割と調べ方
実際の運用上のサブネットマスクと、設定箇所、調べ方について解説します。
ほとんどのサブネットマスクが255.255.255.0の理由
上記のローカルIPアドレスの範囲によると、クラスCでも約6万5千個のホストアドレスを使用できることになります。
実際には、これを更に細かなサブネットに分割して、管理を行っています。
一番よく使われるサブネットマスクは「255.255.255.0」です。なぜこれが多いのか、理由を解説します。
シンプルで覚えやすい
- 11111111.11111111.11111111.00000000
- 255.255.255.0
- /24
「255.255.255.0」は、1が「8x3=24」個並んでいるということで、キリがよく、覚えやすいです。
丁度よい数
- ホストアドレス数254個
サブネットマスク「255.255.255.0」で利用できる最大デバイス数は254台です。
これは、多くの組織にとって十分な数となります。
ほとんどの組織の人数は20~30名となります。これは人間の生物学的特性であり、これより多くなると、階層構造を持たせたり、分割したりすることが必要となります。各人が複数のデバイスを使用したとすると、100台程度となります。
一般的なネットワーク機器は100台程度までしか扱う性能がありません。それ以上となると、かなり高価な機器が必要となります。
また、本記事では解説していませんが、DHCPのリース期間を考えると、最大254台に対して、実質100台程度で見積もるのが妥当となります。
IT企業などで254台で不足する場合は、サブネットマスクを「255.255.254.0」として、510台まで増やすこともあります。それ以上となると、ネットワークの設計として適切ではないと思われます。
逆に、「255.255.255.128」として半分の台数にすることで、より細かなセキュリティ設定が可能となりますが、あまりおこなわれないようです。
デフォルト設定
ほとんどのネットワーク機器は、初期設定で「255.255.255.0」が使用されています。
特に変更する理由もないので、そのままとなっていることが多いです。
サブネットマスクはどこで設定されている?
多くの場合、サブネットマスクは「DHCPサーバー」によって設定されています。
「DHCP(Dynamic Host Configuration Protocol)サーバー」とは、ネットワークに接続された機器に対して、自動的に「IPアドレス」「サブネットマスク」「デフォルトゲートウェイ」「DNSサーバー」などの設定情報を割り当てるものです。
DHCPサーバーがなければ、全て手動で設定する必要があり、とても大変です。
そしてほとんどの場合、DHCPサーバーはルーターに内蔵されています。
したがって「サブネットマスクはルーターによって決められている」とも言えるでしょう。サブネットマスクを変更したければ、ルーターの設定を変更するということになります。
サブネットマスクの調べ方
各OSのサブネットマスクの調べ方を簡単にご紹介します。
バージョン等によって異なることもありますので、ご了承ください。
iPhone / iPad
- 「設定」を開く
- 「Wi-Fi」をタップする
- 接続されているネットワーク名をタップする
- 「IVP4アドレス」の項目にサブネットマスクが表示される
Android
- 「設定」を開く
- 「ネットワークとインターネット」をタップする
- 「インターネット」をタップする
- 接続されているネットワーク名をタップする
- 「ネットワークの詳細」にサブネットマスクが表示される
Windows
- 検索ボックスに「cmd」と入力し「コマンドプロンプト」を選択する
- 「ipconfig」と入力し、Enterキーを押す
macOS
- 検索ボックスに「ターミナル」と入力し「ターミナル」を選択する
- 「ifconfig」と入力し、Enterキーを押す