现在的位置: 首页 > 综合 > 正文

三层交换机学习–三层表项精确匹配和最长匹配

2012年11月23日 ⁄ 综合 ⁄ 共 1776字 ⁄ 字号 评论关闭

1、三层转发必然需要路由信息的,而转发过程中的路由选择决定了报文的最终出口如何,三层交换机只是将这种路由功能整合到交换芯片中去了。

2、路由选择存在精确匹配最长匹配两种方式。

2.1、精确匹配即目的IP地址与路由的地址信息必须完全吻合;

2.2、最长匹配则是选择所有包含了目的地址的路由中掩码最长的一条。

2.3、早期的三层交换机上其交换芯片多采用精确匹配的方式它们的硬件三层表项中只包含具体的目的IP地址并不带掩码信息。比如在转发目的IP为2.1.1.2的报文时通过软件查找匹配了非直连路由2.1.1.0/24那么就将2.1.1.2的转发信息添加到交换芯片中去如果继续来了目的IP为2.1.1.3的报文需要转发则要重新进行软件查找并在交换芯片中为2.1.1.3增加新的表项。这样的选路方式和表项结构对交换芯片的硬件资源要求很高因为芯片中集成的表项存储空间是很有限的如果要转发大量目的IP地址不同的报文那么就需要添加大量的硬件表项。曾经泛滥一时的冲击波病毒就导致了当时大量的只支持精确匹配的三层交换机资源耗尽。因为冲击波病毒的手段之一就是发送巨大数量的网段扫描报文,而多数三层交换机上都配置了缺省路由,这样所有的报文在CPU软件查找时都能够找到匹配路由,进而针对每一个病毒报文的目的IP都需要新增硬件表项并迅速将硬件资源占满。这样大部分用户的正常数据流由于转发资源耗尽,而得不到高速处理了。
由于精确匹配方式的
三层交换机的这种缺陷,后期的三层交换机增加了对最长匹配方式的支持--即硬件三层表项中可同时包含IP地址和掩码在查找时遵循最长匹配原则。这种类型的三层交换机一般在软件路由表建立时,就将路由信息添加到硬件三层表中去包括直连路由和非直连路由。对于直连路由对应的硬件三层表项的toCPU标志位始终置1,报文的目的IP匹配这样的表项以后被送往CPU处理。CPU软件会在直连网段发送ARP请求,并将获取的ARP信息作为主机路由添加到硬件表项中,对应的toCPU标志位置0,这样后续的同样目的IP的报文就直接通过新添的硬件表项转发了。对于非直连路由,下一跳地址的对应ARP信息还未获得时,对应的硬件三层表项的toCPU标志位置1,报文的目的IP匹配这样的表项以后,被送往CPU处理,CPU软件会在下一跳地址对应的直连网段发送ARP请求,并使用获取的ARP信息中的下一跳MAC、出口VLAN等信息,更新对应的硬件三层表项,然后将其toCPU标志位置0,这样后续的目的IP匹配该非直连路由的报文就能够直接通过修改后的硬件表项转发了。目前大多数的三层交换机
均能够同时支持精确匹配表项和最长匹配表项,一般来说精确匹配表项对应于软件中的ARP表最长匹配表项对应于软件中的直连路由和非直连路由。

3、三层表项的出口信息

交换机三层转发流程中硬件三层表项由目的IP或网段、目的IP或下一跳IP对应MAC、出口VLAN、出端口组成,采用这样表项的三层交换芯片一般直接通过查找三层转发表项就能够完成转发。这种处理机制流程简单、转发效率高,但是也使得CPU软件对硬件表项的配置控制比较复杂。因为每当IP地址对应的MAC和物理端口出现变化,就必须对三层转发表项进行更新。而在交换机上二层信息变化的可能性是比较大的,特别是交换机支持链路聚合、生成树等冗余机制。所以在某些应用环境中CPU不得不经常的对三层转发表进行更新一旦更新出现问题,特别是出端口错误,必然对转发造成严重的不利影响。
不过并不是所有
三层交换机的硬件三层表项都带有出端口信息,部分交换芯片使用的硬件表项只包括目的IP或网段、目的IP或下一跳IP对应MAC、出口VLAN。从转发流程上来说有以下变化:根据报文的目的IP查找三层转发表后,只得到了目的IP或下一跳IP对应的MAC和出口VLAN,然后继续根据MACVID去查找MAC地址表,并最终获得出端口信息,如果查找MAC表失败的话会在出口VLAN进行广播。这样的处理机制虽然增加了芯片处理复杂度,但是流程更加清晰、合理,CPU的处理也更加简单,因为物理出口的变化只需要反映在MAC地址表中就可以了,硬件三层表项无需频繁更新。
这两种处理方式的交换芯片各有优势不同厂商会根据成本、可靠性、产品定位等各方面因素来进行选择这也使得不同型号的
三层交换机
在同一应用环境中可能有不同的表现。


抱歉!评论已关闭.