【干货】力荐!攻破CCIE必备的数据转发知识~

数据转发方式

交换的概念:

switching is the process of mapping layer 2 to layer 3 addresses andforwarding to a destinationinterface.

接下去我们来看看几种交换方式

1.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,这在另一种意义上正是开启processswitching.

2. Fast 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.我们可以用ip route-cache命令,在接口上启用fast switching show ip cache来检查fast switching的相关信息.

3. Optimum and Distributed Switching

这两种交换模式,从原理上来讲都与fast switching 极为相似,比如optimum switching 其实采用了一种经过优化的交换缓存(optimumed switching cache),它的速度要较平常cache要快.distributed switching mode需要使

用Versatile Interface Card这种硬件卡,又称VIP card.它会自已保存一份route cache,这样在查询时就不必要等待使用共享的系统缓存了(shared system buffer),无论相对于fast switching还是optimum switching 来讲,都是比较快的,这两种模式一般只在思科高端设备上有所应用,比如7200系列路由器.或者12000系列路由器命令:ip route-cache optimum show ip cache optimum

4. Netflow switching

这种模式是最值得参考的,它完全基于其它switching mode,重点在于对流经的数据包进行计费、监控、网管。但不得不提的是,这种模式因为也要存储相关信息,经过统计,大致65536条数据流(1ow)会耗费4MB的systembuffer.

相关命令:

ip route-cache flow

show ip cache flow

ip flow-export  将NETFLOW审计的数据包转发到指定设备.

5. Cisco Express Forwarding

思科CEF是最为高效的一种3层协议。CEF采用了基于硬件的平台,它不仅仅是将数据都存入system buffer,而是将整个路由表、拓扑表,以及所有的下一跳地址、MAC地址全部进行"预存",只要路由表、拓扑表中存在的条目,无论是否有数据请求发往其目的地址,都会提前预读取,预设置缓存.这样,当有新的数据请求发送时,就不需要CPU去查询目的接口,目的MAC地址等等信息,而是直接从缓存中读取,从而使转发速度得以大大提高。

相关命令:ip route-cache cef

show ip cef

show ip cef detail

路由器通常根据入站接口和源与目的地址类型确定是否使用CEF交换.对于考虑使用CEF的路由器来说,出站接口必须配置为CEF交换模式,如果接口上配置了CEF,那么CEF将尝试交换数据包。否则CEF将会把数据包交付给仅次于最好的可用交换方法去处理。

邻接表

CEF组件中的邻接表用于MAC或者第二层重写信息。

●当路由器与主机邻接的话,他们通过某些方式学习。

●当路由器通过点对点链路直连,每一个接口上只有一个邻居存在。

●当路由器通过以太网这样的多路访问介质连接,需要一种动态的机制来发现对方,例如ARP , ARP可以将二层地址映射到IP.如果是帧中继多点链路,那么邻接关系可以用过地址解析协议、映射表等学习到。

尽管决策如何转发报文的工作由FIB来实现,但是第二层的帧重写工作却是根据邻接表中的信息来完成,第二层需要重写的字段包括用于帧转发的第二层头部。对于以太网来说,就是新的源、目MAC ,以及类型字段。例如:

上面输出中的红色字体部分就是二层的MAC信息等等。

●CEF表

进行三层转发决策。CEF表维护着从路由表中提炼的核心信息,这些信息用于对接收到的报文执行转发决策,这些信息包括IP前缀、递归的下一跳地址和出站接口。CEF表的一个重要的功能是它能够立即决策出递归前缀。

●CEF的实施

当报文进入路由器的时候,路由器将第二层信息剥掉,随后在CEF表中查找目的IP地址,以进行转发。

转发决策的结果将会指向邻接表中的一条邻接条目,在邻接表中可以找到第二层需要重写的字符信息,路由器使用这些信息为数据帧构造一个新的第二层头部,然后再将该报文转发到指向下一跳的出站接口。

负载均衡方式

1. 基于CEF

在CEF中,有两种主要的负载均衡方式,基于报文和基于目的。

● (接口) ip load-sharing per-packet

基于报文的负载均衡所有报文在出战链路上进行轮循。如果你想要使用基于报文的CEF负载均衡的话,就需要在所有出站接口上都配置该命令。哥们实验验证过了,确实可以per-packet负载均衡。

● (接口) ip load-sharing per destination

默认的负载均衡方式是基于目的地的负载均衡。CEF的基于目的地负载均衡实际上是通过对目的和源IP地址进行HASH后实现的。相反,在快速转发中,基于目的地址负载均衡是严格按照目的IP地址来进行的。CEF默认使用基于目的地址的负载均衡方式,因为基于报文的负载均衡方式可以持续性地在不同路径中发送同一数据流的报文, 那么在IP报文到达目的地的时候可能需要进行重新排队的工作。这可能会降低对诸如VolP这样的流量的转发性能,或者报文如果不按顺序到达的话,服务质量也会降低,报文可能被丢弃,另外还会增加延迟抖动。

你可以使用命令show cef interface来检查使用了哪一种负载均衡模式,该命令可以给出在这个接口上配置的CEF信息。

在CISCO I0S中, CEF可以对源和目的IP地址进行哈希,将哈希的结果导入一张负载均衡表来实现负载均衡。这张表有16个哈希桶bucket ,每一个哈希桶都指向一个邻接关系,而多个桶可以同时指向一个邻接关系。可以使用show ip cef路由前缀internal 这条隐藏命令来看:

R1#show ip cef 2.2.2.2 internal

要在基于目的的负载均衡中检验特定的流量使用的是哪一个出站接口 ,使用

Show ip cef exact-route src-addr dest- addr

例如前往一个目的地可能有多条等价路径,那么实际上可能在转发数据的时候,只是用了其中一条,用这条命令可以查看实际用于流量转发是哪一个接口。

2.基于快速转发

快速交换意味着所有去往指定目的地的数据包都从相同的接口被发送出去,因此交换时间和处理器的占用率会大大降低。当去往相同网络内不同主机的数据包进入路由器且还一存在条可选路由时,路由器会在另一条路径上发送数据包到目的地。因此路由器能够做得最好的就是基于目标网络的均衡负载。

3.过程交换

基于数据包的负载均衡和过程交换。过程交换就是对于每个数据包,路由器都要进行路由表查询和接口选择,然后再查询数据链路信息。因为每一次为数据包确定路由的过程都是相互独立的,所以不会强制去往相同目标网络的所有数据包使用相同的接口。为了在接口上打开过程交换功能,可以在接口下使用命令no ip route- cache.对于IPv6什么也不需要做,因为缺省情况下该功能是打开的。

4.哪一种交换方式会被用到

(0)

相关推荐