A-A+

配置思科路由器以允许ping并禁止来自非指定用户的trace

2016年01月02日 路由器高级应用 暂无评论 阅读 2 views 次

说明:

使用本文介绍的方法,可在思科路由器上,放通用户的ping包,而不允许trace(不管是icmp、udp还是tcp类型的),并且放通特定用户的trace。

知识准备:

1、首先需要知道普通的trace是如何工作的。这部分内容就不再介绍了,有兴趣可以看附件。附件中的内容是从思科官网上截取的。

2、根据个人经验总结:

ping功能一般是通过ICMP的echo request包来实现的。

Windows平台的tracert也是ICMP的echo request包,它与普通ping包的不同点只在于它的TTL值。

思科和华为的网络设备、Linux系统的trace功能一般是通过UDP包来实现的,它与普通UDP包的不同点只在于它的TTL值。

借助于一些工具,如tcping,ping功能可以通过TCP包来实现;而借助tracetcp之类的工具,trace功能也可以通过TCP包来实现。

不管源设备发送的是ICMP包,还是UDP包或TCP包,目标设备或trace路径上的设备返回的都是ICMP包。

案例:

我通过下面的案例来介绍如何在思科路由器上放通ping并只允许特定用户trace 。

案例拓扑:

目标:

在R2上进行配置,以实现:放通来自R1的所有网段的ping,放通10.0.0.0/24网段的trace,禁止其它网段的trace(不管是icmp、udp还是tcp类型的)。

原理:

利用trace报文到达R2时ttl值变为1的特性,过滤掉相应的ttl值为1的数据包,此时设备将返回Destination unreachable的ICMP包,然后再将相应接口发送ICMP unreachable包的功能关闭即可。

配置命令:

  1. R2(config)#ip access-list extended abc                          //定义一个扩展acl,命名为abc  
  2.   
  3. R2(config-ext-nacl)#permit ip 10.0.0.0 0.0.0.255 any               //放通10.0.0.0/24网段  
  4.   
  5. R2(config-ext-nacl)#deny ip any any ttl eq 1                      //过滤掉其它网段ttl值为1的数据包  
  6.   
  7. R2(config-ext-nacl)#permit ip any any                           //放通其它数据包  
  8.   
  9. !  
  10.   
  11. R2(config)#interface g1/0  
  12.   
  13. R2(config-if)#ip access-group abc in                             //将acl应用在接口的入方向  
  14.   
  15. R2(config-if)#no ip unreachables                               //此功能将关闭接口发送ICMP unreachable包的功能  

效果:

在R1上直接ping 10.0.1.1(默认R1将使用接口IP作为源地址)正常。如下:

在R1上直接traceroute 10.0.1.1时(默认R1将使用接口IP作为源地址),将不显示R2那一跳。如下:

若在使用10.0.0.1作为源地址traceroute 10.0.1.1时,将显示完整的trace路径。如下:

注意事项:

此方法与一些动态路由协议不兼容,如OSPF、EIGRP等,因OSPF等动态路由协议的hello包的ttl值也为1,因此它也会被过滤掉,导致网络出问题。经验证,可以在acl中添加放通ospf来避免这一问题,因时间关系,暂未验证其它协议是否也可行。并且为了避免案例复杂化,就未将这一操作加入上面的案例中。

标签:

给我留言