IP範圍與CIDR互轉工具
輸入起始IP和結束IP,即可將該範圍自動拆分為覆蓋全部地址且數量最少的CIDR塊。也可以反過來輸入CIDR表示法(例如192.168.1.0/24),計算出該塊的首尾IP地址和地址總數,適合用於防火牆和ACL規則的編寫。
使用提示
- 適合把防火牆或ACL中「192.168.1.1 到 192.168.1.254」這類範圍寫法轉換成路由器配置真正接受的CIDR表示法。
- 除非範圍的邊界恰好對齊到2的冪次方,否則IP範圍轉CIDR的結果通常會拆分成多個塊。如果塊數過多,可以考慮調整範圍的起止點,讓ACL規則更簡潔。
- 在CIDR轉IP範圍時,即使輸入的IP不是塊的起始地址,工具也會自動按其所屬塊計算出對應的網路地址和廣播地址。
- 如果只想查單個IP和掩碼,可以使用子網計算工具;若需要按字首長度檢視完整對照表,CIDR速查表是本工具很好的配套。
常見問題
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分配範圍,避免出錯。