IP範圍與CIDR互轉工具

輸入起始IP和結束IP,即可將該範圍自動拆分為覆蓋全部地址且數量最少的CIDR塊。也可以反過來輸入CIDR表示法(例如192.168.1.0/24),計算出該塊的首尾IP地址和地址總數,適合用於防火牆和ACL規則的編寫。

如果只需查詢單個IP和子網掩碼,請使用 子網計算工具 ;如果需要按字首長度檢視對照表,請參考 CIDR速查表 。

在位址區間與 CIDR 記法之間互轉

輸入起始與結束位址,本工具便把該區間切成恰好覆蓋它的最少幾個 CIDR 區塊。反過來亦可:給出 192.168.1.0/24 之類的記法,便得出首尾位址與位址總數。寫防火牆規則與存取控制表時,它最能派上用場。

常令人意外的是:任意一個區間,未必寫得成單獨一個 CIDR。 一個 CIDR 區塊受兩條約束:其大小須為 2 的冪,其首位址須落在該大小的邊界之上。 譬如自 192.168.1.5 至 192.168.1.10 的六個位址,兩條皆不合,故成不了一塊,只得切作四塊:192.168.1.5/32、192.168.1.6/31、192.168.1.8/31 與 192.168.1.10/32。 本工具以最少的區塊數完成這道切分。若不願讓規則條數徒增,把區間的兩端重新設計到邊界上,通常才是更俐落的做法。

使用方法

  1. 輸入起始與結束位址 您會得到該區間所切成的 CIDR 區塊清單。
  2. 看一看切出了幾塊 切出許多塊的區間,正是兩端未落在邊界上的那種。
  3. 或由 CIDR 反推 輸入 /24 之類的記法,便得出首尾位址與位址總數。
  4. 謄進您的規則 可直接用於防火牆或存取控制表。

用好本工具的小技巧

  • 適合把防火牆或ACL中「192.168.1.1 到 192.168.1.254」這類範圍寫法轉換成路由器配置真正接受的CIDR表示法。
  • 除非範圍的邊界恰好對齊到2的冪次方,否則IP範圍轉CIDR的結果通常會拆分成多個塊。如果塊數過多,可以考慮調整範圍的起止點,讓ACL規則更簡潔。
  • 在CIDR轉IP範圍時,即使輸入的IP不是塊的起始地址,工具也會自動按其所屬塊計算出對應的網路地址和廣播地址。
  • 如果只想查單個IP和掩碼,可以使用子網計算工具;若需要按字首長度檢視完整對照表,CIDR速查表是本工具很好的配套。

這些情境會用到

書寫防火牆規則

它把「只許這一段」化作一串 CIDR 區塊。

整理存取控制表

可對著邊界斟酌:數條規則能否併作一條。

核實所分得的位址段

服務商遞來的 CIDR 究竟含多少個位址,一數便知。

重新審視子網的設計

單是把兩端對齊到邊界,所需的規則條數便可能大減。

IP 編址的術語

CIDR
以一個位址加一個前綴長度來表示一塊的記法,如 192.168.1.0/24。
前綴長度
斜線之後的那個數。它每增一,區塊中所含的位址便減半。
網路位址
一塊的首位址。它若不落在邊界上,這一塊便立不住。
廣播位址
一塊的末位址。在 IPv4 子網中,通常不分配給主機。
子網路遮罩
形如 255.255.255.0 的記法,與 CIDR 的前綴長度所言者同。
2 的冪的約束
CIDR 區塊的大小只限於 2 的冪。 任意區間寫不成單獨一個,緣由正在於此。

常見問題

CIDR塊必須表示數量為2的冪次方(1、2、4、8……)且地址邊界對齊的連續地址。如果指定的範圍沒有恰好對應單一CIDR塊,就需要用若干個邊界對齊、大小較小的塊組合起來,才能不多不少地覆蓋整個範圍。

/24 表示主機位為8位的塊,覆蓋192.168.1.0到192.168.1.255共256個地址。按照慣例,第一個地址192.168.1.0保留作網路地址,最後一個192.168.1.255保留作廣播地址。

大多數路由器和防火牆的ACL語法只接受CIDR表示法(或子網掩碼加萬用字元掩碼)來描述網路範圍,無法直接表達任意起止點的地址範圍。因此需要像本工具這樣先把範圍轉換成CIDR塊,再應用到配置中。

IP範圍只是用「起始IP到結束IP」來描述一段連續地址的表達方式。而CIDR塊是一種特殊的IP範圍,其邊界必須對齊到由字首長度決定的2的冪次方位置。每個CIDR塊都是IP範圍,但並非每個IP範圍都是CIDR塊。
工具君

閒話 ― IP範圍轉CIDR演算法背後的原理

把IP範圍拆分成CIDR塊的演算法,是電腦科學中「貪心演算法」的一個通俗易懂的例項。做法很簡單:每次從當前位置出發,同時考慮「當前地址對齊到多少位的2的冪次方邊界」和「剩餘範圍還有多大」這兩個限制條件,選出滿足兩者的最大塊,跳過這個塊繼續處理剩餘部分,直到到達終點為止。這種貪心策略在理論上可以證明總能得到數量最少的塊。

在實際工作中,工程師經常會遇到只接受CIDR表示法、而不支援任意IP範圍的系統,例如雲平臺的安全組或本地路由器的ACL。把雲服務商分配的地址段,或者內部臺賬裡一直記錄為「10.1.0.10 到 10.1.0.50」這樣的範圍,轉換成路由器可用的CIDR塊,是一個繞不開的步驟。手工進行位運算既繁瑣又容易出錯,這正是轉換工具能派上用場的地方。

反過來,從CIDR表示法推算出IP範圍的需求,通常出現在需要以「起始到結束」這種直觀方式確認已分配地址塊範圍的場景。例如服務商分配給你「203.0.113.0/28」這個塊,如果能立即確認可用地址範圍是203.0.113.0到203.0.113.15,就能準確地設定防火牆許可名單或DHCP分配範圍,避免出錯。