傻瓜式 CIDR
我了解 CIDR 是什麼以及它的用途,但我仍然無法弄清楚如何在腦海中計算它。有人可以通過範例給出“傻瓜式”類型的解釋嗎?
CIDR(Classless Inter-Domain Routing,發音為“kidder”或“cider” - 在評論中添加您自己的本地變體!)是定義 IP 地址的網路部分的系統(通常人們認為這是子網遮罩) . 它是“無類”的原因是它允許一種比其基類更靈活地分解 IP 網路的方法。
首次定義 IP 網路時,IP 具有基於其二進制前綴的類:
Class Binary Prefix Range Network Bits A 0* 0.0.0.0-127.255.255.255 8 B 10* 128.0.0.0-191.255.255.255 16 C 110* 192.0.0.0-223.255.255.255 24 D 1110* 224.0.0.0-239.255.255.255 E 1111* 240.0.0.0-255.255.255.255
(請注意,這是人們將 /24 稱為“C 類”的來源,儘管這不是嚴格意義上的比較,因為 C 類需要具有特定的前綴)
這些二進制前綴用於路由大塊 IP 空間。這是低效的,因為它導致將大塊分配給不一定需要它們的組織,並且還因為 C 類只能以 24 位增量分配,這意味著路由表可能會變得不必要地大,因為多個 C 類被路由到同一個位置。
CIDR 被定義為允許將可變長度子網遮罩 (VLSM) 應用於網路。顧名思義,地址組或網路可以分解為與其所屬的自然“類”沒有直接關係的組。
VLSM 的基本前提是提供網路中網路位數的計數。由於 IPv4 地址是 32 位整數,因此 VLSM 將始終介於 0 和 32 之間(儘管我不確定在什麼情況下您可能有一個 0 長度的遮罩)。
在頭腦中開始計算 VLSM/CIDR 的最簡單方法是了解“自然”的 8 位邊界:
CIDR Dotted Quad /8 255.0.0.0 /16 255.255.0.0 /24 255.255.255.0 /32 255.255.255.255
(順便說一句,使用 /32 遮罩是完全合法的,並且在 ACL 中相當普遍。它僅表示您指的是單個 IP)
一旦掌握了這些,就可以通過簡單的二進制算術上下移動來獲取主機數量。例如,如果 /24 有 256 個 IP(讓我們暫時離開網路和廣播地址,這是一個不同的網路理論問題),將子網增加一位(到 /25)將減少一位主機空間(到7),這意味著將有128個IP。
這是最後一個八位字節的表格。該表可以移動到任何八位字節以獲得等效的虛線四元組。
CIDR Dotted Quad /24 255.255.255.0 /25 255.255.255.128 /26 255.255.255.192 /27 255.255.255.224 /28 255.255.255.240 /29 255.255.255.248 /30 255.255.255.252 /31 255.255.255.254 /32 255.255.255.255
作為將這些移位到另一個八位字節的範例,/18(即 /26 減去 8 位,因此移位了一個八位字節)將為 255.255.192.0。