本サイトはPRが含まれています。
-
IPアドレスはネットワーク上の住所
-
元はコンピュータが理解出来る2進数の数字
-
サブネットマスクをつけてセグメント情報も付与
ネットワークの教科書に出てくるIPアドレス。何となくで見ているけど、ちゃんと理解できていないかも・・・
チャーチルさん
ポン先生
IPアドレスはネットワークだけじゃなく、全てのITエンジニアが知っておくべき基本的な知識だね。
本記事ではIPアドレスの基本から解説します。全員が履修すべき基礎知識なので必ず理解しましょう。
HAL校長
目次
IPアドレスとは
IPアドレスとはネットワーク上の住所
まず結論から。IPアドレスはネットワーク上の住所です。住所が無いと相手に何も送ることができないのと同じでネットワーク上でも住所が必要になります。アドレス=Address=住所ですしね。
ただし現実世界の住所と違うのはその表現方法です。人間が分かる住所は例えば
東京都港区芝公園4丁目2−8
のような文字列ですがIPアドレスは
192.168.100.1
のような数字です。
ネットワークは直接的には人間ではなくコンピュータが接続するので、コンピュータが理解できる数字で表現されます。どういった規則で表現されるのか具体的に見ていきましょう。
IPアドレスの表現方法
2進数について
IPアドレスの前にまずは進数について説明します。普段皆さんが使っている数字は10進数と言われるものです。なぜ10かと言うと1桁あたり0~9の10種類の数で表現されるためです。
例えば123という数字は
123 = 1×100+2×10+3×1
と分解できます。100の位は1、10の位は2、1の位が3個という組み合わせで123は表現されます。ここはすんなり理解できるでしょう。
ですがコンピュータはこの10進数を直接的には理解できません。コンピュータの世界では0と1(OFFかONか)しか無いのです。普段PCやスマートフォンで数字や文字を入力していても内部ではこのように0 or 1に変換されています。
このように0と1だけの数字は2進数と言います。10進数と同じ言い方をすれば、一桁あたり0~1の2種類の数で表現されます。
※以降は便宜上、()内の数字で進数を示します。
例えば6(10)= 110(2)です。これは
6(10)= 1×4+1×2+0×1 = 110(2)
という意味になります。10進数のときは各桁は1、10、100、1000ですがこれは
100=1、101=10、102=100、103=1000
から来ています。
※0乗がなぜ1になるか知らない人は不思議に思うかもしれませんが、ここでは割愛します。とりあえずそうなるんだなぁ程度で大丈夫です。
同様に2進数の世界では
20=1、21=2、22=4、23=8
のため各桁は1、2、4、8・・・となります。以下は0~10の比較表です。
10進数 | 2進数 |
---|---|
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
10 | 1010 |
ポン先生
人間の感覚だと分かりにくいけどコンピュータはデジタルな電気信号で動いているから0or1の方が都合が良いのだね
IPアドレスの表現
2進数について分かったところでIPアドレスについて見ていきましょう。IPアドレスは元は以下のような32bitの数字です。
※bitというのは2進数の場合の各桁の事です。32bitは2進数で32桁ということですね。
① 11000000101010000110010000000001
このままだと分かりにくいので8bit×4グループに分割します。
② 11000000.10101000.01100100.00000001
これを8bitずつ10進数へ変換します。
③ 192.168.100.1
これでIPアドレスの完成です。
①、②だとさすがに普段は人間目線では使いにくいですが③であればドキュメントに書いたり機器に設定したりも楽ですよね。②も③も情報としては同じ内容ですが一般的にIPアドレスといえば③で記載されます。
.(ドット)で区切られた8bitのグループをオクテットと言います。そのため1オクテットあたり256個(0~255)あります。256というのは28ですね。
そのため全て書こうとすればIPアドレスは(実際はこうゆう使い方はしませんが)0.0.0.0~255.255.255.255の範囲となります。
ネットワークセグメント
もう少しネットワークやIPアドレスの表記について深堀りしていきます。現実世界の住所は
東京都港区芝公園4丁目2−8
のように書きますが、これは
東京都 > 港区 > 芝公園 > 4丁目2−8
のように階層化できます。例えば東京都に行く、と言うよりも東京都の港区に行く、さらには東京都の港区の芝公園の4丁目2−8に行くと言った方が具体的で分かりやすく正確ですよね。
ネットワークの世界でもある程度の大きさでグループ分けした方が管理しやすいのです。具体的には複数のIPアドレスを束ねてグルーピングします。これをネットワークセグメントと言います(以下セグメント)。例えば128個でまとめたり、256個でまとめたりです。
※2進数なので2の累乗個になります。
次の章で具体的な書き方を見ていきます。
サブネットマスク
上記のセグメントとIPアドレスを紐付けるのがサブネットマスクです。先に書き方だけ記載します。例えば192.168.100.0~192.168.100.255のIPアドレス256個のセグメントを表現する場合は
192.168.100.0/24
と記載します。この/24がどういった意味なのかを説明します。まず、IPアドレスにはネットワーク部とホスト部があります。
192.168.100.1
ネットワーク部 ホスト部
ネットワーク部はセグメントを表す情報です。例えば192.168.100.0~192.168.100.255の例だと192.168.100は共通部分ですよね。この共通部分のことをネットワーク部と呼びます。
ホスト部はIDのようなものです。上記の例だと192.168.100のセグメントの中の1番ということです。
上記は192.168.100.1が/24の場合の説明です。しかし単純に192.168.100.1と書かれているだけではどこまでがネットワーク部でどこからがホスト部か分かりませんよね?そこで追加される情報がサブネットマスクです。サブネットマスクによってネットワーク部とホスト部の境界が分かるようになります。
一言で言うと、サブネットマスクはネットワーク部を1にした32bitの数字です。ちょっとこれだけだと分からないので以下解説です。
まず、サブネットマスクもIPアドレスと同様32bitの数字です。そしてIPアドレスのネットワーク部に相当する位置を1に、ホスト部に相当する位置を0にします。IPアドレスとサブネットマスクを掛け算すると、サブネットマスクの1の部分だけが残るのでその部分がネットワークアドレスになります。
IPアドレス(192.168.100.1)・・・・・11000000.10101000.01100100.00000001
×(掛け算)
サブネットマスク(255.255.255.0)・・11111111.11111111.11111111.00000000
||
ネットワーク部(192.168.100.0)・・・11000000.10101000.01100100.00000000
上記の255.255.255.0がサブネットマスクになります。このままでも良いですが、長いので/24と書く方が多いです。/xxの書き方をCIDR表記と言います。
2進数の掛け算についてはイメージしにくいかもしれませんが以下パターンしか無いです。
- 1×1=1
- 1×0=0
- 0×1=0
- 0×0=0
要は1×1以外は全て0になるということだね
チャーチルさん
以下はサブネットマスクの一覧です。/xxの数字が小さいほど、「利用可能なIPアドレスの数が多い=大きいセグメント」であることが分かります。
サブネットマスク | CIDR表記 | IPアドレス数 |
---|---|---|
128.0.0.0 | /1 | 2147483648 |
192.0.0.0 | /2 | 1073741824 |
224.0.0.0 | /3 | 536870912 |
240.0.0.0 | /4 | 268435456 |
248.0.0.0 | /5 | 134217728 |
252.0.0.0 | /6 | 67108864 |
254.0.0.0 | /7 | 33554432 |
255.0.0.0 | /8 | 16777216 |
255.128.0.0 | /9 | 8388608 |
255.192.0.0 | /10 | 4194304 |
255.224.0.0 | /11 | 2097152 |
255.240.0.0 | /12 | 1048576 |
255.248.0.0 | /13 | 524288 |
255.252.0.0 | /14 | 262144 |
255.254.0.0 | /15 | 131072 |
255.255.0.0 | /16 | 65536 |
255.255.128.0 | /17 | 32768 |
255.255.192.0 | /18 | 16384 |
255.255.224.0 | /19 | 8192 |
255.255.240.0 | /20 | 4096 |
255.255.248.0 | /21 | 2048 |
255.255.252.0 | /22 | 1024 |
255.255.254.0 | /23 | 512 |
255.255.255.0 | /24 | 256 |
255.255.255.128 | /25 | 128 |
255.255.255.192 | /26 | 64 |
255.255.255.224 | /27 | 32 |
255.255.255.240 | /28 | 16 |
255.255.255.248 | /29 | 8 |
255.255.255.252 | /30 | 4 |
255.255.255.254 | /31 | 2 |
255.255.255.255 | /32 | 1 |
諸々踏まえると、192.168.100.1/24と書けば以下情報が分かります。
- IPアドレスは192.168.100.1であること
- ネットワーク部は192.168.100であること
因みに上記の場合、IPアドレスの範囲は192.168.100.0~192.168.100.255の256個ですが実際に端末で利用可能なIPアドレスは192.168.100.1~192.168.100.254の254個です。残りの2個はそれぞれ以下になります。
- 192.168.100.0・・・ネットワークアドレス(セグメントそのものを表す)
- 192.168.100.255・・ブロードキャストアドレス(セグメント内全体と通信する時に使う)
そのためセグメント自体を表す時は192.168.100.0/24と記載します。実際の会話の中では192.168.100.0/24の前提があれば192.168.100.1 = 192.168.100.1/24であることは分かるので、わざわざ192.168.100.1/24と書かなくても済みます。
ネットワークエンジニアを目指すならCCNAを取得しよう!
CCNAとはCisco社のメーカ認定資格です。CCNAの取得はネットワークエンジニアの基本的な知識やCisco製品の理解の証明になります。
特定メーカの資格で役に立つの?実際には他メーカの機種も扱うんじゃないの?
チャーチルさん
ポン先生
確かに業務上Cisco以外の機器を扱うことはあるだろうけど、最初にCiscoを勉強しておくと他の機器も理解しやすくなるんだ。
Ciscoは数あるネットワーク機器メーカの内の1社ですがディファクトスタンダードと言われています。つまり業界標準として位置付けられており、他メーカ機種でもCiscoのコマンドライン等を参考にしている事が多いです。そのため初見の機器でもCiscoと設定方法が似ており、「大体は分かる」なんてケースも多々あります。ネットワークエンジニアとしてはCiscoの学習はむしろ必須と言えるレベルでしょう。
また、Ciscoの資格と言っても独自仕様や製品の話だけでなく、ネットワークの一般的な知識も必要です。Cisco製品と言えベースはネットワークの標準規格に基づいて設計されており、CCNA取得でネットワークの一般的な知識も習得可能です。
上記理由からCCNAは非常におすすめの資格です。ネットワークエンジニアとして本格的に活躍したいのであれば是非チェックすべきでしょう。
【CCNAとは】難しい?勉強は?Cisco資格の登竜門 基本解説
まとめ
- IPアドレス
- IPアドレスはネットワーク上の住所
- コンピュータが理解できるよう中身は2進数(表示上は10進数で書いてOK)
- 8bit×4グループの数字で表現される
- セグメント
- IPアドレスの集合体がセグメント
- セグメント情報も表現できるようサブネットマスクを記載する
今回はIPアドレスの基本についてまとめました。正確に書こうとするとどうしても数式や計算も出てきますが、全ITエンジニア必須知識なので必ず理解しておきましょう。特にネットワークエンジニアであれば2進数世界と10進数世界を行ったり来たりできるようにもしておきましょう。