3层交换技术详解

  • 格式:doc
  • 大小:22.50 KB
  • 文档页数:3

三层交换机工作原理

三层交换机要执行三层信息的硬件交换,路由处理器(三层引擎)必须将有关路由选择等的三层信息下载到硬件中,以便对数据包进行处理。为完成在硬件中处理数据包的高层信息,会使用传统的MLS(MultiLayer Switching,多层交换)和基于CEF(cisco Express Forwarding)的MLS。

CEF是比传统MLS更高级的东西,思科目前的新型交换产品都默认使用基于CEF的MLS了,所以实际上原有的一次路由,多次转发3层交换技术已经开始在渐渐被淘汰了,但搞清楚MLS原理还是有必要的。

另外,网上流传的“一次路由,多次转发”是通过ARP将接收数据的客户机MAC通告给发送数据的客户机,这个说法其实是错误的,不管怎么说发送数据的PC都只知道3层交换的网关MAC,也就是说一次路由,多次转发其后的交换过程,3层交换机仍然是要修改数据包的2层MAC地址的,而不是发送数据的PC在发送数据时就封装上接收PC的目的MAC!即便是CEF也要进行第2层的MAC地址重新封装。

传统的MLS---路由缓存MLS(第一代MLS)

使用传统的MLS时,交换机将流中第一个数据包转发给第三层引擎,后者以软件交换的方式对数据包进行过处理,对数据流中的第一个包进行路由处理后,第三层引擎对硬件交换组织进行编程,使之为后续的数据包选择路由。这个过程被称为“一次路由多次交换”,也就是说,交换机的三层引擎之需要处理数据流中的第一个数据包,而后续的数据全部由硬件来执行转发。这样实现了三层交换的线速转发。

别名:NetflowLAN交换,基于流的交换,按需交换,“一次路由,多次交换”

传统的MLS由以下三个部分组成:

1.多层路由处理器 (MLS-RP:Multilayer Switching-Route Processor)

它相当于网络中的路由器,负责处理每个数据流的第一个数据包,协助MLS交换引擎

(MLS-SE)在第三层的CAM (Content-Addressable Memory)中建立捷径条目(Shortcut

Entry)。MLS-RP可以是一个外部的路由器,也可以由三层交换机的路由交换模块(RSM)来实现。

2.多层交换的交换引擎 (MLS-SE:Multilayer Switching-Switching Engine)

它是负责处理转发和重写数据包功能的交换实体。

Catalyst 5000 系列交换机使用NFFC功能卡(NetFlow Feature Card),而6000系列使用MSFC(Multilayer Switch Feture Card),不一样哦。

3.多层交换协议 (MLSP:Multilayer Switching Protocol)

它是一个轻型协议,用来通过多层路由处理器 (MLS-RP)对多层交换的交换引擎(MLS-SE)进行初始化。

传统的MLS被称作路由缓存MLS,需要路由处理器(RP)和交换机引擎(SE)协同合作进行。RP确定分组的目的地,SE负责分组的交换,交换前会对第一个分组的转发目的地进行cache,所以成为路由缓存MLS。(第三层引擎(路由处理器)和交换ASIC协同工作,在cache中建立第3层条目。)

CISCO基于IOS的catalyst交换机已经放弃这种体系(Cisco早些年采用基于NetFlow的三层交换技术,现在采用基于CEF的三层交换技术)

千万不要把Netflow功能交换跟多层交换扯到一起去,不是一回事,netflow只是一个功能而已(cisco专有),多层交换技术既使用RSM(或者使用直接外置的路由器)和MLS-SE。利用多层交换技术,不要求你必须在RSM上或者直接的外置路由器上使用NetFlow交换,任何交换路径仍能正常工作

信息流功能卡(NFFC:NetFlow Feature Card),它是一个模块化的功能卡,它可以升级到Catalyst Supervisor Engine Ⅲ,使之提供第3层(Layer 3)的交换功能。

CEF MLS----基于拓扑的MLS(第二代MLS)

第二代的MLS使用了ASIC,并且主动使用三层的信息来建立一个网络的拓扑数据库,所有的分组都会根据最长匹配原则进行交换。CISCO对这种技术称为CEF(Cisco Express

Forward)

CEF是一种基于拓扑的转发模型,包含两个部分:

FIB(转发信息库)---基于IP目标前缀的转发决策

邻接关系表----------存储2层编址信息

工作原理:

①主机A给B发送单播数据包

②交换机查找FIB表,找到下一跳地址

③查找下一跳地址对应的邻接关系的2层封装信息

④转发

CEF通过提前构建FIB和邻接表,因此可以实现无需路由,永久交换。(这是一种主动去学习路由条目构建转发数据库的技术,而不是被动的先要进行一次路由后才能学习路由条目并加载到缓存表)

集中式交换与分布式交换

基于CEF的Catalyst交换机在3层支持两种硬件交换方法

集中式交换

分布式交换

集中式交换

集中式交换在一个专用ASIC上做出转发决策,该ASIC是第3层交换机中所有接口的枢纽。

使用集中式交换时,路由选择和转发决策是由模块化机箱中的监控引擎(比如supervisor

egine)或者第3层固定端口密度交换机的第3层引擎做出的。因此所有需要路由或者交换的数据包都必须通过总线或者交换机矩阵进入中央引擎。

分布式交换

分布式交换时.第3层交换机接口或者线路模块独立的做出转发决策。在每个线路模块上都有转发引擎,所以无需中央引擎的帮助。因此使交换机的速率更高。减少CPU的工作量。

什么是CEF?

CEF(Cisco Express Forwarding)是一种三层技术,它可以通过CEF引擎把Cisco IOS软件创建的路由表下载到引擎中,并建立了一个CEF表, CEF引擎位于PFC子卡上。如果下一个报文的目的地地址可以在CEF硬件引擎的表项中可以查到,那么就可以直接使用硬件进行报文的转发,无需再通过软件处理。但是还是需要从接口模块经过总线。

什么是aCEF?

aCEF(Accelerate Cisco Express Forwarding)使用了两块CEF引擎,一块位于PFC子卡上,一块位于接口模块上,这两块引擎属于主从关系。当接口上接受到报文,如果接口上的CEF引擎无法找到路径,它会把报文扔给PFC上的CEF引擎处理,处理完了,接口上的CEF引擎会把路由表项从PFC上下载下来。如果以后还有相同目的地的报文,就会直接在接口模块上处理了。以上这些处理都是基于硬件的,减少了经过总线的流量。但是如果两个端口是位于不同模块上的,那么还是需要进入总线,依靠PFC上的CEF引擎进行处理。

什么是dCEF?

dCEF(Distributed Cisco Express Forwarding),类似与aCEF处理方式,但是它是进行并行处理,也就是说,它各个模块上都会有一个CEF引擎,并且都可以在本地进行选择路径的处理,因为分布式CEF引擎直接把路由表项下载到了CEF表项中,它可以直接通过交换矩阵进行转发,最大程度的提高了整体的性能,并且把PFC给空下来,可以进行其他软件上的工作。