关于在vlan的接口上使用ACL配置的方向问题,在几个专业论坛里面看到经常有人提起。在这里我总结一下。还是举例说明吧。
 
1,拓扑图如:
Host_A(1.1.1.1) <------> (1.1.1.2)E1:SW:E2(2.2.2.2) <------> (2.2.2.1)Host_B
需求(由于是说明ACL放置接口的方向问题,所以需求简单一点):
只允许Host_A访问Host_B,其他访问Host_B的拒绝。
所以在SW上面可以配置如下:
ip access-list extended to_host_b
permit ip host 1.1.1.1 host 2.2.2.1
int e2
ip access-group to_host_b out
这里可以明显的看出方向使用out方向,我知道ACL用在硬接口上面大家都很容易理解,一般都不会弄错。下面说明怎么理解ACL配置在vlan接口上。
 
2,拓扑图如:
Host_A(1.1.1.1) <------> (1.1.1.2)vlan1:SW:vlan2(2.2.2.2) <------> (2.2.2.1)Host_B
需求(由于是说明ACL放置接口的方向问题,所以需求简单一点):
只允许Host_A访问Host_B,其他访问Host_B的拒绝。
所以在SW上面可以配置如下:
ip access-list extended to_host_b
permit ip host 1.1.1.1 host 2.2.2.1
int vlan2
ip access-group to_host_b out
依然是out方向,其实很简单,大家 只要将vlan的虚接口看作是硬接口就行了,不要想得太复杂。但是如果要放在vlan1的IN方向,ACL该怎么写呢?可以如下:
需求(由于是说明ACL放置接口的方向问题,所以需求简单一点):
只允许Host_A访问Host_B,其他访问Host_B的拒绝。
所以在SW上面可以配置如下:
ip access-list extended to_host_b
permit ip host 1.1.1.1 host 2.2.2.1
deny ip any host 2.2.2.1
per ip any any
int e1
ip access-group to_host_b in
 
其实很简单,有一个规律可以增加些理解:
针对某个vlan接口应用acl的方向问题,大家可以看看acl的源和目标地址段。当源地址段为应用vlan接口的ip段时,就是用in方向;当目的地址段为应用vlan接口的ip段时,就是用out方向。反正有一点需要注意,应用在vlan的ACL为out方向时,其目的地址肯定是此vlan的ip网段内地址或者在acl中用any来匹配,但是用其他具体网段来匹配的话是匹配不上的;应用在vlan的ACL为in方向时,其源地址肯定是此vlan的ip网段内地址或者在acl中用any来匹配,但是用其他具体网段来匹配的话同样是匹配不上的。