思科CEF

启用CEF之后会生成两张表,一张表叫做FIB,第二张表叫做Adjacency Table;

FIB:forwarding information base 三层表 FIB就是由路由表转化而来,会把路由表中的所有路由条目进行一个优化,把优化好的表项下载到FIB中,FIB可以理解为基于优化的路由表, FIB可以被ASIC芯片调用;它是基于拓扑的,是么叫基于拓扑,我们在使用快速交换的时候,得到一个Cache表项,在Cache表项失效之前,如果这个Cache表项所指定的出栈路径down,Cache还能不能工作? Cache是不能即时更改的,所以我们称Cache是不基于拓扑的;

而这个FIB是基于拓扑的,FIB的路由表项就是通过路由表下载得来,路由表变了,FIB也会跟着变;FIB解决了递归表查询,静态、BGP路由条目的下一跳基本和路由器都是不直连的,对于这样的路由需要查两次到两次以上实现转发路径的发现,而FIB里面的路由条目都是经过优化的,这个优化就是把下一跳全部关联到出栈接口以及一个直连的下一跳;也就是说路由表中原始的路由条目,不管怎么递归,在FIB当中,路由器查找FIB的路由表项的时候,一条就足以转发报文,这三点就是FIB的转发优势;

 

问题就是为什么有了FIB还不够,还需要一个Adjacency table,这个邻接关系表是一个二层表,

那么路由器当中有哪些二层表? ARP表和帧中继的映射表,转发一个报文,只靠三层表项是不够的,为了实现二层封装,有的时候在转发报文之前,还要查找一张二层映射表,目前我们知道的二层映射表,就拿ARP表和帧中继映射表,路由器在查找这两张表的时候也需要使用CPU资源,而这个Adjacency Table就是ARP表和帧中继映射表,但是这张表和FIB一样,可以被ASIC芯片调用;基于这点描述,路由器启用CEF无非就是在做:第一件事,把路由表中的路由条目优化,加入FIB,第二件事,把ARP表项和帧中继映射表项优化,内容加入邻接关系表,基于这两张表,路由器收到报文转发的时候查哪张表? 直接查这两张表,所有的过程都基于ASIC芯片,没有延迟,不浪费CPU资源;所有的数据包都是查这两张表,两种类型的负载均衡都可以实现;

 

CEF在三层设备能启用就尽可能的启用,早期MPLS的出现就是为了增加转发性能,MPLS真的能比CEF好吗?

MPLS最有价值的部分还是她的高级扩展应用;

总结为一句话,MPLS定义了FEC,而FEC对应标签,这个标签到头来就是对应路由表中的路由表项,路由表show了几w次,什么时候发现路由表有插入标签的地方?

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值