ASA 设备穿透 tracert/traceroute,以及 icmp echo-reply 请求

使用了ASA后,内网的机器可以上网,但不能ping通外网的地址,也不能够 tracertroute/tracert 。

这是为什么呢,其实这个和 思科 ASA默认策略有关系,ASA的接口,一般分为 inside (默认安全级别为100),outside (默认安全级别为0), dmz (默认安全级别为50), 在默认情况下,从高安全级别访问低安全级别,是可以正常访问的,但是如果从低安全级别访问高安全级别,则是不允许的,只能通过 ACL 来放行指定的数据。

在配好 inside outside 接口,以及 nat 以后,下面的PC机可以正常上网,但是如何要做一些网络联通性的测试,则是不行,比如,ping 一个外网的IP地址,会显示请求超时,全都是不可ping通的,或者在使用 tracertroute/tracert 的时候,只要到了 ASA以后,后面的节点,全都是 timeout。这个原因,也就是因为,ASA默认情况下, icmp 协议,也是不放行的,所以在 ping 或 tracertroute/tracert 的时候,都会超时,无法使用。

当然也可以在 outside 接口,放行全部的 icmp 协议,但这样,并不是我们想要的。

现在要做的需求就是,ASA 下面的内网机器,可以正常ping 通外网的机器,也可以使用 tracertroute/tracert 来追踪路由,但是asa外面的机器,也就是互联上机器,不可以 ping 通 ASA的外网地址。

这样的话,显然放行全部 imcp 协议是不行的,不能满足要求。

默认情况下,ASA 设备是不会回应 TTL Exceeded的数据包, TTL Exceeded 包也不能穿透 ASA 设备,所以,在内网的机器上,无法使用 tracertroute,因为数据包是从 asa 穿透的。

而 Ping 包,则是 echo-reply 回显,这个默认也是丢掉的,所以在内网的机器不可以穿透。 tracertroute/tracert。

现在,我们知道了原因,那么就根据策略,来放行 traceroute/tracert 以及 echo-reply

定义访问控制列表:

access-list imcpper remark ICMP type 11
access-list imcpper remark ICMP type 3
access-list imcpper extended permit icmp any any time-exceeded
access-list imcpper extended permit icmp any any echo-reply

这四条,执行完了以后,放到 outside 接口上面,即可以解析我们所遇到的问题

应用到接口:

access-group imcpper in interface outside

PS:如果你的 outside 已经有了一个ACL,那么就这4个规则放到你原有ACL里面,就可以了,一个接口只能绑定一个 ACL。

 

猜您喜欢