2011年7月12日 星期二

Classless Inter-Domain Routing(CIDR), 無等級(Classless)IP

無等級的 IP 位址

當初在設計 IP 位址的等級時, 網路環境主要是由大型主機所組成, 主機與網路的總數都相當有限。
  

但隨著個人電腦與網路技術的快速普及, 各種大小的網路如雨後春筍般冒出, 對於 IP 位址的需求也迅速增加。3 種等級的 IP 位址分配方式, 快便產生了一些問題。

  
這其中最嚴重的便是 Class B IP 位址面臨缺貨的危機;但是相對地,Class C 使用的數量則僅是緩慢成長。


為了解決這個問題, 便產生了 Classless Inter-Domain RoutingCIDR, 亦即無等級(Classless)的 IP 位址劃分方式。


CIDR 原理

其實, Class B 那麼快被耗盡, 有很多位址空間是浪費掉了。怎麼說呢?舉例而言, 假設 B 企業需要 1500 IP 位址, 由於 Class C 位址只能供 256 IP 位址, 因此必須分配 Class B 的網路位址給此 B 企業。不過, Class B 其實可提供 65536 IP 位址, 遠超過 B 企業的需求, 這些多出來的 IP 位址無法再分配給其他企業使用, 因此實際上都浪費掉了。



既然 Class B 嚴重不足, Class C 還很充裕, 更重要的是 Class B 實際上有很多 IP 位址是浪費掉了, 那麼要解決這些問題, 自然地便會想到是否可以將數個 Class C IP 位址『合併』起來, 分配給原先要求申請 Class B 的企業。



以前例而言, 我們只要分配 6 7 Class C IP 位址給 B 企業, 便可符合其需求, 因而節省下 1 Class B 的位址空間。



那麼, 要如何才能合併數個 Class C IP 位址呢?答案便是使用子網路遮罩來定義較具彈性的網路位址。讀者可能會覺得很訝異, 這不是與子網路切割的原理相同嗎?沒錯, CIDR 又稱為超網路(Supernet, 與子網路可算是一體的兩面, 兩者其實都是使用相同的觀念與技術, 只是在應用上略有不同, 其觀念差異如下:


子網路(Subnet

利用子網路遮罩重新定義較長的網路位址, 以便將現有的網路加以切割成 24816 2 冪方數的子網路。


超網路(Supernet


利用子網路遮罩重新定義較短的網路位址, 以便將現有 24816 2 冪方數的網路, 『合併』成為一個網路


CIDR 實例

回到 B 企業的例子, 由於 B 企業所須的 1500 IP 位址, 數量介於 Class B(可提供 65535 IP 位址)與 Class C (可提供 255 IP 位址)的範圍之間。藉由 CIDR 的方式, 我們可以分配一個長度為 21 Bits 的網路位址給 B 企業, 那麼B 企業可供運用的主機位址將會有 32 - 21 = 11 Bits, 總共可產生 211 = 2048 IP 位址, B 企業所需的 1500 IP 位址相近。



與直接分配 Class B 相比, 節省下許多 IP 位址空間。


上述方式其實便是將 8 Class C IP 位址合併, 再分配給 B 企業。由於合併是透過變更網路位址長度來進行, 因此會有以下的限制:

● 用來合併的 Class C 的網路位址必然是連續的。
● 用來合併的 Class C 的網路位址數目必然是 2 的冪方數。

因此, B 企業實際上分配到的可能是如下的 8 個連續 Class C 位址空間:



 
 
8 個連續的 Class C 位址可以利用下列方式來表示:



表示由 203.74.200.0 開始到 203.74.207.0 8 Class C 位址空間要合併。或是使用更簡潔的方式來表示:

 


雖然 CIDR 原先是為了合併 Class C 位址所設計, 但在實作上可適用於任何的 IP 位址範圍, 例如:ISP 可分配長度為 30 Bits 的網路位址給一些只有兩部電腦的個人公司。

 

由於 CIDR IP 位址在分配時更具彈性與效率, 因此, 目前皆是以 CIDR 的方式來劃分 IP 位址範圍




沒有留言:

張貼留言