【Cisco IOS】ワイルドカードマスクとアクセスリスト

ワイルドカードマスク

Cisco IOSではACL等を設定する際、IPアドレスの範囲を指定ために、ワイルドカードマスクを使用します。
 ワイルドカードマスクは、IPアドレスのどの部分を読み取る必要があるのかを示すためのもの。
 ワイルドカードマスクは32ビットの数値で1オクテットごとにドット( . )で区切り10進数表記する。
 サブネットマスクとは逆で、ビットが0の所はチェック対象で、ビットが1の所はチェックの対象外。

 例1)192.168.10.0/24 をチェック対象にした場合

 ・IPとワイルドカードマスクを2進数で表記
  IP:11000000.10101000.00001010.00000000
  ワイ:00000000.00000000.00000000.11111111
 ・IPとワイルドカードマスクを10進数で表記
  192.168.10.0 0.0.0.255

 例2)192.168.10.0/26 をチェック対象にした場合

 ・IPとワイルドカードマスクを2進数で表記
  IP:11000000.10101000.00001010.00000000
  ワイ:00000000.00000000.00000000.00111111
 ・IPとワイルドカードマスクを10進数で表記
  192.168.10.0 0.0.0.63

 例3)特定のホスト(192.168.10.1)を指定したい場合

 ・IPとワイルドカードマスクを2進数で表記
  IP:11000000.10101000.00001010.00000001
  ワイ:00000000.00000000.00000000.00000000
 ・IPとワイルドカードマスクを10進数で表記
  192.168.10.1 0.0.0.0
 ↓↓↓省略形として以下の様にも記述可能
  host 192.168.10.1

 例4)全てのIPアドレスの指定

 ・IPとワイルドカードマスクを2進数で表記
  IP:00000000.00000000.00000000.00000000
  ワイ:11111111.11111111.11111111.11111111
 ・IPとワイルドカードマスクを10進数で表記
  0.0.0.0 255.255.255.255
 ↓↓↓省略形として以下の様にも記述可能
  any

 例5)192.168.0.0/24 ~ 192.168.3.0/24の4つを指定

 ・IPとワイルドカードマスクを2進数で表記
  IP:11000000.10101000.00000000.00000000
  IP:11000000.10101000.00000001.00000000
  IP:11000000.10101000.00000010.00000000
  IP:11000000.10101000.00000011.00000000
  ワイ:00000000.00000000.00000000.11111111
 ・IPとワイルドカードマスクを10進数で表記
  1行目 192.168.0.0 0.0.0.255
  2行目 192.168.1.0 0.0.0.255
  3行目 192.168.2.0 0.0.0.255
  4行目 192.168.3.0 0.0.0.255

 ↓↓↓※集約が可能
  22ビット目までは共通しており、23ビット目~32ビット目は変動するため、22ビットマスクとみなすことも可能。
  IP:11000000.10101000.00000000.00000000
  IP:11000000.10101000.00000001.00000000
  IP:11000000.10101000.00000010.00000000
  IP:11000000.10101000.00000011.00000000
  ワイ:00000000.00000000.00000011.11111111
 ・IPとワイルドカードマスクを10進数で表記
  192.168.0.0 0.0.3.255
※パッと見のわかりやすさを重視して、前者の様に集約しない形で記載することも多い。

ACL(アクセスリスト)

Cisco ルータ上を通過するパケットを制御 (許可/拒否) します。この機能は、パケットフィルタリングとも呼ばれ、ネットワークセキュリティを確保するために、止めたり通したりと制御するものです。

標準ACL(アクセスリスト)

パケットの送信元IPアドレスを指定してパケットフィルタリングを行います。
名前付き標準ACLと番号付き標準ACLがあります。番号付き標準ACLの設定方法を説明します。

拡張ACL(アクセスリスト)

標準ACLでは送信元IPだけを指定しますが、拡張ACLでは宛先IP、送信元ポート番号、宛先ポート番号、プロトコル等も指定して、パケットフィルタリングする出来ます。

標準ACLの設定

標準ACL(アクセスリスト)の作成

 (config)# access-list [number] [ permit | deny ] [source] [wildcard]

 number:以下の内の任意の番号が入ります。

番号種類
1~99IP標準アクセスリスト
100~199IP拡張アクセスリスト
1300~1999IP標準アクセスリスト
2000~2699IP拡張アクセスリスト

 source:送信元IPアドレスを指定する。
 
 wildcard:ワイルドカードマスクを指定する。

 permit | deny
 permitで許可、denyで拒否を示します。
 

拡張ACL(アクセスリスト)の作成

 (config)# access-list [number] [ permit | deny ] [protocol] [source] [wildcard] [port] [dest] [wildcard] [port] [ established | log | log-input ]

※[port] [ established | log | log-input ] はオプション。

 number:※標準ACL(アクセスリスト)を参照

 source:送信元IPアドレスを指定する。
 
 dest:宛先IPアドレスを指定する。

 wildcard:ワイルドカードマスクを指定する。
 
 protocol:
 プロトコル名を指定する。( 例 : ip / icmp / tcp / udp )

 port:以下の演算子の後にポート番号を指定する。
 ・ eq ( equal = 等しい)
 ・ neq ( not equal = 等しくない)
 ・ gt ( greater than = より大きい )
 ・ lt ( less than = より小さい )
 ・ range ( ポート番号の範囲 )

 permit | deny:
 permitで許可、denyで拒否を示します。
 
 established:
 ACKまたはRSTビットの立っているパケットが対象となる。
 
 log:ログが出力される。
 
 log-input:
 ログが出力される。(送信元MACアドレスも出力される。)
 

ACL(アクセスリスト)のインターフェースへの適用

 (config-if)#ip access-group [number] [ in | out ]  
 number:
インターフェースに適用するACLの番号を指定。
 
 in | out:
 inの場合は、そのインターフェースに到着するパケットを指定。
 outの場合は、そのインターフェースから発信するパケットを指定。

ACL(アクセスリスト)の設定の例

accesslists1

標準ACL(アクセスリスト)

A→Router0→Cは許可し、それ(A)以外から→Router0→Cは拒否する様に設定します。
Router0の設定
(config)#access-list 11 permit 192.168.0.0 0.0.0.255
(config)#access-list 11 deny any   ※暗黙のdeny anyがあるため、打たなくても同じ
(config)#interface Vlan1
(config-if)#ip access-group 11 out
(config-if)#end

拡張ACL(アクセスリスト)

C→Router0→Aは許可し、それ(C→Router0→A)以外は拒否する様に設定します。
Router0の設定
access-list 111 permit ip 192.168.22.0 0.0.0.255 192.168.0.0 0.0.0.255
access-list 111 deny ip any any   ※暗黙のdeny anyがあるため、打たなくても同じ
interface Vlan1
ip access-group 111 in
exit

 
 
Cisco IOSカテゴリーのトップページは、Cisco IOSです。