ACL(ワイルドカードマスク)

アクセスリストでは、ネットワークを指定する際に、サブネットマスクが使えません。

標準アクセスリスト

例えば標準IPアクセスリストの構文は以下のようになります。

Router(config)#access-list {番号} {permit | deny} {送信元IP} {ワイルドカードマスク}

 ネットワークを指定するのにサブネットマスクが使えないとなると、例えば、送信元IPアドレスが「192.168.1.0/24」からのアクセスを拒否するアクセスリストを作成する場合、次のように指定するしかありません。

Router(config)#access-list 1 deny 192.168.1.1
Router(config)#access-list 1 deny 192.168.1.2
Router(config)#access-list 1 deny 192.168.1.3
  ・
  ・
  ・
Router(config)#access-list 1 deny 192.168.1.254

 これでは、ネットワークに所属するホスト数が多ければ、多いほど定義が煩雑になってきます。またルータもこれだけのACLをチェックをするとなるとかなり負荷がかかってしまうことになります。

そこで、Ciscoルータには、ワイルドカードマスクという仕組みが用意されています。

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

 0 ・・・ 一致する
 1 ・・・ 無視する

で評価します。

例えば、先ほどの「192.168.1.0/24」を指定する場合を考えてみます。

 第1オクテット~第3オクテットの「192.168.1」まで一致して、残りの第4オクテット目のホスト部分を無視すれば、よいので、ワイルドカードマスクの指定は、下のようになります。

10進数表記19216810
IPアドレス11000000101010000000000100000000
ワイルドカードマスク  00000000000000000000000011111111

ワイルドカードマスクを指定することにより、たくさん必要だったACLが下のように短くなります。

Router(config)#access-list 1 deny 192.168.1.0 0.0.0.255

 一見、ワイルドカードマスクは、サブネットマスクを逆(ビット反転したもの)にしたような印象を受けてしまいますが、サブネットマスクの逆ではありません。ワイルドカードマスクとサブネットマスクは別物です。

例えば、偶数IPの指定、奇数IPの指定のようなちょっと変わった指定もできます。

偶数IPの指定

「192.168.1.0/24」ネットワーク内の偶数IPだけをチェックするには以下のように指定します。

 第1オクテット~第3オクテットの「192.168.1」まで一致して、残りの第4オクテット目のホスト部分の内、最後のビットが「0」になればよいわけですから、ワイルドカードマスクの指定は、下のようになります。

10進数表記19216810
IPアドレス11000000101010000000000100000000
ワイルドカードマスク  00000000000000000000000011111110

最下位ビットが「0」になっているかをチェックすれば、偶数IPアドレスであるかどうかが分かります。

「192.168.1.0/24」ネットワーク内の偶数IPだけ拒否するACLを作成する場合は、以下のようになります。

Router(config)#access-list 1 deny 192.168.1.0 0.0.0.254

奇数IPの指定

「192.168.1.0/24」ネットワーク内の奇数IPだけをチェックするには以下のように指定します。

 第1オクテット~第3オクテットの「192.168.1」まで一致して、残りの第4オクテット目のホスト部分の内、最後のビットが「1」になればよいわけですから、ワイルドカードマスクの指定は、下のようになります。

10進数表記19216811
IPアドレス11000000101010000000000100000001
ワイルドカードマスク  00000000000000000000000011111110

最下位ビットが「1」になっているかをチェックすれば奇数IPアドレスであるかどうかが分かります。

「192.168.1.0/24」ネットワーク内の奇数IPだけ拒否するACLを作成する場合は、以下のようになります。

Router(config)#access-list 1 deny 192.168.1.1 0.0.0.254

 このように、ワイルドカードマスクを指定することによって柔軟にネットワークアドレスや特定のホストを指定することができます。また、ワイルドカードマスクは、OSPF の設定でも必要になってきます。

 次の「ACL(host・anyキーワード・省略)」では、ワイルドカードマスクを指定する際の省略形の指定の仕方を解説します。