IPv4 CIDR 無類別域間路由下的 IP 地址劃分
文章目錄
- IPv4 CIDR 無類別域間路由下的 IP 地址劃分
- 一. 什么是無類別域間路由(CIDR)
- 二. CIDR 的網路劃分
- 三. CIDR 練習題
- 參考文獻
- 其他相關文章
提示
在閱讀本文章前,建議先閱讀目錄中所指的其它相關文章,若讀者對于 IPv4 的相關知識比較熟悉可以直接閱讀本文,
一. 什么是無類別域間路由(CIDR)
無類別域間路由(Classless Inter-Domain Routing、CIDR)是一個用于給用戶分配IP地址以及在互聯網上有效地路由IP資料包的對IP地址進行歸類的方法,參考自百度百科
CIDR 的出現是為了替代頗具詬病的分類編址,在 CIDR 被采用之前, IP 地址的網路部分被限制為長度為 8、16 或 24 位元,這是一種被稱為分類編址(classful addressing)的編址方案[1],也就是將 IP 地址劃分為 A、B、C、D、E 類的編址方案,
隨著互聯網的快速發展,分類編址方案出現了一些問題,例如擴展性差,存在地址浪費,為解決這些問題,且考慮到從 IPv4 到 IPv6 的過度,互聯網工程作業小組在 1993 年發布了一新系列的標準—— RFC 1518 和 RFC 1519 ——以定義新的分配 IP 地址塊和路由 IPv4 資料包的方法,也就是 無類別域間路由 CIDR ,
二. CIDR 的網路劃分
在分類編址方案中,除了以固定大小位數的網路號將網路劃分為 ABCDE 類,還有一個重要的劃分網路手段就是通過子網掩碼對 ABCDE 類 IP 再進行劃分,而 CIDR 方案就是從該角度入手,接下來從一個案例出發,理解分類編址如何過渡到 CIDR 編址,
| 編址方案 | IP 地址 | 子網表示 | 完整表示 |
|---|---|---|---|
| 分類編址 | 202.119.100.202 | 255.255.255.240 | 202.119.100.202 255.255.255.240 |
| CIDR 編址 | /28 | 202.119.100.202/28 |
上表展示了對于一個 IP 地址的兩種編址表示的區別,使用分類編址時,需要原 IP 地址與子網掩碼配套使用,而 CIDR 編址則直接在 IP 地址后跟上了一個 “/24” 的前綴,該前綴表示的也正是子網掩碼,CIDR 編址所做的,其實就是將子網掩碼的位數作為前綴,添加在原 IP 地址的后面,(我也覺得很奇怪為什么這玩意叫前綴,不應該叫后綴嗎)
子網掩碼 255.255.255.240 化為二進制表示法時,前 28 位都為1(轉換方式可參考文章),因此在 CIDR 編址時前綴的數字是 28,最終表示形式為 192.168.1.102/28,
我們繼續關注 CIDR 編址與分類編址的區別,在 192.168.1.102/28 中 28 直接表示子網掩碼為 28 位,則該 IP 的劃分情況如下,
| CIDR 編址 | 分類編址 | |
|---|---|---|
| 十進制點分表示 | 202.119.100.202/28 | 202.119.100.202 255.255.255.240 |
| 二進制表示 | 1100 0000?1010 1000?0000 0001?0110 0110 | 1100 0000?1010 1000?0000 0001?0110 0110 |
提示
- 該顏色的 IP 位, 表示該位是 IP 的網路號對應的位
- 該顏色的 IP 位,表示該位是 IP 的子網號對應的位
- 該顏色的 IP 位,表示該位是 IP 的主機號對應的位
在分類編址中黃色的網路號是由其分類決定的,例如上述例子中的 IP 地址屬于 C 類 IP,而 C 類 IP 的網路號是 24 位的,而綠色的是子網號,由子網掩碼劃分得出,最后藍色的是子網號,而在 CIDR 編址時,已經不考慮分類,"/28" 的前綴表示子網掩碼,直接將 IP 的前 28 位標識為網路號,剩余的位為主機號,這樣 CIDR 就實作了對地址的劃分,
經過上述描述,大致對 CIDR 的編址邏輯進行了掌握,接下來強調幾點 CIDR 編址的知識點,
1. IP 相同,子網掩碼不同的 IP 地址不是同一個地址
202.119.100.202/28 與 202.119.100.202/24 IP 相同,但是子網掩碼不同,因此這兩個地址不是同一個地址,
202.119.100.202/28 是在 202.119.100.192/28 網路下的主機地址,
202.119.100.202/24 是在 202.119.100.0/24 下的主機地址,
202.119.100.192/28 或 202.119.100.0/24 也被可以被稱為 CIDR塊,相當于一個網路,因為該地址除了其標識的前 28 位網路號外的主機號全為 0,代表整個網路,
| 十進制 | 二進制 | |
|---|---|---|
| 網路 IP | 202.119.100.192/28 | 1100 0000?1010 1000?0000 0001?0110 0000 |
| 主機 IP | 202.119.100.202/28 | 1100 0000?1010 1000?0000 0001?0110 0110 |
| 網路 IP | 202.119.100.0/24 | 1100 0000?1010 1000?0000 0001?0000 0000 |
| 主機 IP | 202.119.100.202/24 | 1100 0000?1010 1000?0000 0001?0110 0110 |
2. 使用 CIDR 可以對網路進行多層劃分
我們查看以下例子,在該例中劃分了三層網路(白色的網路,綠色的網路,藍色網路),其呈現層次關系,其中黃色的是主機 IP,不難發現,隨著網路層次的劃分,子網掩碼的值越來越大,白色的網路層次為 16,綠色的網路層次為 20,藍色的網路層次為24,子網掩碼遞增的大小決定了一個高層網路能夠劃分多少下一層網路,
例如,從白色網路層次的 16,到綠色網路層次的 20,子網掩碼遞增了 4,這意味著在白色的網路層次地址中有 4 位用來劃分子網路,那我們可以計算出,在白色網路層次中可以劃分 2 4 2^4 24 個子網路(該計算與分類編址中使用子網掩碼的計算相同,但是在 CIDR 編碼中不用考慮子網號全為 0 或 1 的情況,因此不需要減 2),

三. CIDR 練習題
1. 網路 120.26.0.0/18 下可以劃分多少個 IP 配置給主機
可知網路號 18 位,則主機號有
32
?
18
=
14
32 -18 = 14
32?18=14 位,則可劃分
2
14
2^{14}
214 個 IP,
其中要主機號全為 0 與 1 的 IP 不能配置給主機,因此可劃分
2
14
?
2
2^{14}-2
214?2 個 IP 配置給主機,
提示
與上文中的網路層次劃分不同,這里之所以要減 2 是因為考慮的是分配給主機而不是分配給子網路,
2. 某主機的 IP 為 120.26.57.7/23,則其屬于的網路 IP 為多少
若要求 120.26.57.7/23 所處的網路,只需要將其主機號全置為 0,得到的 IP 即為網路 IP,因此將 120.26.57.7 轉化為二進制有:
| 十進制 | 二進制 | |
|---|---|---|
| 主機 IP | 120.26.57.7/23 | 0111 1000?0001 1010?0011 1001?0000 0111 |
| 網路 IP | 120.26.56.0/23 | 0111 1000?0001 1010?0011 1000?0000 0000 |
如上表,其所屬網路 IP 為 120.26.56.0/23,
3. 若要在網路 120.26.0.0/18 下再劃分一層有 6 個子網路的網路,且要保證每個子網路能夠容量盡量多的主機,則這 6 個子網路的 IP 分別為多少
若要再劃分 6 個子網路,則下一層子網路的子網掩碼要加大 n,以滿足
2
n
>
6
(
n
為
整
數
)
2^n>6(n為整數)
2n>6(n為整數),顯然
n
≥
3
n\geq3
n≥3 滿足條件,
當
n
=
3
n = 3
n=3 時可保證劃分的子網路可容納的主機最多,則在 120.26.0.0/18 下可劃分:
| 十進制 | 二進制 | |
|---|---|---|
| 網路 IP | 120.26.0.0/18 | 0111 1000?0001 1010?0000 0000?0000 0000 |
| 子網路 1 | 120.26.0.0/21 | 0111 1000?0001 1010?0000 0000?0000 0000 |
| 子網路 2 | 120.26.8.0/21 | 0111 1000?0001 1010?0000 1000?0000 0000 |
| 子網路 3 | 120.26.16.0/21 | 0111 1000?0001 1010?0001 0000?0000 0000 |
| 子網路 4 | 120.26.24.0/21 | 0111 1000?0001 1010?0001 1000?0000 0000 |
| 子網路 5 | 120.26.32.0/21 | 0111 1000?0001 1010?0010 0000?0000 0000 |
| 子網路 6 | 120.26.40.0/21 | 0111 1000?0001 1010?0010 1000?0000 0000 |
| 子網路 7 | 120.26.48.0/21 | 0111 1000?0001 1010?0011 0000?0000 0000 |
| 子網路 8 | 120.26.56.0/21 | 0111 1000?0001 1010?0011 1000?0000 0000 |
則在這些子網路 IP 地址中選出 6 個即為答案,
提示
本次文章的習題講解相比之前的文章講解的沒那么細,若有問題可以評論,會在一天內回復解答,
參考文獻
[1] JAmes F.Kurose, Keith W. Ross.計算機網路自頂向下方法[M].機械工業出版社:北京,2014.9:229.
其他相關文章
| 文章名稱 | 更新時間 |
|---|---|
| IPv4 十進制點分表示法 | 2020-10-29 |
| IPv4 地址分類 | 2020-11-8 |
| IPv4 地址與子網掩碼 | 2020-11-16 |
| IPv4 CIDR 無類別域間路由 | 2021-1-14 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249064.html
標籤:其他
上一篇:社交距離檢測
