クラスフル時代の問題とCIDRの登場
クラスフルアドレスの時代はサブネットマスクという概念が無く、IP アドレス帯によって『ネットワーク部』が自動的に決まっていました。
例えば、1.0.0.0~126.255.255.255 という IP アドレス帯は『クラス A』と呼ばれ、『ネットワーク部』は最初の 1 オクテット、『ホスト部』は残りの 2~4 オクテットでした。
つまり、今で言うところのサブネットマスク "/8" に自動でなっていました。
同様に128.0.0.0~191.255.255.255 は『クラス B』と呼ばれ、『ネットワーク部』は最初の 2 オクテット (つまり今で言うサブネットマスク "/16)、192.0.0.0~223.255.255.255 は『クラス C』と呼ばれ、『ネットワーク部』は最初の 3 オクテット (つまり今で言うサブネットマスク "/24") と自動的に決まっていました。
しかし時間が経つにつれ、『この割り当て方法では IP アドレスを有効に使えない』ということが徐々に分かってきました。
特にクラス A は理論上はホストが 1677 万台配置できますが、当然同一ネットワークにそれだけの IP 端末は配置できず、使わない IP アドレスは無駄に消費されてしまうのです。
この解決策として出てきたのが CIDR (読み方:サイダー) です。
これはクラスフルアドレスをサブネットマスクで細分化する概念です。
つまり、クラスフルの概念を取り払い、どの IP アドレス帯であっても、サブネットマスクによりネットワーク部を自由に決めて良い、とする概念です。
CIDR = サブネットマスクを使った、IP アドレスのネットワーク部を決定する方法と言っても良いです。
FLSMの登場
一方、この CIDR の概念では都合の悪いプロトコルが出てきました。それが RIP version1、IGRP、EGP 等の古いルーティングプロトコルです。
これらのルーティングプロトコルはクラスレスアドレスを想定しておらず、ルーティング情報を伝搬する際にネットワーク部の情報 (サブネットマスク) を渡すようにはなっていませんでした。
RIPv1 と RIPv2 のパケットフォーマットを下図に示します。RIPv2 には Subnet Mask の情報がありますが、RIPv1 には無いことが分かります。
しかしクラスレス (CIDR) 環境で RIP version 1 が一切使えないのも困る、使えるようにすればどうすればよいか、という課題への解決策が FLSM なのです。
この FLSM の考え方により、RIPv1 ルータは『もし自身のルータのインタフェースにクラスレスアドレスがあったら、そのクラスレスアドレスの元となったクラスフルアドレスから派生されるクラスレスアドレスは全て同じサブネットマスクだと解釈しよう!』という動作仕様になりました。
例えばルータのあるインタフェースが "192.168.10.2/28" というクラスレス IP アドレスを持っている場合、ルータは『この IP アドレスの派生元であるクラスフルアドレス "192.168.10.0/24" の範囲内の IP アドレスは全て "/28" のサブネットマスクで分割されている』と決めつけて動作しますし、NW 設計者はそれを汲み取り、設計をしなければなりません (そうしないとうまくルート情報伝搬ができない)。
この FLSM というルールを順守することにより、クラスレスアドレス環境で、クラスフルのみを意識したルーティングプロトコルを問題なく動作させる (ルート情報を伝搬させる) ことができるわけです。
これが FLSM (Fixed Length Subnet Mask) の考え方です。
つまり、FLSM とは、クラスレスアドレスの環境において、クラスフルアドレスのみを想定したルーティングプロトコルをうまく動作させるための暫定措置のルールなのです。
RIP version 1、IGRP , EGP は『クラスフルルーティングプロトコル』と呼ばれ、いずれもルーティング情報交換の際にサブネットマスクを伝搬せず、この FLSM の考え方で動作します。
この結果、RIP version 1 では、異なるクラスフルアドレスを伝搬する際は、(相手がそのサブネットマスクを理解できないので) 自動集約でお茶を濁す、という動作をします。
しかしその際、相手が別のインタフェースで同じクラスフルアドレス内の別のクラスレスアドレスを持っていた場合、お互いに自動集約ルートを送り合うことになり、ルーティングループの危険性を伴います。
なので、このような『クラスレスアドレスを、別のクラスフルアドレスで分断する』設計は VLSM のルール違反として、ルーティングテーブルには載せません。
必ず、同じクラスフルアドレス内のクラスレスアドレスで連続して、ルータ同士を結ぶ必要があります。
例えば以下のケースでは『192.168.7.0/24』というクラスフルアドレスから派生したクラスレスアドレス (『192.168.7.64/28』と『192.168.7.128/28』) が、『192.168.10.0/24』というクラスフルアドレスによって分断されています。
VLSMの登場
この FLSM の動作はあくまで暫定的な措置で、本格的な解消をするために『クラスレスルーティングプロトコル』という位置付けで『RIP version 2』が誕生しました。
RIP version 2 ではルート情報にサブネットマスクを添えて渡せるので、VLSM (Variable Length Subnet Mask)の考え方で動作します。
OSPF や EIGRP、BGP 等、その他のほとんどのルーティングプロトコルが VLSM の考え方をします。
VLSM とわざわざ名前が付いていますが、これは単に FLSM という概念を打ち消す意味で名前があるだけで、実際にはクラスレスアドレスの考え方に沿って、当たり前のことをルーティングプロトコルに実装しただけです。
この章のまとめ
CIDR
サブネットマスクを使い、IP アドレス帯 (クラス) に依らず、ネットワーク部とホスト部を自由に設計できるようにする、IP アドレス割り当て方法を指す。(クラスフル時代は自由ではなく、クラスによって決まっていた)
FLSM
CIDR により IP アドレスがクラスレスの考え方になったが、当時クラスフルのみを想定したルーティングプロトコルを、クラスレスの環境でも問題なく動作させるために作られたクラスフルルーティングプロトコルのための『暫定措置のルール』であり、それを順守しなければならない環境を指す。
NW 設計者はこのルールに基づいて IP アドレス設計、ルーティング設計をしなければならない。
VLSM
FLSM (暫定措置) に頼らず、『ルーティングプロトコルでルート情報と共にサブネットマスクの情報も渡す』という恒久措置を取った環境であり、FLSM のルールに縛られず NW の設計を行える環境を指す。
コメント