ホストアドレス
IPアドレスのうち、ネットワークの中の個々の機器を識別する部分(ホスト部)。IPアドレスaとサブネットマスクmから、a AND (NOT m)で求められる。
イマシルちゃんの解説
IPアドレスは「〇〇町」の部分(ネットワーク部)と、「〇番地」の部分(ホスト部)に分かれてるんだったね。
サブネットマスクは、町の部分が1、番地の部分が0になっている「型紙」みたいなもの。
この型紙をひっくり返して当てれば、番地の部分だけが取り出せるんだ。
これがホストアドレスだよ!
より深い解説
定義
IPv4アドレスは、上位のビットのネットワーク部と、下位のビットのホスト部からなる。ホスト部は、同じネットワークに属する機器(ホスト)を互いに区別するための部分である。ホスト部の値、またはネットワーク部を0にしてホスト部だけを残したアドレスを、ホストアドレスと呼ぶ。
どこまでがネットワーク部かは、サブネットマスク(またはプレフィックス長)で決まる。サブネットマスクは、ネットワーク部のビットが1、ホスト部のビットが0になっている。
ビット演算による求め方
IPアドレスをa、サブネットマスクをmとすると、次のように求められる。
| 求めるもの | 式 | 考え方 |
|---|---|---|
| ネットワークアドレス | a AND m | マスクの1の部分(ネットワーク部)だけを残す |
| ホストアドレス | a AND (NOT m) | マスクを反転させ、ホスト部だけを残す |
| ブロードキャストアドレス | a OR (NOT m) | ホスト部をすべて1にする |
プログラムの演算子で書くと、ホストアドレスは a & ~m、ブロードキャストアドレスは a | ~m である。
AND(論理積)は「両方が1のときだけ1」なので、0と組み合わせたビットは必ず0になり、1と組み合わせたビットは元の値が残る。ここから、AND演算は「1のビットの位置だけを取り出す」ふるいとして使える。
計算例
IPアドレス 192.168.10.75、サブネットマスク 255.255.255.192(/26)の場合(第4オクテットだけ)
| 2進数 | 10進数 | |
|---|---|---|
| a(IPアドレス) | 01001011 | 75 |
| m(サブネットマスク) | 11000000 | 192 |
| NOT m | 00111111 | 63 |
| ネットワーク部 | 01000000 | 64 |
| ホスト部 | 00001011 | 11 |
| ホスト部をすべて1 | 01111111 | 127 |
ネットワークアドレス 192.168.10.64、ホストアドレス(ホスト部の値)11、ブロードキャストアドレス 192.168.10.127 となる。ネットワークアドレスとホスト部の値を足すと、元のIPアドレスに戻る(64 + 11 = 75)。
間違えやすい式
| 式 | 結果 |
|---|---|
| ~a & m | IPアドレスを反転させたもののネットワーク部。意味のない値 |
| ~a | m | 意味のない値 |
| a & ~m | ホストアドレス(正しい) |
| a | ~m | ブロードキャストアドレス |
反転させるのは、IPアドレスではなくサブネットマスクのほうである。
ホスト部のビット数と使えるアドレス数
ホスト部のビット数をnとすると、ホストに割り当てられるアドレスの数は 2^n − 2 である。ホスト部がすべて0(ネットワークアドレス)と、すべて1(ブロードキャストアドレス)は、ホストに割り当てられないためである。
| プレフィックス長 | ホスト部のビット数 | 割り当てられるホスト数 |
|---|---|---|
| /24 | 8 | 254 |
| /26 | 6 | 62 |
| /28 | 4 | 14 |
| /30 | 2 | 2 |
IPv6の場合
IPv6では、ホスト部に当たる部分をインタフェースIDと呼び、通常は下位の64ビットである。上位の64ビット(プレフィックス)がネットワークを表す。
実際の試験ではここに出る!
- ネットワークスペシャリスト 令和6年度 春期 午前Ⅱ 問11
- ネットワークスペシャリスト 令和4年度 春期 午前Ⅱ 問12
- ネットワークスペシャリスト 令和3年度 春期 午前Ⅱ 問14
- ネットワークスペシャリスト 平成30年度 秋期 午前Ⅱ 問10