1. 程式人生 > >CIDR 無型別域間選路

CIDR 無型別域間選路

一、簡介

CIDR(無型別域間選路,Classless Inter-Domain Routing)是一個在Internet上建立附加地址的方法,這些地址提供給服務提供商(ISP),再由ISP分配給客戶。CIDR將路由集中起來, 使一個IP地址代表主要骨幹提供商服務的幾千個IP地址,從而減輕Internet路由器的負擔。

如果沒有CIDR,路由器就不能支援Internet網站的增多。 CIDR採用13~27位可變網路ID,而不是A-B-C類網路ID所用的固定的8、16和24位。

CIDR 對原來用於分配A類、B類和C類地址的有類別路由選擇程序進行了重新構建。CIDR用 13-27位長的字首取代了原來地址結構對地址網路部分的限制(3類地址的網路部分分別被限制為8位、16位和24位)。在管理員能分配的地址塊中,主機數量範圍是32-500,000,從而能更好地滿足機構對地址的特殊需求。

CIDR 地址中包含標準的32位IP地址和有關網路字首位數的資訊。以CIDR地址222.80.18.18/25為例,其中“/25”表示其前面地址中的前25位代表網路部分,其餘位代表主機部分。

CIDR建立於“超級組網”的基礎上,“超級組網”是“子網劃分”的派生詞,可看作子網劃分的逆過程。子網劃分時,從地址主機部分借位,將其合併進網路部分;而在超級組網中,則是將網路部分的某些位合併進主機部分。這種無類別超級組網技術通過將一組較小的無類別網路匯聚為一個較大的單一路由表項,減少了Internet路由域中路由表條目的數量。

例如一個ISP被分配了一些C類網路,這個ISP準備把這些C類網路分配給各個使用者群,目前已經分配了三個C類網段給使用者,如果沒有實施CIDR技術.ISP的路由器的路由表中 會有三條下連網段的路由條目,並且會把它通告給Internet上的路由器.通過實施CIDR技術,我們可以在ISP的路由器上把這三個網段198.168.1.0,198.168.2.0,198.168.3.0匯聚成一條路由198.168.0.0/16.這樣ISP路由器只向Internet通告198.168.0.0/16這一條路由,大大減少了路由表的數目.從而為網路路由器節省出了儲存空間。 值得注意的是,使用CIDR技術匯聚的網路地址的位元位必須是一致的,如上例所示.如果上例所示的ISP連線了一個172.178.1.0網段,這些網段路由將無法匯聚,無法實現CIDR技術.

二、相關計算

1、CIDR換運算元網掩碼

若CIDR大於等於24
已知CIDR 為28 則:
32-28=4
2^4=16 256-16=240
則子網掩碼為255.255.255.240

若CIDR小於24大於16
已知CIDR為20
24-20=4
2^4=16 256-16=240
則子網掩碼為255.255.240.0

若CIDR小於16
已知CIDR為9
16-9=7
2^7=128 256-128=128
則子網掩碼為255.128.0.0

2、根據CIDR判斷主機數和子網數

若CIDR大於24
公式:設CIDR為x
子網數為y=2^(x-24)
主機為為2^(32-x)-2 或 256/y-2=62

已知CIDR為26
子網數為2^(26-24)=4
主機為為2^(32-24)-2=62 或 256/4-2=62

若CIDR大於16小於24
公式:設CIDR為x
子網數為y=2^(x-16)
主機為為2^(32-x)-2 或 256*256/y-2

已知CIDR為18
子網數為2^(18-16)=4
主機為為2^(32-18)-2=16382 或 256*256/4-2=16382

若CIDR小於16
公式:設CIDR為x
子網數為y=2^(x-8)
主機為為2^(32-x)-2 或 256*256*256/y-2

已知CIDR為9
子網數為2^(9-8)=2
主機為為2^(32-9)-2=8388606 或 256*256*256/2-2=8388606

3、給一組地址求網路地址和子網掩碼

假設有一組C類地址為192.168.8.0-192.168.15.0,如果用CIDR將這組地址聚合為一個網路,其網路地址和子網掩碼應該為:
  A. 192.168.8.0/21
  B. 192.168.8.0/20
  C. 192.168.8.0/24
  D. 192.168.8.15/24

將8~15轉二進位制,可以看到只需前21位作為網路地址就好,所以應該選A

4. 路由器收到一個數據包,資料包的目標地址是202.65.17.4,該子網屬於哪一個網段?

A. 202.65.4.0/20
B. 202.65.16.0/22
C. 202.65.20.0/21

答案A,B,C都採用CIDR標記法,現在我們只需要關注三個選項所表示的主機ID號範圍:

其中主機ID不能包括全0 和全1;

A:202.65.4.0/20---->202.65.00000100.0/20---->取前20位字首(202.65.0.0:網路ID)不變,
後面可變部分範圍為:0000.0001——1111.1110,即:整個ID範圍為:202.65.0.1——202.65.15.254
所給IP地址不在此範圍內;

B:類似原理,得到主機ID範圍為:202.65.16.1——202.65.19.254,所給地址在此範圍內;

C:同樣主機ID範圍為:202.65.16.1——202.65.23.254,所給地址也在此地址範圍內,

但是在無類域間路由中, 在查詢路由表時可能會得到不止一個匹配結果, 應當從匹配結果中選擇具有最長網路字首的路由。這叫作最長字首匹配,這是因為網路字首越長,其地址塊就越小,因而路由就越具體。

綜上:認為 B最合適。

參考文章: