CCNAワイルドカードマスクの計算方法|ACL・OSPFでの書き方まとめ【200-301対応】
ACLを書こうとした瞬間、あの「0.0.0.255」という数字でつまずいたこと、ありませんか?
サブネットマスクとは意味が逆なので、CCNA受験時はもちろん実務でもうっかりミスが起こりやすいポイントです。この記事ではワイルドカードマスクの計算方法と、ACL・OSPFでの書き方を整理します。
ワイルドカードマスクとサブネットマスクの違い
| 項目 | サブネットマスク | ワイルドカードマスク |
|---|---|---|
| 0の意味 | ホスト部 | 一致必須(チェック対象) |
| 1の意味 | ネットワーク部 | 無視(何でもOK) |
| ビット配置 | 先頭から連続で1 | 不連続でもOK |
| 代表例 (/24) | 255.255.255.0 | 0.0.0.255 |
| 主な用途 | IPアドレス設計 | ACL、OSPF/EIGRPのnetwork |
ポイントは「0=一致」「1=無視」。0がチェックしたいビットで、1は何でもいいビット。
計算方法その1:255から引き算する
これが一番ラク。サブネットマスクの各オクテットを255から引くだけ。
255.255.255.0 → 0.0.0.255
255.255.240.0 → 0.0.15.255
255.255.0.0 → 0.0.255.255
計算方法その2:2進数でビット反転
サブネットマスクを2進数で書いて、0と1を全部ひっくり返すだけ。
255.255.255.0
= 11111111.11111111.11111111.00000000
↓ 全ビット反転
= 00000000.00000000.00000000.11111111
= 0.0.0.255
不連続ビット(偶数/奇数IP指定など)を扱うときはこちらが便利。
早見表
| プレフィックス | サブネットマスク | ワイルドカード |
|---|---|---|
| /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 |
| /30 | 255.255.255.252 | 0.0.0.3 |
| host | - | 0.0.0.0 |
| any | - | 255.255.255.255 |
ACLでの使い方
標準ACL:
Router(config)# access-list 10 permit 192.168.1.0 0.0.0.255
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip access-group 10 in
拡張ACL(192.168.1.0/24 → 10.0.0.0/8 のHTTPを許可):
Router(config)# ip access-list extended WEB-ACL
Router(config-ext-nacl)# permit tcp 192.168.1.0 0.0.0.255 10.0.0.0 0.255.255.255 eq 80
ホスト1台だけなら host 省略形が使える:
access-list 20 permit 192.168.1.10 0.0.0.0
access-list 20 permit host 192.168.1.10 # 同じ意味
OSPFのnetworkコマンドでの使い方
Router(config)# router ospf 1
Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
Router(config-router)# network 192.168.1.1 0.0.0.0 area 0 # IF単位でピンポイント
個人的には、本番環境では最後の形(0.0.0.0)でインターフェース単位に指定するのが事故が少なくておすすめ。
CCNA試験で狙われるパターン
パターン1:連続サブネットまとめ指定
192.168.0.0〜192.168.3.0/24 の4つ → 192.168.0.0 0.0.3.255(/22相当)
パターン2:偶数/奇数IP指定
偶数IPだけ許可 → permit 192.168.1.0 0.0.0.254
(最下位ビット=0だけ一致必須、他は無視)
パターン3:ブロックサイズ法
ワイルドカードマスク + 1 = ブロックサイズ
| ワイルドカード | ブロックサイズ | 開始IP |
|---|---|---|
| 0.0.0.3 | 4 (/30) | 4の倍数 |
| 0.0.0.7 | 8 (/29) | 8の倍数 |
| 0.0.0.15 | 16 (/28) | 16の倍数 |
| 0.0.0.31 | 32 (/27) | 32の倍数 |
| 0.0.0.63 | 64 (/26) | 64の倍数 |
よくあるハマりどころ
-
サブネットマスクを書いてもCisco IOSは受け付ける(エラーにならない) →
show access-listsで必ず展開確認 - 暗黙のdeny any忘れ → permit文を必ず1行は書く
- ACLを適用中のVTY/リモート回線に当てる → 接続断で詰む。現場ではreload in 10を仕込んでから試すのが鉄則
まとめ
- ワイルドカードマスクは「0=一致、1=無視」のCisco独自表記
- 計算は255引き算でほぼOK、不連続パターンだけ2進数で考える
- ACLとOSPFで書式は共通
- 設定後は
show access-listsで必ず展開確認
詳しくはブログで
この記事の完全版(現場エピソード・詳しい設定例・CCNA出題パターンの解説)はブログで公開しています。