CatalystスイッチにおけるACLの種類
Catalystスイッチでは、ACL(アクセス制御リスト)は大きく3種類に分けられます。それぞれ適用される場所や対象が異なるため、試験対策として違いを明確に整理して覚えることが重要です。
- RACL(Router ACL)
ルーティングを行うインターフェースに適用するACLです。SVI(Switch Virtual Interface)やルーテッドポートに設定でき、Ciscoルータで利用するACLとほぼ同じ考え方で扱えます。 - VACL(VLAN ACL)
VLAN全体に適用するACLです。ルーティングだけでなく、同一VLAN内でのブリッジング通信にもフィルタをかけられます。VLANアクセスマップという仕組みで定義されるため、通常のACLより少し設定手順が特殊です。 - PACL(Port ACL)
個別のL2ポート(アクセスポートやトランクポート)に適用できるACLです。ブリッジングにもルーティングにも適用可能で、対象範囲がポート単位になるのが特徴です。
これらを同時に利用した場合、処理の優先順位は PACL → VACL → RACL の順番で評価されます。つまり、まず物理ポート単位で制御し、その次にVLAN単位、最後にL3ルーティングの段階でRACLが適用されます。
RACLの仕組みと設定例
RACLはルーティングの場面で利用されるACLです。スイッチがL3動作しているインターフェースに設定するため、IPルーティングを通過するトラフィックに対してアクセス制御を行います。
例えば、ルーテッドポート Gi0/1 に受信するHTTPパケットだけを許可し、さらにSVI 10から送信されるトラフィックは宛先 10.1.1.1 宛のHTTP通信だけを許可する設定は以下のように行います。
interface gigabitethernet 0/1
no switchport
ip address 192.168.0.254 255.255.255.0
ip access-group 101 in
interface vlan 10
ip address 10.1.1.254 255.255.255.0
ip access-group 102 out
access-list 101 permit tcp any any eq www
access-list 102 permit tcp any host 10.1.1.1 eq www
VACLの仕組みと設定例
VACLはVLAN全体に対して適用されるACLです。大きな特徴は、ルーティングだけでなく同一VLAN内のブリッジングにも効くという点です。
例えば、ホストBとCが同じVLANにいる場合、通常であれば自由に通信できます。しかし、VACLを使うとこのVLAN内通信を制御できます。また、異なるセグメント間通信でも、そのVLANを経由するトラフィックに対して制御が可能です。
以下は「送信元192.168.0.1と10.1.1.2から宛先10.1.1.1へのTCP通信を拒否し、それ以外のIP通信は許可する」という設定例です。
ip access-list extended A-TCP
permit tcp host 10.1.1.2 host 10.1.1.1
permit tcp host 192.168.0.1 host 10.1.1.1
ip access-list extended A-IP
permit ip any any
vlan access-map V-MAP 10
match ip address A-TCP
action drop
vlan access-map V-MAP 20
match ip address A-IP
action forward
vlan filter V-MAP vlan-list 10
PACLの仕組みと設定例
PACLは物理ポート単位で適用するACLです。VACLと同様にブリッジングにもルーティングにも効きますが、適用範囲が「特定のポート」に限られます。
例えば、以下のように設定すると特定ポートを通る特定の通信だけを遮断できます。
ip access-list extended A-TCP1
deny tcp host 192.168.0.1 host 10.1.1.2
permit ip any any
ip access-list extended A-TCP2
deny tcp host 10.1.1.2 host 10.1.1.1
permit ip any any
interface gigabitethernet 0/1
ip access-group A-TCP1 in
interface gigabitethernet 0/2
ip access-group A-TCP2 in
このように、ポートごとに異なる制御ができるのがPACLの強みです。
VACL(VLAN Access-List)の概要
VACLは「VLANに適用するACL」であり、RACLのようにルーティング時だけでなく、同一VLAN内のブリッジング通信にもフィルタをかけることができます。つまり、VLANに入ってくるトラフィックであれば、L2でもL3/L4でも対象となるのが特徴です。
VACLで利用できるACLの種類
VACLを構成する際には、対象となるトラフィックを指定するために次の2種類のACLを利用します。
- IPアクセスリスト
IPv4やIPv6のパケットに対して利用する。標準ACL・拡張ACL・名前付きACLが使用可能。 - MACアクセスリスト
イーサネットフレームのフィールドに基づいてフィルタリングする。IP以外のトラフィックを制御可能。
VACLの設定手順
VACLは大きく3つのステップで構成されます。
Step1: 対象トラフィックを定義
IPアクセスリストやMACアクセスリストを作成して、どのトラフィックを対象とするかを指定する。
access-list 101 permit ip 192.168.1.0 0.0.0.255 any
mac access-list extended DBSV
permit host 0000.aaaa.1111 any
Step2: VACLを定義
VLANアクセスマップを作成し、対象トラフィックを転送(forward)するか破棄(drop)するかを設定する。
vlan access-map V-MAP 10
match ip address 101
action drop
vlan access-map V-MAP 20
match mac address DBSV
action drop
vlan access-map V-MAP 30
action forward
ポイント:
- matchを省略すると「match any」となり、全トラフィックが対象になる
- VACLには「暗黙のdrop」があるため、forwardを明示しないと通信が遮断される
Step3: VLANへ適用
作成したVACLをVLANに適用する。
vlan filter V-MAP vlan-list 100
複数のVLANに適用する場合は次のように指定する。
vlan filter V-MAP vlan-list 100,200
VACLの確認コマンド
設定内容や適用状況は以下のコマンドで確認する。
show vlan access-map
show vlan filter
show access-lists
PACL(Port Access-List)の概要
PACLは、CatalystスイッチのL2ポート(アクセスポート、トランクポート、EtherChannelポートなど)に適用できるACLです。適用対象は着信トラフィックのみで、送信方向には適用できません。
特徴として、VACLと同じくブリッジングとルーティングの両方に適用できる点があります。ただし、スイッチ自身が送信するL2制御トラフィック(CDP、STP、VTP、DTP)には影響を与えません。さらに、PACLはハードウェア(TCAM)で処理されるため、高速に動作します。ACLを作成するとTCAMにエントリが登録されます。
PACLで使える2種類のACL
- IPアクセスリスト
IPv4やIPv6パケットに適用。標準ACL、拡張ACL、名前付きACLが利用可能。 - MACアクセスリスト
MACアドレスやEtherTypeを基準に非IPトラフィックをフィルタリング可能。
IPパケット自体は常に許可されるが、ARPなどの非IP通信を遮断すると通信が成立しなくなる点に注意。
PACLのモード
PACLは、RACLやVACLとの組み合わせを考慮して2つの動作モードを持っています。
- 優先ポートモード(prefer port)
PACLのみ有効となり、RACLやVACLを無効化するモード。トランクポートで使用する場合に選択可能。 - マージモード(merge)
PACL → VACL → RACL の順で評価されるモード。デフォルトはこちら。
PACLの設定手順
MACアクセスリストを利用する場合
mac access-list extended acl-name
permit [host src-mac | any] [host dst-mac | any]
interface interface-id
mac access-group acl-name in
IPアクセスリストを利用する場合
access-list number [permit | deny] protocol source-ip port destination-ip port
interface interface-id
ip access-group acl-number in
モード設定(任意)
interface interface-id
access-group mode [prefer port | merge]
設定例
特定ベンダーのMACアドレスだけ許可
mac access-list extended M-VIDEO
permit 1111.aa00.0000 0000.00ff.ffff any
interface GigabitEthernet0/1
mac access-group M-VIDEO in
DECnetトラフィックを遮断
mac access-list extended M-DECNET
deny any any decnet-v
permit any any
interface GigabitEthernet0/1
mac access-group M-DECNET in
特定のARP通信をブロック(VACLと併用)
mac access-list extended M-ARP
permit host 1234.5678.1234 host 1234.5678.abcd 0x0806 0x0
vlan access-map V-MAP 10
match mac address M-ARP
action drop
vlan access-map V-MAP 20
action forward
vlan filter V-MAP vlan-list 30