ITの教科書検索
入門・発展ページ読了 約9分

ACL(アクセスリスト)とは ― ワイルドカードマスク

ACL(アクセスリスト)とは、ルータで通信を許可・拒否するルールの一覧です。上から照合し、最初に一致した行で通すか止めるかが決まります。標準・拡張ACLとワイルドカードマスクも例で解説。

目次
  1. ACLとは、通信を許可・拒否するルールの一覧
  2. 照合の仕組み:上から順に、最初の一致で決まる
  3. 動かして確かめる:パケットはどの行で止まるか
  4. 標準ACLと拡張ACLの違い
  5. ワイルドカードマスクの読み方
  6. 適用する向き:インバウンドとアウトバウンド
  7. 練習問題

ACLとは、通信を許可・拒否するルールの一覧

ACLとは、ルータなどの機器に設定するルールの一覧で、どの通信を許可し、どの通信を拒否するかを決めます。正式名はアクセスコントロールリスト(Access Control List)で、短くアクセスリストと呼ぶこともあります。

考え方は、ファイアウォールの記事で説明したパケットフィルタリングと同じです。ルータを通過するパケットを、IPアドレスやポート番号などのルールと照合し、通してよいかどうかを判断します。専用のファイアウォール機器がなくても、ルータの設定だけで近いことができます。

ルータは、ACLを書いた順番どおりに照合します。順番を間違えると、通したい通信まで止まります。このあと、照合の順番とワイルドカードマスクの読み方を例で説明します。

照合の仕組み:上から順に、最初の一致で決まる

ACLには、通信を許可または拒否するルールを、1行ずつ順番に並べます。ルータに届いたパケットは、1行目から順にこのルールと照合されます。

最初に一致した行の動作が、そのまま適用されます。一致した時点で照合は止まり、それより下の行は見ません。

どの行にも一致しなかった通信は、最後に拒否されます。このルールを暗黙の拒否と呼びます。ファイアウォールの記事で説明した暗黙の拒否と、同じ考え方です。

行の並び順は、結果を左右します。たとえば、すべてを拒否する行を先頭に置いたとします。すると、その下に書いた許可の行には、どのパケットも到達しません。実質的に、すべての通信が拒否されます。

動かして確かめる:パケットはどの行で止まるか

下には、インバウンド用とアウトバウンド用、2つのACLがあります。向きの意味は、この後の節で説明します。5つのパケットを選んで、どちらのACLのどの行で止まるかを確かめられます。

インバウンドACL(Gi0/0・到着時に照合)

No送信元(ワイルドカードマスク)宛先宛先ポートプロトコル動作
10anyhost 203.0.113.60443TCP許可
20anyhost 203.0.113.6080TCP許可
(自動)0.0.0.0 255.255.255.2550.0.0.0 255.255.255.255anyany拒否(暗黙の拒否)

アウトバウンドACL(Gi0/0・送出直前に照合)

No送信元(ワイルドカードマスク)宛先宛先ポートプロトコル動作
10192.168.10.0 0.0.0.255any53UDP許可
(自動)0.0.0.0 255.255.255.2550.0.0.0 255.255.255.255anyany拒否(暗黙の拒否)

P1:外部のクライアントが、公開Webサーバに HTTPS で接続する(到着時)

送信元 198.51.100.20 → 宛先 203.0.113.60:443(TCP)・インバウンドACLで照合

  1. 行10一致 → ここで確定
  2. 行20不一致 → 次の行へ
  3. 行(自動)不一致 → 次の行へ

結果:許可(行10が決めた)

P5に注目してください。社内PCが外部のWebサイトを見にいく通信(TCPの80番)です。アウトバウンドACLには、外部への問い合わせ(UDPの53番)を許可する行しかありません。そのため、P5はどの行にも一致せず、暗黙の拒否で止まります。

ファイアウォールの記事で説明したステートフルインスペクションのように通信の状態を記録する機能は、ここで扱う標準ACLと拡張ACLにはありません。そのため、許可したい通信は、行として書いた分しか通りません。

たとえば、P3の問い合わせは外へ出られます。しかし、DNSサーバからの応答はGi0/0に到着するので、インバウンドACLで照合されます。インバウンドACLには応答を許可する行がないため、応答は暗黙の拒否で止まります。

標準ACLと拡張ACLの違い

ACLには、標準ACLと拡張ACLの2種類があります。違いは、照合する項目の数です。

種類照合する項目使う場面
標準ACL送信元IPアドレスだけ送信元のネットワークごとに、大まかに許可・拒否したいとき
拡張ACL送信元・宛先IPアドレス、プロトコル、送信元・宛先ポート番号Webサーバ・DNSサーバ宛てのように、宛先やサービスまで指定したいとき

標準ACLは、送信元IPアドレスだけを見ます。宛先やポート番号は見ません。

さきほどのデモで使ったACLは、拡張ACLにあたります。宛先IPアドレスと宛先ポート番号まで指定しているためです。

Ciscoのルータでは、ACLに番号を付けて作れます。番号の範囲で、標準か拡張かが決まります。標準ACLは1〜99と1300〜1999、拡張ACLは100〜199と2000〜2699です。番号の代わりに名前で作るACLもあり、名前付きACLと呼びます。

ACLをどこに置くかには、一般的な目安があります。標準ACLは、宛先の近くに置きます。送信元しか見ないため、送信元の近くに置くと、ほかの宛先への通信まで止めてしまうからです。

拡張ACLは、送信元の近くに置きます。宛先まで指定できるので、止めたい通信だけを、ネットワークの中を流れる前に捨てられます。

ワイルドカードマスクの読み方

ワイルドカードマスクとは、IPアドレスのどのビットを照合するかを示す32ビットの値です。CiscoのルータなどのACLで、送信元や宛先のIPアドレスを指定するときに使います。0は照合するビット、1は照合しないビットを表します。

サブネットマスクの記事で説明したANDの考え方と、0と1の意味が逆になっています。サブネットマスクは、1がネットワーク部を、0がホスト部を表しました。ワイルドカードマスクは逆に、0が照合するビットを、1が照合しないビットを表します。

求め方は簡単です。サブネットマスクを8ビットずつに区切った各オクテットを、255から引くだけです。

サブネットマスク計算ワイルドカードマスク
255.255.255.0(/24)255−255, 255−255, 255−255, 255−00.0.0.255
255.255.255.192(/26)255−255, 255−255, 255−255, 255−1920.0.0.63
255.255.0.0(/16)255−255, 255−255, 255−0, 255−00.0.255.255

たとえば255.255.255.192(/26)なら、最後のオクテットは255−192=63です。残り3つのオクテットは255−255=0なので、ワイルドカードマスクは0.0.0.63になります。

ACLの行では、IPアドレスとワイルドカードマスクを並べて書きます。書き方によって、対象になるアドレスの範囲が変わります。

書き方対象になるアドレス
192.168.10.0 0.0.0.255192.168.10.0〜192.168.10.255の256個
192.168.10.25 0.0.0.0192.168.10.25の1台だけ(host 192.168.10.25と同じ意味)
0.0.0.0 255.255.255.255すべてのIPアドレス(anyと同じ意味)

デモのアウトバウンドACLにあった192.168.10.0 0.0.0.255は、この書き方です。192.168.10.0から192.168.10.255までの256個のアドレスが対象になります。これは、サブネットマスクの記事で説明した192.168.10.0/24と同じ範囲です。

適用する向き:インバウンドとアウトバウンド

ACLは、ルータのインターフェースに、インバウンドまたはアウトバウンドのどちらかの向きで設定します。向きによって、照合するタイミングが変わります。

インバウンドACLは、パケットがそのインターフェースに到着した直後に照合します。ルーティングの判断より前です。ここで拒否したパケットは、ルーティングの処理に進みません。

アウトバウンドACLは、ルーティングの判断で出口のインターフェースが決まった後に照合します。そのインターフェースから送り出す直前です。

ルータの中内部LAN192.168.10.0/24ルーティングの判断インバウンドACLGi0/0・到着直後(判断より前)アウトバウンドACLGi0/0・送出直前(判断より後)破棄拒否破棄拒否インターネット到着許可許可
インバウンドACLは、パケットがGi0/0に到着した直後、ルーティングの判断より前に照合します。アウトバウンドACLは、ルーティングの判断で出口がGi0/0に決まった後、送り出す直前に照合します。同じGi0/0でも、どちらの向きに設定するかで、照合する時点が変わります。

さきほどのデモでは、外部からの通信(P1・P2・P4)をGi0/0のインバウンドACLで照合しました。社内PCからの通信(P3・P5)は、Gi0/0のアウトバウンドACLで照合しました。同じインターフェースでも、インバウンドとアウトバウンドでは別のルールの一覧を使います。

このデモは、NATを使わない単純な例です。Ciscoのルータは、内側から外側へ向かう通信のNATを、アウトバウンドACLの照合より前に行います。そのため、NATを使う構成では、アウトバウンドACLが見る送信元は変換後のアドレスになります。

練習問題(全5問)

Q1ACLの複数の行に一致しそうなパケットが届いた。実際に適用される動作はどれ?
Q2ACLのどの行にも一致しなかった通信は、どうなる?
Q3標準ACLと拡張ACLの違いとして正しいものは?
Q4サブネットマスク255.255.255.192に対応するワイルドカードマスクは?
Q5インバウンドACLとアウトバウンドACLの違いとして正しいものは?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

ネットワークを初めて学ぶ人向けの入門書です。

目的別の本の選び方を見る

ネットワークの記事を探す