ホストアドレス

読み:ほすとあどれす / 英語表記:host address

IPv4アドレスのうち、ネットワークの中の個々の機器を識別するホスト部の値。IPv4アドレスaとサブネットマスクmから、a AND (NOT m)で求められる。

イマシルちゃんの解説

IPv4アドレスには、どのネットワークに属するかを示すネットワーク部と、その中の機器を区別するホスト部があるんだ。
その機器を区別する部分の値を、この記事ではホストアドレスと呼ぶよ。
境目を示すサブネットマスクは、取り出す位置を決める型紙のように使えるんだ。
まずマスクの各ビットを反転するNOT演算で、残したい側だけが1になるようにするよ。
次にIPv4アドレスとAND演算をするんだ。
ANDは両方が1のときだけ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アドレス)0100101175
m(サブネットマスク)11000000192
NOT m0011111163
ネットワーク部0100000064
ホスト部0000101111
ホスト部をすべて101111111127

ネットワークアドレス 192.168.10.64、ホストアドレス(ホスト部の値)11、ブロードキャストアドレス 192.168.10.127 となる。ネットワークアドレスとホスト部の値を足すと、元のIPアドレスに戻る(64 + 11 = 75)。

間違えやすい式

式結果
~a & mIPアドレスを反転させたもののネットワーク部。意味のない値
~a | m意味のない値
a & ~mホストアドレス(正しい)
a | ~mブロードキャストアドレス

反転させるのは、IPアドレスではなくサブネットマスクのほうである。

ホスト部のビット数と使えるアドレス数

ホスト部のビット数をnとすると、ホストに割り当てられるアドレスの数は 2^n − 2 である。ホスト部がすべて0(ネットワークアドレス)と、すべて1(ブロードキャストアドレス)は、ホストに割り当てられないためである。

プレフィックス長ホスト部のビット数割り当てられるホスト数
/248254
/26662
/28414
/3022

IPv6の場合

IPv6では、ホスト部に当たる部分をインタフェースIDと呼び、通常は下位の64ビットである。上位の64ビット(プレフィックス)がネットワークを表す。

実際の試験ではここに出る!全8問

ネットワークスペシャリスト

午前Ⅱ

テクニカルエンジニア(ネットワーク)

午前

この用語が出てくる記事

↑