戏说EIGRP
      当我们组建一个中型企业网络,当我们需要在网络里用动态路由协议产生转发数据的路由表时,当我们有钱能买思科的所有全套产品时,我们就应该很自信的说,我们用EIGRP来解决这个网络的路由问题吧。
       EIGRPEnhanced Interior Gateway Routing Protocol,增强的内部网关路由协议。它是IGRP的增强扩展版本,所以从实用的角度来说,我们把EIGRP学好就可以了。为什么我要强调用思科的全套产品时我们用EIGRP呢?其实,就只因为EIGRP是思科的私有协议。虽然我很喜欢EIGRP,但是它没有得到广泛的使用,就因为思科的私有协议,很多厂商是不支持的。EIGRP在本质上是一种距离矢量路由协议,但是它也有链路状态路由协议的一些特点,所以总体上来说,它是一种高级的混合协议。
       我所总结的,都是基于我学过的,而其能实际应用在实际工程当中的。我会从以下几个方面来介绍EIGRP。首先,EIGRP的简介,应用场景。其次,它的工作原理与工作流程。最后,它的几个重要方面的配置。
       EIGRP的简介,我在第二段已经概述了。所以我们谈谈它的应用场景吧。我认为,要知道EIGRP的应用场景,首先应该熟悉它的一些特点,包括优缺点。然后,我们才能好好的应用它,使其满足不同的网络需求。我们组建一个多大规模的网络,就基本决定了我们实用什么样的路由协议。比较简单的网络,我们可以用静态路由,方便我们进行精确的控制,但是稍微大一点的网络,我们可以用RIPV2,或者OSPF。但是再大一点的,比如大中型企业网络呢?这个时候我们就应该实用能力比较强的OSPF或者EIGRP了。当网络规模太大,使用静态路由,会增加我们工程师的工作量,不实际,划不来。现在最流行的就是OSPF了。所以第一个优点,EIGRP支持大型的企业网络。但是,相对应的问题出现了,EIGRP是思科私有协议,所以你网络大了,但是那些设备不支持EIGRPEIGRP再好,也不能用。为什么EIGRP能支持比较大的企业网路呢?主要是因为它还有其它一些特性,如收敛快,占用带宽小,支持不等值负载均衡,选路更合理等。这里要注意一点,就算我们用的是支持EIGRP的网络设备,但是支持分为软件和硬件支持,所以呢,我们需要注意产品的软件版本是不是支持EIGRP。这里的软件版本指的是网络设备上的网络操作系统IOS
        这些特性,必然和EIGRP的工作原理,工作机制有关。那让我们现在来看看它的工作原理吧。我特别喜欢研究每一种协议的协议包,我始终认为,这是它们这些协议的核心,灵魂,我很喜欢这些协议包里面所包含的伟大哲学思想和真理。所以,EIGRP5种协议包。第一,HELLO:携带一些特定的参数,建立并维持邻居关系,并可以加快网络收敛。第二,UPDATE:携带路由信息向邻居通告路由,当网络发生变化时,通过触发更新向邻居通告路由。第三,ACK:对收到的UPDATE包进行确认,以解决路由可靠性。第四,QUERY:当路由表一条路由失效,查拓扑表有没有备份路由,没有的话,相关路由器就发送QUERY,请求相关路由,作用是为了加快收敛。第五,REPLY:是QUERY的回应包,携带路由信息,通告备份路由。通过,对这5种协议包的描述,我们的头脑中应该能想象出EIGRP的一个工作原理了吧。我们要充分发挥我们的想象能力,才能更好的学习和理解这些协议思想。一般的应用层协议都会被传输层的TCP或者UDP封装,但是EIGRP是直接被IP封装,因为它自身有种机制解决了传输的可靠性。
我在这里想给看过我这篇文章的朋友留个问题。
    EIGRP是什么机制解决了它传输协议包的可靠性的?有兴趣的可以跟我一起交流交流,如果查到了相关资料就写到回复里吧,谢谢。EIGRP的协议包目标IP是用多播224.0.0.10.
    如果,大家还不清楚EIGRP的工作原理,那么我们再从它的工作流程来体会体会吧。首先我们要在相关设备上启动EIGRP进程,然后这些特定的设备会从所有属于该进程的活动接口向外发送HELLO包。相邻的设备,也运行了相同的EIGRP进程,收到HELLO包后,检查其中的特定参数(进程号,K值等),如果双方匹配,则形成邻居,放入邻接表。只有形成邻居后,才会发送UPDATE包,向邻居通告路由。收到UPDATE后,就用ACK进行确认,并把路由信息放入拓扑表。在拓扑表中用DUAL(弥散修正算法)选择最佳路径放入路由表中,进行数据的转发。整个网络趋于稳定,但是每个路由器都会定期发送HELLO包,每隔5秒发送一次。它们通过5秒间隔的HELLO包来交流,维持彼此的邻居关系,从而达到稳定网路的目的。当选择最佳路由放入路由表时,同时也会把次佳路由当作备份路由放入拓扑表。当网络拓扑有变化,如果最佳路径消失,自动切换到备份路径,如果没有备份路径,就会使用QUERYREPLY,主动查询,解决路由问题,加快收敛。
      从以上所述,我认为,我们应该对EIGRP有了更进一步的了解。当然,对于我来说,也有着很多不清楚的细节。如果想要更深入的学习,或者想成为研究EIGRP的专家,则必须花时间研究EIGRP的相关细节。在这里,我又有些问题想提出来,有兴趣的可以一起交流。
1EIGRP为了形成邻居,要检查HELLO包里面的一些参数,这些参数是什么?各有些什么作用?
2EIGRP通过UPDATE包通告路由,把路由信息放入拓扑表,这里的拓扑表是个什么概念?EIGRP到底有几张表?分别是什么?各自的作用是什么?
3EIGRP从拓扑表中选择最佳路径放入路由表,它是通过什么样的方案或者算法来选择最佳路由?DUAL,即弥散修正算法,这算法里面又潜藏了哪些比较有趣的思想呢?
我们大概了解了EIGRP的概念,应用场景和工作原理及工作流程。当别人和你讨论EIGRP的时候,我相信我们应该有发言权了。如果你想更加有自信的和别人谈论EIGRP,我们就必须清楚的了解它在路由器上面的具体实施和具体配置。说起配置,又可以分为以下4个方面。第一是基本配置,启动EIGRP进程,以及把相应的活动接口放入到此特定的进程里面。第二是精确汇总的配置。EIGRP默认是在主网边界自动汇总,但我们应该手动关闭自动汇总,启用EIGRP的精确汇总功能。第三是缺省路由和重发布的配置。EIGRP虽然能够支持大规模的网络,但是总有个范围。如果有2个网络想要通信,EIGRP就必须重发布另外个自治系统的路由进入本自治系统。第四就是不等值负载均衡的配置。在路由层面上实行负载均衡,就只有EIGRP支持不等值的负载均衡,其它的都必须要求链路的特性一样才支持。我们要实施某一项技术,我们知道它们用在哪些场景,知道它们的工作原理,知道它们的工作流程了,最后还要知道它们的实施思路。这些具体的配置命令并不是重点,重要的是我们要清楚一个什么样的配置思路。
 在这里我又有几个问题想提出来。
第一个,为什么EIGRP要关闭主网边界自动汇总,这一功能有些什么样的优点或者缺点?
第二个,EIGRP的精确汇总如何使用?使用它的原因是什么?
第三个,EIGRP如何重发布其它动态路由协议所产生的路由?
第四个,不等值负载均衡中的容忍度是什么意思?如何理解?
虽然我是在写总结,我现在的想法是,在自我总结的时候,发现自己更多模糊的问题,使自己意识到这些问题,使自己能够提醒自己去解决这些问题。同样,我也希望各位想学习EIGRP的朋友,能够注意这些问题,并让我们一同来解决。
我现在不太会用那个VS画拓扑图,所以没有总结什么实际的案例来配置一番。不过,我会继续努力,过一段时间,我就会总结实际的工程案例配置,我希望和大家一起学习,一起进步。谢谢!!!!!!!