ワイルドカードマスクとは?
ワイルドカードマスク(逆マスクとも呼ばれます)は、サブネットマスクのビットを反転させたものです。サブネットマスクでは、1 のビットが「このビットは一致していなければならない」という意味を持ちますが、ワイルドカードマスクでは逆に 0 のビットが同じ意味を表し、1 のビットは「どんな値でもよい(don't care)」という意味になります。ワイルドカードマスクが最もよく使われるのは、Cisco IOS のアクセスコントロールリスト(ACL)や、OSPF の network 文です。これらの設定では、通常のサブネットマスクではなく逆マスクを指定する必要があります。
このツールの使い方
まず入力方法を選びます。CIDR プレフィックス長を入力する場合(例:/24 ネットワークなら 24)は、まずサブネットマスクが自動的に求められます。あるいは「サブネットマスク」を選び、4つのオクテットを直接入力することもできます(例:255.255.255.0)。すると本ツールがワイルドカードマスクを算出し、オクテットごとの内訳と、そのマスクが一致するアドレス数を表示します。
計算式の解説
変換は、4つのオクテットそれぞれについて個別に行われます。
$$\text{ワイルドカードのオクテット} = 255 - \text{サブネットマスクのオクテット}$$
各オクテットは最大値が 255(2進数で 11111111)の8ビット値であるため、この計算が成り立ちます。255 から引くことですべてのビットが反転し、ちょうどビット単位の逆マスクが得られます。
計算例
サブネットマスク 255.255.255.0(/24 ネットワーク)を例に、オクテットごとに計算式を当てはめてみましょう。
$$255 - 255 = 0,\quad 255 - 255 = 0,\quad 255 - 255 = 0,\quad 255 - 0 = 255$$
結果、ワイルドカードマスクは 0.0.0.255 となります。これは 256 個のアドレス(\(1 \times 1 \times 1 \times 256\))に一致し、1つの /24 ブロックのサイズに相当します。
よくある質問
ワイルドカードマスクはサブネットマスクと同じものですか? いいえ、両者は互いに逆の関係にあります。サブネットマスク 255.255.255.0 に対応するワイルドカードマスクは 0.0.0.255 です。
なぜ OSPF はワイルドカードマスクを使うのですか? Cisco の OSPF 設定構文は、歴史的に ACL で使われていた逆マスク形式をそのまま採用しました。そのため、ネットワークの指定にはサブネットマスクではなくワイルドカードマスクを使います。
ワイルドカードマスクは連続していないビットでも使えますか? はい。サブネットマスクとは異なり、ACL のワイルドカードマスクは非連続なビットを使ってパターンを一致させることができます。ただし、本ツールは標準的な連続マスクを前提としています。