IP範圍與CIDR互轉工具
輸入起始IP和結束IP,即可將該範圍自動拆分為覆蓋全部地址且數量最少的CIDR塊。也可以反過來輸入CIDR表示法(例如192.168.1.0/24),計算出該塊的首尾IP地址和地址總數,適合用於防火牆和ACL規則的編寫。
在位址區間與 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。 本工具以最少的區塊數完成這道切分。若不願讓規則條數徒增,把區間的兩端重新設計到邊界上,通常才是更俐落的做法。
使用方法
- 輸入起始與結束位址 您會得到該區間所切成的 CIDR 區塊清單。
- 看一看切出了幾塊 切出許多塊的區間,正是兩端未落在邊界上的那種。
-
或由 CIDR 反推
輸入
/24之類的記法,便得出首尾位址與位址總數。 - 謄進您的規則 可直接用於防火牆或存取控制表。
用好本工具的小技巧
- 適合把防火牆或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 的冪。 任意區間寫不成單獨一個,緣由正在於此。
常見問題
閒話 ― 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分配範圍,避免出錯。