分享

mls 多层交换原理

 luobo2012 2012-06-09

3层交换、一次路由,多次转发、MLS 其实都是一个东西。CEF是比MLS更高级的东西,思科目前的新型交换产品都默认使用基于CEF的MLS了,所以实际上原有的一次路由,多次转发3层交换技术已经开始在渐渐被淘汰了,但搞清楚MLS原理还是有必要的。CEF通过提前构建FIB和邻接表,因此可以实现无需路由,永久交换。有时间我再把CEF整理一下。

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

MLS(MultiLayer Switching,多层交换)为交换机提供基于硬件的第三层高性能交换。它采用先进的专用集成电路(ASIC)交换部件完成子网间的IP包交换,可以大大减轻路由器在处理数据包时所引起的过高系统开销。

  MLS是一种用硬件处理包交换和重写帧头,从而提高IP路由性能的技术。Cisco多层交换技术支持所有传统路由协议,而原来由路由器完成的帧转发和重写功能现在已经由交换机的硬件完成。MLS将传统路由器的包交换功能迁移到第三层交换机上。当然,这首先要求交换的路径必须存在。

  MLS由以下三个部分组成:

  1. 多层路由处理器 (MLS-RP) 它相当于网络中的路由器,负责处理每个数据流的第一个数据包,协助MLS交换引擎 (MLS-SE)在第三层的CAM (Content-Addressable Memory)中建立捷径条目(Shortcut Entry)。MLS-RP可以是一个外部的路由器,也可以由三层交换机的路由交换模块(RSM)来实现。

  2. 多层交换的交换引擎 (MLS-SE) 它是负责处理转发和重写数据包功能的交换实体。

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

  下面以图1所示的网络为例,阐述多层交换实现的步骤。

交换机MLS实现三层交换的过程 - *静夜思* - 与世界同在

  第一步:发送MLSP Hello 信息

  当路由器激活后,多层路由处理器每15秒发送一个MLSP Hello包,这些包内含路由器接口所使用的VLAN标识和MAC地址信息。MLS-SE通过这些信息掌握具备多层交换能力的路由器的第二层属性。如果交换机连接了多个MLS-RP,MLS-SE通过为它们的MAC地址分配XTAG值的方法来区分每个MLS-RP的MAC地址条目。如果MLSP帧从同一个 MLS-RP得到所有MAC地址,MLS-SE则为其附加相同的XTAG值,具体如图2所示。这些关联的记录都存放在CAM中。由于Hello包是周期性发送的,所以,这种方法可以保证相关值动态地跟踪网络的变化,并可实现一定的淘汰机制。 Hello包是在第二层发布的,它使用多播地址01-00-0C-DD-DD-DD.

交换机MLS实现三层交换的过程 - *静夜思* - 与世界同在

第二步:标识候选包(Candidate Packet)

  在了解具有多层交换能力的路由器的相关地址后,MLS-SE可以对进入交换机的数据包进行匹配判断。对于一个流中的数据包,如果MLS缓存中含有与之匹配的捷径条目,则MLS-SE就旁路路由器而直接转发该数据包;如果MLS中不含与该数据包相匹配的捷径条目,则MLS-SE将它归为候选包,并在缓存中建立部分捷径(Partial shortcut)。这样的包采用传统的第二层交换机处理方式处理,并发往与之相连的路由器接口(网关),具体见图3所示。

交换机MLS实现三层交换的过程 - *静夜思* - 与世界同在

  这里要注意,候选包(帧)必须满足两个标准:目标地址经过MLSP所列的路由器接口的一个MAC地址;不存在捷径条目。

  第三步:标识使能包(Enable Packet)

  路由器收到并以传统的方式转发数据包。通过数据包的目标地址路由表得知,这个包应从Fast Ethernet1/0的第二个接口转出,并将包封装为VLAN2帧通过ISL链路送回。具体过程如图4所示。

交换机MLS实现三层交换的过程 - *静夜思* - 与世界同在

  此时,路由器已经重写第二层帧的帧头。同时,路由器不仅改写了ISL头的VLAN号,而且也修改了两个MAC 地址域:源MAC改为路由器出口的MAC地址,目标MAC改为主机B的MAC地址。虽然数据包的IP地址未改写,但IP包头的生存时间(TTL)值被减1,故 IP包头的校验和也需要做相应的修改。

这个修改后的数据包称为使能包(Enable Packet),当这个数据包从路由器送出并穿过交换机到达目的地主机B时,要履行下列五个功能:

  第二层交换机根据使能包的目的地MAC地址,知道该数据包应该从PORT3/1口转发出去;

  MLS-SE得知使能包的帧头上源地址是通过Hello过程建立的地址记录之一;

  MLS-SE根据使能包目的IP地址查寻在第二步中建立的部分捷径条目;

  MLS-SE将与使能包源MAC地址相关联的XTAG值和部分捷径条目的对应XTAG值相比较,如果匹配,则表明这个使能包与第二步中的候选包来自同一个路由器;

  MLS-SE完成该捷径条目的建立过程,该捷径记录将包含重写数据流中的后续包帧头所需的所有信息。

  第四步:直接交换(转发)数据流中的后续包

  当后续的数据包被主机A送出后,MLS-SE利用数据包中的目标IP地址查找在第三步建立的完整捷径。地址匹配后,MLS-SE利用重写引擎修改帧头信息,然后直接转发给主机B(数据包不发给路由器)。重写操作修改帧头域,其值同第一个被路由器修改的数据包的域值一样。详见图5所示。这里需要解释的是, NFFC(NetFlow Feature Card)是装备在三层交换机中的网络流性能卡,它维护第三层交换数据包流的交换表(MLS Cache),作为多层交换的交换引擎部分。

交换机MLS实现三层交换的过程 - *静夜思* - 与世界同在

  上述这个过程被称为“一次路由,多次交换”。交换机利用专业化硬件ASIC来处理数据包,速度相当快,可以达到100Mbps甚至1000Mbps

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多