登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 计算机科学与技术 > 正文

EIGRP等值与不等值负载均衡条件的研究与实现

 2022-11-03 00:02:42  

论文总字数:13139字

摘 要

增强型内部网关路由选择协议(Enhanced Interior Gateway Routing protocol, EIGRP)是Cisco在IOS 9.21版本中首次发布的思科私有协议——内部网关路由选择协议(Interior Gateway Routing protocol, IGRP)的增强版,和IGRP同为距离矢量协议,并使用IGRP协议所用的复合度量来确定每条路由路径的最优选项。在目前常见的内部路由协议中,只有IGRP和EIGRP支持不等值负载均衡。

本文研究的主题就是EIGRP协议中的等值与不等值负载均衡的条件及其实现。

关键词:增强型内部网关路由选择协议;距离矢量协议;复合度量;不等值负载均衡;

Abstract

The Enhanced Interior Gateway Routing protocol, is a Cisco private protocol which released in IOS v9.2. It is an enhanced edition of Interior Gateway Routing Protocol, which both of them are distance vector protocol, and use the same composite metrics to determine the optimal option of each routes. In the current common interior routing protocols, only IGRP and EIGRP support the equal and unequal load balancing.

The subject of this paper is the condition of equal and unequal load balancing and its implementation.

Keywords: Enhanced Interior Gateway Routing protocol, Distance vector protocol, Compound metric, Unequal load balancing.

目录

引言 5

第一章 内部网关路由选择协议 6

1.1 内部网关路由选择协议概述 6

1.2 内部网关路由选择协议的度量 6

第二章 增强型内部网关路由选择协议 7

2.1 增强型内部网关路由选择协议概述 7

2.2 增强型内部网关路由选择协议的基本原理与实现 8

2.2.1 协议独立模块 8

2.2.2 可靠传输协议 8

2.2.3 邻居的发现和恢复 9

2.2.4 离散更新算法 10

2.2.5 增强型内部网关路由选择协议负载均衡 11

第三章 企业网通信仿真 18

结论 21

引言

作为一种目前被广泛使用的IGP(Interior Gateway Protocol,内部网关协议),EIGRP通常被与OSPF(Open Shortest Path First,开放式最短路径优先)以及RIP(Routing Information Protocol)进行比较。从各协议特性来看,RIP协议简单可靠,但却不适合复杂网络尤其是存在冗余线路的大型复杂网络;OSPF协议收敛速度快,具有良好的开放性及扩展性,但对路由器性能和网络带宽要求较高;EIGRP结合了以上两种协议的优点,不仅支持等值负载均衡,并且支持不等值路径负载均衡,也是本文所研究的主题。

作为一种思科私有高级距离矢量路由选择协议,EIGRP可以使用五种参数进行度量值计算:带宽(Bandwidth)、负载(Load)、时延(Delay)、可靠性(Reliability)、MTU。不进行特殊指定的情况下,EIGRP只使用带宽和时延作为度量值计算的参数。虽然EIGRP使用与IGRP相同的公式来计算复合度量值。但是EIGRP协议使用一个256的倍数因子扩展了度量参数,使它具有更好的度量粒度。EIGRP包含以下四个部件:依赖于协议的模块、可靠传输协议(RTP)、邻居发现与恢复、扩散更新算法(DUAL),其中DUAL是EIGRP的核心算法。

EIGRP作为IGRP的增强版本,除了与IGRP同为距离矢量协议,并使用相同复合度量外几乎没有任何相似之处,其特点包括:高级距离矢量、快速收敛、支持变长子网掩码(VLSM)、部分更新、支持多种网络层协议、弹性网络设计、组播和单播代替广播、任意一点手动汇总、无环无类路由、易于配置、支持等值于不等值负载均衡。

到目前为止,所有的距离矢量协议的运行都是基于Bellman-Ford(或Ford-Fulkerson)算法或其一些派生算法的基础之上的。因此,这些协议易于产生路由选择环路和计数无穷大的问题。结果是,这些协议必须要采取一些避免路由选择环路的措施,例如水平分割、路由毒性逆转或抑制定时器等。由于每一台路由器在向它的邻居传送路由信息之前,都必须对收到的路由信息进行路由选择算法,因此大型网络的收敛速度可能会变得比较慢。更重要的是,距离矢量协议在通告路由时,如果网络核心的关键链路发生了变化,就意味着有很多发生变化的路由需要进行通告。

负载均衡允许路由器利用多路径的优点,在所有可用路径上发送数据包。负载均衡可以是等值或非等值的,等值是指将流量均匀地分布到多条度量相同的路径上;非等值是指将数据包分布到度量不同的多条路径上,各条路径上分布的流量与路由代价成反比,也就是说,代价越低的路径分配的流量就越多,代价越高的路径分配的流量就越少。

负载均衡有两种方式:基于目标网络和基于数据包。

基于目标网络的负载均衡是根据目标地址分配负载,在大部分平台上,IPv4的默认交换模式是CEF,而CEF默认基于目标进行负载均衡。这实际上是按照源目地址对进行负载均衡,所有发往特定目标地址的流量只要源地址相同都会从相同的接口出站,而不同源目地址对的流量可能会从其他接口出站。

基于数据包的负载均衡则是交换IPv4数据包的另一种方式。基于数据包的负载均衡意味着在不同的链路上发送数据包,即使在路径代价相等,目标相同的情况下也是如此。如果路径代价不同,那么可能会在高、低代价路径上按照代价比例进行分流,基于数据包的负载均衡可以更加均匀地分布流量,这取决于不同源目地址对的数量。但数据包选择不同路径去往目标网络会引起非顺序到达,对于某些应用,例如VoIP来说是不可接受的。

第一章 内部网关路由选择协议

1.1 内部网关路由选择协议概述

内部网关路由协议作为对于路由选择信息协议只适用于小型网络(最大15跳)的局限性的回应,相对于其前辈,内部网关路由协议最重要的变化就是跳数的度量,从路由选择信息协议最大实现15跳大小的网络变为能够实现最大为255跳大小的大型网络。

虽然内部网关路由协议延续使用了跳数,但并不将跳数作为反应和衡量链路质量的唯一标准,而是将多种路由变量参数赋予不同权重,通过算法计算得出一条链路最终的质量结果。

内部网关路由协议对于Cisco公司来说是一个功能强大的通用协议,它可以适应已选路由协议簇的多样性。它不仅可以作为IP路由选择协议,也可以适用于ISO无连接网络协议(Connectionless Network Protocol, CLNP)的路由。也就是说它还可以进行IPX和AppleTalk网络的路由。

1.2 内部网关路由选择协议的度量

与路由选择信息协议相比,内部网关路由选择协议最大的变化是它是一种使用多种度量参数的基于链路的路由协议。在此协议中,协议会根据路由变量参数——带宽、时延、负载和可靠性(虽然MTU不作为参数计算复合度量值,但是内部网关路由选择协议也会跟踪每条路由上延链路最小MTU的大小)——计算出一个复合的度量值。协议在默认情况下只将带宽与时延加入度量计算,负载和可靠性则需要手动配置开启。如果将数据链路想象成一条管道,带宽指的是它的横截面积,也就是单位时间段内通过数据能力的大小;时延指的是数据从一头进入管道开始到从另一头出管道期间所需的时间,当数据在管道中传输的速度一定时,所需时间就与管道长度呈正相关。在计算时,带宽是按链路上的最窄带宽来计算,而时延则是链路上的总累加时延。关于每个IGRP路由的复合度量,公式如下:

其中默认k1=k3=1,k2=k4=k5=0。

第二章 增强型内部网关路由选择协议

2.1 增强型内部网关路由选择协议概述

由于内部网关路由选择协议不支持无类路由选择,增强型内部网关路由选择协议最初开发的目的只是为了支持无类路由选择,而在开发过程中工程师们引入了一个新的收敛算法,到完成开发时增强型内部网关路由选择协议除了保留了内部网关路由协议的链路度量方式、协议域与非等值负载均衡等,与原协议有明显的不同。

与原协议是纯粹的距离矢量协议不同,增强型内部网关路由选择协议有时也被称为一种具有链路状态协议行为特点的距离矢量协议,或者称作高级距离矢量协议。按照一般的认知,距离矢量协议直接向自己的所有直连邻居发送自己的完整路由表信息,网络中的路由器从自己的直连邻居处取得路由信息,加上自己本地路由信息再发送给其他直连邻居,级级传递以此达到全网同步。每个路由器都不了解完整的网络拓扑,只知道与自己直连邻居的信息、通往各网段的开销与下一跳。而链路状态协议则不仅了解直连邻居,还会在建立了邻居关系之后,通过链路状态数据包——其中包含与该路由器直连的所有链路的状态——泛洪来建立完整的拓扑图。收敛完成过后,每个路由器都有着相同的区域内拓扑图,但是每一个路由器都独立的确定从本地到达拓扑内各网段的最佳路线。

到目前为止,所有的距离矢量协议都是基于Bellman-Ford或Ford-Fulkerson算法或派生算法之上的,因此这些距离矢量协议需要使用多种避免路由产生环路的防护措施,例如水平分割、毒性逆转等。因此所有路由消息在向邻居发送之前都要进行路由选择,一旦路由消息数量过多会造成网络收敛速度严重下降,如果核心部分的关键链路有变化,那么就会有很大数量的路由发生变化,需要通告。

而链路状态协议相对来说受到链路变动及路由环路的影响就要小得多,因为链路状态协议数据包的转发并不依赖于直连邻居的通告,而是根据路由器数据库中的拓扑图自行计算得来的,大型网络的收敛会更加快速。而且它只通告链路及其状态,链路的变化不一定引起有关这条链路的所有路由都发生变化通告。

与一般协议通过拓扑表独立计算路由不同,增强型内部网关路由选择协议则使用了一种称为扩散计算的方法,这个方法在多个路由器之间通过某种方式并行计算路由,从而在保持拓扑无环路的同时可以得到更快的收敛速度。虽然增强型内部网关路由选择协议也是将距离矢量通告给它的直连邻居,但是增强型内部网关路由选择协议的更新是不规律的、部分的、有选择的。不规律的是指它不像其他大部分路由协议一样按照规定的时间周期发送更新包,而是在网络拓扑发生变化时才发送更新,这样能有效地减少无效的路由更新同步包,减小带宽压力;部分的是指更新包只包含拓扑发生变化的那一部分;有选择的是指路由更新不面向全网,而是单独面向那些受到影响的路由器。这些特性意味着增强型内部网关路由选择协议在带宽较低而费用较高的广域网上能够获得更好的性能表现。还有一点需要注意的是,如果在带宽较低的广域网上运行增强型内部网关路由选择协议进行路由选择,在网络收敛过程期间,由于构建拓扑图需要大量的链路及状态信息获取,各个路由器吞吐的路由选择信息的流量会相对比较大。又因为增强型内部网关路由选择协议默认使用的带宽不超过总带宽的一半,可以考虑使用命令来改变协议使用的带宽与总带宽的占比。

增强型内部网关路由选择协议是一个无类的协议,也就是说在其通告的路由中每一条都带有网段及掩码。当然,增强型内部网关路由选择协议不仅可以利用可变长子网掩码进行子网划分,也可以进行一组地址的聚合汇总。

2.2 增强型内部网关路由选择协议的基本原理与实现

增强型内部网关路由选择协议与内部网关路由选择协议使用相同的公式与参数来计算它的复合度量值,不同之处在于增强型内部网关路由选择协议使用了一个值为256的倍数因子来扩展度量参数,使协议的度量粒度或者说分辨率更高。

增强型内部网关路由选择协议包含四个部件:协议独立模块、可靠传输协议、邻居的发现与恢复、离散更新算法。

2.2.1 协议独立模块

简单来说协议独立模块的作用就是负责某一特定协议的路由选择任务,在很多情况下增强型内部网关路由选择协议要与其他路由选择协议自动进行路由重分发。

2.2.2 可靠传输协议

可靠传输协议(Reliable Transport Protocol, RTP)用来管理增强型内部网关路由选择协议数据包的发送与接收。可靠指网络环境无异常的条件下,发送的数据是确保对端能够完整有序的收到所有发送的数据。这个特性是由Cisco公司的私有算法“可靠组播”来实现的,具体来说就是每一个接收到可靠包更新的邻居都会向D类地址224.0.0.1发送一个单播包来进行确认,而有序发送到达是通过在每个数据包中包含两个计数器来实现的。每个数据包都包含一个由数据包发送源路由器分配的序号,这个序号在此路由器每发送一个可靠包时都会递增,发送路由器也会将最近从目的路由器收到的可靠包序号放在该数据包中发送。只要在收到数据包时对此序号进行检查即可知道数据顺序是否正确,数据包是否按序到达。

增强型内部网关路由选择协议的数据包在IP头部协议号为88来进行标识,有以下几种:

  • Hello——用于邻居的发现与恢复,使用组播方式发送,为不可靠的发送方式(即不使用可靠传输协议)。
  • 确认(Acknowledgements,ACK)——不包含数据的单播Hello包,只是为了回复收到的Hello包以建立邻居关系,同上使用不可靠的发送方式。
  • 更新(Update)——用于传递路由更新信息。增强型内部网关路由选择协议不同于传统类型协议,它只在拓扑发生变化时向特定几个受到影响的路由器发送通告信息,而不是定时全网通告,换句话说,它只传递必要的信息给需要这些信息的路由器。当只有一台路由器需要信息时,它就以单播的形式发送;当有多台路由器需要的时候则以组播的形式发送。更新包总是以可靠的方式更新(即使用可靠传输协议)。
  • 查询(Query)和答复(Reply)——是扩散更新算法有限状态机用来管理扩散计算的。查询包可以使用组播或单播发送,而答复包总是使用单播方式发送。这两种数据包都是用可靠方式更新。
  • 请求(Request)——最初计划提供给路由服务器使用的数据包类型,但只存在于文档中,从未被实现过。

如果任何数据包通过可靠方式传递,而没有从邻居那里收到一个关于此数据包的ACK包,那么这个数据包就会以单播的形式重新对那个邻居发送,如果经过16此重传邻居还未响应,则这个邻居会被宣告无效,并在抑制时间过后尝试重新与其建立邻居关系。

2.2.3 邻居的发现和恢复

因为增强型内部网关路由选择协议的消息更新是非规律性的,这意味着协议不能通过周期性的更新报文来确认邻居状态,因此协议需要一个发现和监控邻居状态的方法。在大多数高速网络中,Hello数据包是以组播方式每5s发送一次,期间加上一个微小的抖动时间差来防止同步更新造成的影响。当一台路由器从他的邻居收到一个Hello包时,会包含一个抑制时间,这个抑制时间就是路由器它在收到后续包之前能够等待的最长时间,如果超时还未收到后续的Hello包,那么这个邻居将被标记为不可达,并且通知离散更新算法这个邻居丢失了,默认情况下这个抑制时间是Hello时间的三倍(即15s),也就是说增强型内部网关路由选择协议拥有在15s内检测邻居丢失的能力,这也是为什么协议能够做到快速收敛。

邻居表中记录了每个邻居的相关信息,它记录了邻居的IP地址和是从哪个接口收到邻居Hello数据包的。邻居通告的抑制时间和邻居关系建立时间——这里的邻居关系建立时间指的是从邻居首次被添加进邻居表中到现在经过的时间——也记录在邻居表中。重传超时是指在一个组播数据包发送失败后,路由器等待一个单播方式发送的数据包的确认时间,单位是毫秒。如果一个增强型内部网关路由选择协议的可靠传输数据包被发送出去,那么这个数据包的一个拷贝就会在一个重传队列里入队。如果重传超时还没有收到确认数据包,那么重传队列里的那个拷贝将被再次发送。整个重传队列里待发送的数据包的数量以队列计数来进行标识。从邻居收到的最新的可靠包的序列号也记录在这个邻居表中。可靠传输协议会跟踪这些序列号,以确保来自邻居的数据包是有序可靠到达的。

2.2.4 离散更新算法

离散更新算法可以说是增强型内部网关路由选择协议的核心,它是一个收敛算法,代替了用于其他距离向量协议的基于Bellman-Ford或Ford-Fulkerson算法或派生算法。由于离散更新算法的设计思想是即使暂时的路由环路也会对网络的性能造成损害,此算法能够随时打破路由环路,使用离散计算来执行路由选择的计算。

在介绍离散更新算法之前需要先简单介绍几个概念。

  • 邻接。邻接指的是两个互相交换路由信息的两台已建立邻居关系的路由器之间的一种逻辑上的关系,一旦建立邻接关系,两台路由器就可以从对方那里接收路由信息了。
  • 可行距离。所有已知路径中到达目的地的最短路径的度量值将作为该目的网段的可行距离。
  • 可行性条件。满足本地路由器的一个邻居所通告的到达目标网段的距离是否小于本地路由器到达相同网段的可行距离,即数据交由邻居转达目的网段的开销是否小于直接按照本地路由表发送数据的开销。
  • 可行性后继者。如果可行性条件被满足了,那么这个邻居就会成为该目的网段的一个可行性后继者。可行性后继者和可行性条件一起构成了避免环路的核心技术的重要一环,因为可行性后继者到达目标网段的开销总是要比从本地到达目标网段的开销更小,所以不会出现数据从本地发出后再回到本地的情况。经过本地的路径一般会有一个大于本地路由器可行距离的可行距离,从而无法满足可行性条件,不会被选中。存在可行性后继者的每个目的网段,将会被加上可行距离、所有的可行性后继者、每个可行性后继者的通告距离、本地路由器计算的经过每一个可行性后继者到达目的网段的距离、发现每个可行性后继者的直连接口存入拓扑表中。
  • 后继者。对于所有的目的网段,路由器将选择度量值最小的路由放进路由表中(路由表内永远是最优最好的路由),通告这条路由的邻居就成为了一个后继者,或者是到达目的网络的数据包的下一跳。

在增强型内部网关路由选择协议不执行离散计算的时候,所有路由都处于被动状态,当一个输入事件产生时(可以是:直连链路代价发生变化、直连链路状态发生变化、收到一个更新/查询/回复包),路由器会首先执行一个针对所有可行性后继者到达目的地距离的本地计算,计算完成之后可能有三种结果:由于之前的后继者不再拥有最低的可行距离,之前某一个可行性后继者成为后继者;新的度量距离小于之前的可行距离,则更新可行距离;如果新的度量距离和已存在的度量距离不同,则向所有邻居发送更新。路由器在执行本地计算的时候路由依然保持被动状态,如果路由器发现了一台可行性后继者,那它的所有邻居都会收到一条更新的消息,但路由器本身状态并不改变,依然为被动状态。

但是如果再拓扑表中路由器没有发现任何一台可行性后继者的话,路由器就会将状态改变为活动状态,开始执行离散计算,在计算完成之前,路由器的后继者、已通告的路由距离、路由的可行距离都不能进行改变,且同一时间只能进行一个离散计算。

路由器开始离散计算的第一步是向所有的的邻居发送包含到达目的网段的新的本地路由器计算出的距离的查询,收到这个查询的邻居路由器将开始本地计算:如果该邻居有能到达该目的网段的可行性后继者,它将挑选出自己计算出的从自己到达目的网段最短距离,并向查询路由器作出答复;如果没有去往这个网段的可行性后继者,它会将自己的状态从被动改为活动,开始执行离散计算。

本地路由器会对于每一台接收查询的邻居路由器设置一个答复状态标记,用来跟踪所有未答复的查询,当所有的答复状态都为已答复的时候,即表示离散计算已经完成。

在某些低带宽或网络质量较差或带宽速度低的大型网络中,有些路由器并不能收到每一个查询的答复。为了应对这种情况,查询路由器上在查询开始时会设置一个时长为3分钟的活动计时器。如果在此计时器超时后还未收到所有的查询答复,这条路由就会被宣告为卡在了活动状态,未答复的邻居会被从邻居表中删除,并认为这些未收到大幅的查询返回了一个无限大的度量(即为不可达)。

离散计算完成后,最开始查询的那台路由器为了确保所有能到达目的网段的邻居都满足可行性条件,会将自己的可行距离设置为无穷大,使所有的可达目的网段的邻居会成为一个可行性后继者。从邻居发来的度量在到达到本地之后会被加上从本地到达邻居的开销,若该可行性距离不满足可行性条件的话,就会被从拓扑结构表中删除,再计算出一个度量值最低的邻居,选择它成为后继者。在所有邻居的计算完成之前,原始路由器不会选择后继者。

2.2.5 增强型内部网关路由选择协议负载均衡

2.2.5.1 等值负载均衡

在与路由选择信息协议同样的CEF/快速交换/处理交换转发机制的限制下,增强型内部网关路由选择协议最多可以在十六条路由路径上实现等值负载均衡。但内部网关路由选择协议和增强型内部网关路由选择协议都额外的支持不等值的负载均衡。

这里我们可以做一个简单的实验来验证一下,拓扑图如下图所示:

图2.1

在R2上配置一个IP地址为1.1.1.1的环回口,R1和R2之间有两条相同链路连接,则协议从R1到R2环回口的路由会自动进行两条线路的负载均衡,R1路由表部分如下图所示:

图2.2

不难看出,到达1.1.1.1既可以通过192.168.2.0网段,也可以通过192.168.1.0网段,且这两条路由综合度量值均为90,所以在实际的数据包传输过程中,数据包会按1:1的比例通过这两条链路。

图2.3

而当R1与R2之间的链路数量从二增加到理论极限十六时,由于协议默认支持最大四条,路由表中只会显示四条通往1.1.1.1的路由:

图2.4

可以使用命令maximum-paths来设置,设置完成之后如下图所示:

图2.5

根据以上两张图很容易可以看出,增强型内部网关路由选择协议在实际链路数大于最大进行负载均衡的路由路径限制之后,多出来的链路的路由并不会被写入路由表。而且最大进行负载均衡的路由路径限制只对本机起效,即如果R1配置最大进行负载均衡的路由路径为四条,而R2配置为十六条,在R1上只显示四条路由;如果R1配置为十六条,R2配置为四条,R1上会显示全部十六条路由。

我们可以再做一个实验验证一下多台路由器之间多条相同链路相连会发生什么样的情况,拓扑图如下:

图2.6

R1与R2之间四条链路相连,R2与R3之间两条链路相连,R3配置环回口IP地址1.1.1.1,所有IP宣告进增强型内部网关路由选择协议,从R1上对1.1.1.1执行traceroute命令结果如下:

图2.7

不难看出,在第一部分也就是R1到R2的过程中,四条链路按顺序进行了等值的负载均衡,流量通过比例为1:1:1:1,在第二部分也就是R2到R3的过程中,两条链路进行了等值的负载均衡,流量通过比例为1:1。

剩余内容已隐藏,请支付后下载全文,论文总字数:13139字

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图