<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ NETWORK ENGINEERING - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ エキスパートの手によるプログラミングチュートリアル記事を幅広く掲載。ウェブ開発、データサイエンス、DevOps、セキュリティ、開発者としてのキャリアなどについて学びましょう。 ]]>
        </description>
        <link>https://www.freecodecamp.org/japanese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ NETWORK ENGINEERING - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/japanese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 22 May 2026 20:02:29 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/japanese/news/tag/network-engineering/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ サブネットマスク早見表: サブネットマスク 24、30、26、27、29、その他 IP アドレスと CIDR のネットワークリファレンス ]]>
                </title>
                <description>
                    <![CDATA[ 開発者、またはネットワークエンジニアなら、サブネットマスクの値を調べたりその意味を理解する必要があったりするでしょう。 その作業を楽にするために、freeCodeCamp コミュニティはこのシンプルなチートシートを作成しました。このまま読み進めるか、Ctrl/Cmd + F でお探しの値を見つけてください。 一覧表は下記の通りです。意味は後ほど説明します。 CIDRサブネットマスクワイルドカードマスクIP アドレスの数利用可能なIP アドレスの数/32255.255.255.2550.0.0.011/31 255.255.255.2540.0.0.122*/30255.255.255.2520.0.0.342/29255.255.255.2480.0.0.786 /28255.255.255.2400.0.0.151614/27255.255.255.2240.0.0.313230/26255.255.255.192 0.0.0.636462/25255.255.255.1280.0.0.127128126/24255.255.255.00.0.0.255256254/23 25 ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/subnet-cheat-sheet-24-subnet-mask-30-26-27-29-and-other-ip-address-cidr-network-references/</link>
                <guid isPermaLink="false">623cd5e4fa0d9e053f44dd00</guid>
                
                    <category>
                        <![CDATA[ NETWORK ENGINEERING ]]>
                    </category>
                
                    <category>
                        <![CDATA[ NETWORK ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ COMPUTER NETWORKING ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ まつだようこ ]]>
                </dc:creator>
                <pubDate>Sun, 24 Apr 2022 23:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2022/04/5f9c9647740569d1a4ca10a9.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/subnet-cheat-sheet-24-subnet-mask-30-26-27-29-and-other-ip-address-cidr-network-references/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Subnet Cheat Sheet – 24 Subnet Mask, 30, 26, 27, 29, and other IP Address CIDR Network References</a>
      </p><p>開発者、またはネットワークエンジニアなら、サブネットマスクの値を調べたりその意味を理解する必要があったりするでしょう。</p><p>その作業を楽にするために、freeCodeCamp コミュニティはこのシンプルなチートシートを作成しました。このまま読み進めるか、Ctrl/Cmd + F でお探しの値を見つけてください。</p><p>一覧表は下記の通りです。意味は後ほど説明します。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th>CIDR</th>
<th>サブネットマスク</th>
<th>ワイルドカードマスク</th>
<th>IP アドレスの数</th>
<th>利用可能なIP アドレスの数</th>
</tr>
</thead>
<tbody>
<tr>
<td>/32</td>
<td>255.255.255.255</td>
<td>0.0.0.0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>/31</td>
<td>255.255.255.254</td>
<td>0.0.0.1</td>
<td>2</td>
<td>2*</td>
</tr>
<tr>
<td>/30</td>
<td>255.255.255.252</td>
<td>0.0.0.3</td>
<td>4</td>
<td>2</td>
</tr>
<tr>
<td>/29</td>
<td>255.255.255.248</td>
<td>0.0.0.7</td>
<td>8</td>
<td>6</td>
</tr>
<tr>
<td>/28</td>
<td>255.255.255.240</td>
<td>0.0.0.15</td>
<td>16</td>
<td>14</td>
</tr>
<tr>
<td>/27</td>
<td>255.255.255.224</td>
<td>0.0.0.31</td>
<td>32</td>
<td>30</td>
</tr>
<tr>
<td>/26</td>
<td>255.255.255.192</td>
<td>0.0.0.63</td>
<td>64</td>
<td>62</td>
</tr>
<tr>
<td>/25</td>
<td>255.255.255.128</td>
<td>0.0.0.127</td>
<td>128</td>
<td>126</td>
</tr>
<tr>
<td>/24</td>
<td>255.255.255.0</td>
<td>0.0.0.255</td>
<td>256</td>
<td>254</td>
</tr>
<tr>
<td>/23</td>
<td>255.255.254.0</td>
<td>0.0.1.255</td>
<td>512</td>
<td>510</td>
</tr>
<tr>
<td>/22</td>
<td>255.255.252.0</td>
<td>0.0.3.255</td>
<td>1,024</td>
<td>1,022</td>
</tr>
<tr>
<td>/21</td>
<td>255.255.248.0</td>
<td>0.0.7.255</td>
<td>2,048</td>
<td>2,046</td>
</tr>
<tr>
<td>/20</td>
<td>255.255.240.0</td>
<td>0.0.15.255</td>
<td>4,096</td>
<td>4,094</td>
</tr>
<tr>
<td>/19</td>
<td>255.255.224.0</td>
<td>0.0.31.255</td>
<td>8,192</td>
<td>8,190</td>
</tr>
<tr>
<td>/18</td>
<td>255.255.192.0</td>
<td>0.0.63.255</td>
<td>16,384</td>
<td>16,382</td>
</tr>
<tr>
<td>/17</td>
<td>255.255.128.0</td>
<td>0.0.127.255</td>
<td>32,768</td>
<td>32,766</td>
</tr>
<tr>
<td>/16</td>
<td>255.255.0.0</td>
<td>0.0.255.255</td>
<td>65,536</td>
<td>65,534</td>
</tr>
<tr>
<td>/15</td>
<td>255.254.0.0</td>
<td>0.1.255.255</td>
<td>131,072</td>
<td>131,070</td>
</tr>
<tr>
<td>/14</td>
<td>255.252.0.0</td>
<td>0.3.255.255</td>
<td>262,144</td>
<td>262,142</td>
</tr>
<tr>
<td>/13</td>
<td>255.248.0.0</td>
<td>0.7.255.255</td>
<td>524,288</td>
<td>524,286</td>
</tr>
<tr>
<td>/12</td>
<td>255.240.0.0</td>
<td>0.15.255.255</td>
<td>1,048,576</td>
<td>1,048,574</td>
</tr>
<tr>
<td>/11</td>
<td>255.224.0.0</td>
<td>0.31.255.255</td>
<td>2,097,152</td>
<td>2,097,150</td>
</tr>
<tr>
<td>/10</td>
<td>255.192.0.0</td>
<td>0.63.255.255</td>
<td>4,194,304</td>
<td>4,194,302</td>
</tr>
<tr>
<td>/9</td>
<td>255.128.0.0</td>
<td>0.127.255.255</td>
<td>8,388,608</td>
<td>8,388,606</td>
</tr>
<tr>
<td>/8</td>
<td>255.0.0.0</td>
<td>0.255.255.255</td>
<td>16,777,216</td>
<td>16,777,214</td>
</tr>
<tr>
<td>/7</td>
<td>254.0.0.0</td>
<td>1.255.255.255</td>
<td>33,554,432</td>
<td>33,554,430</td>
</tr>
<tr>
<td>/6</td>
<td>252.0.0.0</td>
<td>3.255.255.255</td>
<td>67,108,864</td>
<td>67,108,862</td>
</tr>
<tr>
<td>/5</td>
<td>248.0.0.0</td>
<td>7.255.255.255</td>
<td>134,217,728</td>
<td>134,217,726</td>
</tr>
<tr>
<td>/4</td>
<td>240.0.0.0</td>
<td>15.255.255.255</td>
<td>268,435,456</td>
<td>268,435,454</td>
</tr>
<tr>
<td>/3</td>
<td>224.0.0.0</td>
<td>31.255.255.255</td>
<td>536,870,912</td>
<td>536,870,910</td>
</tr>
<tr>
<td>/2</td>
<td>192.0.0.0</td>
<td>63.255.255.255</td>
<td>1,073,741,824</td>
<td>1,073,741,822</td>
</tr>
<tr>
<td>/1</td>
<td>128.0.0.0</td>
<td>127.255.255.255</td>
<td>2,147,483,648</td>
<td>2,147,483,646</td>
</tr>
<tr>
<td>/0</td>
<td>0.0.0.0</td>
<td>255.255.255.255</td>
<td>4,294,967,296</td>
<td>4,294,967,294</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><ul><li>/31 は、<a href="https://tools.ietf.org/html/rfc3021">RFC 3021</a> で定められている特殊なケースです。このタイプのサブネットマスクを使用するネットワークは、2 つの IP アドレスをポイント・ツー・ポイントリンクとして割り当てることができます。</li></ul><p>そしてこちらが、サブネットマスクとワイルドカードのオクテットの 10 進数から 2 進数への変換表です。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th></th>
<th>サブネットマスク</th>
<th></th>
<th>ワイルドカード</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>00000000</td>
<td>255</td>
<td>11111111</td>
</tr>
<tr>
<td>128</td>
<td>10000000</td>
<td>127</td>
<td>01111111</td>
</tr>
<tr>
<td>192</td>
<td>11000000</td>
<td>63</td>
<td>00111111</td>
</tr>
<tr>
<td>224</td>
<td>11100000</td>
<td>31</td>
<td>00011111</td>
</tr>
<tr>
<td>240</td>
<td>11110000</td>
<td>15</td>
<td>00001111</td>
</tr>
<tr>
<td>248</td>
<td>11111000</td>
<td>7</td>
<td>00000111</td>
</tr>
<tr>
<td>252</td>
<td>11111100</td>
<td>3</td>
<td>00000011</td>
</tr>
<tr>
<td>254</td>
<td>11111110</td>
<td>1</td>
<td>00000001</td>
</tr>
<tr>
<td>255</td>
<td>11111111</td>
<td>0</td>
<td>00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>ワイルドカードはサブネットマスクを反転させたものとなっています。</p><p>ネットワークエンジニアリングの初心者であれば、<a href="https://www.freecodecamp.org/news/computer-networks-and-how-to-actually-understand-them-c1401908172d/">この記事で、コンピューターネットワークの仕組みについて理解を深めると良いでしょう。</a>(英語版)</p><p>最後に、このチートシートとこれ以降の説明は、より新しい IPv6 プロトコルではなく IPv4 アドレスにフォーカスしています。IPv6 について詳しく学びたい場合も、上記、コンピューターネットワークの仕組みについての記事を参考にしてください。</p><h2 id="ip-">IP アドレスブロックの仕組み</h2><p><code>192.168.0.1</code> のような IP アドレスは、2 進数のブロック 4 組を 10 進数で表したものです。</p><p>各ブロックは 8 ビットで、0～255 の数字を表現できます。ブロックは 8 ビットのかたまりなので、それぞれのブロックは <strong>オクテット</strong> と呼ばれます。そして、8 ビットのブロックが 4 組あるので、IPv4 アドレスはすべて 32 ビットです。</p><p>例えば IP アドレス <code>172.16.254.1</code> を 2 進数で表すと次のようになります。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/1125px-Ipv4_address.png" class="kg-image" alt="1125px-Ipv4_address" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/1125px-Ipv4_address.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/04/1125px-Ipv4_address.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/1125px-Ipv4_address.png 1125w" sizes="(min-width: 720px) 720px" width="1125" height="675" loading="lazy"><figcaption>引用元: <a href="https://en.wikipedia.org/wiki/IPv4">IPv4</a></figcaption></figure><p>IP アドレスの 10 進数と 2 進数の変換を行うには下記の表を利用できます。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">128</th>
<th style="text-align:center">64</th>
<th style="text-align:center">32</th>
<th style="text-align:center">16</th>
<th style="text-align:center">8</th>
<th style="text-align:center">4</th>
<th style="text-align:center">2</th>
<th style="text-align:center">1</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
<td style="text-align:center">x</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>この表は 1 組、8 ビットのオクテットを表しています。</p><p>ではここで、IP アドレス <code>168.210.225.206</code> を変換したいとしましょう。そのためにはアドレスを 4 つのブロックに分け (<code>168</code>, <code>210</code>, <code>225</code>, <code>206</code>)、それぞれ上の表を使用して 2 進数に変換します。</p><p>2 進数では 1 が「オン」、0 が「オフ」を表すことを思い出してください。つまり、最初のブロック <code>168</code> を 2 進数に変換するには、表の左端からスタートして、合計が <code>168</code> となるように、それぞれのセルに 1 か 0 を入れていきます。</p><p>例:</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">128</th>
<th style="text-align:center">64</th>
<th style="text-align:center">32</th>
<th style="text-align:center">16</th>
<th style="text-align:center">8</th>
<th style="text-align:center">4</th>
<th style="text-align:center">2</th>
<th style="text-align:center">1</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
<td style="text-align:center">1</td>
<td style="text-align:center">0</td>
<td style="text-align:center">0</td>
<td style="text-align:center">0</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>128 + 32 + 8 = 168 なので、変換後の 2 進数は <code>10101000</code> となります。</p><p>残りのブロックにも同じ手順を繰り返すと <code>10101000.11010010.11100001.11001110</code> という値が得られます。</p><h2 id="-">サブネットとは</h2><p>上の表を見ると IP アドレスの数は事実上無限のように思えます。結論から言うと、利用可能な IPv4 アドレスは約 42 億通りです。</p><p>しかし、インターネットがどれだけ拡大したか、現在どれだけのデバイスが接続されているかを考えてみれば、すでに <a href="https://whatismyipaddress.com/ipv4-shortage">IPv4 アドレスの枯渇</a>が発生していると聞いてもそう驚かないことでしょう。</p><p>IPv4 アドレスの枯渇は何年も前から懸念されていたので、IP アドレスを「サブネット」と呼ばれるさらに小さなネットワークに分割する方法が考案されました。</p><p>「サブネット化」と呼ばれるこの方法は、IP アドレスのホスト部を使用して、1 つの IP アドレスをより小さいネットワーク、サブネットに分割します。</p><p>通常、IP アドレスはネットワーク部とホスト部で構成されています。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/network-and-host-bits.png" class="kg-image" alt="network-and-host-bits" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/network-and-host-bits.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/network-and-host-bits.png 677w" width="677" height="224" loading="lazy"><figcaption>引用元: <a href="https://support.huawei.com/enterprise/en/doc/EDOC1100145159">What is IPv4</a></figcaption></figure><p>大まかに言うと、サブネット化の役割は 2 つあります。1 つはネットワークをサブネットに分割する方法を提供し、もう 1 つは、あるデバイスと他方のデバイス (IP アドレス) が同じローカルネットワーク内にあるかどうかを判別できるようにします。</p><p>サブネット化を理解する良い方法は、あなたの家の無線ネットワークを思い浮かべることです。</p><p>サブネット化がなければ、インターネットに接続されているすべてのデバイスにそれぞれ固有の IP アドレスが必要になります。</p><p>しかし、無線ルーターがあるおかげでルーター用に 1 つの IP アドレスがあるだけで済みます。このパブリック (外部) IP アドレスは通常、ISP (インターネットサービスプロバイダー) によって自動で割り当てられます。</p><p>そして、そのルーターに接続されているすべてのデバイスが、それぞれ固有のプライベート (内部) IP アドレスを持ちます。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/home-network-diagram.png" class="kg-image" alt="home-network-diagram" srcset="https://www.freecodecamp.org/japanese/news/content/images/2022/04/home-network-diagram.png 600w" width="600" height="351" loading="lazy"><figcaption>引用元: <a href="https://www.popularmechanics.com/technology/a32729384/how-to-find-ip-address/">What Is My IP Address?</a></figcaption></figure><p>ここで、内部 IP アドレス <code>192.168.1.101</code> を持つデバイスが他のデバイスと通信しようとする場合、他方のデバイスの IP アドレスとサブネットマスクが必要になります。</p><p>IP アドレスとサブネットマスクの組み合わせにより、<code>192.168.1.101</code> のデバイスは、他方のデバイスが同じネットワーク内のデバイス (例えば <code>192.168.1.103</code> のデバイス) か、あるいはインターネットのどこかにある全く別のネットワークのデバイスかを判断できます。</p><p>面白いことに、ISP によってあなたのルーターに割り当てられた外部 IP アドレスも、おそらくは近隣の家庭や職場の IP アドレスを含むサブネットの一部です。そして内部 IP アドレスと同じようにサブネットマスクを利用して動作しています。</p><h3 id="--1">サブネットマスクの仕組み</h3><p>サブネットマスクは IP アドレスのフィルターのような役割を果たします。サブネットマスクを使うことで、デバイスは IP アドレスのネットワーク部とホスト部を判断できます。</p><p>そしてその情報を利用してデバイス同士が通信するベストな方法を判断します。</p><p>あなたのルーターやコンピューターのネットワーク設定を調べたことがあれば、<code>255.255.255.0</code> という数字に見覚えがあるかもしれません。</p><p>これはシンプルなホームネットワークによく使われるサブネットマスクです。</p><p>IPv4 アドレスと同様に、サブネットマスクも 32 ビットです。そして IP アドレスを 2 進数に変換したのと同じように、サブネットマスクでも同じことができます。</p><p>例を見てみましょう。先ほどの表をもう一度使います。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align: center">128</th>
<th style="text-align: center">64</th>
<th style="text-align: center">32</th>
<th style="text-align: center">16</th>
<th style="text-align: center">8</th>
<th style="text-align: center">4</th>
<th style="text-align: center">2</th>
<th style="text-align: center">1</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
<td style="text-align: center">x</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>では、最初のオクテット 255 を変換してみましょう。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">128</th>
<th style="text-align:center">64</th>
<th style="text-align:center">32</th>
<th style="text-align:center">16</th>
<th style="text-align:center">8</th>
<th style="text-align:center">4</th>
<th style="text-align:center">2</th>
<th style="text-align:center">1</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
<td style="text-align:center">1</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>とてもシンプルですね。<code>255</code> というオクテットは、2 進数では <code>11111111</code> です。つまり <code>255.255.255.0</code> は、2 進数では <code>11111111.11111111.11111111.00000000</code> となります。</p><p>では次に、サブネットマスクと IP アドレスを組み合わせて IP アドレスのどの部分がネットワーク部か、ホスト部かを計算してみます。</p><p>サブネットマスクと IP アドレスをそれぞれ 10 進数と 2 進数で表記したものがこちらです。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">種別</th>
<th style="text-align:center">10 進数表記</th>
<th style="text-align:center">2 進数表記</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">IP アドレス</td>
<td style="text-align:center">192.168.0.101</td>
<td style="text-align:center">11000000.10101000.00000000.01100101</td>
</tr>
<tr>
<td style="text-align:center">サブネットマスク</td>
<td style="text-align:center">255.255.255.0</td>
<td style="text-align:center">11111111.11111111.11111111.00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>2 つの値をこのように並べれば <code>192.168.0.101</code> をネットワーク部とホスト部に分けるのは簡単です。</p><p>2 進数表記のサブネットマスクのとあるビットが 1 の時、2 進数表記の IP アドレスの同じビットはネットワーク部のビットです。</p><p><code>255</code> というオクテットは 2 進数では <code>11111111</code> なので、そのオクテットは全体がネットワーク部です。したがって、最初の 3 つのオクテット <code>192.168.0</code> は IP アドレスのネットワーク部にあたり、<code>101</code> がホスト部にあたります。</p><p>言い換えると、<code>192.168.0.101</code> のデバイスが他のデバイスと通信しようとする場合、サブネットマスクを見ると、IP アドレスが <code>192.168.0.xxx</code> のデバイスならばどれも同じローカルネットワークにあると分かります。</p><p>この情報を表現するもう一つの方法は、ネットワーク ID を使う方法です。ネットワーク ID とは、IP アドレスのネットワーク部にあたる部分です。つまり、サブネットマスクが <code>255.255.255.0</code> の場合、IP アドレス <code>192.168.0.101</code> のネットワーク ID は <code>192.168.0.0</code> です。</p><p>同じローカルネットワーク内の他のデバイス (<code>192.168.0.102</code>, <code>192.168.0.103</code> など) についても同様です。</p><h3 id="cidr-cidr-">CIDR、CIDR 表記とは？</h3><p><strong>CIDR</strong> とは「Classless Inter-Domain Routing」の略です。IPv4 で使われていましたが、最近では IPv6 ルーティングでも使われています。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/1920px-IP_Address_Match.svg.png" class="kg-image" alt="1920px-IP_Address_Match.svg" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/1920px-IP_Address_Match.svg.png 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2022/04/1920px-IP_Address_Match.svg.png 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2022/04/1920px-IP_Address_Match.svg.png 1600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/1920px-IP_Address_Match.svg.png 1920w" sizes="(min-width: 720px) 720px" width="1920" height="1892" loading="lazy"><figcaption>引用元: <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing">Classless Inter-Domain Routing</a></figcaption></figure><p>インターネットが構築された当初のクラスフル IP アドレッシングシステムの下では、IPv4 アドレスが急速に使い果たされようとしていました。そこで、IPv4 アドレスの消費を減速させる方法として、1993 年に CIDR が発表されました。</p><p>CIDR には主要な概念がいくつか含まれます。</p><p>一つ目は可変長サブネットマスク (Variable Length Submasking, VLSM) です。これによりサブネット内にさらにサブネットを作成できるようになりました。そしてサブネットごとにサイズを変えることもできるため、使用されない IP アドレスを減らすことができます。</p><p>二つ目の主要な概念は CIDR 表記です。</p><p>CIDR 表記とはサブネットマスクの簡略表記で、IP アドレスに使用可能なビット数を表します。例えば <code>192.168.0.101/24</code> の <code>/24</code> は、IP アドレス <code>192.168.0.101</code> とサブネットマスク <code>255.255.255.0</code> に相当します。</p><h3 id="cidr-">CIDR 表記の計算方法</h3><p>あるサブネットマスクを CIDR 表記にするには、サブネットマスクを 2 進数に変換し、「1」、つまり「オン」の桁数を数えます。例えば下記の場合:</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">種別</th>
<th style="text-align:center">10 進数表記</th>
<th style="text-align:center">2 進数表記</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">サブネットマスク</td>
<td style="text-align:center">255.255.255.0</td>
<td style="text-align:center">11111111.11111111.11111111.00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>最初の 3 つのオクテットがすべて 1 なので、24 個の「オン」のビットがあります。したがって CIDR 表記は <code>/24</code> となります。</p><p>どちらの表記で書いても構いませんが、<code>255.255.255.0</code> よりも <code>/24</code> の方が書きやすいですよね。</p><p>この表記は通常、IP アドレスと一緒に表記されます。同じサブネットマスクを IP アドレスと組み合わせた場合を見てみましょう。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">種別</th>
<th style="text-align:center">10 進数表記</th>
<th style="text-align:center">2 進数表記</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">IP アドレス</td>
<td style="text-align:center">192.168.0.101</td>
<td style="text-align:center">11000000.10101000.00000000.01100101</td>
</tr>
<tr>
<td style="text-align:center">サブネットマスク</td>
<td style="text-align:center">255.255.255.0</td>
<td style="text-align:center">11111111.11111111.11111111.00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>サブネットマスクの最初の 3 つのオクテットがすべて「オン」なので、IPアドレスの、対応する 3 つのオクテットがネットワーク部であることを意味しています。</p><p>最後の 4 つ目のオクテットを詳しく見てみましょう。</p><!--kg-card-begin: html--><table>
<thead>
<tr>
<th style="text-align:center">種別</th>
<th style="text-align:center">10 進数表記</th>
<th style="text-align:center">2 進数表記</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center">IP アドレス</td>
<td style="text-align:center">101</td>
<td style="text-align:center">01100101</td>
</tr>
<tr>
<td style="text-align:center">サブネットマスク</td>
<td style="text-align:center">0</td>
<td style="text-align:center">00000000</td>
</tr>
</tbody>
</table><!--kg-card-end: html--><p>サブネットマスクを見ると、このオクテットのすべてのビットが「オフ」になっているので、IP アドレスの対応するビットはホスト部であると分かります。</p><p>CIDR 表記を記述する際、通常はネットワーク ID を使用して記述します。したがって、IP アドレス <code>192.168.0.101</code> とサブネットマスク <code>255.255.255.0</code> の CIDR 表記は <code>192.168.0.0/24</code> となります。</p><p>ある IP アドレスとサブネットマスクの CIDR 表記とネットワーク ID を計算する方法の例をもっと見るにはこちらの動画をどうぞ。</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.49999999999999%;" class="fluid-width-video-wrapper">
            <iframe width="200" height="113" src="https://www.youtube.com/embed/XQ3T14SIlV4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><h2 id="-ip-">クラスフル IP アドレッシング</h2><p>サブネット化と CIDR の基本的な例をいくつか見てきたので、少し範囲を広げて、今度はクラスフル IP アドレッシングと呼ばれる方式を見ていきましょう。</p><p>サブネット化が開発される以前は、すべての IP アドレスは決まったクラスに分けられていました。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2022/04/subnetting.png" class="kg-image" alt="subnetting" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2022/04/subnetting.png 600w, https://www.freecodecamp.org/japanese/news/content/images/2022/04/subnetting.png 975w" sizes="(min-width: 720px) 720px" width="975" height="453" loading="lazy"><figcaption>引用元: <a href="https://community.spiceworks.com/networking/articles/2489-subnetting-for-dummies">Subnetting for dummies</a></figcaption></figure><p>クラス D や E もありますが、これについては後ほど詳しく説明します。</p><p>クラスフル IP アドレスにより、ネットワークエンジニアはさまざまな組織に合わせて有効な IP アドレスの範囲を提供することができるようになりました。</p><p>ただこのアプローチには多くの問題があり、結果としてサブネット化へとつながりました。しかしその前に、それぞれのクラスを詳しく見てみましょう。</p><h3 id="-a-ip-">クラス A IP アドレス</h3><p>クラス A IP アドレスでは、最初のオクテット (8 ビット / 1 バイト) がネットワーク ID、残りの 3 つのオクテット (24 ビット / 3 バイト) がホスト ID を表します。</p><p>クラス A IP アドレスの範囲は <code>1.0.0.0</code> から <code>127.255.255.255</code> です。デフォルトマスクは <code>255.0.0.0</code> (CIDR 表記では <code>/8</code>) です。</p><p>つまり、クラス A のアドレスは合計 128 個 (2<sup>7</sup>) のネットワークと、各ネットワークに 16,777,214 個 (2<sup>24</sup>-2) の利用可能なアドレスを持つことができます。</p><p>また、クラス A の範囲内のうち <code>127.0.0.0</code> から <code>127.255.255.255</code> はホストループバックアドレス用に予約されていることに注意してください。(<a href="https://tools.ietf.org/html/rfc5735">RFC5735</a> を参照)</p><h3 id="-b-ip-">クラス B IP アドレス</h3><p>クラス B IP アドレスでは、最初の 2 つのオクテット (16 ビット / 2 バイト) がネットワーク ID、残りの 2 つのオクテット (16 ビット / 2 バイト) がホスト ID を表します。</p><p>クラス B IP アドレスの範囲は <code>128.0.0.0</code> から <code>191.255.255.255</code> です。デフォルトマスクは <code>255.255.0.0</code> (CIDR 表記では <code>/16</code>) です。</p><p>クラス B のアドレスは 16,384 個 (2<sup>14</sup>) のネットワークと、各ネットワークに 65,534 個 (2<sup>16</sup>-2) の利用可能なアドレスを持つことができます。</p><h3 id="-c-ip-">クラス C IP アドレス</h3><p>クラス C IP アドレスでは、最初の 3 つのオクテット (24 ビット / 3 バイト) がネットワーク ID、最後のオクテット (8 ビット / 1 バイト) がホスト ID を表します。</p><p>クラス C IP アドレスの範囲は <code>192.0.0.0</code> から <code>223.255.255.255</code> です。デフォルトマスクは <code>255.255.255.0</code> (CIDR 表記では <code>/24</code>) です。</p><p>クラス C のアドレスは 2,097,152 個 (2<sup>21</sup>) のネットワークと、各ネットワークに 254 個 (2<sup>8</sup>-2) の利用可能なアドレスを持つことができます。</p><h3 id="-d-e-ip-">クラス D、クラス E IP アドレス</h3><p>最後の 2 つのクラスはクラス D とクラス E です。</p><p>クラス D IP アドレスはマルチキャスト用に予約されています。IP アドレスの範囲は <code>224.0.0.0</code> から <code>239.255.255.255</code> です。</p><p>クラス E IP アドレスは実験用とされており、<code>240.0.0.0</code> 以上のすべての範囲です。</p><h3 id="-ip--1">クラスフル IP アドレスの問題</h3><p>クラスフル IP アドレスの主な問題は、効率が悪く、多くの IP アドレスを無駄にする可能性があることです。</p><p>例えば、あなたが大きな組織の一員だと想像してみてください。あなたの会社には 1,000 人の従業員がいます。つまりクラス B に該当する規模です。</p><p>しかし上の説明を見てみると、クラス B のネットワークは最大 65,534 個のアドレスを利用できることが分かります。これはあなたの組織が必要とするであろう数よりずっと多いですね。もし各従業員が固有のアドレスを持つデバイスを複数持っていたとしても、この数に達する可能性は低そうです。</p><p>そして、代わりにクラス C を利用することもできません。利用可能な IP アドレスの数が足りないからです。</p><p>このように、IPv4 アドレスが普及する頃まではクラスフル IP アドレスが使われていましたが、じきに、利用可能な 42 億個のアドレスを使い果たさないためにはより良いシステムが必要であることが明らかになりました。</p><p>クラスフル IP アドレスは、1993 年に CIDR に置き換えられてからは使われなくなりました。現在これを学ぶ目的としては、初期のインターネットアーキテクチャについて学んだり、サブネット化が重要である理由を理解するためであることがほとんどです。</p><h2 id="--2">このチートシートがお役に立てば幸いです。</h2><p>この記事がお役に立ちましたら、もっと多くの人々が恩恵を受けられるように、ぜひ周りの友人にシェアしてください。</p><p>また、<a href="https://twitter.com/kriskoishigawa">Twitter</a> でお気軽に、筆者までご意見をお聞かせください。</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
