概要

CatalystスイッチのRACL/VACL/PACLのパケットフィルタリングについて、設定と確認コマンドを解説します。通信を特定して、特定した通信に対する動作の設定とフィルタを適用する設定を明確にしておきましょう。

設定の流れ

RACL/VACL/PACLを利用したパケットフィルタリングの設定の基本的な流れは以下のようになります。ルータでのパケットフィルタリングと同様の流れです。

  1. フィルタ対象となる通信を特定する条件と特定した通信に対する動作を決める
  2. フィルタを適用する
図 RACL/VACL/PACL 設定の流れ
図 RACL/VACL/PACL 設定の流れ

RACL/VACL/PACLの設定コマンド

通信を特定して動作を決定する

パケットフィルタリングを行うには、どのような通信であるかを特定して、特定した通信に対する動作を決めます。RACL/VACL/PACLで利用する通信を特定して動作を決めるための設定方法は、以下です。

  • IP ACL(標準/拡張)
  • VLAN access-map
  • MAC ACL

IP ACL(標準/拡張)

IP ACLには、通信を特定するために設定できる条件によって標準ACLと拡張ACLがあります。標準ACLの設定は、グローバルコンフィグレーションモードで次のコマンドを入力します。

IP ACL(標準)

(config)#access-list <ACL-number> {permit|deny} <source-address> [<wildcard>] [log]

<ACL-number> : アクセスコントロールリスト番号 1~99または1300~1999
<source-address> : 送信元IPアドレス
<wildcard> : ワイルドカードマスク
log : アクセスコントロールリストの条件に一致したときにログを生成

拡張ACLの設定は、グローバルコンフィグレーションモードで次のコマンドを入力します。

IP ACL(拡張)

(config)#access-list <ACL-number> {permit|deny} <protocol> <source-address> <wildcard> [<source-port>] <dest-address> <wildcard> [<dest-port>] [log]

<ACL-number> : アクセスコントロールリスト番号 100~199または2000~2699
<protocol> : プロトコル
<source-address> : 送信元IPアドレス
<wildcard> : ワイルドカードマスク
<source-port> : 送信元ポート番号
<dest-address> : 宛先IPアドレス
<wildcard> : ワイルドカードマスク
<dest-port> : 宛先ポート番号
log : アクセスコントロールリストの条件に一致したときにログを生成

標準ACLでは、細かく通信を識別できません。そのため、パケットフィルタリングを行うときにはほとんど拡張ACLを利用することになるでしょう。

関連記事

IP ACLのコマンドについてのさらに詳細は、以下の記事をご覧ください。

名前付きACLの設定でもOKです。名前付きACLについて、以下の記事もあわせてご覧ください。

VLAN access-map

VACLでパケットフィルタリング対象の通信を特定して、動作を決めるためにはVLAN access-mapを作成します。グローバルコンフィグレーションモードで次のコマンドを入力します。

VLAN access-map

(config)#vlan access-map <map-tag> [<seq>]
(config-access-map)#match <condition>
(config-access-map)#action <action>

<map-tag> : VLAN access-map名
<seq> : シーケンス番号
<condition> : 通信を特定するための条件
<action> : 特定した通信に対する動作

VLAN access-mapはルートマップによく似たコマンドフォーマットです。上記の3行分が1つの処理を表します。

match <condition>として、結局はIP ACLやMAC ACLを参照します。IP ACLを参照するときには、match条件は以下のように設定します。

match <condition> IP ACL

(config-access-map)#match ip address {<IP-ACL-num>|<IP-ACL-name>}

<IP-ACL-num>|<IP-ACL-name> : 参照するIP ACL番号またはIP ACL名

MAC ACLを参照するには、match条件は以下のように設定します。

match <condition> MAC ACL

(config-access-map)#match mac address <MAC-ACL-name>

<MAC-ACL-name> : 参照するMAC ACL名

match <condition>の設定を省略すると「すべて」です。

また、特定した通信に対する動作のaction <action>で設定できる内容は以下の通りです。

set <actoin>の例

SW1-IOU(config-access-map)#action ?
  drop     Drop packets
  forward  Forward packets

dropは破棄で、forwardは転送するという言葉通りの動作です。プラットフォームによって、さらに別のアクションも設定できます。

以上のようなmatch <condition>とaction <action>を必要なだけ設定します。デフォルトで10ごとに<seq>が振られます。<seq>が小さい順から処理して、最後に暗黙のdeny(drop)があります。

MAC ACL

MAC ACLはイーサネットヘッダをチェックして、フィルタする通信を特定して動作を決定します。グローバルコンフィグレーションモードで次のコマンドを入力します。

MAC ACL

(config)#mac access-list extended <MAC-ACL-name>
(config-ext-macl)#{permit | deny} <source-mac-address> <wildcard> <dest-mac-address> <wildcard>

<MAC-ACL-name> : MAC ACL名
<source-mac-address> : 送信元MACアドレス
<dest-mac-address> : 宛先MACアドレス
<wildcard> : ワイルドカードマスク

MAC ACLは非IP通信のみが対象です。MAC ACLでは、IP通信をフィルタできないので注意してください。ただ、ARPは非IPの通信です。MAC ACLでARPのアドレス解決をブロックすることで、結果としてIP通信をブロックできます。

フィルタを適用する

RACL

RACLのパケットフィルタリングを行うには、SVIまたはルーテッドポートのレイヤ3インタフェースにIP ACLを適用します。インタフェースコンフィグレーションモードで次のコマンドを入力します。

フィルタ適用 RACL

(config)#interface <interface-name>
(config-if)#ip access-group {<IP-ACL-number>|<IP-ACL-name>} {in|out}

<interface-name> : インタフェース名(レイヤ3)
<IP-ACL-number> : IP ACL番号
<IP-ACL-name> : IP ACL名

VACL

VACLのパケットフィルタリングを行うには、VLANにVLAN access-mapを適用します。グローバルコンフィグレーションモードで次のコマンドを入力します。

フィルタ適用 VACL

(config)#vlan filter <vlan-access-map-tag> vlan-list <vlan-list>

<vlan-access-map-tag> : VLAN access-map名
<vlan-list> : 適用するVLANのリスト

VLAN access-mapを複数のVLANに一括で適用することもできます。その場合は、「,(カンマ)」または「-(ハイフン)」で複数のVLANを指定してください。

PACL

PACLのパケットフィルタリングを行うには、スイッチポートにIP ACLまたはMAC ACLを適用します。IP ACLを適用するコマンドは以下です。

フィルタ適用 PACL(IP ACL)

(config)#interface <interface-name>
(config-if)#ip access-group {<IP-ACL-number>|<IP-ACL-name>} in

<interface-name> : インタフェース名(スイッチポート)
<IP-ACL-number> : IP ACL番号
<IP-ACL-name> : IP ACL名

MAC ACLを適用するコマンドは以下です。

フィルタ適用 PACL(MAC ACL)

(config)#interface <interface-name>
(config-if)#ip access-group <MAC-ACL-name> in

<interface-name> : インタフェース名(スイッチポート)
<MAC-ACL-name> : MAC ACL名

RACL/VACL/PACLの確認コマンド

コマンド概要
#show access-listsIP ACL、MAC ACLを表示します。
#show vlan access-mapVLAN access-mapを表示します。
#show ip interfaceインタフェースに適用されているIP ACLを表示します。
#show vlan filterVLANに適用されているVLAN access-mapを表示します。
#show mac access-groupインタフェースに適用されているMAC ACLを表示します。
表 RACL/VACL/PACLの確認コマンド

まとめ

ポイント

  • RACL/VACL/PACLによるパケットフィルタリングの基本的な流れは以下の通りです。
    • フィルタ対象となる通信を特定する条件と特定した通信に対する動作を決める
    • フィルタを適用する
  • RACLのパケットフィルタリングは、レイヤ3インタフェースにIP ACLを適用します。
  • VACLのパケットフィルタリングは、VLANにVLAN access-mapを適用します。
  • PACLのパケットフィルタリングは、スイッチポートにIP ACLまたはMAC ACLを適用します。

セキュリティの基礎