スーパーネット
連続する複数のネットワークを、より短いプレフィックス長の1つのネットワークとしてまとめたもの。経路表のエントリ数を減らすために使う。
イマシルちゃんの解説
1丁目、2丁目、3丁目、4丁目に、それぞれ別々の道案内の看板を立てるのは大変だよね。
「〇〇町(1〜4丁目)はこっち」って1枚の看板にまとめちゃえば、すっきりする!
スーパーネットは、こんなふうに、いくつかのネットワークをまとめて1つの大きなネットワークとして扱うことなんだ。
サブネットが「分ける」なら、スーパーネットは「まとめる」だよ!
より深い解説
定義
スーパーネットは、アドレスが連続する複数のネットワークを、それらに共通する上位のビット(共通プレフィックス)だけで表した、より大きな1つのネットワークである。スーパーネットを作ること(スーパーネッティング)は、CIDRによる経路集約(ルート集約)と同じ意味で使われる。
| 操作 | プレフィックス長 | ネットワークの大きさ |
|---|---|---|
| サブネット化 | 長くする(/24 → /26) | 小さく分ける |
| スーパーネット化 | 短くする(/24 → /22) | 大きくまとめる |
求め方
- まとめたいネットワークアドレスを2進数で書く(変化しているオクテットだけでよい)
- 上位から見て、すべてのアドレスで共通しているビットの数を数える
- 共通しているビット数をプレフィックス長とし、共通部分以外のビットを0にしたものをネットワークアドレスとする
例:10.20.8.0/24、10.20.9.0/24、10.20.10.0/24、10.20.11.0/24 を最小のスーパーネットにまとめる
| ネットワーク | 第3オクテット |
|---|---|
| 10.20.8.0 | 000010 00 |
| 10.20.9.0 | 000010 01 |
| 10.20.10.0 | 000010 10 |
| 10.20.11.0 | 000010 11 |
- 共通しているビット:8 + 8 + 6 = 22ビット
- ネットワークアドレス:10.20.8.0
- サブネットマスク:255.255.252.0
よくある間違い
| 間違い | 正しくは |
|---|---|
| ネットワークアドレスを、まとめた中の最後のネットワーク(10.20.11.0)にする | 共通部分以外を0にした、先頭のアドレスになる |
| 4つまとめるのに、/21(255.255.248.0)を選ぶ | /21は/24を8つ含む。4つなら/22で足りる |
| 4つまとめるのに、/23(255.255.254.0)を選ぶ | /23は/24を2つしか含まない |
/24のネットワークをn個まとめるには、2^k ≧ n となる最小のkを求め、/(24 − k) にする。4つなら k = 2 で /22 である。
「最小の」スーパーネット
まとめるネットワークの先頭が、まとめる数の倍数の位置にないと、共通ビットが少なくなり、余計なネットワークまで含む大きなスーパーネットになる。
例:10.20.9.0/24 ~ 10.20.12.0/24 の4つ
| 第3オクテット | 2進数 |
|---|---|
| 9 | 00001 001 |
| 12 | 00001 100 |
共通するのは上位5ビットだけなので、最小のスーパーネットは 10.20.8.0/21 となり、8.0、13.0~15.0 という、含めたくないネットワークまで入ってしまう。このような場合は、/24 と /23 と /24 のように、複数の経路に分けて集約するほうが正確である。
集約の効果と注意点
| 効果 | 内容 |
|---|---|
| 経路表の縮小 | ルータのメモリと検索の負荷を減らす |
| 安定性の向上 | 集約した内側のネットワークの1つが不安定になっても、外側には影響が伝わらない |
一方、集約した範囲の中に実際には存在しないネットワークがあると、そこ宛てのパケットも引き寄せてしまい、ルーティングループの原因になることがある。これを防ぐため、集約するルータでは、集約経路に対応する宛先を破棄する経路(Null0へのルート)を設定するのが一般的である。