結論から言うと、サブネットマスクはどこまでがネットワーク部かを表すマスク。ワイルドカードマスクは、IPアドレスの特定ビットをチェックするか無視するかを表すマスクです。
この記事では、それぞれの違いを具体例を使って分かりやすく解説します。
この記事を書こうと思ったきっかけ
CCNP ENARSIの学習を進める中で、Ping-tの問題演習に取り組んでいました。
その中で、アクセスリストの設定に関する問題を間違えたことがきっかけです。
サブネットマスクとは?
サブネットマスクとは、IPアドレスのどこまでがネットワーク部で、どこからがホスト部なのかを判断するための値です。
例えば、次のIPアドレスを見てみましょう。
IPアドレス:192.168.1.10
サブネットマスク:255.255.255.0
サブネットマスクを2進数で表すと、以下のようになります。
11111111.11111111.11111111.00000000
サブネットマスクでは、
1:ネットワーク部0:ホスト部
を表します。
つまり、
192.168.1.10
255.255.255.0
の場合、
ネットワーク部:192.168.1
ホスト部 :10
となります。
このネットワークは一般的に、以下のように表記されます。
192.168.1.0/24
ワイルドカードマスクとは?
ワイルドカードマスクとは、IPアドレスのどの部分を判定し、どの部分を無視するかを指定するための値です。
例えば、CiscoルータやスイッチのACL(アクセスコントロールリスト)やOSPFなどで使用されます。
次の例を見てみましょう。
IPアドレス:192.168.1.0
ワイルドカードマスク:0.0.0.255
ワイルドカードマスクでは、
0:一致を確認する1:一致を確認しない(無視する)
という意味になります。
そのため、
192.168.1.0 0.0.0.255
は、
192.168.1.0 ~ 192.168.1.255
の範囲を表します。
つまり、192.168.1.x のすべてのIPアドレスに一致します。
サブネットマスクとワイルドカードマスクの最大の違い
両者の最も大きな違いは、0と1の意味が逆であることです。
| 種類 | 1の意味 | 0の意味 |
|---|---|---|
| サブネットマスク | ネットワーク部 | ホスト部 |
| ワイルドカードマスク | 無視する | 一致を確認する |
例えば、以下のサブネットマスクを考えます。
サブネットマスク
255.255.255.0
これに対応するワイルドカードマスクは、
0.0.0.255
です。
つまり、
255.255.255.0
と
0.0.0.255
は、ビットを反転させた関係になっています。
サブネットマスクからワイルドカードマスクを計算する方法
ワイルドカードマスクは、基本的に次の計算で求めることができます。
255.255.255.255
- サブネットマスク
= ワイルドカードマスク
例えば、
サブネットマスク:255.255.255.0
の場合、
255.255.255.255
- 255.255.255.0
= 0.0.0.255
となります。
よく使われる組み合わせ
| CIDR | サブネットマスク | ワイルドカードマスク |
|---|---|---|
| /8 | 255.0.0.0 | 0.255.255.255 |
| /16 | 255.255.0.0 | 0.0.255.255 |
| /24 | 255.255.255.0 | 0.0.0.255 |
| /25 | 255.255.255.128 | 0.0.0.127 |
| /26 | 255.255.255.192 | 0.0.0.63 |
| /27 | 255.255.255.224 | 0.0.0.31 |
| /28 | 255.255.255.240 | 0.0.0.15 |
| /29 | 255.255.255.248 | 0.0.0.7 |
| /30 | 255.255.255.252 | 0.0.0.3 |
実際にCiscoルータで確認してみた
サブネットマスクとワイルドカードマスクの違いを理解するため、実際に自宅のCiscoルータでコマンドを入力して確認してみました。
Cisco IOSでは、コマンド入力中に?を入力することで、その位置で入力できるキーワードやパラメータの候補を確認できます。
今回は、ルーティングコマンドとアクセスリストのコマンドで、それぞれどのような値が求められるのかを確認してみます。
ルーティングコマンドの場合
まず、スタティックルートを設定するip routeコマンドを入力して確認します。
宛先ネットワークのアドレスを入力したあとに?を入力すると、次にサブネットマスクの入力が求められます。

このことから、ip routeコマンドでは、宛先ネットワークを指定する際にサブネットマスクを使用することが分かります。
アクセスリストの場合
次に、アクセスリストの設定を確認します。
アクセスリストでネットワークアドレスを入力したあとに?を入力すると、次にワイルドカードマスクの入力が求められます。

このことから、アクセスリストではIPアドレスやネットワークを指定する際に、ワイルドカードマスクを使用することが分かります。
「0.0.0.0」はどういう意味?
ワイルドカードマスクでは、0.0.0.0という値もよく使用されます。
例えば、
192.168.1.10 0.0.0.0
と指定した場合、
192.168.1.10というIPアドレスに完全一致するものだけを対象にする
という意味になります。
Cisco ACLでは、次のように記述されることがあります。
access-list 1 permit 192.168.1.10 0.0.0.0
また、Ciscoでは次のような省略形もあります。
access-list 1 permit host 192.168.1.10
「255.255.255.255」はどういう意味?
ワイルドカードマスクで、
0.0.0.0 255.255.255.255
と指定すると、すべてのビットを無視します。
つまり、
すべてのIPアドレスに一致する
という意味になります。
Ciscoでは、次のように省略できます。
any
例えば、
access-list 1 permit any
は、
access-list 1 permit 0.0.0.0 255.255.255.255
と同じ意味です。
まとめ
サブネットマスクとワイルドカードマスクは似ていますが、用途と考え方が異なります。
サブネットマスク
1:ネットワーク部
0:ホスト部
主に、IPアドレスがどのネットワークに所属しているかを判断するために使用します。
ワイルドカードマスク
0:一致を確認する
1:一致を確認しない
主に、ACLやOSPFなどでIPアドレスやネットワークを指定するために使用します。
覚え方としては、
サブネットマスクは「どこまでネットワークか」を表す
ワイルドカードマスクは「どこを無視してよいか」を表す
と覚えると分かりやすいでしょう。
また、両者は基本的に、
255.255.255.255 - サブネットマスク
で相互に変換できます。
ネットワークエンジニアとしてCiscoの設定を扱う場合は、特にACLやOSPFでワイルドカードマスクが頻繁に登場するため、サブネットマスクとの違いを理解しておくことが重要です。

コメント