1. 程式人生 > >CIDS(無分類域間路由選擇)IP劃分方法

CIDS(無分類域間路由選擇)IP劃分方法

也說 一位 4.0 可能 現在 中一 網絡數 技術 lan

講解的非常好,轉自:https://blog.csdn.net/dan15188387481/article/details/49873923

CIDR地址塊及其子網劃分(內含原始IP地址分類及其子網劃分的介紹)

1. 原始的IP地址表示方法及其分類(近幾年慢慢淘汰)

IP地址是由4字節,32位表示的,為了表示方便,通常用點分十進制表示法,例如大家常見的:192.168.0.52,四個字節,通過點進行分隔,看起來十分清晰。IP地址的32位是由網絡號+主機號組成的,也就是說這32位中,左邊的某些連續位表示網絡號,右邊的某些連續位表示主機號,那麽我們平常在討論這一系列問題的時候,會有一個“網絡地址”的概念,一般來說網絡地址並不等於IP地址,網絡地址就是IP地址中的網絡號,然後主機號全部取0。IP地址可以表示為:


IP地址 ::= {<網絡號>, <主機號>},將主機號置0,就可以得到網絡地址。

最初的IP地址是被劃分為5類,不過大家經常見到和談到的只有3類,即A類、B類、C類,如圖1所示:
技術分享圖片
圖1 IP地址的分類

從圖1中可以看到基本的劃分,由於本篇文章主要講CIDR,所以對於IP地址最初的分類表示法就不過多講述,在CIDR中已經廢棄了IP地址的分類,無分類編址的命名也是由此得來的,所以目前基本已經不再采用所謂的A類、B類、C類的IP地址分類表示法,不過作為比較經典的過去使用的方法,大家了解一下即可。圖1中表示得十分清楚,大家從左邊看起,搞明白每一類地址的前綴、網絡地址、主機地址的位數即可,通過這個位數,大家可以計算出每類網絡的可支配網絡數以及可連接主機數,對相應的位數求2的冪即可。
技術分享圖片
技術分享圖片


圖2 IP地址的指派範圍和一般不使用的IP地址

從圖2中,我們可以清晰地看出來每類網絡所指派的網絡數和主機數,以及哪些地址一般不使用,這裏需要註意一點,就是最大可指派網絡數中會減掉2或者1,其實後面的最大主機數大家計算一下會發現都減去了2,這是為什麽呢?這是因為A類的前綴是0,所以網絡號加上前綴的8位可以出現全0的情況,而且127(01111111)作為環回地址用來測試,所以不指派,故而需要減去2,B類和C類的前綴分別是10和110,所以網絡號加上前綴不可能出現全0的情況,不過B類的128.0.0.0和C類的192.0.0.0也是不指派的,所以B類和C類只需要減去這一個不指派的網絡地址即可。那麽主機數為什麽都減去2呢?這是因為主機號分別為全0和全1的情況一般是不分配的,這兩個特殊的地址有特殊的用途,所以要減去2。


關於分類的IP地址就介紹到這裏,還要強調一下,目前已經不采用分類表示法,所以大家重點關註CIDR表示法。

2. 基本的子網劃分方法

在講述CIDR之前我們先來簡單介紹一下基本的子網劃分方法。

上面所述的IP地址表示方法可以稱之為兩級IP地址,即網絡號和主機號組成的IP地址。但是由於IP地址空間的利用率有時很低、給每一個物理網絡分配一個網絡號會使路由表變得太大以及兩級IP地址不夠靈活等原因,就出現了所謂的子網劃分。子網劃分實際上就是將原來的兩級IP地址轉變為三級IP地址,表示如下:

IP地址 ::= {<網絡號>, <子網號>, <主機號>}

從上面的表示可以看出,子網劃分就是在32位中借了幾位用來表示子網號,註意,這裏的網絡號的位數是不變的,子網號是從主機號中借走的,所以大家想一想就可以明白,子網劃分實際上就是減少了主機數,分配到不同的子網,每個子網包含一定的主機數。子網的概念也就可以理解為,將一個大的網絡在其內部劃分成幾個小的子網,但是需要註意的是,對於該網絡的外層來看,還是一個大的網絡,只有該網絡內部才可以看到其進行了子網劃分。例如:某個機構給某高校分配了一個大的網絡,而該高校內部又進行了子網劃分,將不同的子網分配給不同的學院,此時對於該機構來說,該高校還是一個大的網絡,在其看來並沒有變化,只有該高校自己才知道自己內部又進行了子網劃分。

子網劃分中有一個十分重要的概念就是子網掩碼。 那麽什麽是子網掩碼呢?大家想一想,在傳輸的過程中,路由器是怎麽識別子網劃分後的IP地址中的網絡地址的?如果不提供任何信息,路由器肯定還是傻傻分不清楚,所以就出現了子網掩碼。子網掩碼其實很簡單,就是將網絡號和子網號對應的位全部置1,將主機號對應的位置0,就得到了子網掩碼。例如:一個IP地址是145.13.3.10,其是B類地址,假如我們用8位來表示子網號,那麽網絡號加上子網號一共24位,所以將這24位置1,其余置0,那麽子網掩碼就是255.255.255.0。緊接著,我們可以看出來,用子網掩碼和IP地址逐位進行“與”運算,就可以得到網絡地址,所以該IP地址的網絡地址就是145.13.3.0,下面我從《計算機網絡第5版》謝希仁編著的書中摘取了兩個例子,幫助大家理解。
技術分享圖片

技術分享圖片
圖3 子網劃分的例題

從上面的例子中可以看出子網掩碼的使用和計算,這兩個例子也說明了同樣的IP地址和不同的子網掩碼可以得出相同的網絡地址。但是不同的掩碼效果是不同的,因為它們的子網號和主機號的位數是不一樣的,從而可劃分的子網數和每個子網中的最大主機數都是不一樣的。

最後,我們需要註意的是,在之前基本的子網劃分中,借走主機號兩位,只能劃分4-2=2個子網,這是因為全0和全1不使用,一般至少借走兩位,其他位數的劃分是一樣的,都需要減去2,但是CIDR表示法中的子網劃分就不用減2,因為其也使用全0和全1。

3. CIDR概述及其地址塊計算

CIDR中文全稱是無分類域間路由選擇,英文全稱是Classless Inter-Domain Routing,在平常,大家多稱之為無分類編址,它也是構成超網的一種技術實現。CIDR在一定程度上解決了路由表項目過多過大的問題。CIDR之所以稱為無分類編址,就是因為CIDR完全放棄了之前的分類IP地址表示法,它真正消除了傳統的A類、B類、C類地址以及劃分子網的概念,它使用如下的IP地址表示法:

IP地址 ::= {<網絡前綴>, <主機號>} / 網絡前綴所占位數

CIDR僅將IP地址劃分為網絡前綴和主機號兩個部分,可以說又回到了二級IP地址的表示,不過大家要註意,最後面用“/”斜線分隔,在其後寫上了網絡前綴所占的位數,這樣就不需要告知路由器地址掩碼,僅需要通過網絡前綴所占的位數就可以得到地址掩碼,為了統一,CIDR中的地址掩碼依然稱為子網掩碼。

CIDR表示法給出任何一個IP地址,就相當於給出了一個CIDR地址塊,這是由連續的IP地址組成的,所以CIDR表示法構成了超網,實現了路由聚合,即從一個IP地址就可以得知一個CIDR地址塊。例如:已知一個IP地址是:128.14.35.7/20,那麽這個已知條件告訴大家的並不僅僅是一個IP地址這麽簡單,我們來分析一下。

128.14.35.7/20 = 10000000 00001110 00100011 00000111

即前20位是網絡前綴,後12位是主機號,那麽我們通過令主機號分別為全0和全1就可以得到一個CIDR地址塊的最小地址和最大地址,即

最小地址是:128.14.32.0 = 10000000 00001110 00100000 00000000
最大地址是:128.14.47.255 = 10000000 00001110 00101111 11111111
子網掩碼是:255.255.240.0 = 11111111 11111111 11110000 00000000

因此就可以看出來,這個CIDR地址塊可以指派(47-32+1)*256=4096個地址,這裏沒有把全0和全1除外。

4. CIDR子網劃分

在CIDR表示法中也可以進行進一步的子網劃分,和前面的子網劃分類似,我們只需要從主機號中借走一定的位數即可,這裏與前面的基本子網劃分不同,借走2位時可以劃分成4個子網,不用減2,其他位數類似。下面通過一個例子來講解CIDR中的子網劃分。

例:某個機構擁有一個大的CIDR地址塊,即206.0.64.0/18,現在某個高校需要申請一個較大的CIDR地址塊以供學校使用,學校內部又分為4個系,由於每個系的人數不一樣,所以要給人數較多的系分配較多的IP地址,人數較少的系分配較少的IP地址,現在采用以下的分配方案:

機構分配給該高校一個CIDR地址塊:206.0.68.0/22,然後該高校內部的分配方案如下:

一系:206.0.68.0/23,一系內部又分為206.0.68.0/25、206.0.68.128/25、206.0.69.0/25和206.0.69.128/25四個子網。
二系:206.0.70.0/24,二系內部又分為206.0.70.0/26、206.0.70.64/26、206.0.70.128/26和206.0.70.192/26四個子網。
三系:206.0.71.0/25,三系內部又分為206.0.71.0/26和206.0.71.64/26兩個子網。
四系:206.0.71.128/25,四系內部又分為206.0.71.128/26和206.0.71.192/26兩個子網。

請分析以上方案劃分的具體細節。

答:這是一個CIDR子網劃分中比較復雜的例子,如果大家能分析透徹這個例子,那麽對於CIDR的子網劃分的計算就基本不在話下了。

我們一步一步來討論:

第一,這個機構擁有的地址塊是206.0.64.0/18 =206.0.0100 0000.0000 0000/18,網絡前綴是18位,所以其

最小地址是:206.0.64.0/18 = 206.0.0100 0000.0000 0000/18
最大地址是:206.0.127.255/18 = 206.0.0111 1111.1111 1111/18
子網掩碼是:255.255.192.0/18 = 1111 1111.1111 1111.1100 0000.0000 0000/18
擁有的地址數:(127-64+1)*(255-0+1)=16384

然後,我們來看一下這個機構給該高校分配的CIDR地址塊,即206.0.68.0/22,由此可以看出來網絡前綴由18增加到了22,所以該機構相當於將其CIDR地址塊劃分成了16個子塊即子網,然後給該高校了第二個子網,即206.0.0100 0100.0/22,黑色加粗的部分是原來的網絡前綴,後面紅色部分類似於前面介紹的子網號,由於是4位,所以可以從0000~1111,共16個子網,0001自然就是第二個子網。

第二,既然高校擁有了機構的第二個子網的CIDR地址塊206.0.68.0/22 = 206.0.0100 0100.0/22,其網絡前綴是22位,所以其

最小地址是:206.0.68.0/22 = 206.0.0100 0100.0000 0000/22
最大地址是:206.0.71.255/22 = 206.0.0100 0111.1111 1111/22
子網掩碼是:255.255.252.0/22 = 1111 1111.1111 1111.1111 1100.0000 0000/22
擁有的地址數:(71-68+1)*(255-0+1)=1024

然後該高校內部又對這個CIDR地址塊進行了劃分,進一步得到了高校內部的子網,緊接著我們來看看一系的CIDR地址塊是怎麽得到的。

第三,一系的CIDR地址塊是206.0.68.0/23,可以看出來其網絡前綴相對於高校的CIDR地址塊來說增加了1位,說明高校首先將其CIDR地址塊劃分成了2個子網,其中一個給了一系。那麽這兩個子網分別是:一系的:206.0.68.0/23 = 206.0.0100 0100.0/23和剩余的(記為余1):206.0.70.0/23 =206.0.0100 0110.0/23,註意其中的紅色部分就是新增的這一位,用來標誌兩個子網。

那麽,一系的
最小地址是:206.0.68.0/23 = 206.0.0100 0100.0000 0000/23
最大地址是:206.0.69.255/23 = 206.0.0100 0101.1111 1111/23
子網掩碼是:255.255.254.0/23 = 1111 1111.1111 1111.1111 1110.0000 0000/23
擁有的地址數:(69-68+1)*(255-0+1)=512

余1的
最小地址是:206.0.70.0/23 = 206.0.0100 0110.0000 0000/23
最大地址是:206.0.71.255/23 = 206.0.0100 0111.1111 1111/23
子網掩碼是:255.255.254.0/23 = 1111 1111.1111 1111.1111 1110.0000 0000/23
擁有的地址數:(71-70+1)*(255-0+1)=512

現在,一系的CIDR地址塊已經很明確,然後一系內部又進行了劃分,即又分為206.0.68.0/25、206.0.68.128/25、206.0.69.0/25和206.0.69.128/25四個子網,網絡前綴從23位變成了25位,相當於占用了主機號兩位,所以可以劃分為4個子網,分別對應00、01、10、11這四個子網,這四個子網的最小地址、最大地址以及子網掩碼和擁有的地址數按照上述的方法就可以得到,這個比較簡單,建議大家可以自己手動計算一下,正好看看自己掌握了多少,這裏就不再給出這四個子網的細節。

第四,一系明確以後,就要考慮其他系的劃分,可以看到二系分配到的CIDR地址塊是206.0.70.0/24,可以看出來其網絡前綴相對於余1的CIDR地址塊來說增加了1位,說明余1的CIDR地址塊被劃分成了2個子網,其中一個給了二系。那麽這兩個子網分別是:二系的:206.0.70.0/24 = 206.0.0100 0110.0/24和剩余的(記為余2):206.0.71.0/24 =206.0.0100 0111.0/24,註意其中的紅色部分就是新增的這一位,用來標誌兩個子網。

那麽,二系的
最小地址是:206.0.70.0/24 = 206.0.0100 0100.0000 0000/24
最大地址是:206.0.70.255/24 = 206.0.0100 0100.1111 1111/24
子網掩碼是:255.255.255.0/24 = 1111 1111.1111 1111.1111 1111.0000 0000/24
擁有的地址數:(70-70+1)*(255-0+1)=256

余2的
最小地址是:206.0.71.0/24 = 206.0.0100 0111.0000 0000/24
最大地址是:206.0.71.255/24 = 206.0.0100 0111.1111 1111/24
子網掩碼是:255.255.255.0/24 = 1111 1111.1111 1111.1111 1111.0000 0000/24
擁有的地址數:(70-70+1)*(255-0+1)=256

現在,二系的CIDR地址塊已經很明確,然後二系內部又進行了劃分,即又分為206.0.70.0/26、206.0.70.64/26、206.0.70.128/26和206.0.70.192/26四個子網,網絡前綴從24位變成了26位,相當於占用了主機號兩位,所以可以劃分為4個子網,分別對應00、01、10、11這四個子網,這四個子網的最小地址、最大地址以及子網掩碼和擁有的地址數按照上述的方法就可以得到,這個比較簡單,建議大家可以自己手動計算一下,正好看看自己掌握了多少,這裏就不再給出這四個子網的細節。

第五,二系明確以後,就要考慮其他系的劃分,可以看到三系分配到的CIDR地址塊是206.0.71.0/25,而四系分配到的CIDR地址塊是206.0.71.128/25,可以看出來其網絡前綴相對於余2的CIDR地址塊來說增加了1位,說明余2的CIDR地址塊被劃分成了2個子網,其中一個給了三系,另外一個給了四系。那麽這兩個子網分別是:三系的:206.0.71.0/25 = 206.0.71.0000 0000/25和四系的:206.0.71.128/25 = 206.0.71.1000 0000/25,註意其中的紅色部分就是新增的這一位,用來標誌兩個子網。

那麽,三系的
最小地址是:206.0.71.0/25 = 206.0.0100 0100.0000 0000/25
最大地址是:206.0.71.127/25 = 206.0.0100 0100.0111 1111/25
子網掩碼是:255.255.255.128/25 = 1111 1111.1111 1111.1111 1111.1000 0000/25
擁有的地址數:(71-71+1)*(127-0+1)=128


四系的
最小地址是:206.0.71.128/25 = 206.0.0100 0100.1000 0000/25
最大地址是:206.0.71.255/25 = 206.0.0100 0100.1111 1111/25
子網掩碼是:255.255.255.128/25 = 1111 1111.1111 1111.1111 1111.1000 0000/25
擁有的地址數:(71-71+1)*(255-128+1)=128

現在,三系和四系的CIDR地址塊已經很明確,到目前為止,該高校已經將所有的CIDR地址塊分配給了四個系,一系有512個地址,二系有256個地址,三系和四系各有128個地址。然後三系內部又進行了劃分,即又分為206.0.71.0/26和206.0.71.64/26兩個子網,網絡前綴從25位變成了26位,相當於占用了主機號一位,所以可以劃分為2個子網,分別對應0、1這兩個子網,同時,四系內部也又進行了劃分,即又分為206.0.71.128/26和206.0.71.192/26兩個子網,網絡前綴從25位變成了26位,相當於占用了主機號一位,所以可以劃分為2個子網,分別對應0、1這兩個子網,三系和四系各自的兩個子網的最小地址、最大地址以及子網掩碼和擁有的地址數按照上述的方法就可以得到,這個比較簡單,建議大家可以自己手動計算一下,正好看看自己掌握了多少,這裏就不再給出這些子網的細節。

至此,我們已經分析完了本題,上面都是我一位位自己敲上去的,所以大家看完後想要穩固掌握的話建議自己也計算一遍,如果發現我有錯誤,歡迎大家指正。

最後,我用一副圖來展示下這個劃分過程。

技術分享圖片


圖4 上述例題的圖解

5. 總結

總之,目前已經廣泛使用CIDR表示法,之前的分類方法和子網劃分已經很少使用,所以大家要重點掌握CIDR表示法及其子網劃分,了解以前的基本分類和劃分方法即可。

上述內容都是本人一個字一個字敲上去的,那些粗體和紅色的標註也是我細心註釋的,圖4是我按照分析的流程一步步畫的,轉載請註明出處,歡迎大家指正,謝謝。
---------------------
作者:君臨丶天下
來源:CSDN
原文:https://blog.csdn.net/dan15188387481/article/details/49873923
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

CIDS(無分類域間路由選擇)IP劃分方法