この記事では、IPアドレス(v4)について解説します。
IPアドレスは、ネットワークエンジニアとしての基礎知識になります。
- とにかくITについてなんでもいいから勉強したい人
- ネットワークエンジニアになりたい人
- 他のIT分野をやってるけど、ネットワークの教養も欲しい人
といった方は是非ともご覧ください。
ご家庭でのパソコンやプリンタなどの設定でも用いる知識です。是非とも覚えるか、家族の誰かに覚えてもらいましょう。
目次
IPアドレスの表示形式
まず、IPアドレスの表示形式を解説します。IPアドレスは全部で43億個ほど(2の32乗)ありますが、3,212,345,678(32億1234万5678番)のように表すと結構わかりにくいので、0~255までの数字をひとかたまり(「オクテット」と呼ばれます)にして、4個並べて表現します。(第1オクテット〜第4オクテットまであります)
人間が見る形式とコンピュータが見る形式がありますので、それぞれ解説します。
人間が見る形式
我々人間向けのIPアドレスの表示形式は、以下の通りです。
例:123.45.6.78 のように表示します。
コンピュータが見ている形式
コンピュータが見ている形式は、2進数(binary, バイナリ)で、数字[1 or 0]で以下のように表します。
例えば、123.45.6.78 であれば、
01111011 00101101 00000110 01001110
と表示されます。
普段はあまり意識することはありませんが、コンピュータはこういう風に処理していることは覚えておきましょう。
ネットワークアドレス部とホストアドレス部
IPアドレスは、ネットワークを表す部分(ネットワークアドレス部)と、個別のコンピュータ(ホストと呼びます)を表す部分(ホストアドレス部)に分かれます。ネットワークを表すアドレスは、ネットワークアドレスと呼ばれ、ホストを表すアドレスはホストアドレスと呼ばれます。
この仕組みにより、43億個ほどあるIPアドレスを複数のネットワークに分割しています。
上図の例では、100. のネットワーク、150.10. のネットワーク、200.109.45. のネットワークでは、ネットワークの大きさが異なり、収容できるホストアドレスの数も異なります。
(ここではネットワークを3例だけ図示していますが、実際にはもっとたくさんあります)
ネットワークは本来2進数で表される数字ですので、半分ずつにしか分割できません。逆にいうと、倍々でしか大きくできません(次の項で詳述します)。
上記の 200.109.45 のネットワーク(256個のホストを収容)は隣の200.109.44.のネットワーク(256個のホストを収容)と結合して、512個のホストを収容する倍の大きさのネットワークを作ることができます。
260個のホストがある場合は、512個のホストを収容できるネットワークを作る必要があります。IPアドレスは後々足りなくなって困る場合がありますので、IPアドレスの設計は計画的にやる必要があるということだけ頭の片隅に入れておきましょう。
ネットワークの大きさを表す方法
上記の「ネットワークの大きさ」を表す方法は、
- サブネットマスク
- プレフィックス
- ワイルドカードマスク
の3種類があります。それぞれ別々の表記方法ですが全く同じものを表しています。(ややこしいですが、同じものを表記する方法が3種類あります)
サブネットマスク
サブネットマスクは、
2進数にしたときに、左から何ビット目までがネットワークアドレスか
ということを示します。
以下は「第1オクテットがネットワークアドレス」という意味のサブネットマスクです。
「1となっている部分がネットワークアドレスであり、0となっている部分がホストアドレスである」ということを表します。
前項の「100.9.123.4」の例では、
100.9.123.4 255.0.0.0
と記載します。
以下は「第2オクテットまでがネットワークアドレス」という意味のサブネットマスクです。
前項の「150.10.123.14」 の例では、
150.10.123.14 255.255.0.0
です。
以下は「第3オクテットまでがネットワークアドレス」という意味のサブネットマスクです。
前項の「200.109.45.60」の例では、
200.109.45.60 255.255.255.0
です。
以下はちょっと変則的で、「第3オクテットの途中までがネットワークアドレス」という意味のサブネットマスクです。
前項の「200.109.45 のネットワークと隣の200.109.44.のネットワークを結合したネットワーク」は、
200.109.44.0 255.255.254.0
と表記します。
プレフィックス
こちらが簡単で一番よく使われている方法です。「/(スラッシュ)」と数字でホスト部とネットワーク部を区別する方法です。
サブネットマスクを2進数にしたときの「1」の数でネットワーク部がどこまでかを表現します。
以下は「第1オクテットがネットワークアドレス」という意味のプレフィクスです。
前項の「100.9.123.4」の例では、
100.9.123.4/8
と記載します。
以下は「第2オクテットまでがネットワークアドレス」という意味のプレフィックスです。
前項の「150.10.123.14」 の例では、
150.10.123.14/16
です。
以下は「第3オクテットまでがネットワークアドレス」という意味のプレフィックスです。
前項の「200.109.45.60」の例では、
200.109.45.60/24
です。
以下は「第3オクテットの途中までがネットワークアドレス」という意味のプレフィックスです。
前項の「200.109.45 のネットワークと隣の200.109.44.のネットワークを結合したネットワーク」は、
200.109.44.0/23
と表記します。
ワイルドカードマスク
こちらはあまり使われない方法ですが、ネットワーク機器に設定を入れるとき、ワイルドカードマスクが必要な場合が時々あります。
ワイルドカードマスクはサブネットマスクの0と1を逆にしたものです。つまりは、2進数の「0」がネットワーク部を表し、「1」がホスト部を表します。4オクテットで0~255の数字で表記します。
以下は「第1オクテットがネットワークアドレス」という意味のワイルドカードマスクです。
前項の「100.9.123.4」の例では、
100.9.123.4 0.255.255.255
と記載します。
以下は「第2オクテットまでがネットワークアドレス」という意味のワイルドカードマスクです。
前項の「150.10.123.14」 の例では、
150.10.123.14 0.0.255.255
です。
以下は「第3オクテットまでがネットワークアドレス」という意味のワイルドカードマスクです。
前項の「200.109.45.60」の例では、
200.109.45.60 0.0.0.255
です。
以下は「第3オクテットの途中までがネットワークアドレス」という意味のワイルドカードマスクです。
前項の「200.109.45 のネットワークと隣の200.109.44.のネットワークを結合したネットワーク」は、
200.109.44.0 0.0.1.255
と表記します。
ネットワークの大きさイメージ図
ネットワークの大きさについての理解のために、下図を用意しました。プレフィックス「/16」〜「/24」と収容アドレスを図示しました。
この図でネットワークは半分ずつ小さくなる(倍々で大きくなる)ということをご理解いただければ幸いです。
ネットワークの大きさとプレフィックス、マスク、利用可能ホスト数の一覧表
まとめると、以下の通りです。こちらを見ながら実務などを行えば、すぐに頭に入ると思います。どんどんご活用ください。
プレフィックス | サブネットマスク | ワイルドカードマスク | アドレス数 |
/0 | 0.0.0.0 | 255.255.255.255 | 4,294,967,296 |
/1 | 128.0.0.0 | 127.255.255.255 | 2,147,483,648 |
/2 | 192.0.0.0 | 63.255.255.255 | 1,073,741,824 |
/3 | 224.0.0.0 | 31.255.255.255 | 536,870,912 |
/4 | 240.0.0.0 | 15.255.255.255 | 268,435,356 |
/5 | 248.0.0.0 | 7.255.255.255 | 134,217,728 |
/6 | 252.0.0.0 | 3.255.255.255 | 67,1088,64 |
/7 | 254.0.0.0 | 1.255.255.255 | 33,554,432 |
/8 | 255.0.0.0 | 0.255.255.255 | 16,777,216 |
/9 | 255.128.0.0 | 0.127.255.255 | 8,388,608 |
/10 | 255.192.0.0 | 0.63.255.255 | 4,194,304 |
/11 | 255.224.0.0 | 0.31.255.255 | 2,097,152 |
/12 | 255.240.0.0 | 0.15.255.255 | 1,048,576 |
/13 | 255.248.0.0 | 0.7.255.255 | 524,288 |
/14 | 255.252.0.0 | 0.3.255.255 | 262,144 |
/15 | 255.254.0.0 | 0.1.255.255 | 131,072 |
/16 | 255.255.0.0 | 0.0.255.255 | 65,536 |
/17 | 255.255.128.0 | 0.0.127.255 | 32,768 |
/18 | 255.255.192.0 | 0.0.63.255 | 16,384 |
/19 | 255.255.224.0 | 0.0.31.255 | 8,192 |
/20 | 255.255.240.0 | 0.0.15.255 | 4,096 |
/21 | 255.255.248.0 | 0.0.7.255 | 2,048 |
/22 | 255.255.252.0 | 0.0.3.255 | 1,024 |
/23 | 255.255.254.0 | 0.0.1.255 | 512 |
/24 | 255.255.255.0 | 0.0.0.255 | 256 |
/25 | 255.255.255.128 | 0.0.0.127 | 128 |
/26 | 255.255.255.192 | 0.0.0.63 | 64 |
/27 | 255.255.255.224 | 0.0.0.31 | 32 |
/28 | 255.255.255.240 | 0.0.0.15 | 16 |
/29 | 255.255.255.248 | 0.0.0.7 | 8 |
/30 | 255.255.255.252 | 0.0.0.3 | 4 |
/31 | 255.255.255.254 | 0.0.0.1 | 2 |
/32 | 255.255.255.255 | 0.0.0.0 | 1 |
CIDR(サイダー、Classless InterーDomain Routing)
これまでの例のように、プレフィックス・サブネットマスク・ワイルドカードマスクを用いてネットワークの大きさを表すことを、CIDR(サイダー、Classless InterーDomain Routing)といいます。次項で説明する「ネットワーククラス」というものを無視してネットワークの大きさを決める方法です。
現在では当たり前にCIDRを使っているので、あえてCIDRと明示することは珍しいです。よって、「CIDR」という文字を見ることはあまりありませんが、単語は覚えておきましょう。
ネットワークのクラス
これは、正直なところ今ではあまり使われることはありません。現在では、前項のCIDRが使われることが一般的だからです。
しかし、使われないながらも覚えておくべきことがあります。以下の2点です。
- ネットワークの大きさが明示されなければ、第1オクテットの数字でネットワークの大きさが決まる。
- 特別な用途のために予約されているアドレスがある。予約済みアドレスは、原則は自由に使うことができないアドレスである。
以下、個別に解説します。たまにネットワーククラスの話題が出ることもありますので、念のため覚えておきましょう。
クラスA
クラスAのアドレスは、
0.0.0.0 ~ 127.255.255.255
の範囲のアドレスで、インターネット上で使われます。2進数で表すと、最初の1桁が「0」となるアドレスです。
このアドレス帯のIPアドレスは、指定がなければ「/8」の約1700万個のアドレスを収容するネットワークに所属するアドレスとして扱われます。
よって、「1.2.3.4」とだけ書いたら「『1.0.0.0/8』のネットワーク内にあるホスト『1.2.3.4』」として扱われます。
クラスB
クラスBのアドレスは、
128.0.0.0 ~ 191.255.255.255
の範囲のアドレスで、インターネット上で使われます。2進数で表すと、最初の2桁が「10」となるアドレスです。
このアドレス帯のIPアドレスは、指定がなければ「/16」のネットワーク(約6万5千アドレス収容)に所属するアドレスとして扱われます。
「128.1.2.3」とだけ書くと「『128.1.0.0/16』ネットワークに所属する『128.1.2.3』というホスト」として扱われます。
クラスC
クラスCのアドレスは、
192.0.0.0 ~ 223.255.255.255
の範囲のアドレスで、インターネット上で使われます。2進数で表すと、最初の3桁が「110」となるアドレスです。
このアドレス帯のIPアドレスは指定がなければ「/24」(256アドレス収容)扱いとなります。192.1.2.3 であれば、「192.1.2.0/24」ネットワーク内のホスト「192.1.2.3」になります。
クラスD
クラスDのアドレスは、
224.0.0.0 ~ 239.255.255.255
の範囲のアドレスで、マルチキャスト用のアドレスです。2進数で表すと、最初の4桁が「1110」となるアドレスです。
ネットワークエンジニアの業務では、ルーティングプロトコルの経路広告などで224.から始まるアドレスが度々使われます。
クラスE
クラスEのアドレスは、
240.0.0.0 ~ 255.255.255.255
の範囲のアドレスです。2進数で表すと、最初の4桁が「1111」となるアドレスです。
これは将来何らかの用途で使うことを想定して、現在インターネット上では使われていないアドレス帯です。
ネットワークアドレスとブロードキャストアドレス
パソコンの台数などによってネットワークの大きさ(プレフィックス)を決定する際に、注意点があります。それは、
ネットワーク内のアドレスには、ネットワークアドレスとブロードキャストアドレスとして使われるアドレスがあるため、実際にホストに割り当てできるアドレス数はネットワーク内のアドレスから2を引いた数
ということです。
ネットワークアドレスとは「そのネットワークを指定するアドレス」を意味し、ネットワーク内の最初のアドレスです。例:200.0.0.0/24 のネットワークであれば「200.0.0.0」
ブロードキャストアドレスとは「そのネットワーク内の全てのホスト宛のアドレス」を意味し、ネットワーク内の最後のアドレスです。例:200.0.0.0/24 のネットワークであれば「200.0.0.255」
このネットワークアドレスとブロードキャストアドレスは、ホスト(パソコンやサーバ)に割り当てることができません。
したがって、実際のホスト(パソコンやサーバ)に割り当て可能なIPアドレスの数は、ネットワーク内のアドレスから2を引いた数字になります。(200.0.0.0/24 であれば、256 引く 2 で254個のアドレスが割り当て可能)
グローバルIPアドレスとプライベートIPアドレス
こちらは、原則インターネットで使われている区分です。インターネット上では、グローバルIPアドレスしか使われず、プライベートIPアドレス宛てのパケットはインターネット上では破棄されます。
インターネットのほか、家庭内のLANや、中小企業の社内ネットワークでもよく使われます。
大企業で使われる大規模なグループ企業内システムのアドレス設計では、無視されて設計されていることも多いです。
クラスAのプライベートアドレスは、
10.0.0.0/8
です。
クラスBのプライベートアドレスは、
172.16.0.0/16
172.17.0.0/16
172.18.0.0/16
・・・
172.30.0.0/16
172.31.0.0/16
の16個のネットワークです。
クラスCのプライベートアドレスは、
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
・・・
192.168.254.0/24
192.168.255.0/24
の256個のネットワークです。
IPアドレスが割り当てられる場所
「IPアドレスがどこに割り当てられるか?」と聞いて即答できるでしょうか?
「パソコンやサーバでしょ?」と思ったら、もう少々丁寧な理解が必要です。
IPアドレスが割り当てられるのは、一般的にはコンピュータ本体ではなく、インターフェース(I/F)です。
I/Fとは、LANケーブルの差込口、光回線の差込口、無線LANカードなどです。
例えば、1台のルータにケーブルが4本刺さっていれば、そのルータはそれぞれのI/Fで別々のIPアドレス(合計4個)を持ちます。
ただし、例外としてネットワーク機器自体がIPアドレスを持つ場合もあります。これをループバックアドレスと言います。
※ループバックアドレスも「ループバックインターフェース」というI/Fに割り当てられたアドレスです。
とにかく、原則はコンピュータ自体に割り当てられるものではなく、I/Fに割り当てられるものと覚えましょう。
おわりに
IPアドレスについての解説は以上です。
こちらは、ネットワークの理解において基礎となりますので、何度も記事を読んで、必ず覚えましょう!
ややこしくて辛いと思いますが、その後の理解スピードが全く違ってきますので、ここで気合を入れましょう!
それでは (*゚▽゚)ノ