吾生有涯,而知无涯,适当止学.循序渐进,步步提升 Talk is cheap, show me the code.
分类: 网络与安全
2015-08-17 14:32:20
以下信息描述解决,Cisco 2600 cpu高负载的问题,查看高负载的命令如下:
arp-wuke#sh processes cpu sorted | exclude 0.00
CPU utilization for five seconds: 99%/44%; one minute: 99%; five minutes: 99%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
43 1168250852 330453993 3535 50.39% 48.50% 48.69% 0 IP Input
89 36433691 115778439 314 2.05% 2.50% 2.77% 0 IP NAT Ager
23 11490121 6246563 1839 0.79% 0.64% 0.64% 0 Per-Second Jobs
9 16664100 13881837 1200 0.55% 0.19% 0.17% 0 ARP Input
95 6588967 37183994 177 0.31% 0.20% 0.23% 0 NAT MIB Helper
96 1691200 61036507 27 0.23% 0.11% 0.08% 0 fastblk backgrou
3 20784 2843 7310 0.15% 0.06% 0.21% 66 Virtual Exec
Cisco路由器转发数据包时常用的五种交换方式(转载)
进程交换(Process Switching)
这是一种最基本的交换模式,在这种模式下,一条数据流(Flow)中的第一个包(Packet)将被置入系统缓存(System Buffer)。其目的地址将会拿到路由表中去查询比对,路由器的处理器(CPU or Processer)同时将进行CRC校验,检查包是否正确。然后数据包的二层MAC地址将会被重写,替换为下一跳接口的MAC地址。对这条数据流(Flow)中的第2个、第3个数据包……将会继续这样相同的操作,包括查询路由表、重写MAC地址,CRC校验等。这种方式无疑是延迟最大的,因为它要利用System Buffer以及Processor去处理每个收到的包。但是我们仍然有机会使用这种交换方式,比如在进行基于数据包的负载均衡,或是debug ip packet时。因为默认情况下,思科路由器会启用Fast Switching或Optimum Switching或是CEF Switching,而不是Process Switching,所以我们只能通过:no ip route-cache来禁用Fast Switching,这在另一种意义上正是开启Process Switching。
命令:R1(config-if)#no ip route-cache
注意:命令debug ip packet仅允许观察进程交换的数据包,将启用进程交换,所有数据包都被送至进程记录,CEF交换、快速交换等的数据包将不被显示出来。
快速交换(Fash Switching)/路由缓存交换(Route-Cache Switching)
快速交换要优于Process Switching,它采用了路由缓存(Route Cache)来存储关于某条数据流(Flow)的特定信息,当然会包括诸如目的MAC地址,目的接口等内容。这时我们只需要对一条数据流(Flow)中的第一个包做Process Switching,并把信息存入Cache,所有后续数据包,可以不必再中断System Processor去执行查询等操作,直接从Cache中提取目的接口,目的MAC地址等,这样大大加速了包转发速度。Fast Switching在某些资料上可能被称为Route-Cache Switching。思科1600、1700、2500、2600系列路由器的Ethernet、Fast Ethernet、Serial接口默认采用的就是Fast Switching。
命令:R1(config-if)#ip route-cache
最优交换(Optimum Switching) 和 分布式交换(Distributed Switching)
这两种交换模式,从原理上来讲都与Fast Switching极为相似,比如Optimum Switching其实采用了一种经过优化的交换缓存(Optimumed Switching Cache),它的速度要较平常Cache要快。Distributed Switching需要使用Versatile Interface Card这种硬件卡,又称VIP Card。它会自已保存一份Route Cache,这样查询时就不必等待使用共享的系统缓存(Shared System Buffer)了,无论相对于Fast Switching还是Optimum Switching来讲,都是比较快的。这两种模式一般只在思科高端设备上有所应用,比如7200系列的路由器或12000系列的路由器。
命令:R1(config-if)#ip route-cache optimum
Netflow交换(Netflow Switching)
这种模式是最值得参考的,它完全基于其它Switching Mode,重点在于对流经的数据包进行计费、监控、网管。但值得提的是,这种模式也要存储相关信息,据统计大致65536条数据流(Flow)会耗费4MB的System Buffer。
命令:R1(config-if)#ip route-cache flow
Cisco特快交换(Cisco Express Forwarding)
Cisco CEF是最为高效的一种三层协议,很多人容易对CEF产生误解,所以我们仍然要说明它的来原。CEF采用了基于硬件的平台,它不仅仅是将数据都存入System Buffer,而是将整个路由表、拓扑表,以及所有的下一跳地址、MAC地址全部进行“预存”,只要路由表、拓扑表中存在的条目,无论是否有数据请求发往其目的地址,都会提前预读取,预设置缓存。具体来说它是通过全用转发信息表(FIB)和邻接表来实现的,它事先从路由表中获取信息并把信息存储在转发信息库(FIB)中,当任何数据包需要这些信息时可以立即使用。FIB包括路由表中的所有目标网络,它们可以随着网络拓扑的变化而调整。CEF使用一个单独的数据表--邻接关系表,为FIB的每个表项维护第二层转发信息。邻接关系表由第二层信息构成,(这些信息可以由IP、ARP或IPv6邻居发现协议学习到)。FIB和邻接表是在数据包转发之前建立的,当有新的数据请求发送时,就不需要CPU去查询路由表转发一次后把信息存入缓存,或查询目的接口,目的MAC地址等信息,而是直接从缓存中读取,从而使转发速度得以大大提高。
IPv4、IPv6关于负载均衡和CEF的说明:
1.对于IPv4,CEF支持基于目标网络的负载均衡和基于数据包的负载均衡;
2.IPv4缺省的交换模式是CEF;
2.针对IPv4可以使用ip cef激活CEF;
3.可以通过show ip cef / show ipv6 cef 查看路由器是否启用CEF。
命令:R1(config)#ip cef
注意:(no) ip cef是一个全局命令,当在接口下使用(no) ip cef时,自动跳转为全局命令。当使用no ip cef时,则关闭了所有接口的CEF,ip route-cache cef不起作用。
负载均衡
负载均衡的两种分类
等价负载均衡(Equal-Cost Load Sharing):是将流量均等地分布到多条度量相同的路径上;
非等价负载均衡(Unequal-Cost Load Sharing):是将报文分布到不同度量的多条路径上。各条路径上分布
说明:只有EIGRP支持非等价负载均衡,最多支持对6条路径的非等价负载均衡;可以通过差异变量(Variance)来确定哪些路由在非等价负载均衡中是可以使用的;并且可以通过设置最大路径数决定使用某几条链路。
负载均衡的两种方式:
基于目标网络的负载均衡 ip load-sharing per-destination;
基于数据包的负载均衡 ip load-sharing per-packet。
基于目标网络的负载均衡 ip load-sharing per-destination
基于目标网络的负载均衡允许路由器使用多条路径来负载均衡,它是根据目标网络中的目的地址分配负载量的。并且它可以确保数据包总是使用相同的路径,并按照它们发送的顺序到达目的地址。这种方式的负载均衡最适用于需要数据包按照某种顺序到达的应用。例如,有两个网络A、B,A-B间存在两条路径,那么从A去往B地的第一个目标的报文走第一条路径,去往B的第二个目标的报文走第二条路径,去B的第三个目标的报文走第一条路径,依此类推……随着目标网络地址数量的增加,负载均衡会变得更加有效。大多情况下路由器都采用这种负载均衡方式,并且它也是Cisco CEF使用的缺省负载均衡方式。
基于目标网络的负载均衡和Cisco CEF:准确来讲,CEF是按照源、目的地址对(Hash出一个值)进行负载均衡。相同源、目的地址对的流量都会从同一个接口出站,而不同源、目的地址对的流量可能会从下一个接口出站。
命令:R1(config-if)#ip load-sharing per-destination
基于数据包的负载均衡 ip load-sharing per-packet
使用基于数据包的负载均衡的路由器可以在多条链路上连续发送数据包,而不用考虑主机或用户的具体情况。这种负载均衡采用轮转机制来确定每个数据包走哪条路径到达目的地址。缺点是不能确保每一个数据包遵循相同的路径,将导致数据包无序到达。这对某些应用来说是不能接受的(如VoIP)。假设去往某一目标网络的报文走的第一条链路,当路由器又收到去往该网络的报文后,将从第二条链路上发送,依此类推……(假设各条链路是等价的),如果链路代价不同的话,路由器将会按照代价比例来分配各链路的流量分配。例如,在一条高代价链路上发送一个报文,可能低代价的链路上就会发送三个报文。当路由器采用非默认交换方式时,即处于进程交换模式时,将采用这种负载均衡。通过使用此方式在不均衡的数据流量需要在多条路径上进行负载均衡是非常重要的。
命令:R1(config-if)#ip load-sharing per-packet
负载均衡和Cisco CEF
1.CEF缺省的负载均衡方式是基于目的网络的负载均衡,IPv4缺省的交换模式是CEF,Ipv6缺省的交换模式是
2.CEF事先从路由表中获取信息并把信息存储在转发信息表中(FIB),当数据包需要这些信息时可以立即使用。
3.CEF使用一个单独的数据表--邻接关系表,为FIB的每个表象维护第二层转发信息。邻接关系表由第二层信息构
4.FIB和邻接关系表是在数据包转发之前建立的。
5.CEF在缺省的情况下是基于目标进行负载均衡,这实际上是按照源目地址对进行负载均衡。所有发往特定目标
6.基于数据包的负载均衡是交换IPv4数据包的另一种方式。
7.对于IPv6,CEF仅支持基于目标网络的负载均衡方式。
8.基于数据包的负载均衡方式意味着在不同的链路上发送数据包,即使在路径等代价、目标相同的情况下也是
9.基于数据包的负载均衡方式可以更加均匀地分布流量。但是数据包选择不同的路径去往目标网络会引起非顺序
10.为了确定CEF功能是否在路由器上被全局开启,可以使用命令show ip cef和show ipv6 cef。如果缺省情况下
11.在IPv4下,命令ip load-sharing per-packet可以打开基于数据包的负载均衡功能,如果需要打开基于目标
12.路由器通常根据入站接口和源与目的地址类型确定是否使用CEF交换。对于考虑使用CEF的路由器来说,出站
13.你可以使用命令show cef interface {interface}和show ipv6 cef {interface} detail来验证在接口上CEF
基于目标网络的负载均衡和快速交换
1.IOS在配置快速交换的出站接口上执行基于目标网络的负载均衡,某路由器上IOS的缺省交换模式是快速交换。
2.快速交换的工作方式如下:
3.快速交换意味着所有去往指定目的地址的数据包都从相同的接口被发送出去,因此交换时间和处理器的占用率
基于数据包的负载均衡和进程交换
进程交换(Process Switching)即使对于每个数据包,路由器都要进行路由表查询和接口选择,然后再查询数据链路信息。因为每一个为数据包确定路由的进程都是相互独立的,所以不会强制去往相同目标网络的所有数据包使用相同的接口。正如许多设计选择一样,基于数据包的均分负载也是要付出代价的。这种方式虽然使流量的分布比前一种方式更均匀,但是快速交换的较低交换时间和处理器占用的优点也随之丧失了。为了在接口上打开进程交换功能,可以在IPv4下使用命令no ip route-cache。对于IPv6什么也不需要做,因为缺省情况下该功能是打开的。
哪一种交换方法会被用到?
1.IOS首先基于入站接口的配置和源与目的地址类型来决定交换模式;如果接口上配置了CEF,不管出站接口上配
2.如果入站接口上没有配置CEF,那么IOS会处理并转发数据包,并根据出站接口的配置,后续的数据包或者被快
3.如果入站接口的CEF功能被打开,IOS将只使用CEF交换数据包。否则出站接口的配置会确定交换方法。注意,
4.只有在入站接口上配置了CEF,它才会起作用。对于IPv4,尽管出站接口上打开了CEF功能,但是起作用的还是
5.有些时候后即使打开了CEF,但是并没有使用CEF交换数据包(例如访问列表的日志功能被打开和数据包将被记录
网上这方面的知识比较少,本人手头上的资料有限,忙了两天,实验一直做不清楚,累死了~不详之处请见谅
转载地址:http://blog.sina.com.cn/s/blog_635e1a9e01016ldx.html