Networking

傻瓜式 CIDR

  • January 1, 2019

我了解 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。

引用自:https://serverfault.com/questions/12854