子網重疊檢測工具 - 檢查兩個 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 與本地機房的位址規劃中,為日後擴展預留互不衝突的範圍本就是核心所在,因此本工具很適合在設計階段使用。所有處理都在瀏覽器中完成。

判定重疊的步驟

  1. 輸入 CIDR A 採用 192.168.1.0/24 之類的格式。也可以用範例按鈕載入示例。
  2. 輸入 CIDR B 以相同格式輸入想比較的另一個網路。
  3. 執行判定 兩者的位址範圍會被展開,並判定彼此的關係。
  4. 對照兩段範圍 會顯示各 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 地址塊的大小是 2 的冪且對齊到相應邊界,如果兩個地址塊存在重疊,關係必定是「完全一致」或「一方完全包含另一方」。本工具雖然定義了「部分重疊」這一判定類別,但對於合法的 CIDR 輸入,實際上永遠不會出現這個結果。

不是,多數情況下這是完全正常的配置。從公司整體分配(如 /16)中為某個部門劃出一個較小的子網(如財務部的 /24)是常見的設計方式,只要是有意為之,就沒有任何問題。

如果同一個地址範圍被分配給兩個不同的網路裝置或雲端 VPC,就會導致該範圍的資料包應該到達哪一方在路由上變得模糊不清,從而引發連線不穩定或資料只能到達其中一方的「IP 地址衝突」問題。這是設定 VPN 連線或 VPC 對等連線之前應首先檢查的專案之一。

目前僅支援 IPv4。如需檢視 IPv6 字首長度相關資訊,請使用 IPv6 CIDR 速查表工具。
工具君

閒話 ― 為什麼 CIDR 地址塊之間不會「部分重疊」

比較任意兩個 CIDR 地址塊,只會出現三種結果:完全一致、一方包含另一方、或完全不重疊——通常意義上的「只有一部分重疊」在數學上是不可能出現的。這是因為 CIDR 地址塊的大小必須是 2 的冪,且只能位於該大小的整數倍位置(即對齊邊界)上,這一約束直接決定了這一性質。

要直觀理解這一點,可以把所有 CIDR 地址塊的集合想像成一棵二叉樹:以 /0 作為根節點,每當字首長度增加 1,一個節點就會分裂成兩個子節點(前半段和後半段)。在這種結構下,任意兩個地址塊之間的關係只可能是「完全相同的節點」「一方是另一方的祖先節點」或「位於完全不同的分支上」——不可能出現兩個分支只交叉一半的情況。

正是這一性質使得路由表中的路由聚合(彙總)總能被明確定義。如果部分重疊真的可能發生,「這個資料包應該優先走哪條路由」將從根本上變得模糊不清,但 CIDR 的設計從結構上就排除了這種情況。實際工作中大多數路由故障,追根溯源都是有人手動劃分 IP 範圍時忽視了這一對齊規則,導致邊界發生了意外偏移。