2008年12月31日星期三

EIGRP路由

EIGRP基于四个基本的概念:邻居表、拓扑表、路由状态和路由标记。
一、邻居表
当一个路由发现了一个邻居,它就会就会将邻居的地址以及接口信息作为一个条目存储到邻居表中。每一个协议模块都会有一个单独的邻居表。当一个邻居发送Hello包时,路由器就会设置一个保持时间,这个时间是用来判断发送Hello包的邻居是否可达或可用的依据,如果在规定的时间内没有收到Hello包,就会判断为超时,则DUAL就会认为网络发生了改变。
邻居表中的条目也会被RTP使用。序号被用来匹配数据包的回应,通过查看从邻居哪里收到的最新的数据包序号,就可以判断哪些包是错序的。每一个邻居会有一个传输列表用于排列数据包以防止可能的重传。邻居表中的条目也会有一个计时器来确定重传间隔。
二、拓扑表
拓扑表中包含了邻居路由器所发布的所有目的地址。协议独立模块负责更新这个表,并且这个表被用于DUAL 进行路由计算。拓扑表中的每个条目包含了目的地址以及一系列曾经发布过这些目的地址的邻居。对于每个邻居,条目中都会记录邻居所发布的度量值(这个度量值是邻居存储在它的路由表中的度量值)。这里有一个所有距离矢量协议都必须遵守的规则:邻居路由器所发布到达某个目的地址的路由信息,那么它必须使用这个路由进行数据包的传递(即这条路由必须是这个路由用于发送数据包的路由)。
路由器用来到达某个目的地址的度量也与目的地址相关。这个路由器在路由表中使用并且发送给其他路由器的度量,是它从它的邻居中汇总出来最好的路由开销(即每个路由器中路由表的度量值都是到达某个目的地址的最好值)。
三、路由状态
拓扑表中关于某一地址的条目只能有两种状态:主动和被动。当路由器不需要进行重计算时,处于被动状态;需要重计算时,处于主动状态。如果有可行的继任者,那么该目的地址的条目就不会处于主动状态,这样就避免了重计算。
当某一目的地址没有可行的继任者的时候就会发生重计算。路由器通过发送询问数据包给它的邻居来开始进行重计算。如果某个邻居有到达目的地址的可行的继任者,那么它就会发送一个回复给路由器;如果邻居也没有,它就会继续询问它自己的邻居直到找到一个可行的继任者。当一个目的地址处于主动状态时,路由器不能修改路由表中关于该目的地的信息。当路由器收到某个邻居路由器关于这个目的地址的回复以后,拓扑表中关于这个目的地址的的条目变为被动状态,路由器就会根据拓扑表中的信息选这个一个继任者。
四、路由标识
EIGRP支持域内和域外路由。域内路由来源自一个EIGRP自治域内部。因此,被配置运行EIGRP的直连的网络被认为是域内的路由,并且这些信息在EIGRP自治系统内部进行传播。域外路由是指那些从另一个路由协议中学习到的、被当做静态路由添加进路由表的路由信息。这些路由被单独的添加了它们的来源标识。
域外路由被用下面的这些信息进行标识:
1、重发布这些路由的EIGRP路由器的路由器ID
2、目的地址的自治系统号
3、配置管理标识
4、域外协议的ID
5、域外协议的度量
6、默认路由的标志位
路由标识允许网络管理员自定义路由和可扩展的策略控制。路由标识在自治系统间传输时特别有用。这样可以为在内部使用EIGRP的AS之间的路由交换,提供一种基于策略的分层的路由类型。

EIGRP包类型
EIGRP使用下列包类型:Hello包和acknowledgment包、更新包以及询问包和回复包。
Hello包用于邻居发现/恢复的组播,不需要回应进行确认。一个回应包(是指需要对其进行回应的Hello包)是一个没有数据的Hello包(是用来请求回应号的?)。用于回应的数据包包含一个非0的回应号并且一般是用单播地址进行发送。
更新包用于汇集目的的可达性。当发现了一个新邻居,单播更新包会发送给那个邻居,从而使那个邻居能够构建自己的拓扑表。在其他情况下,比如链路花费改变,更新包会使用组播。更新一般都是可靠传输的。
请求和回复数据包一般都是组播。回应数据包都是可靠传输的
询问和回复数据包一般是在一个目的地址没有可行继任者的情况下发送的。询问数据包一般都是多播。回复数据包作为询问数据包的结果发送给询问者,来告诉询问者:我这里有可行的继任者,不要进行路由的重计算。回复数据包是单播,作为询问数据包的响应。询问数据包和回复数据包也都是可靠传输的。

没有评论:

发表评论