當白名單是 192.0.1.20/24 時,哪些 IP 會放行?
在互聯(lián)網快速發(fā)展的過程中,傳統(tǒng)的 IP地址分配方法(即分類地址或類 ful地址)逐漸暴露出多種不足,為了解決這些問題,1993年引入了CIDR。那么,CIDR是什么?它有什么作用?我們該如何理解?這篇文章,我們一起來聊一聊!
1. 什么是CIDR?
CIDR,全稱為Classless Inter-Domain Routing(無類域間路由),是一種用于IP地址分配和路由選擇的新方法。與傳統(tǒng)的類ful分類法不同,CIDR不依賴于預定義的A、B、C類,而是采用可變長度子網掩碼(Variable Length Subnet Mask, VLSM),根據實際需要靈活劃分IP地址塊。
2. CIDR表示法
CIDR表示法通過在IP地址后添加一個斜杠(/)和一個數字來表示網絡前綴(子網掩碼),格式如下:
IP地址/前綴長度
例如:192.0.1.20/24 (IPv4)
(1) IP地址
IPv4地址由 32位 二進制數構成。為了便于理解和使用,IPv4地址通常以點分十進制格式表示,即將 32位二進制數分成四個 8位(一個字節(jié),范圍在0到255之間)部分,每部分用十進制數表示,彼此之間用點號(.)分隔。如下圖所示:
對于IPv6地址也適用,比如:2001:0db8:85a3::/64
- 網絡部分:前64位 (2001:0db8:85a3:0000)
- 主機部分:后64位 (0000:0000:0000:0000)
- 擴展表示法:2001:0db8:85a3:0000:0000:0000:0000:0000/64
- 壓縮表示法:2001:0db8:85a3::/64
(2) 前綴長度
前綴長度表示網絡部分的大小,更通俗地說就是前 N位保持不變,剩余的部分是主機數,例如:
- /24 表示前 24位是網絡部分,對應子網掩碼 255.255.255.0。
- /16 表示前 16位是網絡部分,對應子網掩碼 255.255.0.0。
為了更好地理解 CIDR表示法,我們來看兩個例子:
- 192.168.0.0/16換算為 32位二進制地址:11000000.10101000.00000000.00000000。其中/16表示 16位網絡ID,即 32位二進制地址中前 16位是固定不變的,對應網段為:11000000.10101000.00000000.00000000~11000000.10101000.11111111.11111111,即192.168.0.0 ~ 192.168.255.255。
- 192.168.1.2/24換算為32位二進制地址:11000000.10101000.00000001.00000000。其中/24表示 24位網絡ID,即 32位二進制地址中前 24位是固定不變的,對應網段為:11000000.10101000.00000001.00000000~11000000.10101000.00000001.11111111,即 192.168.1.0 ~ 192.168.1.255。
因此,如果我們在做白名單設置時,假如設置的 CIDR規(guī)則是:192.168.0.0/16,那么允許 192.168.0.0~192.168.255.255 這個子網的 IP訪問。
3. CIDR 的優(yōu)勢
- 地址空間的高效利用:傳統(tǒng)的類地址(A、B、C類)分配方式往往導致大量地址浪費。CIDR允許根據實際需要分配不同大小的子網,減少浪費。
- 路由表的簡化:CIDR通過聚合多個連續(xù)的IP段成一個路由條目,減少路由表的規(guī)模,提高路由效率。
- 靈活性:CIDR不依賴于固定的類地址邊界,可以根據需要劃分任意大小的子網。
4. 小結
CIDR表示法是現(xiàn)代 IP地址管理和路由的重要組成部分,通過靈活地定義網絡前綴長度,有效地提高了 IP地址的利用率,簡化了路由表的管理。作為技術人員,我們應該掌握 CIDR的使用方法,因為在很多云產品的白名單配置中,我們都會使用 CIDR表示法。