拓扑图

clip_p_w_picpath002

实验配置详解 (一) 错误的配置(返回数据也被deny掉了)

access-list 101 deny icmp 192.168.2.0 0.0.0.255 10.0.0.0 0.0.0.255 echo

access-list 101 permit tcp 192.168.2.0 0.0.0.255 host 10.0.0.2 eq www

access-list 101 deny ip 192.168.2.0 0.0.0.255 host 10.0.0.3

access-list 101 permit ip any any

一开始配置的ACL入上述,结果出现:

市场部PC7-----(ping)-----àPC6 不通 【合题目要求】

PC6 -----(ping)-----à市场部PC7 不通 【不合题目要求】

应该是能ping通的,通过使用PT包分析,发现ACL配置的问题:

access-list 101 deny ip 192.168.2.0 0.0.0.255 host 10.0.0.3

这条ACL,把从市场部PC7返回的ICMP包给deny掉了:

1. The receiving port has an inbound traffic access-list with an ID of 101. The router checks the packet against the access-list.

2. The packet matches the criteria of the following statement: deny ip 192.168.2.0 0.0.0.255 host 10.0.0.3. The packet is denied and dropped.

正确的解决方式是使用:自反ACL

Cisco Packet Tracer模拟器上没有自反ACL命令,正确的命令可以在真机上验证:

  使用自反ACL的例子:  

一个大楼局域网,核心是三层交换机,楼层为二层交换机,划分几个vlan等等,客户提出一个要求,就是给他们单位领导层单独划分一个vlan A,并且要求做到领导所在的vlan A能够访问其他各个部门的vlan B、C等等,而部门所在的vlan B、C则不能访问领导所在的vlan A。这个属于一个单向访问的案例,今天在公司没事搭了个环境测试了一下,基本上已经解决问题,整理了一下,给各位DRL兄弟做个参考。

整个环境如图所示,因搭环境没有三层交换机(库存新机不敢用,嘿嘿),所以找了台路由器和交换机做了个接口来代替三层交换机。

整个配置其他均为常规配置,如划分vlan,设立网关地址等等。这里不再详细描述,本文仅仅描述如何通过ACL方便而且简单的实现单向访问。

关键点:单向访问用到的是Reflexive ACL的知识点以及reflectuate命令的应用。

我们首先建立两组Reflexive ACL,一组in,一组out。

ip access-list extended out_traffic

permit icmp any any reflect icmp_traffic

permit ip any any reflect ip_traffic

ip access-list extended in_traffic

uate icmp_traffic

uate ip_traffic

deny ip any any log

请大家注意:Reflexive ACL必须是extended字符ACL时才有效。大家请看out的ACL配置,关键是在每个permit后面加上reflect参数,reflect后面的icmp…..为自定义字符。

大家再看inACL配置,关键在这里uate命令后面所跟 的字符必须和outreflect后面的字符相同。

作用是什么呢?当被允许访问其他vlan的vlan A地址访问其他的vlan B地址时,首先通过out的ACL,到达vlan B的计算机,我们知道一个访问的真正建立还必须有返回的数据包,当从Vlan B的计算机的返回数据包经过in 的ACL进行匹配时,因为这个数据包是从A到B的返回数据包,in的ACL的uate字符匹配out的reflect字符,所以允许通过,其他的从B到A的数据包则一律deny。从而实现了A能够访问B,B无法访问A。

这是ACL的具体写法,关键是写outin只要匹配即可。本文的out我写了两个基本的作为测试,详细的可以根据不同需求写的更加具体,大家根据具体案例具体分析。

最后一个关键点是应用到vlan接口上,请务必弄清楚inout的关系

比如:

Interface vlan 1

Ip address 192.168.1.254 255.255.255.0

ip access-group in_traffic in

ip access-group out_traffic out

Interface vlan 2

Ip address 192.168.2.254 255.255.255.0

这个例子如果结合前面的ACL配置就是允许vlan2访问vlan1,而禁止vlan1访问vlan2。不知道大家是否搞清楚了这个in和out的关系。

重要备注:inout的关系不仅仅和应用到哪个接口,如何应用有关系,还和ACL的写法有关系,比如ACL的通常写法有两种,一种是permit具体的条件,然后deny剩余的其他一切条件。另外一种是deny具体的某些条件,然后permit剩余的其 他一切条件。

  (二) 不使用自反ACL的配置(利用established)

要求实现的功能(只考虑www和icmp两种服务):

允许市场部(192.168.2.0)访问WebServer 80(10.0.0.2)端口

不允许市场部PING通WebServer网段

不允许市场部访问PC6

允许PC6访问市场部的Server0

没有提到的功能,默认都是deny。

 

在S2/0的入方向配置:

access-list 101 permit tcp any 10.0.0.0 0.0.0.255 established

外网能回应内网所有主机的TCP连接(已经建立连接的可以连接),

允许PC6访问市场部的Server0,允许Server0的返回流量通过S2/0】

access-list 101 permit tcp 192.168.2.0 0.0.0.255 host 10.0.0.2 eq www

允许市场部(192.168.2.0)访问WebServer 80(10.0.0.2)端口

access-list 101 permit icmp any any

允许内网10.0.0.0 ping外网任何机器,允许任何外网ping内网任何机器

access-group 101 in 在入方向配置。

在S2/0的出方向配置:

access-list 102 deny icmp any 192.168.2.0 0.0.0.255 echo-reply

阻止内网10.0.0.0做出对192.168.2.0网段的ping的回应——等同于只让192.168.2.0网段无法ping通

【不允许市场部PING通WebServer网段】

access-list 102 permit ip any any

ip access-group 101 out 在出方向配置。