サブネットマスクとワイルドカードマスクの違い・使い分けは?実際にCisco機器で確認してみた

ネットワーク

サブネットマスクは、IPアドレスのどこまでがネットワーク部かを表すマスクです。一方、ワイルドカードマスクは、IPアドレスの各ビットについて、一致を確認するか、無視するかを指定するマスクです。

この記事では、サブネットマスクとワイルドカードマスクの違いを具体例で解説したうえで、実際にCisco機器でACL・OSPF・EIGRP・BGPなどのコマンドを入力し、それぞれどのマスクが使用されるのかを確認してみます。


サブネットマスクとは?

サブネットマスクとは、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

となります。


実際にCiscoルータで確認してみた

サブネットマスクとワイルドカードマスクの違いを理解するため、実際に自宅のCiscoルータでコマンドを入力して確認してみました。

Cisco IOSでは、コマンド入力中に?を入力することで、その位置で入力できるキーワードやパラメータの候補を確認できます。

今回は、ルーティングコマンドとアクセスリストのコマンド、ルーティングプロトコルコマンドで、それぞれどのような値が求められるのかを確認してみます。

ルーティングコマンドの場合

まず、スタティックルートを設定するip routeコマンドを入力して確認します。

宛先ネットワークのアドレスを入力したあとに?を入力すると、次にサブネットマスクの入力が求められます。

このことから、ip routeコマンドでは、宛先ネットワークを指定する際にサブネットマスクを使用することが分かります。


アクセスリストの場合

次に、アクセスリストの設定を確認します。

アクセスリストでネットワークアドレスを入力したあとに?を入力すると、次にワイルドカードマスクの入力が求められます。

このことから、アクセスリストではIPアドレスやネットワークを指定する際に、ワイルドカードマスクを使用することが分かります。

OSPFの場合

次に、OSPFの設定を確認します。

ネットワークアドレスを入力したあとに?を入力すると、次にワイルドカードマスクの入力が求められます。

EIGRPの場合

次に、EIGRPの設定を確認します。

ネットワークアドレスを入力したあとに?を入力すると、次にワイルドカードマスクの入力が求められます。

BGPの場合

次に、BGPの設定を確認します。

ネットワークアドレスを入力したあとに?を入力すると、OSPFやEIGRPと違い候補が複数ありました。

ワイルドカードマスクの指定はないようです。

maskを入力したあとに?を入力すると、次にサブネットマスクの入力が求められました。

確認結果

  • スタティックルート → サブネットマスク
  • ACL → ワイルドカードマスク
  • OSPF → ワイルドカードマスク
  • EIGRP → ワイルドカードマスク
  • BGP → サブネットマスク

今回確認したCisco IOSのコマンドでは、スタティックルートとBGPではサブネットマスク、ACL・OSPF・EIGRPではワイルドカードマスクが使用されていました。

特に、ルーティングプロトコルの設定では、OSPF・EIGRPとBGPで使用するマスクが異なることが分かります。


「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

と同じ意味です。


まとめ

今回は、サブネットマスクとワイルドカードマスクの違いについて、具体例を交えながら確認しました。

サブネットマスクは、IPアドレスのネットワーク部とホスト部を区別するための値です。一方、ワイルドカードマスクは、IPアドレスのどの部分を一致させ、どの部分を無視するかを指定するための値です。

両者は、0と1の意味が逆になっており、通常のサブネットマスクからワイルドカードマスクを求める場合は、

255.255.255.255 − サブネットマスク
= ワイルドカードマスク

という計算で求めることができます。

また、実際にCisco IOSで?を使用して各コマンドを確認したところ、今回確認したコマンドでは以下のような違いがありました。

  • スタティックルート(ip route) → サブネットマスク
  • ACL → ワイルドカードマスク
  • OSPF → ワイルドカードマスク
  • EIGRP → ワイルドカードマスク
  • BGP → サブネットマスク

特に覚えておきたいのが、OSPF・EIGRPではワイルドカードマスクを使用するのに対して、BGPではサブネットマスクを使用するという点です。

また、ワイルドカードマスクでは、

0.0.0.0       → すべてのビットを一致させる
255.255.255.255 → すべてのビットを無視する

という考え方が基本になります。

例えば、

192.168.1.10 0.0.0.0

であれば192.168.1.10に完全一致し、

0.0.0.0 255.255.255.255

であれば、すべてのIPアドレスに一致します。Ciscoでは、それぞれhostやanyというキーワードで表現することもできます。

サブネットマスクとワイルドカードマスクは見た目が似ていますが、「何を表すためのマスクなのか」を理解することが重要です。

Ciscoの設定では、コマンドによってサブネットマスクとワイルドカードマスクを使い分ける必要があるため、実際に?で確認しながらコマンドを入力してみると、違いをより理解しやすくなります。

タイトルとURLをコピーしました