VACL(VLAN ACL)とは
VACLとは、VLAN自体に適用し、L2/L3/L4でのアクセス制御を行います。Input側での制御のみが可能で、L3スイッチのVLANに設定する場合のイメージは下記の通りです。
実ネットワークを用いた説明
CMLの構成
CMLで下記のネットワークを構築し説明していきます。L3SW(IOSvL2)を1台とServerを4台設置します。
各機器の基本設定はこちら
VACLの設定(NGパターン)
想定通りにならないNGパターンを最初に説明します。
L3SWにServer3(192.168.2.1)への通信のみ許可するVACLを設定します。
192.168.2.1への通信を許可するIPアクセスリストを設定
ip access-list extended VACL_VLAN100
permit ip any host 192.168.2.1
deny ip any any
VLANアクセスマップを作成し、IPアクセスリストに合致した場合は転送を許可する
vlan access-map VMAP_VLAN100 10
match ip address VACL_VLAN100
action forward
IPアクセスリストに合致しない場合は、全て転送しない
vlan access-map VMAP_VLAN100 20
action drop
VLANアクセスマップをVLAN100に適用
vlan filter VMAP_VLAN100 vlan-list 100
設定箇所は下記のイメージです。
疎通確認(NGパターン)
NGパターンのため、Server1(192.168.1.1)からServer3(192.168.2.1)へのPingによる疎通確認のみを行います。
Server3(192.168.2.1)への通信
ping -c 5 192.168.2.1
cisco@Server1:~$ ping -c 5 192.168.2.1
PING 192.168.2.1 (192.168.2.1): 56 data bytes
--- 192.168.2.1 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss
VACLで許可されているはずですが、疎通不可となっています。
パケットキャプチャ確認(NGパターン)
なぜ通信不可となるのか、パケットキャプチャで確認します。
Server3(192.168.2.1)への通信
デフォルトゲートウェイのARP解決ができないため、通信が成立していないことがわかります。
VACLの設定(OKパターン)
L3SWにServer3(192.168.2.1)への通信のみ許可するVACLを設定します。
ARPを含めたL2通信はすべて許可するMACアクセスリストを設定
mac access-list extended VACL_MAC
permit any any
192.168.2.1への通信を許可するIPアクセスリストを設定
ip access-list extended VACL_VLAN100
permit ip any host 192.168.2.1
deny ip any any
VLANアクセスマップを作成し、IPアクセスリストに合致した場合は転送を許可する
vlan access-map VMAP_VLAN100 10
match ip address VACL_VLAN100
action forward
MACアクセスリストに合致した場合も転送を許可する
vlan access-map VMAP_VLAN100 15
match mac address VACL_MAC
action forward
IP/MACアクセスリストに合致しない場合は、全て転送しない
vlan access-map VMAP_VLAN100 20
action drop
VLANアクセスマップをVLAN100に適用
vlan filter VMAP_VLAN100 vlan-list 100
疎通確認(OKパターン)
Server1(192.168.1.1)から各機器へPingによる疎通確認を行います。
デフォルトゲートウェイ(192.168.1.254)への通信
ping -c 5 192.168.1.254
cisco@Server1:~$ ping -c 5 192.168.1.254
PING 192.168.1.254 (192.168.1.254): 56 data bytes
--- 192.168.1.254 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss
デフォルトゲートウェイへの通信は、VACLで拒否され疎通不可となります。
Server2(192.168.1.2)への通信
ping -c 5 192.168.1.2
cisco@Server1:~$ ping -c 5 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
--- 192.168.1.2 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss
同一セグメントのServer2への通信も、VLAN100を経由するため、疎通不可となります。※同一セグメント内の通信の場合も、VACLで制御できることがわかります。
Server3(192.168.2.1)への通信
ping -c 5 192.168.2.1
cisco@Server1:~$ ping -c 5 192.168.2.1
PING 192.168.2.1 (192.168.2.1): 56 data bytes
64 bytes from 192.168.2.1: seq=0 ttl=63 time=6.384 ms
64 bytes from 192.168.2.1: seq=1 ttl=63 time=7.521 ms
64 bytes from 192.168.2.1: seq=2 ttl=63 time=6.296 ms
64 bytes from 192.168.2.1: seq=3 ttl=63 time=6.155 ms
64 bytes from 192.168.2.1: seq=4 ttl=63 time=6.744 ms
--- 192.168.2.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 6.155/6.620/7.521 ms
デフォルトゲートウェイのARP解決も行われ、VACLで許可されているため、疎通可能となりました。
Server4(192.168.2.2)への通信
ping -c 5 192.168.2.2
cisco@Server1:~$ ping -c 5 192.168.2.2
PING 192.168.2.2 (192.168.2.2): 56 data bytes
--- 192.168.2.2 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss
VACLで拒否されているため、疎通不可です。
パケットキャプチャ確認(OKパターン)
デフォルトゲートウェイ(192.168.1.254)への通信
ARP解決は行えていますが、ICMP通信はVACLで拒否されるため、192.168.1.254まで届かず、Destination unreachableも返ってこないことがわかります。
Server2(192.168.1.2)への通信
ARP解決は行えていますが、ICMP通信はVACLで拒否されるため、192.168.1.2から応答がないことがわかります。
Server3(192.168.2.1)への通信
デフォルトゲートウェイのARP解決後、通信が成立していることがわかります。
Server4(192.168.2.2)への通信
デフォルトゲートウェイのARP解決は行えていますが、ICMP通信はVACLで拒否されるため、192.168.2.2から応答がないことがわかります。
以上で、Catalyst ACL – アクセスコントロールリスト(VACLの詳細)の説明は完了です!