第12章:多层交换

思科出版社

1234 第2页
第2页4

NetFlow交换已经让位于一种更有效的多层交换形式:Cisco快速转发。Cisco为其路由器系列开发了CEF,通过使用动态查找表提供高性能的数据包转发。

CEF也一直延续到了Catalyst交换平台。下面的平台上的所有硬件进行CEF:

  • 催化剂6500主管720(具有集成MSFC3)

  • 催化剂6500 Supervisor 2/MSFC2组合

  • 催化剂4500主管III,IV,和V

  • 固定配置交换机,如催化剂3750,3560,3550,和2950

CEF默认运行,采取了专门的硬件优势。

基于CEF的多层交换机由两个基本功能块组成,如中所示图12-3:第3层引擎参与构建路由信息,第3层转发引擎可用于在硬件中交换数据包。

图12-3

图12-3

基于CEF的多层交换机的分组流

转发信息库

第3层引擎(本质上是一个路由器)维护路由信息,无论是静态路由还是动态路由协议。基本上,对于表中的每个IP目的地子网,路由表被重新格式化为一个有序列表,其中首先是最具体的路由。新格式称为转发信息库(FIB),包含网络前缀可以引用的路由或转发信息。

换句话说,到10.1.0.0/16的路由可能与10.1.1.0/24和10.1.1.128/25的路由一起包含在FIB中。请注意,这些示例是越来越具体的子网,由较长的子网掩码指定。在FIB中,这些子网将以最具体的或最长的匹配排序,首先,其次是不太具体的子网。当交换机接收到数据包时,它可以很容易地检查目的地地址并在FIB中找到最长匹配的目的地路由条目。

该FIB还包含下一跳地址为每个条目。当最长匹配条目在FIB中发现,第3层下一跳地址被找到了。

您可能会惊讶地发现FIB还包含主机路由(子网掩码255.255.255.255)条目。这些通常不会在路由表中找到,除非它们被通告或手动配置。主机路由在FIB中维护,以便对直接连接的或相邻的主机进行最有效的路由查找。

与路由表中,FIB是动态性的。当三层引擎看到在路由拓扑的变化时,它发送一个更新到FIB。每当路由表接收到改变为路由前缀或下一跳地址,FIB接收相同的变化。此外,如果下一跳地址被更改或地址解析协议(ARP)表的老化,在FIB必须反映同样的变化。

您可以显示与特定的接口或VLAN用的以下形式FIB表项显示IP CEF命令:

开关#显示IP CEF[键入mod/num|VLANVLAN-ID] [详情]

对应于VLAN 101的FIB表项交换虚拟接口可以被示出为实施例12-1中所示。

实施例12-1显示FIB表项为指定的VLAN

开关#显示IP CEF VLAN 101前缀下一跳接口10.1.1.0/24附Vlan101 10.1.1.2/32 10.1.1.2 Vlan101 10.1.1.3/32 10.1.1.3 Vlan101交换机#

您还可以通过指定IP前缀地址和掩码来查看FIB条目,方法是显示IP CEF命令:

开关#显示IP CEF[前缀IP前缀掩码] [长前缀] [详情]

例12-2中的输出显示交换机已知的10.1.0.0/16内的任何子网,无论前缀或掩码长度如何。通常,如果在CEF表中存在IP前缀和掩码的精确匹配,则只显示它。要查看其他更长的匹配项,可以添加长前缀关键词。

示例12-2显示指定IP前缀地址/掩码的FIB表条目

开关#显示IP CEF 10.1.0.0 255.255.0.0较长前缀前缀下一跳的接口10.1.1.0/24附VLAN101 10.1.1.2/32 10.1.1.2 VLAN101 10.1.1.3/32 10.1.1.3 VLAN101 10.1.2.0/24附Vlan102 10.1.3.0/26 192.168.1.2 Vlan99 192.168.1.3 Vlan99 10.1.3.64 / 26 192.168.1.2 Vlan99 192.168.1.3 Vlan99 10.1.3.128/26 192.168.1.4 Vlan99 192.168.1.3 Vlan99 [输出省略]开关#

请注意,前三个条目是实施例12-1中列出的相同。其他子网也显示,他们的下一跳路由器地址和交换机接口一起。

您可以添加详情关键字以查看有关CEF每个FIB表项的详细信息,如实施例12-3中所示。

实施例12-3显示详细的CEF条目信息

开关#显示IP CEF 10.1.3.0 255.255.255.192详细10.1.3.0/26,版本270,历元0,每个目的地共享0的数据包,经由192.168.1.2 0字节,Vlan99,0依赖性流量份额1下一跳192.168.1.2,Vlan99有效邻接经由192.168.1.3,Vlan99,0依赖关系流量份额1下一跳192.168.1.3,Vlan99有效邻接0的数据包,0字节通过前缀tmstats切换:外部0的数据包,0字节的内部0的数据包,0字节开关#

版本号描述的时间,因为生成表中的CEF条目已经被更新的数量。历元数目表示的次数的CEF表已被冲洗并再生作为一个整体的数量。该10.1.3.0/26子网有两个下一跳路由器的地址,所以本地交换机使用两台路由器之间每个目的地的负载分担。

在FIB建成后,数据能够沿底部虚线路径转发图12-3。这遵循硬件切换过程,其中不需要“昂贵”或费时的操作。然而有时,分组不能在硬件根据FIB切换。分组然后被标记为“CEF平底船”,并立即被发送到第3层发动机以用于进一步处理,如图中的虚线顶部路径图12-3. 可能导致这种情况的一些情况如下:

  • 在FIB中找不到条目

  • 该FIB表已满

  • 该IP生存时间(TTL)已过期

  • 最大传输单元(MTU)的上限,并且该分组必须被分割

  • 涉及Internet控制消息协议(ICMP)重定向

  • 不支持封装类型

  • 分组被隧道化,要求压缩或加密操作

  • 具有日志选项被触发

  • 必须执行(除了在催化剂6500主管720,其可以以硬件处理NAT)的网络地址转换(NAT)的操作

CEF操作可以在单个硬件平台上处理,例如Catalyst 3560和3750交换机。FIB生成并集中包含在交换机中。CEF还可以通过使用专用转发硬件,使用以下技术进行优化:

  • 加速CEF(ACEF)-CeF在多个第3层转发引擎,通常位于催化剂6500线卡分发。这些发动机不具备的能力,存储和使用整个FIB,所以只有FIB的一部分随时下载到他们。这用作FIB“高速缓存”含有条目有可能被再次使用。如果在缓存中没有发现FIB表项,请求被发送到3层引擎更多的FIB信息。最终的结果是,CEF加速线卡上,但不一定是在持续的线速率。

  • 分布式CEF(dCEF)-CeF可以完全多个三层转发引擎之间甚至更高的性能进行分配。因为FIB是自包含的完整的三层转发,它可以在任意数量的独立三层转发引擎的复制。在Catalyst 6500线路卡支持dCEF,每个都有自己的FIB表和转发引擎。中央三层引擎(MSFC3,例如)维护路由表,并生成FIB,然后动态地完全下载到每个线路卡。

邻接表

路由器通常维护包含3层网络和下一跳信息的路由表,并且含有3层的ARP表2层地址的映射。这些表被独立保存。

回想一下,FIB保持3层下一跳地址为每个条目。为了简化数据包转发甚至更多,在FIB具备相应的每一个下一跳进入二层信息。FIB的这个部分被称为邻接表,由可以在一个单一的第2层跳到达的节点的MAC地址。

您可以显示邻接表的使用下面的命令内容:

开关#显示邻接[键入mod/num|VLANVLAN-ID] [总结|详情]

作为一个例子,可以与要显示的每个物理或VLAN接口上已知的邻接的总数显示邻接摘要命令,如证明实施例12-4英寸

例12-4显示已知邻接的总数

开关#显示邻接摘要邻接表具有106个邻接表划时代:0(在此历元106名的条目)Interface邻接计数Vlan99 21 VLAN101 3 Vlan102 1 Vlan103 47 Vlan104 7 Vlan105 27开关#

邻接保持针对每个下一跳路由器,并且被直接连接到本地交换机中的每个主机。您可以通过查看有关邻近区域的更多详细信息详情关键字,如证明实施例12-5英寸

例12-5显示详细的信息关于邻接

开关#显示邻接VLAN 99细节IP协议:0.050.0,IP地址:0.5168.0005,IP地址:0.0001,0.052,IP地址:0.0001

请注意,相邻项包括直接连接主机的IP地址(第3层)和MAC地址(第2层)。MAC地址可以显示为十六进制数字长字符串的前六个八位字节(如前面的输出所示),也可以单独显示在一行上。十六进制数字字符串的其余部分包含第三层引擎接口的MAC地址(六个八位字节,对应于示例中的Vlan99接口)和以太网类型值(两个八位字节,其中0800表示IP)。

邻接表信息从ARP表中建。例12-5邻接其ARP表项的年龄。作为下一跳地址收到有效的ARP表项,邻接表被更新。如果ARP表项不存在,FIB表项被标记为“CEF收集。”这意味着,在硬件三层转发引擎无法转发,因为缺少第2层下一跳地址的数据包。该分组被发送到第3层引擎,以便它可以产生一个ARP请求并接收ARP应答。这就是所谓的CEF收集状态,其中,所述第3层引擎必须搜集下一跳目的地的MAC地址。

收集状态可以用几种方法来证明,如例12-6所示。

示例12-6显示邻接的CEF收集国家

开关#显示ip cef邻接收集前缀下一跳的接口10.1.1.2/32附VLAN101 127.0.0.0/8附EOBC0 / 0 [输出省略]开关#显示ip arp 10.1.1.2开关#显示IP CEF 10.1.1.2 255.255.255.255详细10.1.1.2/32,版本688,历元0,附接,连接0的数据包,经由VLAN101 0字节,0依赖性有效搜集邻接开关#

请注意,对于直接连接的主机10.1.1.2/32的FIB表项是存在的,但在搜集状态列出。该显示IP的arp命令显示IP地址没有有效的ARP条目。

在此期间,一个FIB条目在CEF收集状态,等待的ARP解析的时间,后续报文到该主机会立即下降,使得输入队列不补和三层引擎不会变得太忙担心需要重复的ARP请求。这就是所谓的ARP节流节流邻接. 如果在2秒内没有收到ARP回复,则会释放限制,以便触发另一个ARP请求。否则,在接收到ARP应答后,就可以释放限制,完成FIB条目,并且可以在硬件中完全转发数据包。

邻接表还可以包含其他类型的条目,这样可以有效地处理数据包。例如,您可能会看到下列相邻类型:

  • 空邻接- 用来目的地为Null接口交换机的数据包。空接口总是被路由器或交换机上定义;它代表了默默的吸收包,而无需实际进行转发的逻辑接口。

  • 降邻接- 用来切换不能被正常转发的数据包。实际上,这些数据包不会被转发下降。包可以因为封装失败,未解析的地址时,不支持的协议,没有有效路由目前,还没有有效的邻接,或者校验和错误的被丢弃。您可以衡量使用以下命令降邻接活动:

开关#显示cef dropCEF掉落统计插槽Encap_fail未解决的不支持的No_route No_adj ChkSum_Err RP 8799327 1 45827 5089667 32 0切换#
  • 丢弃邻接- 二手当数据包必须因为一个访问列表或其他政策行动被丢弃。

  • 蓬特邻接-当必须将数据包发送到第3层引擎进行进一步处理时使用。您可以通过查看列出的各种punt相邻原因来评估CEF punt活动显示CEF未CEF交换命令:

有关:
1234 第2页
第2页4
IT薪资调查:结果是