※当サイトの記事には、広告・プロモーションが含まれます。

CIDR(Classless Inter-Domain Routing)とVLSM( Variable Length Subnet Mask )の関係は?

f:id:ts0818:20201204232209j:plain

合掌造り(がっしょうづくり)は、日本住宅建築様式の一つである。急勾配の屋根を持つことがしばしばであるが、現存する合掌造りの屋根は45度から60度まで、傾きにかなりの幅がある

合掌造り - Wikipedia

白川郷・五箇山の合掌造り集落(しらかわごう・ごかやまのがっしょうづくりしゅうらく)は、地方白川郷五箇山にある合掌造りの集落群である。1995年(平成7年)12月9日ユネスコ世界遺産文化遺産)に登録され、日本では6件目の世界遺産となった。

白川郷・五箇山の合掌造り集落 - Wikipedia

⇧「世界遺産」になってたんだ。

かの有名な建築家「ブルーノ・タウト」に、 

これらの家屋は、その構造が合理的であり論理的であるという点においては、日本全国を通じてまったく独特の存在である。— ブルーノ・タウト、「日本建築の基礎」(於華族会館、1935年(昭和10年)10月)

白川郷・五箇山の合掌造り集落 - Wikipedia

⇧「合理的」且つ「論理的」と言わしめたそうな。

そんなこんなで、「IPアドレス」関連について調べてみました。レッツトライ~。 

 

CIDR(Classless Inter-Domain Routing)って?

Wikipediaさんによりますと、

Classless Inter-Domain RoutingCIDRサイダー)は、インターネット上のルーターにおけるルーティングテーブルの肥大化速度を低減させるための機構であり、ISPや組織にクラスA、B、Cを全部ではなく部分的に割り当てることでIPアドレスの浪費を防ぐ機構である。CIDR記法でアドレスを記述でき、アドレスの集約的表現が可能で、アドレスブロックの委譲も容易である。

Classless Inter-Domain Routing - Wikipedia

⇧ ってな感じで、

  • インタネット上のルーターにおけるルーティングテーブルの肥大化の抑制
  • IPアドレスの浪費の抑制

 が目的で生み出された機構らしい。

何で「CIDR」が必要になったかと言うと、

IPアドレスは、ネットワーク上ではプレフィックスホストアドレスに分けて認識される。かつては、32ビットのIPアドレスをオクテット(8ビット)ずつに分け、プレフィックスに8ビット、16ビット、24ビットのいずれかを割り当てていた。したがって、割り当てとルーティングの最小ブロック(クラスC)では、256個のアドレスしかなく、多くの企業では少なすぎた。また、その次の大きさのブロック(クラスB)では65,536個のアドレスがあり、比較的大きな組織でもこれを全部活用するのは困難である。

Classless Inter-Domain Routing - Wikipedia

⇧ ってな感じで、既存のルールでの運用が辛い、ってことが分かって来たと。

このことから、アドレスの使用と同時にルーティングにおいても効率低下を招いた。というのは、膨大な数のクラスCネットワークがそれぞれルート情報を発行し、しかもルーティングを集約しようにも対象となるブロックが地理的に分散していたため、ルーティング処理の増大を招いたのである。

Classless Inter-Domain Routing - Wikipedia

⇧ おまけに、レスポンスに影響してしまうってことね。

そもそも「IPアドレス」が「クラス」分けされたのは、「RFC(Request for Comments)」で決められたことなんですって。

Request for Comments(リクエスト フォー コメンツ、略称:RFC)はIETF(Internet Engineering Task Force)による技術仕様保存、公開形式である。内容には特に制限はないが、プロトコルファイルフォーマットが主に扱われる。RFCとは「コメント募集」を意味する英語の略語であり、もともとは技術仕様を公開し、それについての意見を広く募集してより良いものにしていく観点から始められたようである。全てのRFCインターネット上で公開されており、誰でも閲覧することができる。

Request for Comments - Wikipedia

⇧ まぁ、公正正大に閣議されたものっぽいですと。

そんな「IPアドレス」の「クラス」ですが、2020年12月4日(金)時点では、

クラス アドレス範囲 アドレス 仕様 用途
(先頭ビットの値) 
ネットワーク ホスト
A 0.0.0.0 -
127.255.255.255
8 bit 24 bit  RFC 791  (0-で始まる)
B 128.0.0.0 -
191.255.255.255
16 bit 16 bit  RFC 791  (10-で始まる)
C 192.0.0.0 -
223.255.255.255
24 bit 8 bit  RFC 791  (110-で始まる)
D 224.0.0.0 -
239.255.255.255
不明 不明  RFC 1112  IPマルチキャスト専用
(1110-で始まる)
E 240.0.0.0 -
255.255.255.255
不明 不明  RFC 1112  将来使用の予約
(1111-で始まる)

⇧ ってな感じ。「IPアドレスIPv4)」は、「アドレスのネットワーク部」+「アドレスのホスト部」を足して「32 bit」になるんですが、

tonetsutomu.com

>②32ビットを4つに分けて、それぞれが8ビットになっていますが、
>  なぜ、4つに分けなければならなかったのでしょうか?

この理由はよくわかりませんね。
でも,8ビットずつ四つに分けて表記する方法は,
RFC791によってクラスの考え方が出てきた頃のような雰囲気です。
RFC790にASSIGNED NUMBERSの一覧がありますが,
そこでは四つに分けた表記なんですが,一つ前のRFC776では違う表記です。
クラスの導入によって,8ビットずつ分けるのが便利だったということじゃないかしら。

上の二つは,RFCやIENをざっと眺めて書いているだけなので,
もしかしたら間違っているかもしれません。
知っている方いたらフォローお願いします。

IPアドレスのことで教えてください | 戸根勤のネットワーク情報

⇧「8 bit」ずつに4分割された理由については、ハッキリしない模様。

脱線しまくりましたが、「クラス」でグルーピングしたIPアドレスは、「クラスフル」とも言われるようですが、今回の「CIDR(Classless Inter-Domain Routing)」ってのは名前の通り、「クラスレス」ってことで、以下のような特徴があるらしい。

CIDR は

  • VLSMを使って、任意の長さのプレフィックスを指定できる。CIDR記法では、IPアドレスの後ろにプレフィックスのビット数を記述する。例えば 192.168.0.0/16 などとする。これにより「IPアドレス枯渇問題」を緩和する。
  • 複数の連続するプレフィックスを集約してスーパーネット化し、インターネット上のグローバルなルーティングテーブルのエントリ数を削減する。集約はサブネットの複数階層を隠蔽するもので、VLSMによる「サブネットのサブネット化」とは逆のプロセスである。
  • 組織内でのアドレスブロックの割り当てが、クラスに縛られずに柔軟に行えるようになる。

IPv6では、IPv4 の CIDR 方式を踏襲しており、クラスの概念は存在しない。

Classless Inter-Domain Routing - Wikipedia

⇧ ってな感じで、「プレフィックス」ってのは「アドレスのネットワーク部」のことだと思うんだけど、「クラスフル」の時は、「8 bit」「16 bit」「24 bit」のパターンで固定されてたんだけど、「CIDR」は「アドレスのネットワーク部」を任意に決めて良いってことらしい。

 

VLSM(Variable Length Subnet Mask)って?

んで、「CIDR(CIDR(Classless Inter-Domain Routing))」の説明でしれっと出てきた「VLSM(Variable Length Subnet Mask)」 って何なのよ?

Classless Inter-Domain Routing(CIDR) は「可変長サブネットマスク (variable-length subnet masking; VLSM)」に基づき、プレフィックスを可変長で割り当て可能にした。可変長サブネットマスクは RFC 950 (1985年)で言及されている。

Classless Inter-Domain Routing - Wikipedia

⇧ ってな感じで、「RFC 950」を眺めてみたけど、この頃「variable-length subnet masking」って言葉が無かったのか、「RFC 950」の文書のどの辺のことをWikipediaさんが意図してたのかよう分からんかったのよ...

 

その前に、「可変長」があるってことは、「固定長」もあるんじゃね?

www.atmarkit.co.jp

FLSM(Fixed Length Subnet Mask)

 サブネットマスクは、最も多くのIPアドレスを必要とするサブネットに合わせ、すべてのサブネットで同じサブネットマスクを利用します。

可変長サブネットマスク(VLSM)と経路集約 (1/2):ネットワークの基礎を学習する CCNA対策講座(26) - @IT

⇧ ありました。

「可変長」は?

VLSM(Variable Length Subnet Mask)

 各サブネットに必要なIPアドレスに基づいて、サブネットごとに異なるサブネットマスクを利用します。

可変長サブネットマスク(VLSM)と経路集約 (1/2):ネットワークの基礎を学習する CCNA対策講座(26) - @IT

⇧ ってな感じですと。

 

VLSM(Variable Length Subnet Mask)の何が嬉しいの?

サブネット化の方法に、

  • FLSM(Fixed Length Subnet Masking)
  • VLSM(Variable Length Subnet Masking)

の2種類あるのが分かったんですが、「VLSM(Variable Length Subnet Masking)」を使うと何が嬉しいのか?

ズバリ「無駄なIPアドレスの発生を抑制できる」ということみたい。

どういうことかと言うと、

⇧上図のような構成の場合、「アドレスのネットワーク部」が「24 bit」なので、「アドレスのホスト部」は「8 bit」なので、マシンに割当てできる「IPアドレス」は、

 2^8 = 256

から、「ネットワークアドレス」「ブロードキャストアドレス」で使用される「2」個を差し引いた「254」個になりますが、「A」「B」「C」「D」は見た感じ、「ルーター」っぽいので、各々の「1:1」で紐づきそうなので、「IPアドレス」は「2」つあれば事足りそう。

つまり、残りの「252」個 × 3の「IPアドレス」は使用されることなく無駄になるという。 

これが、「VLSM(Variable Length Subnet Masking)」だと、

⇧ 上図のように、「アドレスのネットワーク部」を「30 bit」とかにすることもできるため、「アドレスのホスト部」は「2 bit」となり、マシンに割当てできるIPアドレスは、

 2^2 = 4

から、「ネットワークアドレス」「ブロードキャストアドレス」で使用される「2」個を差し引いた「2」個になり、使用されない「IPアドレス」は発生しないと。

「CIDR(Classless inter-Domain Routing)」で「アドレスのネットワーク部」が固定されないことと、「VLSM(Variable Length Subnet Masking)」によって、「IPアドレス」は救われたのであった。

 

「VLSM(Variable Length Subnet Masking)」の考え方としては、

⇧ 上図のように、「IPアドレス」の一部を「サブネット化」して「アドレスのホスト部」の割り当てを減らしていくイメージですかね。

「172.16.14.0/24」のままだと、「アドレスのホスト部」は「256」個なので、「ネットワークアドレス」「ブロードキャストアドレス」の「2」個を差し引いた「254」個の「IPアドレス」が割り当て可能ということになるけど、「サブネット化」し、「172.16.14.0/27」にすると、「サブネット部」が「3 bit」で「アドレスのホスト部」は「5 bit」になるので、「ネットワーク」の数は増えるけども「ネットワーク」に属する「IPアドレス」の数は減っていく感じですかね。

 

「VLSM(Variable Length Subnet Masking)」の利用には条件があり、

 VLSMを利用できるルーティングプロトコルはRIPv2、OSPF、EIGRPなどのクラスレスルーティングプロトコルです。これらのルーティングプロトコルは、ルーティングアップデートにサブネットマスクを含めて送信できるため、異なるサブネットマスクを混在させることができます。これに対して、RIPv1、IGRPなどのクラスフルルーティングプロトコルは、ルーティングアップデートにサブネットマスクが含まれないため、サブネットマスクの整合性、つまりネットワーク全体で同じサブネットマスクを使用することが前提となります。

可変長サブネットマスク(VLSM)と経路集約 (1/2):ネットワークの基礎を学習する CCNA対策講座(26) - @IT

⇧ 利用できる「ルーティングプロトコル」が決まっているんだそうな。

 

ちなみに、「サブネット化」を繰り返していくと「IPアドレス」の無駄を削減できるのは分かったんだけど、「ネットワーク」の数は増えていくよね、ってことでこれは問題ないのか?

ネットワークの規模が大きくなって、サブネットワークの数が増えてくると、ルーティングテーブルに登録するネットワーク数も多くなり、多くのメモリを必要とします。

可変長サブネットマスク(VLSM)と経路集約 (1/2):ネットワークの基礎を学習する CCNA対策講座(26) - @IT

⇧ 諸刃の剣だったのか...

と思いきや、

経路集約を行うと複数のネットワークアドレスを1つのネットワークアドレスに集約して対向側のルータへ通知することができます。

可変長サブネットマスク(VLSM)と経路集約 (1/2):ネットワークの基礎を学習する CCNA対策講座(26) - @IT

⇧「経路集約」という手法があるんだそうな。

 

ネットワークは相変わらず、よく分からんけれど、 

  • CIDR(Classless inter-Domain Routing)
  • VLSM(Variable Length Subnet Masking)
  • 経路集約(スーパーネット化)

は組み合わせていくべきなんですかね。

本日もモヤモヤ感が半端ないですが... 

今回はこのへんで。