自反ACL实验

一、实验环境:

GNS3

c3640-ik9o3s-mz.124-13b.bin 模拟3560三层交换

VPCS模拟PC,使用三台PC,分别属于VLAN1,2,3

外网地址使用loopback 0接口,1.1.1.1/32表示(本实验主要是验证自反ACL

 

自反ACL_第1张图片

 

(这个拓扑和真实环境可能不同,但区别不大,真实环境下,3560一般是trunk链路与其他接入二层交换机相连,这里我们直接把接PC的接口划分到VLAN里,两个环境都是使用三层交换SVI实现跨VLAN访问)。

 

二、基础配置

Sw3560#      (建立VLAN与真实机不同,模拟器只能使用vlan database才能建立)

vlan data

Vlan 2

Vlan 3

Exit

 

SW3560(config)#

interface Loopback0

 ip address 1.1.1.1 255.255.255.255

 

interface FastEthernet1/11

 switchport access vlan 1

 

interface FastEthernet1/12

 switchport access vlan 2

!

interface FastEthernet1/13

 switchport access vlan 3

!!

interface Vlan1

 ip address 172.16.10.1 255.255.255.0

!

interface Vlan2

 ip address 172.16.20.1 255.255.255.0

!

interface Vlan3

 ip address 172.16.30.1 255.255.255.0

 

先测试下实验的环境,看看VLAN间能不能互访

自反ACL_第2张图片

 

自反ACL_第3张图片

 

VLAN是可以互访的

三、需求:

VLAN1 可以访问VLAN2,3

VALN2,3不能访问VALN1

VLAN2不能访问VALN3

VLAN3可以访问VLAN2

所有VLAN都可以访问外网

 

四、ACL规则设计:

 

思路先要理清

 

Int vlan1

可以访问所有网络

Int vlan2

只可以响应VLAN1,VLAN3的连接,可以访问internet , 不可以访问VLAN1,3

Int vlan3

可以访问VLAN2,可以访问internet,不允许主动访问VLAN1,只可以响应VLAN1的连接

×响应连接是指其他VLAN主动建立的连接,才可以允许返回通信数据通过。×

 

 

五、根据设计思路配置:

ip access-list extended v1

permit ip 172.16.10.0 0.0.0.255 any reflect v1to23  

                              (允许VLAN1访问所有地址,并建立v1to23ACL映射表)

 

ip access-list extended v2

evaluate v1to23                   (允许v1to23映射表的连接通过

evaluate v3to2                    (允许v3to2映射表的连接通过)

deny ip 172.16.20.0 0.0.0.255 172.16.10.0 0.0.0.255 (这三条保证不能主
                                                           动访问VLAN 1,3
  deny ip 172.16.20.0 0.0.0.255 172.16.30.0 0.0.0.255  但可以访问internet)

  permit ip 172.16.20.0 0.0.0.255 any

deny ip any any

 

ip access-list extended v3

evaluate v1to23                    允许v1to23映射表的连接通过)

permit ip 172.16.30.0 0.0.0.255 172.16.20.0 0.0.0.255 reflect v3to2

                                                           (建立到VLAN2的映射表)

deny ip 172.16.30.0 0.0.0.255 172.16.10.0 0.0.0.255 (这两条保证不能
                                                       主动
访问VLAN1
  permit ip 172.16.30.0 0.0.0.255 any                  但可以访问Internet)

deny ip any any

 

 

 

应用于接口

Int vlan1

  Ip access-group v1 in

Int vlan2

  Ip access-group v2 in

Int vlan3

  Ip access-group v3 in

 

 

 

 

 

六、验证

1debug ip packet detail

   可以看到ACL数据包的详细信息

通过的日志

*Mar  1 05:31:10.034: IP: tableid=0, s=172.16.30.5 (Vlan3), d=172.16.20.5 (Vlan2), routed via FIB

*Mar  1 05:31:10.038: IP: s=172.16.30.5 (Vlan3), d=172.16.20.5 (Vlan2), g=172.16.20.5, len 48, forward

*Mar  1 05:31:10.042:     ICMP type=8, code=0

*Mar  1 05:31:10.106: IP: tableid=0, s=172.16.20.5 (Vlan2), d=172.16.30.5 (Vlan3), routed via FIB

*Mar  1 05:31:10.110: IP: s=172.16.20.5 (Vlan2), d=172.16.30.5 (Vlan3), g=172.16.30.5, len 48, forward

*Mar  1 05:31:10.114:     ICMP type=0, code=0

 

被阻止的日志

*Mar  1 05:31:51.446: IP: s=172.16.20.5 (Vlan2), d=172.16.10.5, len 48, access denied

*Mar  1 05:31:51.450:     ICMP type=8, code=0

*Mar  1 05:31:51.450: IP: tableid=0, s=172.16.20.1 (local), d=172.16.20.5 (Vlan2), routed via FIB

*Mar  1 05:31:51.454: IP: s=172.16.20.1 (local), d=172.16.20.5 (Vlan2), len 56, sending

*Mar  1 05:31:51.458:     ICMP type=3, code=13

 

2show ip access-lists

查看access-list

 

SW3560#show ip access-lists

Extended IP access list v1

    10 permit ip 172.16.10.0 0.0.0.255 any reflect v1to23 (37 matches)

Reflexive IP access list v1to23

     permit icmp host 1.1.1.1 host 172.16.10.5  (13 matches) (time left 134)

     permit icmp host 172.16.30.5 host 172.16.10.5  (19 matches) (time left 113)

     permit icmp host 172.16.20.5 host 172.16.10.5  (20 matches) (time left 23)

Extended IP access list v2

    10 evaluate v1to23

    20 evaluate v3to2

    30 deny ip 172.16.20.0 0.0.0.255 172.16.10.0 0.0.0.255 (6 matches)

    40 deny ip 172.16.20.0 0.0.0.255 172.16.30.0 0.0.0.255 (3 matches)

    50 permit ip 172.16.20.0 0.0.0.255 any (15 matches)

    60 deny ip any any

Extended IP access list v3

    10 evaluate v1to23

    20 permit ip 172.16.30.0 0.0.0.255 172.16.20.0 0.0.0.255 reflect v3to2 (22 matches)

    30 deny ip 172.16.30.0 0.0.0.255 172.16.10.0 0.0.0.255 (6 matches)

    40 permit ip 172.16.30.0 0.0.0.255 any (30 matches)

    50 deny ip any any

Reflexive IP access list v3to2

     permit icmp host 172.16.20.5 host 172.16.30.5  (19 matches) (time left 267)

很详细了吧,每条匹配的数据包数后面都有显示

Reflexive IP access lis  这项下面的,看到了吧,这个就是自反ACLreflect)建立的ACL映射表,后面还有个time left,这个就相当于老化时间吧,时间归0,这条ACL就自动删除。

 

整个实验完成了,也成功了,拓扑比较简单,原理差不多,主要是一定要先把自己的思路理清楚,别一来就敲命令,除非你经验很丰富或者技术很牛。

自反ACL也可以用于接口,int vlan 本来也就是一个虚拟接口。

 

在真实机3560交换机上,IPbase-12.2.bin的Ios带有reflect命令,但不支持这个功能,就是说这么照这篇文章的命令配置上去,但没有自反ACL的作用。官方的文档也说3560不支持动态ACL。

最后只能使用扩展ACL的TCP连接的established特性来完成。