思科的转发方式

1.process

2.fast switch

3.cef

cam和tcam表

内存可寻址存储器(cam)是一种专用于进行查表操作的硬件芯片

cam工作在二进制情况下0/1

tcam工作在三进制情况下0/1/x

这两者都是多层交换的硬件组件,另通常还包括asic(application-specific integrated circuit应用专用集成电路)

cam表的查找

交换机以2进制方式精确查找cam表,如果没有就采用默认的flood行为.

步骤:

1.将用于查找的目的mac传送给cam表,在cam中查找匹配的关键字.

2.返回一个与目的mac匹配的指针.

3.交换机根据指针找到出接口,从而避免了顺序搜索整个表.

tcam的查找和特点

内容可寻址存储器(cam)是一种专用于进行查表的硬件芯片,与其他基于算法的解决方案相比,cam具有十分卓越性能,也更具可扩展性.告诉的三进制cam(tcam)允许对位域进行0、1或x(忽略)三种方式的屏蔽,因此可以用来确定最长前缀匹配tcam的告诉性能也使得他们可以用于ip包的线速转发,而且与基于软件的方式不同,tcam的查找性能与路由表的大小和内容无关

tcam具有查表速度快、存储灵活的优点,其缺点是价格贵、功能大且表项的更新速度慢.为了减少功耗,采用可分段式的tcam.这种tcam的优点是可以分为多个独立地分区cblock,每个分区都可独立完成查表任务,仅当该分区工作时才需要为其供电,这大大减少了tcam的功率损耗.

1.进程转发(关闭ip cef,同时接口下no ip route-cache fast router 一次路由多次交换)每次都查路由表

第一步,bit从左边流进来,数据包放进buffer--input/output memory,判断目标mac,下面从内存中调入到处理器(这是常用的计算机的过程),这其中会判断数据类型,如果是ip数据那么转入上层,这是进程就做ip-inpu-process,放入rib表(route intformation base),查找最重要的内容----出接口.同时会改写2层的头部交给出接口,等待出接口调用.进程转发基于每个包负载,perpacker

2.fast switch快速转发---一次路由多次交换

数据进入路由器,不再放进输入输出memory,而是直接调用route-cache路由缓存,关键点在于直接关联出接口、二层封装,所以步骤简单很多,此时没有查找路由表.关键点在于route-cache的产生:需要第一次的进程转发才能缓存.比如第一次路由从f0/0出去,那么,将会出现route缓存,然后数据将会沿着这条cache传送,所以只能给予目标来转发,给予位的查找方式一个32bit的路由最多查找32就会hit

实际工作中一般都给予目标负载而不是给予包因为给予包的负载对tcp来说很可能无法建立连接

实验演示

1)r1用静态实现到2.2.2.0/24网络的负载

show ip route 2.2.2.0.注解:*代表路由指针

2)

用r3去ping 2.2.2.2,

r2 debug ip packet detail+acl

在没有关闭cef时,直走一跳陆,该*只代表查找路由表示才生效,有cef时给予内容的转发

比如关闭cef后是进程转发才会出现,

每次ping一个包

观察show ip route 2.2.2.0会发现指针会停留在一个设备上

清空路由缓存,clear ip cache,此时路由指针才会变化

原则是只有在查找路由表时才会改变指针

r2上有三个环回口,每次ping一次指针改变一次,ping相同地址指针不会变,因为已经有了缓存注意**验证是否给予主机路由,既不同的源ping相同的地址时cache是否变化

3.cef cisco快速交换---现在默认的交换方式,mpls label,netflow等于都给予cef使用cpu创建的表格信息(比如路由表和arp表)来创建给予硬件的转发信息库(fib,forward information base)和邻接表(adj)由arp表封装类型等产生,对比fast switch,fast switch只有在有数据包通过时才有缓存,而cef在没有数据包时就产生了表项,也不会产生cache.邻接表关联出接口等信息给予字节(256way multiway tree)的查找最多查找思科就会hit

引入cam表查找mac地址

引入tcam查找3层前缀

实验:

r2:

show ip cef(验证ip cef是否开启)

show ip cef detail(fib表转发信息数据库)

show adjacency(邻接表)

no ip cef

现在就是fast switch转发模式.

r3:

debug ip packet detal 100(acl)

ip access-list extended 100

permit ip host 12.1.1.1 host 33.1.1.1

show ip cache

clear ip cache

clear access-list counters

r2:

int s2/0

ip route-cache

int s2/1

ip route-cache

show ip cache verbose(查看ip快速交换路由缓存)