IP : 思科快速转发 (CEF)

CEF极化

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 23 日) | 反馈

简介

本文描述思科快速转发(CEF)极化如何能导致不最理想的使用冗余路径目的地网络。CEF极化是效果,当散列算法选择特定路径时,并且冗余路径保持完全未使用。

贡献用Anvitha Prabhu, Shashank辛哈和Shridhar Dhodapkar, Cisco TAC工程师。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

在Supervisor引擎720运行的本文档中的信息根据思科Catalyst 6500交换机。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

背景信息

CEF转换根据由路由协议填充,例如增强的内部网关路由选择协议(EIGRP)和开放最短路径优先(OSPF)的路由表的数据包。CEF执行负载平衡,一旦路由表(RIB)计算。在层次化网络设计,可以有许多第3层(L3)相等代价冗余路径。考虑从接入层的通信流在分配和核心间和到数据中心里的此拓扑。

                                         

假设,为了到达从路由器1 (R1) [Top Left]的网络10.1.1.1,有两个等价路径(L1, L2)。两个连接使用的决策由哈希算法做。默认情况下,来源IP (SIP)和目的地IP (DIP)使用作为参数在哈希算法。

这是说明哈希算法如何工作:

当只有两个路径时,交换机/路由器执行排除或(在最低位(一个位,当两条链路之一需要选择时, 3-4条链路的两个位的XOR)操作,等等) SIP和DIP。同样SIP和DIP的XOR操作总是导致数据包使用同一条链路。

数据包然后通过在分布层上,同一哈希算法与同一哈希输入一起使用,并且选择所有流的单条链路,留给另一条链路被未充分利用。此进程呼叫CEF极化(导致使用所有流的单个相等代价多重通道的使用同一散列算法和同样哈希输入了(ECMP)链路)。

此示例较详细地说明此进程:

                  

  1. 流量发出从10.240.18.1和被注定对10.240.20.1进入网络在路由器A并且经过CEF交换的。由于有两个等价路径对10.240.20.0/24网络,在数据包的源地址和目的地址通过散列算法,并且结果是用于的一个特定路径到达目的地。在这种情况下,数据包开始的路径往路由器C。从那里,数据包去路由器F和他们的最终目的地。

  2. 流量发出从10.240.18.2和被注定对10.240.20.1进入网络在路由器A并且经过CEF交换的。由于有两个等价路径对10.240.20.0/24网络,在数据包的源地址和目的地址通过散列算法,并且CEF选择路径。在这种情况下,数据包开始的路径往路由器B。

  3. 流量发出从10.240.18.3和被注定对10.240.20.1进入网络在路由器A并且也经过CEF交换的。由于有两个等价路径对10.240.20.0/24网络,在数据包的源地址和目的地址通过散列算法,并且CEF选择路径。在这种情况下,数据包开始的路径往路由器B。

  4. 数据包从10.240.18.2来源,并且10.240.18.3两个到达在路由器B,再有到达两个的等价路径10.240.20.1。它通过散列算法再运行这些套源及目的地对,导致同样结果在路由器A的散列算法导致。这意味着数据包两数据流通过一个路径-在这种情况下,链路往路由器E。往路由器D的链路不收到流量。

  5. 在从10.240.18.2和10.240.18.3发出的流量在路由器E后接收,沿路径交换路由器的F,然后其最终目的地的。

如何避免CEF极化

  1. 交替在默认(SIP和DIP)和全双工(SIP + DIP + Layer4端口)散列输入配置之间在网络的每块层。

    Catalyst 6500为哈希算法提供一些选择:
    • 默认-以不同等的重要性使用源和目的地IP地址,给对每条链路为了防止极化。
    • 简单-以相等的重要性使用源和目的地IP地址,给对每条链路。
    • 全使用源和目的地IP地址和Layer4端口号,与不同等的权重。
    • 全双工简单-以相等的重要性使用源和目的地IP地址和Layer4端口号,给对每条链路。
        6500(config)#mls ip cef load-sharing ?
          full    load balancing algorithm to include L4 ports
          simple  load balancing algorithm recommended for a single-stage CEF router

        6500(config)#mls ip cef load-sharing full ?
          simple  load balancing algorithm recommended for a single-stage CEF router
          <cr>
    目前,命令不存在检查负载均衡算法在使用中。方法是在使用中发现的最佳方法是检查当前配置通过show running-config命令。如果目前没有以 mls ip cef load-sharing 开头的配置,则正在使用的是默认的源和目标不等权重算法。

    注意:1) Catalyst 6500每个小包不支持负载均衡。2)全双工选项在哈希不包括通用ID。如果它使用在一多层拓扑的每块层,极化是可能的。以此命令使用简单选项为了达到更加好负载均衡和使用少量硬件邻接是可行的。

  2. 交替在ECMP链路之间均等和奇数在网络的每块层。
    CEF负载平衡不依赖于怎样协议路由在路由表里插入。所以, OSPF路由显示行为和EIGRP一样。在有几路由器连续执行负载均衡的分级网络中,他们全都使用同样算法负载共享。

    默认情况下散列算法负载平衡此方式:
    1: 1
    2: 7-8
    3: 1-1-1
    4: 1-1-1-2
    5: 1-1-1-1-1
    6: 1-2-2-2-2-2
    7: 1-1-1-1-1-1-1
    8: 1-1-1-2-2-2-2-2
    编号,在冒号代表等价路径前数量。编号,在冒号代表每个路径转发流量的比例后。

    这意味着那:
    • 对于两等价路径,负载均衡46.666%-53.333%,没有50%-50%。
    • 对于三等价路径,负载均衡33.33%-33.33%-33.33% (正如所料)。
    • 对于四等价路径,负载均衡20%-20%-20%-40%和没有25%-25%-25%-25%。

    这说明,当有ECMP链路时偶数,流量没有负载平衡
    一种方式禁用CEF极化是反极化重要性,在版本12.2(17d)SXB2介绍。

    为了启用反极化重要性,请输入此命令:
    6500(config)# mls ip cef load-sharing full simple
    请使用此命令是否有两等价路径,并且需要均等地使用两个。简单的关键字的新增内容在Cisco IOS CEF邻接允许硬件使用相邻关系数量和一样。没有简单关键字,硬件安装另外的邻接条目为了避免平台极化。

  3. Cisco IOS介绍呼叫帮助避免CEF极化的唯一的ID的概念/通用ID。此算法,呼叫通用算法(在当前Cisco IOS版本的默认),添加32位路由器特定的值到散列函数(呼叫通用ID -这是一个随机地生成的值在能可以手工被控制)的交换机时启动。这植入在每个路由器的散列函数有唯一的ID的,保证同样源/目的地对哈希到在另外路由器的一个不同的值沿路径。此进程提供一更加好整个网络的负载均衡并且避免极化问题。此唯一的ID概念不为等价路径偶数工作由于硬件限制,但是为等价路径奇数理想工作。为了克服此问题, Cisco IOS添加一条链路到硬件邻接表,当有等价路径偶数为了做系统相信时有等价链路奇数。
    为了配置通用ID的一个定制的值,请使用:
    6500(config)ip cef load-sharing algorithm universal <id>

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


Document ID: 116376