用于switch的ACL主要有三种:
1>RACLs(Router Access Control Lists):可应用于任何的swtich的Layer3接口或SVI(Switch Virtual Interface)。Cisco Catalyst Switch支持硬件平面的RACL。
2>PACLs(Port Access Control Lists):可应用于任何swtich的Layer2接口,trunk接口,EtherChannel接口,进行基于port的流量过滤
3>VACLs(Vlan Access Control Lists):可应用于vlan接口,用于过滤vlan内数据流量。


Case Study:VACLs
VACL可用于过滤VLAN内的过滤所有的IP/MAC层的流量。
使用限制:
1>VACLs不分 inboundoutbound,对双向数据流过滤。
2>一个VACLs可以用于多个VLAN中;但一个VLAN只能与一个VACL关联。
VACLs的匹配操作有三种:
1>Permit:正常转发数据。可以使用capture参数(只有Catalyst 6500支持)将流量copy到另一个捕获接口,这种VACLs操作可用于配置SPAN。
2>Redirect:重定向特定的数据流,可进行相应的SPAN操作。(只有Catalyst 6500支持此操作)
3>Deny:丢弃相应的数据。如果使用logging参数可进行相应的记录(只有Catalyst 6500支持此操作)。
两种feture只被Cisco Catalyst 6500支持:
1>VACL capture:将转发的数据包捕获于capture port。这个选项只能用于permit操作。capture port可以是任意的一个IDS monitor port或其它的Ethernet port。capture port必须处于Layer3流量交换的出口VLAN。
2>VACL redirect:匹配的数据包被重定向到一个特定的ports,最多可以配置5个redirect ports,且redirect pors必须被配置于一个有VACL应用的VLAN上。

VACLs Configuration:
switch(config)# vlan access-map { map-name} [ seq#]
swtich(config-access-map)# action {drop [log]} | {forward [capture]} | {redirect {{fastethernet | gigabitethernet | tengigabitethernet} {slot/port} | {port-channel {clannel_id}}
switch(config)# vlan filter { map_name} vlan_list { list}
switch# show vlan access-map { map_name}
switch# show vlan filter [ access-map { map_name} | { vlan_id}]

Example:
!
vlan access-map PxR1 10
action drop
match ip address 1
vlan access-map PxR1 20
action forward
vlan filter VACL vlan-list 1-4094
vlan internal allocation policy ascending
!
access-list 1 permit 10.1.0.0 0.0.255.255
!

Case Study:VLAN间ACL与VACLs:
1>VLAN间ACL就是 将ACLs应用到相应VLAN接口来实现过滤的,它与一般的router上的ACLs一样,只是简单的过滤接口流量。 这种过滤也与router上的ACLs一样,可以对不同方向的流量分别过滤。
2>VACLs是过滤VLAN上的流量的ACL。我们也可以用VACLs来实现VLAN间的ACL,即不允许/允许目的地是其它VLAN的流量通过这个VLAN就可以了。
用VACLs过滤VLAN间的流量时应注意:VACLs没有inboud和outbound之分,它的流量过滤是双向的,所以在一个VACLs里应该建立本地VLAN到其它VLANs的过滤及其它VLANs到本地VLAN的过滤。


Case Study:PACLs
PACLs用于任何swtich的Layer2接口,trunk接口,EtherChannel接口,进行基于port的流量过滤。
PACLs可以使用三种ACL:
1>Standard ACL
2>Extended ACL
3>Extended MAC ACL
PACLs应用于trunk接口时,将过滤trunk端口上所有的vlan的流量。
PACLs应用到VOIP电话与PC串连的端口时,将过滤所有数据和语音VLAN的流量。
PACLs使用IP ACL,过滤IP流量,使用MAC ACL过滤非IP流量,同时使用IP ACL与MAC ACL可以过滤IP流量与非IP流量。
Extended MAC ACL Configuration:
switch(config)# mac access-list extended { mac_acl_name}
switch(config-ext-macl)# permit|deny [any|host {source_mac}|{source_mac source_mac_mask}] [any|host {dest_mac}|{dest_mac dest_mac_mask}] [aarp|amber|dec-spanning|decnet-iv|diagnostic|dsm|etype-6000|etype-8042|lat |lavc-sca|mop-console|mop-dump|msdos|mumps|netbios|vines-echo|vines-ip| ns-idp|0-65535] [cos cos]
switch(config)# interface { type no.#}
switch(config-if)# mac access-group { mac_acl_name} in
在接口上应用mac ACL的命令与ip acl类似。
注:PACLs只能应用in方向

switch# show access-lists
switch# show access-group [ interface no.#]
案例:
!
mac access-list extended sense
 permit host 0000.0000.0001 host 0000.0000.0002
!
access-list 100 permit ip 10.1.1.0 0.0.0.255 any eq www
access-list 100 deny ip any any
!
interface f1/12
 switchport trunk encapsulation dot1q
 switchport mode trunk
 ip access-group 100 in
 mac access-group sense in
!