什麼是萬用遮罩?
萬用遮罩(wildcard mask,又稱反向遮罩 inverse mask)其實就是子網路遮罩的位元反相結果。在子網路遮罩中,用 1 表示「這個位元必須相符」;而在萬用遮罩裡,同樣的意思改用 0 來表達,至於 1 則代表「不在意、可任意」。萬用遮罩最常出現在 Cisco IOS 的存取控制清單(ACL)以及 OSPF 的 network 指令中,因為這些設備預期的是反向遮罩,而非一般的子網路遮罩。
如何使用這個計算機
先選擇輸入方式。你可以輸入 CIDR 前綴長度(例如 /24 網段就填 24),計算機會先推算出對應的子網路遮罩;或者選擇「子網路遮罩」,直接逐一輸入四個八位元組(例如 255.255.255.0)。接著工具會回傳對應的萬用遮罩,並列出每個八位元組的換算明細,以及該遮罩可比對的位址數量。
公式說明
換算是針對四個八位元組分別獨立進行:
$$\text{萬用遮罩八位元組} = 255 - \text{子網路遮罩八位元組}$$
之所以行得通,是因為每個八位元組都是 8 位元的數字,最大值為 255(二進位 11111111)。用 255 去減,等於把每個位元都反轉,正好得到精確的位元反相值。
實際範例
以子網路遮罩 255.255.255.0(即 /24 網段)為例,逐個八位元組套用公式:
\(255 - 255 = 0\)、\(255 - 255 = 0\)、\(255 - 255 = 0\)、\(255 - 0 = 255\)。
所得的萬用遮罩就是 0.0.0.255,可比對 256 個位址(\(1 \times 1 \times 1 \times 256\)),正好是一個 /24 區塊的大小。
常見問題
萬用遮罩和子網路遮罩是同一回事嗎?不是。兩者互為反相。子網路遮罩 255.255.255.0 對應的萬用遮罩就是 0.0.0.255。
為什麼 OSPF 要用萬用遮罩?Cisco 的 OSPF 設定語法在歷史上沿用了與 ACL 相同的反向遮罩格式,因此在指定網段時,要填的是萬用遮罩而不是子網路遮罩。
萬用遮罩可以是不連續的嗎?可以。與子網路遮罩不同,ACL 的萬用遮罩允許使用不連續的位元來比對特定樣式;不過本計算機假設使用的是標準的連續遮罩。