第2章 アドレスのしくみ|2-3|コース全体 19回中7本目
サブネットマスクの計算のやり方
/26 だとホストは何台? を自力で解けるようになるための記事です。定義の説明は最小限にして、3ステップの手順と練習問題に絞っています。
サブネットマスクの計算は、3ステップで終わります
/26 のようなプレフィックス長から、そのネットワークに何台の機器を置けるかを出すには、 次の3ステップを踏むだけです。
- 1
ホスト部のビット数を出す
32 − プレフィックス長
- 2
アドレス総数を出す
2 のホスト部ビット数乗
- 3
ホスト数を出す
アドレス総数 − 2(ネットワークアドレスとブロードキャストを除く)
なぜ「ネットワーク部」と「ホスト部」に分けるのか
IPアドレスは32ビットの数字1つですが、そのままでは「どのネットワークの」「何番目の機器か」が区別できません。 そこで住所を「地域」と「号室」に分けるように、IPアドレスもネットワーク部(どのネットワークか)とホスト部(その中の何番目の機器か)に分けます。どこまでがネットワーク部かを示す境目が、サブネットマスク(/26 のようなプレフィックス長)です。
3ステップの中身
192.168.10.130/26 を例に、1ステップずつ進めます。
ステップ1:プレフィックス長からホスト部のビット数を出す
IPアドレスは全部で32ビットです。プレフィックス長がネットワーク部のビット数なので、残りを引くだけでホスト部のビット数が出ます。
ステップ2:2のべき乗でアドレス総数を出す
ホスト部が n ビットなら、そのビットで表せる組み合わせは 2ⁿ 通りです。 これがそのネットワークに含まれるアドレスの総数(ネットワークアドレスとブロードキャストを含む)になります。
ステップ3:ネットワークアドレスとブロードキャストを引いてホスト数を出す
64個のアドレスのうち、先頭の1つはネットワークアドレス(そのネットワーク自体を指す名前)、 末尾の1つはブロードキャストアドレス(そのネットワーク全員への呼びかけ)で、どちらも機器には割り当てません。 だから2を引きます。
| 項目 | 値 |
|---|---|
| IPアドレス | 192.168.10.130 |
| ネットワークアドレス | 192.168.10.128 |
| ブロードキャストアドレス | 192.168.10.191 |
| 割り当て可能な範囲 | 192.168.10.129 〜 192.168.10.190 |
| ホスト数 | 62台 |
計算機で答え合わせをする
まず自分の手で3ステップを計算してから、下のツールに同じ値を入れて答え合わせをしてください。 IPアドレスとプレフィックス長を変えれば、別の問題でも試せます。
2進数で見るとどうなるか
3ステップは10進数のまま計算できますが、コンピュータの内部ではIPアドレスとサブネットマスクのAND(論理積)でネットワークアドレスを求めています。 なぜそれで正しく求まるのかを、先ほどの例の第4オクテットで確認します。
| 値 | 第4オクテットの2進数 |
|---|---|
| IPアドレス(130) | 10000010 |
| サブネットマスク(192) | 11000000 |
| AND の結果(128) | 10000000 |
ANDは「両方が1のときだけ1」になる演算です。太字のホスト部は、マスク側が0なのでANDを取ると強制的に0になります。一方、上位2ビット(マスク側が1の部分)はIPアドレスの値がそのまま残ります。 つまりANDは「ネットワーク部はそのまま残し、ホスト部だけを0にする」ための計算です。 ホスト部を0にした結果が 128、これがステップ3で使ったネットワークアドレスの第4オクテットと一致します。
つまずきやすい点
なぜ −2 するのか
引く2つには、どちらも名前と役割があります。ネットワークアドレス(ホスト部が全部0)は そのネットワーク自体を指す名前で、特定の1台を指しません。ブロードキャストアドレス(ホスト部が全部1)は そのネットワークの全員への呼びかけに使う宛先で、これも1台に割り当てると混乱します。 だから機器に配れるのは、残りの「間」のアドレスだけになります。
/31 と /32 は例外(−2 しない)
/32 はホスト部が0ビット、つまりアドレス1個だけを指す指定です(特定の1台を名指しするACLなどに使います)。/31 はホスト部1ビットでアドレス2個しかなく、−2すると0台になってしまいます。 そこでRFC 3021により、ネットワークアドレスとブロードキャストという考え方自体を持たず、 2個とも機器に割り当てる例外になっています(ルータ同士を直結する区間などで使われます)。
プレフィックス長の数字が大きいほど、ネットワークは小さくなる
/25 や /26 のように数字が大きくなると、 感覚的には「範囲が広がりそう」に思えますが、逆です。プレフィックス長はネットワーク部のビット数なので、 大きくなるほどホスト部のビット数(32 − プレフィックス長)は減り、ネットワークは小さくなります。
早見表(/24〜/30)
| プレフィックス長 | サブネットマスク | ホスト部 | アドレス総数 | ホスト数 |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 8ビット | 256 | 254台 |
| /25 | 255.255.255.128 | 7ビット | 128 | 126台 |
| /26 | 255.255.255.192 | 6ビット | 64 | 62台 |
| /27 | 255.255.255.224 | 5ビット | 32 | 30台 |
| /28 | 255.255.255.240 | 4ビット | 16 | 14台 |
| /29 | 255.255.255.248 | 3ビット | 8 | 6台 |
| /30 | 255.255.255.252 | 2ビット | 4 | 2台 |
練習問題(全5問)
選んでから「採点する」を押すと、解説つきで答え合わせができます。
正解:4ビット
32 − 28 = 4ビットがホスト部です。
正解:32個
ホスト部は 32 − 27 = 5ビット。2⁵ = 32個です。
正解:172.16.5.0
/25 はブロックサイズ128。0〜127と128〜255の2つに分かれ、70は前半なのでネットワークアドレスは 172.16.5.0 です。
正解:2台
2^(32−30) = 4個から、ネットワークアドレスとブロードキャストを除いて 4 − 2 = 2台。ルータ同士を1対1で結ぶ区間でよく使われます。
正解:ネットワークアドレスとブロードキャストという考え方がなく、2つのアドレスとも機器に割り当てられる
/31 はRFC 3021で定められた例外です。ネットワークアドレスとブロードキャストを持たず、2つのアドレスの両方をポイントツーポイント回線の両端に割り当てます。