从Linux世界的Cisco IOS新手的任何提示?

我来自Linux世界。 在Linux中,我一直在做防火墙,QoS,dynamic路由,隧道,ipsec,ipv6,甚至为内核编写定制networking扩展。

现在我有一些Cisco 681在我的控制之下。 我了解基础知识,但我经常遇到一些问题,如:

  • 很难debugging(tcpdump在哪里?)
  • 挂起/碰撞事件很容易(特别是在debugging时)
  • 我需要一些关于如何pipe理事情的实用build议(通过scp复制running-config并返回失败…)
  • 我发现的大多数文件是恕我直言企业废话(很多的话,以较less的信息)

我一直在googlin身边读书,但是在处理这件事时我还是没有什么技巧。

例如,我试图为一个路由器的工作configuration添加一个简单的基于类的QoS。

我准备了一个简单的configuration:

no ip access-list extended RT_PROTOCOLS ip access-list extended RT_PROTOCOLS permit icmp any any permit udp any any eq 53 permit tcp any any eq 22 ! no ip access-list extended HIGH_PROTOCOLS ip access-list extended HIGH_PROTOCOLS permit tcp any any eq 80 permit tcp any any eq 443 ! class-map match-any RT_CLASS match access-group name RT_PROTOCOLS class-map match-any HIGH_CLASS match access-group name HIGH_PROTOCOLS ! policy-map INTERNET_OUT_POLICY class RT_CLASS bandwidth percent 10 random-detect class HIGH_CLASS bandwidth percent 40 random-detect class class-default fair-queue bandwidth percent 40 random-detect ! policy-map INTERNET_OUT_QOS class class-default shape average 8000 service-policy INTERNET_OUT_POLICY ! interface FastEthernet4 no fair-queue service-policy output INTERNET_OUT_QOS ! 

我通过copy scp://source running-config复制它。 路由器立即导致高ping,大约20秒后完全挂起。

我如何debugging什么是错的?

任何链接,文档,build议和技巧将不胜感激。

通常,从控制台或通过telnet或SSH会话向设备应用configuration,而不是尝试将configuration复制到正在运行的configuration中。 通过这样做,当您尝试configuration时,您将收到关于configuration的任何问题的警报。

我认为你遇到的具体问题是681有一个相当弱的CPU,UDP / TCP端口号的匹配是相对密集的,所以我怀疑你只是用完了处理能力。 如果在应用configuration之后尝试执行几个show process cpu ,则可能会看到CPU使用率急剧上升。

编辑 :一个方便的事情(有点)缓解没有tcpdump手头上的问题(它是在一些较新的IOS版本,但只有“捕获”位,然后你必须获取PCAP文件到另一个主机做分析)就是我通常所说的“监视ACL”。 简单地定义一个ACL来匹配你希望检查的内容(存在或不存在),然后用一个permit ip any any来结束permit ip any any ,而不是实际上阻塞任何stream量。 如果您正在查找的stream量正在通过,则ACL上的计数器(如“show access-list name ”所示)将递增。

以下是一些缩小show run输出的提示,类似于grep:

显示运行| 开始单词:开始在包含单词的特定行中显示configuration
显示运行| 包括单词:显示包含给定单词的所有行
显示运行| 节字:也是一个好的

我喜欢通过与PuTTy的串行控制台会话进行configuration,以便我有一个访问IOS的方法,而不依赖于一个接口的启动(作为一个只有6个月左右的时间,经常喋喋不休和接口)。

再加上串行控制台,我可以通过设置terminal length 0完成所有正在进行的备份和恢复工作,这样我就可以将整个运行的configuration文件复制并粘贴到一个文件中,如果需要的话,可以进行批量更改,然后粘贴根据需要再次返回。

  • 很难debugging(tcpdump在哪里?)
 debug ip packets 

危险的(请参阅第2点),但是有一些parsing器可以从ciscodebugging中生成.pcap文件。

  • 挂起/碰撞事件很容易(特别是在debugging时)

当然。 即使是大路由器。

  • 我需要一些关于如何pipe理事情的实用build议(通过scp复制running-config并返回失败…)
 router#copy tftp://tftpsrv.local/conf/router-confg start Destination filename [startup-config]? [OK] router#configure replace nvram:startup-config This will apply all necessary additions and deletions to replace the current running configuration with the contents of the specified configuration file, which is assumed to be a complete configuration, not a partial configuration. Enter Y if you are sure you want to proceed. ? [no]: y ... 

不需要重新启动。 您也可以从tftp服务器复制configuration。

  • 我发现大多数文件是恕我直言企业废话(很多的话,以较less的信息)

一些很好的信息可以在CCIE博客上find。 如果你想在实验室练习,请检查Packetlife社区实验室!