子網重疊檢測工具 - 檢查兩個 CIDR 是否重疊【免費】
輸入兩個 IPv4 CIDR 地址塊(如 192.168.1.0/24),立即判斷它們是完全一致、互相包含還是完全不重疊。適用於防火牆規則或 VPC 子網設計時的衝突排查。
子網重疊關係型別一覽
兩個 CIDR 地址塊之間可能出現的所有關係型別速查表。
| 關係型別 | 示例 | 說明 |
|---|---|---|
| 完全一致 | 192.168.1.0/24 = 192.168.1.0/24 | 兩個 CIDR 指向完全相同的地址範圍,屬於同一子網。 |
| A 包含 B | 192.168.0.0/16 ⊃ 192.168.1.0/24 | CIDR A 的地址範圍完全包含 CIDR B 的範圍,B 是從 A 中劃分出的子網。 |
| B 包含 A | 192.168.1.0/24 ⊂ 192.168.0.0/16 | CIDR B 的地址範圍完全包含 CIDR A 的範圍,A 是從 B 中劃分出的子網。 |
| 部分重疊 | — | 這種情況實際上不會發生。由於 CIDR 地址塊始終按 2 的冪次對齊,如果兩個地址塊存在重疊,關係必定是「完全一致」或「一方完全包含另一方」(詳見下方常見問題)。 |
| 無重疊 | 192.168.1.0/24 ∩ 192.168.2.0/24 = ∅ | 兩個 CIDR 的地址範圍完全不重疊,可以同時使用而不會衝突。 |
如果想根據單個 IP 地址和子網掩碼求出網路地址和廣播地址,請使用 子網計算工具 ;如果想在 IP 範圍和 CIDR 之間互相轉換,請使用 IP 範圍⇔CIDR 轉換工具 。
子網路重疊判定是什麼
本工具用來判斷兩個以 CIDR 表示法書寫的網路,其位址範圍是否彼此重疊。像 192.168.1.0/24 與 192.168.1.128/25 這樣的組合肉眼很容易漏看——寫法不同,實際上其中一個完全包含於另一個之中——而這種疏忽往往成為防火牆規則與路由表出現意外行為的根源。
判定的做法是把各個 CIDR 展開為網路位址與廣播位址,再看兩個區間是否相交。結果為「完全一致」「一方包含另一方」「不重疊」三者之一。CIDR 區塊的大小一定是 2 的冪,且只能從該大小的整數倍位置開始,因此不會出現只有一部分重疊的情況。在 VPC 與本地機房的位址規劃中,為日後擴展預留互不衝突的範圍本就是核心所在,因此本工具很適合在設計階段使用。所有處理都在瀏覽器中完成。
判定重疊的步驟
-
輸入 CIDR A
採用
192.168.1.0/24之類的格式。也可以用範例按鈕載入示例。 - 輸入 CIDR B 以相同格式輸入想比較的另一個網路。
- 執行判定 兩者的位址範圍會被展開,並判定彼此的關係。
- 對照兩段範圍 會顯示各 CIDR 的起始與結束位址,可親眼確認在何處相交。
用好本工具的小技巧
- 適合用來檢查防火牆 ACL 規則或 VPC 子網設計中是否無意間重複定義了同一地址範圍。
- 「A 包含 B」這種關係通常是正常配置,比如從一個較大的分配(如 /16)中劃出一個較小的子網(如 /24),並不一定是問題。
- 在雲環境中設定 VPC 對等連線或 VPN 連線時,如果雙方的 CIDR 存在重疊,會導致路由變得模糊不清並引發連線錯誤。建立連線前請務必用本工具檢查一下。
- 結果中的「A 的範圍」「B 的範圍」會自動四捨五入到對應地址塊的網路地址和廣播地址,即使您輸入的 IP 並非該字首長度下精確的網路地址。
這些情境會用到
規劃 VPC 子網路
在雲端建立多個 VPC 時,確認範圍互不衝突,日後才能順利進行對等連線。
設計站點間 VPN
若總部與分公司使用相同的私有位址段,通道建立後仍無法通訊。連線前即可確認。
盤點防火牆規則
檢查是否有多條規則指向同一範圍,或某條規則放行的範圍比預期更廣。
檢視路由表
較長的前綴優先,因此存在包含關係的路由會改變行為。事先掌握這層關係很有幫助。
網路的術語
- CIDR 表示法
- 以斜線分隔網路位址與前綴長度的寫法,例如
192.168.1.0/24。 - 前綴長度
- 表示從開頭起有多少位元屬於網路部分的數字。數值越大,範圍越窄。
- 網路位址
- 該範圍的第一個位址。通常代表網路本身而不分配給主機,但在兩台設備直連的 /31(RFC 3021)中第一個位址也由主機使用,在 /32 中唯一的位址就是主機自身的位址。
- 廣播位址
- 該範圍的最後一個位址,用於向同一網路內的所有主機傳送。但 /31(RFC 3021)與 /32 沒有廣播位址,最後一個位址也由主機使用。
- 包含關係
- 一方範圍完全落在另一方之內的狀態,在
/24與/25的組合中尤其常見。 - 私有位址
10.0.0.0/8、172.16.0.0/12、192.168.0.0/16三個範圍,可在組織內自由使用。正因自由,站點之間才特別容易衝突。
常見問題
閒話 ― 為什麼 CIDR 地址塊之間不會「部分重疊」
比較任意兩個 CIDR 地址塊,只會出現三種結果:完全一致、一方包含另一方、或完全不重疊——通常意義上的「只有一部分重疊」在數學上是不可能出現的。這是因為 CIDR 地址塊的大小必須是 2 的冪,且只能位於該大小的整數倍位置(即對齊邊界)上,這一約束直接決定了這一性質。
要直觀理解這一點,可以把所有 CIDR 地址塊的集合想像成一棵二叉樹:以 /0 作為根節點,每當字首長度增加 1,一個節點就會分裂成兩個子節點(前半段和後半段)。在這種結構下,任意兩個地址塊之間的關係只可能是「完全相同的節點」「一方是另一方的祖先節點」或「位於完全不同的分支上」——不可能出現兩個分支只交叉一半的情況。
正是這一性質使得路由表中的路由聚合(彙總)總能被明確定義。如果部分重疊真的可能發生,「這個資料包應該優先走哪條路由」將從根本上變得模糊不清,但 CIDR 的設計從結構上就排除了這種情況。實際工作中大多數路由故障,追根溯源都是有人手動劃分 IP 範圍時忽視了這一對齊規則,導致邊界發生了意外偏移。