收藏 分享(赏)

路由协议的负载分担.pdf

上传人:精品资料 文档编号:10309134 上传时间:2019-10-29 格式:PDF 页数:8 大小:104.52KB
下载 相关 举报
路由协议的负载分担.pdf_第1页
第1页 / 共8页
路由协议的负载分担.pdf_第2页
第2页 / 共8页
路由协议的负载分担.pdf_第3页
第3页 / 共8页
路由协议的负载分担.pdf_第4页
第4页 / 共8页
路由协议的负载分担.pdf_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、路由协议的负载分担固网产品技术支持部北京分部 朱国利关键词 RIP IGRP EIGRP OSPF BGP ISIS CEF摘 要 本文介绍了负载分担的概念 为什么 进行负载分担 以及负载分担的分类和工作方式 及具体应用1 负载分担 的 概念顾名思义 负载分担 就是到达 一个给定的目的地址允许使用多条路径 的技术 这些路径可能来源于静态路由或者动态路由协议 如 RIP EIGRP OSPF2 为什 么 要 使用 负载分担网络为人们提供了极大的便利 随着网络应用的日益普及 和 网络规模日益 庞大Internet上需要传送的信息量大大增加 对于路 由器 来说 他们需要为大量 报文 提供 寻径 转发

2、功能 此时路 由器 的负载能力和性能就 成为必须面对的一个实际问题 在网络流量增大的情况下 甚至接口故障的情况下 如何能够使路 由器 仍然提供可靠的高质量的服务 其中一种可行的方法就是负载分担3 负载分担的分类当路由器 通过路由协议学到多条到达 某网段 的路 由时 它会在路 由表 中创建administrative distance 这是 CISCO的称谓 QUIDWAY路 由器 称作 preference 虽然名称不同 但作用是一样的 最低的路由 如果 administrative distance相同 那么要 比较路径的花销 从路径的花销角度讲 负载分担要分成两种 等价负载分担和不等价负载

3、分担 这两种负载分担 CISCO都是支持的 但是 QUIDWAY路 由器不 支持不等价负载分担3.1 等价负载分担如果路 由器 创建多条相同 administrative distance 相同花销 到达同一目的地的路由等价 负载分担就形成了应用 show ip route可以看到等价路由 举个例子来说 下面是到拥有多条路径的某个子网的 show ip route输出 注意有两个 routing descriptor blocks 每个 block是一条路由注意在其中一个 block entries前面有个星号 这个星号表示这个时刻如果有流量的话将要使用这条路由C26# show ip rou

4、te 1.0.0.0Routing entry for 1.0.0.0/8Known via “rip“, distance 120, metric 1Redistributing via ripAdvertised by rip (self originated)Last update from 192.168.75.7 on Serial1, 00:00:00 agoRouting Descriptor Blocks:192.168.57.7, from 192.168.57.7, 00:00:18 ago, via Serial0Route metric is 1, traffic sh

5、are count is 1* 192.168.75.7, from 192.168.75.7, 00:00:00 ago, via Serial1Route metric is 1, traffic share count is 1Cisco IOS的路 由表 中等价路由最多可以有六条 (这个数值在不同系列路 由器 上可能是不同的 当然有些 IGP路由协议有他们自己的限制 可以通过如下命令来设置等价路由的条数maxmam-paths n让我们看个 OSPF等价负载分担的例子 在下面的图中 到达 网段 X有三条路径 10RTERTC1010101010RTBRTDNetwork X图 1 经由

6、 RTE-RTB-X的路径经由 RTE-RTC-X的路径请 输 入密级路由协议的负载分担2003-09-26 版权所有 侵 权 必 究 第 2页 共 8页经由 RTE-RTD-X的路径metric都是 20 都是区域 内路 由 路 由器 E选择了这三条路径作为到达 网段 X的等价路由在路 由器 RTE上配置如下命令Router(config)#router ospf 100Router(config-router)#maximum-paths 2此时路 由器 RTE就会只选择其中的两条路径 经由 RTE-RTB-X的路径 经由RTE-RTC-X的路径 作为到达 网段 X的等价路由在路 由器 R

7、TE上改变 RTE-RTC接口的 cost值为 20 此时路 由器 RTE会选择 经由 RTE-RTB-X的路径 经由 RTE-RTD-X的路径 作为到达 网段X的 等价 路由CISCO的 各个路由协议 RIP IGRP EIGRP OSPF BGP ISIS都实现了这个功能 QUIDWAY路 由器 上这个数目是不可设置的 缺省为 3 EIGRP OSPF ISIS都是支持等价负载分担的 但是 RIP IGRP BGP协议不支持3.2不等价负载分担不等价负载分担就是到达同一目的地选用多条路径 但是他们的 花销并 不相等IGRP和 EIGRP路由协议支持不等价负载分担 由于 IGRP和 EIGR

8、P协议本身 计算路径花销考虑的因素颇多 可能对于实际花销相差无几的不同 链路 计算出来的 cost会相差很多 所以针对这种协议的特殊性 允许它应用不等价负载分担 命令如下variance n这条命令告诉路 由器 对于一个目的 地 可以应用的路由 只要该路由的 metric小于或者等于最小 metric的 n倍 同时流量也会根据 链路 的 metric值来 分发让我们看个 EIGRP的例子 在下面的图中 到达 网段 X有三条路径请 输 入密级路由协议的负载分担2003-09-26 版权所有 侵 权 必 究 第 3页 共 8页10RTERTC2020251010RTBRTDRTANetwork X

9、图 2 经由 RTE-RTB-RTA的路径 metric是 30经由 RTE-RTC-RTA的路径 metric是 20经由 RTE-RTD-RTA的路径 metric是 45路 由器 RTE选择了第二条路径 metric是 20的 RTE-RTC-RTA 如果想使 EIGRP将路径RTE-RTB-RTA也一并选上 配置乘数为 2的 variance Router(config)#router eigrp 1Router(config-router)#variance 2这条命令增加最小 metric的 值到 40 (2 * 20 = 40) 于是 EIGRP包括所有 metric小于或等于

10、40的路由在上面的配置中 到达 网段 X EIGRP选择了两条路径 RTE-RTC-RTA 和RTE-RTB-RTA 因为他们都具有小等于 40的 metric EIGRP不会选用路径RTE-RTD-RTA 因为该路径的 metric是 45让我们来看一下这个例子中流量的分担情况对于路径 RTE-RTC-RTA 30/20 = 3/2 = 1对于路径 RTE-RTB-RTA 30/30 = 1 如果比值不是整数 就是用小于这个比值并且是最接近这个比值的整数 在这个例子中 EIGRP会从路径 RTE-RTC-RTA发送一个 报文 从路径 RTE-RTB-RTA发送一个 报文请 输 入密级路由协议

11、的负载分担2003-09-26 版权所有 侵 权 必 究 第 4页 共 8页我们假设 RTE-RTB之间的 metric是 25 RTB-RTA之间的 metric是 15 RTE-RTB-RTA的metric就是 40 哪么 流量分担情况如下对于路径 RTE-RTC-RTA 40/20 = 2对于路径 RTE-RTB-RTA 40/40 = 1这时候 EIGRP就会发送两个包给 RTE-RTC-RTA 发送一个包给 RTE-RTB-RTA 这样EIGRP就不仅提供了不等价负载分担 还提供了智能的流量分担对于 QUIDWAY路 由器 来说 不支持不等价负载分担 没有 variance命令4 负

12、载分担的工作方式4.1报文 转发的机制说到负载分担 不能不提一下 报文 转发的机制对于 CISCO来说 可用的机制 主要 有三种 进程 转发 process switching 快速转发fast switching 和 CEF CISCO Express Forwarding 采用 哪 种转发机制直接影响到系统性能和负载分担的决策进程转发 进程转发是处理 报文 的最基本的方法 报文 被放到三层协议对应的队列中 调度程序 将 调用相应的进程 这个进程是 执行 show process cpu可以看到 的 进程之一 报文 在队列中等待 直到调度程序将 CPU出让给相应的进程 等待时间取决于等待运行

13、的进程数目和等待被处理的 报文 数目 路由决策依赖于路 由表 和 ARP缓存一旦做出路由决策 报文 就会被发送到出接口快速转发 快速转发是对进程转发的一种改进 在快速转发情况下 报文 的到达触发中断 使 CPU延迟处理其他任务转而处理该 报文 CPU会立即查看快速 缓存 快速 缓存中 包含 报文出 接口的三层地址和二层地址的信息 查找三层地址 如果找到匹配项 将该 报文 转发 否则将该 报文 放入相应的三层队列中等待进程转发来处理CEF前两种转发算法主要有几点不足1. 到某个目的地址的第一 个报文 总是采用进程转发来初始化快速 缓存2. 快速 缓存 可能会变得很大导致快速转发不 快3. 在快速

14、 缓存 和 ARP表之间没有直接的联系 如果有某个 表项 在 ARP表中已经失效快速 缓存 无从知晓 为了避免这个问题 快速 缓存会每 分钟随机将它的 1/20置为 无效 如果网络很庞大 这种方式会使 CPU某时刻占有率大大增加CEF用下面两个表解决以上问题 FIB(Forwarding Information Based)和邻接表 邻接表是三层地址的一个索引 它还包含了转发 报文 所需的二层的数据 当路由器 探测到邻接节点时 该邻接表表项就加入到邻接表中 FIB表的形成基于路 由表 和邻接表对于 QUIDWAY来说 只有一种转发机制 那就是进程转发请 输 入密级路由协议的负载分担2003-0

15、9-26 版权所有 侵 权 必 究 第 5页 共 8页4.2概述负载分担有两种工作方式 基于 报文 的负载分担和基于目的地址的负载分担 基于目的地址的负载分担意思是路 由器 针对 源地址 &目的地址 对 来分发 报文 到达同一个 网段 有 N条路径 在源 地址相同的情况下 目的地址是该 网段 中地址 1的所有 报文走 第一条路 目的地址是该 网段 中地址 2的所有 报文走 第二条路 依此类推 目的地址是该 网段 中地址 N的所有 报文走第 N条路 基于 报文 的负载分担就是说路 由器 将目的地址是 A的一个 报文 从第一条路径发送 目的地址是 A 目的地址相同 的第二 个报文从第二条路径发送这

16、两种负载分担方式和前面提到的转发方式息息相关 进 程转发支持并且只支持基于报文 的负载分担 快速转发支持基于目的地址的负载分担 而 CEF都支持 说到这里 我们就明白了 就是说 QUIDWAY路 由器不 支持基于目的地址的负载分担 所以 基于目的地址还是基于 报文 的负载分担依赖于 IP报文 的转发设计 在大多数Cisco路 由器 上 缺省情况是 使能 快速转发的 这样就可以实现基于目的地址的负载分担 要想设置基于 报文 的负载分担 用下面的命令关闭快速转发 切换到 进 程转发Router(config)# interface Ethernet 0Router(config-if)# no i

17、p route-cache现在路 由器 的 CPU会察看每个 报文 根据路 由表 中该目的地址的路由个数进行负载分担 如果在 低端路由器 上作这样的操作危害是很大的 因为 CPU会很繁忙 重新打开快速转发 用下面的命令Router(config)# interface Ethernet 0Router(config-if)# ip route-cacheCEF Cisco Express Forwarding 能够使基于 报文 和基于目的地址的负载分担效率更高 速度更快 当然 同时这也意味着你必须有额外的资源来维护 CEF表项 和邻接关系4.3两种工作方式的比较基于 报文 的负载分担 用轮询的

18、 方法来决定到某个目的地址的每个 报文 选择哪条路径就是说对于给 定源 地址和目的地址对的 报文 可能会选择不同的路径 这样会导致 报文重新排序 因此对于 VIP和其他要求按序传输的 报文流 不推荐使用这种方法基于目的地址的负载分担是很 专一 的 对于给定的源地址和目的地址对肯定会选择同一条路径 即使有多条可用路径 目的地不同的流量会采用不同的路径 这种工作方式可能会导致负载分担不均衡 因为到达各个目的地址的流量可能相差很多到达某个目的地址的 报文 又总是选择同一条路径请 输 入密级路由协议的负载分担2003-09-26 版权所有 侵 权 必 究 第 6页 共 8页4.4配置实例快速转发和 进

19、 程转发的配置前面已经提到 下面说一下 CEF的配置首先在全局模式下 使能 CEFRouter(config)#ip cef只要 使能 CEF CISCO路 由器 缺省情况下是进行基于目的地址的负载分担的 该命令可配置 在接口模式下Router(config)# interface Ethernet 0Router(config-if)# ip load-sharing per-destination如果要实现基于 报文 的负载分担 配置命令如下Router(config)# interface Ethernet 0Router(config-if)# ip load-sharing per-

20、packet让我们看个例子10 1010RTB RTC 1010RTEserial0serial1RTARTDX.1X.2图 2 各个路 由器 运行 OSPF协议 RTA上 有网段 X的路由 RTB和 RTC之间有两条 链路 形成负载分担 在 RTE和 RTD上分别 有网段 X RTE上有地址 X.1 RTD上有地址 X.2现在我们要在 RTB上实现基于目的地址的负载分担1 在全局模式下 使能 CEFRTB config)#ip cef2 在 RTB和 RTC相连的两个接口配置基于目的地址的负载分担 缺省情况RTB(config)# interface serial 0RTB(config-i

21、f)# ip load-sharing per-destinationRTB(config)# interface serial 1RTB(config-if)# ip load-sharing per-destination请 输 入密级路由协议的负载分担2003-09-26 版权所有 侵 权 必 究 第 7页 共 8页此时在 RTA上执行 ping X.1的操作 可以看到所有 ping报文 都是 RTB的 serial0 或serial1 发送 然后在 RTA上执行 ping X.2的操作 可以看到所有 ping报文 是从 RTB的serial1 或 serial0 发送在 RTB上改变配

22、置 启动基于 报文 的负载分担RTB(config)# interface serial 0RTB(config-if)# ip load-sharing per-packetRTB(config)# interface serial 1RTB(config-if)# ip load-sharing per-packet此时在 RTA上执行 ping X.1的操作 可以看到所有 ping报文 都是 RTB的 serial0和 serial1轮流发送 然后在 RTA上执行 ping X.2的操作 可以看到所有 ping报文 是从 RTB的serial0和 serial1轮流发送4.5对于分 片报

23、文 的处理在基于 报文 的负载分担工作方式下 需要考虑一下 报文分 片的情况 对于需要分片的报文 处理 是先选路再 分片 所以同一 报文 的不同分片 会沿 相同路径发送 CISCO和QUIDWAY的处理都是如此 对于做转发的路 由器 来说 报文与报文分 片的处理并无差别4.6注意事项对于基于目的地址的负载分担本人也研究了许久 终于发现 CISCO所谓的基于目的地址的负载分担实际上是基于源地址和目的地址对的负载分担 CISCO资料有误就是说 如果图 3中我们在 RTB上启动了基于目的地址的负载分担后 如果从 RTB上执行 ping X.1的操作 结果是看到 ping报文 从 serial0和 serial1轮流发送 而不是只选择一条 链路 这是因为虽然目的地址都是 X.1 但是源地址分别是 serial0和 serila1的地址所以不会选择同一 条链路5 参考资料清单1 Cisco, Configure CISCO Express Forwarding Cisco Website.2 Cisco, Troubleshooting CISCO Express Forwarding Cisco Website.请 输 入密级路由协议的负载分担2003-09-26 版权所有 侵 权 必 究 第 8页 共 8页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报