EIGRP简介:
一、EIGRP是cisco专用协议,同时具备距离矢量和链路状态优点,该混合模式有以下特征:
1、快速会聚(使用DUAL算法来实现)
2、支持VLSM
3、部分更新 不是定期更新,从而使更新占用带宽少;
4、支持多种网络层协议 利用协议无关模块(PDM)来支持IP,IPX,APPLE Talk
二、其他特征:
1、在不同数据链路层协议和拓扑间实现无缝连接----从而能在WAN或LAN中高效运行;
2、精度的度量值---用32位来表示,从而更好支持均衡负载;
3、使用组播(224.0.0.10)和单播来通信;
4、支持边界汇总及创建超网(聚合地址块)。
注:EIGRP实现的是传输层功能,其在IP报头中的协议号为88;TCP为6、UDP为17。
三、EIGRP四个底层重要技术:
1、邻居发现技术
2、可靠传输协议---确保快速会聚的有效性
     保证路由选择信息(更新、查询、应答)分组能被可靠地发送
     RTO定时器重传可靠分组,最多15次且在 保持定时器
3、DUAL有限状态机----决定到目的地的度量值
4、协议无关模块(PDM)----支持多种网络层协议如IP,IPX,Apple Talk.
四、EIGRP五种类型数据包:
  1、Hello:以组播方式来发现邻居,无需确认;
        hello发送间隔时间随介质而异:
        在LAN链路、点到点链路、高带宽多点链路---间隔时间为5秒
                            在低带宽链路-----间隔时间为60秒
        可以用命令来调整其间隔时间:
           ip eigrp hello-interval as号 间隔秒数
        保持时间:在多长时间内收到邻居的Hello包和其他EIGRP数据包是有效的。
          默认时,保持时间 是 间隔时间   3倍,15s
    注:间隔时间的变化不会影响保持时间。
  2、updata:以组播方式来发送会聚后的路由给受影响的路由器。同时,为了同步拓扑表,在 启动时,以单播方式将更新发送给邻居路由器。      
        更新是以可靠方式发送的。
  3、query:以组播方式向邻居发关查询分组并以可靠的方式传送(查询可行后继),有时重传 是以单播方式。
  4、reply:响应查询,以单播可靠方式传送。
  5、ACK:确认更新、查询、应答,以单播方式发送Hello,并包含一个不为零的确认号。
五、EIGRP中需要理解的几个术语:
  1、邻居表:EIGRP使用Hello来发现邻居。查看邻居表的命令如下:
                      show ip EIGRP neighbors //查看IP邻居表
                      该命令会包含如下信息:
                      H(handle)---跟踪邻居时IOS自动生成的编号
                      address----与邻居路由器相连接口的IP地址
                      interface----邻居路由器接口
                      holdtime-------保持时间
                      uptime(正常运行时间)---本地路由器首次收到邻居分组后已过了多长时间(时:分:秒)
                      sptt(平均往返定时器)----从本地路由器发送EIGRP分组到邻居路由器,到本地路由器收到邻居 路由器返加的确认之间所花费的时
                                                            间的平均值
                      重传超时(RTO)
                      队列计数(queue count)----大于0则可能存在拥塞问题,0表示没有EIGRP报文等待重传
                      SEQ----序列号   数据包的序列号
2、拓扑表----保存路由器知道的所有路由信息。
                     show ip eigrp topology//查看IP拓扑表,将显示FD,AD,FS,Successor类型等信息.
                     show ip eigrp topology//显示拓扑表中所有路由信息
                     拓扑表中的路由处于两种状态:
                     被动(passive):路由器 没有 重新计算路由
                     主动(active):路由器 有 重新计算路由(当前往目的地路由的当前路由不可用,且没有FS时,将重新计算路由)
3、路由选择表---从本地路由器到达目的地的最佳路由;
4、通告距离AD---(下一跳)邻居路由器到目的网络的度量值。
      可行距离FD---AD+本地路由器到邻居路由器的度量值。
5、后继站(successor)---FD最小的邻居路由器(作为最佳路由放入路由选择表中)成本最低,且不产生环路
      可行后继站(Feasible Successor)----本地路由器所存拓扑表中,AD < 当前后继路由器的FD 的邻居路由器,不会产生环路,作为备用路由
六、EIGRP初次路由发现过程如下:
1、本地路由器中邻居表发送Hello包查询邻居,若邻居路由器收到hello包,返回ACK信息;
2、邻居路由器发送updata包(包含邻居路由器路由选择表中所有信息,除水平分割) 给本地路由器;
3、本地路由器返回 ACK,建立邻接关系;
4、本地路由器保存邻居路由器的路由更新信息到本地的拓扑表中;
5、本地路由器发送 updata包(包含邻居路由器路由选择表中所有信息,除水平分割) 给邻居路由器;
6、邻居路由器返回ACK,然后自己也保存其更新信息到自己的拓扑表中。
七、EIGRP中延迟、带宽、度量值计算及路由选择
延迟:路径中 所有延迟之和*256,单位为10微秒,而show interfaces显示的单位是1微秒;
带宽:10的7次方/路径上速度最低的带宽*256
度量值=(带宽+延迟)*256
影响度量值的因素有:带宽、延迟、可靠性、负载,最在传输单元;
计算度量值公式:度量值=k1*带宽+[(k2*带宽)/(256-负载)]+k3*延迟
                                       =带宽+延迟
                            当k5不等于0
                            度量值=(带宽+延迟)*[k5/(可靠性+k4)]
注:度量值越小,其可信度越高。
路由选择: EIGRP会只把主路由(后继路由)和备用路由(可行后继路由) 放入 拓扑表中,然后把后继路由放入路由选择表中。EIGRP使用DUAL计
                   算前往目标网络的路由,若没有路由,则启用备用路由,若也没有备用路由,则向邻居发送query查询
EIGRP支持多种类型的路由:内部(90)、外部(170)、汇总路由(5)
八、Dual算法示例
九、EIGRP基本配置:
1、router EIGRP AS //启动EIGRP
2、network 子网地址/接口 [反掩码]//指定哪些网络属于EIGRP中的一部分
      注:对于串行链路 还要定义带宽
3、接口下bandwidth 带宽数字   //1、PPP、HDLC 应设置为线速
                                          2、FRAME-relay应设置为CIR
                                          3、FRAME-RELAY 多链接,应设备为CIR之和
                                          4、FRAME-RELAY PVC,应设备为最低CIR* pvc的条数

4、ip default-network 网络地址    //EIGRP配置默认路由 (*表示默认路由) 而其删除默认路由则是no ip route ,而不是no ip default-network。
5、ip route 0.0.0.0 0.0.0.0 //EIGRP此时不 重分发 路由
      若加上命令:network 0.0.0.0则会导此EIGRP 重分发 一条默认路由
      ip route 0.0.0.0 0.0.0.0 address 、ip default-network 不会导致上述情况出现。
十、路由汇总及负载均衡:
      可汇总的路由数=2的n次方,n=子网掩码位数 - 汇总后的子网掩码位数
      汇总路由的标志信息是其 下一跳接口设置为 null0
      关闭自动汇总的命令:no auto-summary //准确的说是关闭了连续子网
      手动路由汇总命令:ip summary-address eigrp as号 汇总网号 子网掩码 [管理距离]//目的是汇总非连续子网,实现快速会聚。
      地址分配方案原则是:根据职能而不是根据地理位置来放置路由器。其目的是将同一个主类网络中的子网地址集中放在一起。
      负载均衡:路由器有多条前往目的地址度量值相同的路径。它,可有效增加有效网络带宽。
      修改负载均衡的条数命令(默认为4条):maximun-paths 条数 (1-6)  为1,则表不实现负载均衡
      Variance 变化因子// 为1则表示等成本负载均衡,为大于1,则表示多个作为考虑的负载均衡,非等价负载均衡
      可行路由: 下一台路由器比当前路由器离目的地更近,且度量值在指定范围内。
      要成为可行路由的要满足以下两个条件:
       1、当前FD >下一跳路由器的AD
       2、当前FD*variance >下一跳路由的度量值
     同时,可以使用路由器配置命令:traffic-share [balanced|min across-interface]
     注:只有可行路由才能作为负载均衡的.

1、EIGRP默认支持四条链路的不等代价的负载均衡(所有路由基本上都支持);

2、使用下面命令可支持六条:
router EIGRP 10
maximum-paths 6——设置成6条
variance——后跟差异度量值,实现负载均衡。差异值为1时,只有相同度量才会安置到本地路由表中,为2时,任一由EIGRP发现的了解的路由,只有其度量少于继任度量的两倍,将会被安置到本地的路由表中。

EIGRP Load Balancing 非等价负载均衡

每个路由协议都支持等值路径的负载均衡.除此之外,IGRP和EIGRP也支持不等值路径的负载均衡,使用variance命令. Variance命令向路由器通告一个n值,n值使用variance命令指定.n值为1-128之间,默认为1。

router E有三个路径到网络X

◆E-B-A with a metric of 30

◆E-C-A with a metric of 20

◆E-D-A with a metric of 45

Router E选择第二个路径,E-C-A的metric为20,20为三个路径的最小值,如果希望EIGRP选择优先E-B-A路径,配置variance值为乘数 2

router eigrp 1 
network x.x.x.x
variance 2


这样增加了metric到40(2*20=40)。这样EIGRP包括了所有metric小于40的路由,在上面的配置中,路由器使用了两个路径到达网络 X,E-C-A和E-B-A,因为两个路径的metric值都在40以下。因为E-D-A的metric为45,大于40,所以eigrp不选择此路径到达网络X。而且,路由器D报告到达网络X的metric为25,这个值比可行的metric值20要大。这就意味着即使variance设置为3,E- D-A路径也不会被选择为负载均衡的路径,因为router D不是一个可行的后继者。

Traffic Sharing

Eigrp不仅支持不等值路径的负载均衡,而且也支持智能负载均衡,例如traffic sharing。有多个路由到达同一目的网络有不同cost的情况下,想要控制在不同路由上的traffic,可以使用traffic sharing命令。使用balanced关键字,路由器按照不同路由的metrics比率成比例的分配流量。这是默认设置。

router eigrp 1 
network x.x.x.x
variance 2
traffic-share balanced

下面是traffic share计算案例

◆For path E-C-A: 30/20 = 3/2 = 1

◆For path E-B-A: 30/30 = 1

如果不能整除,我们按照其整数计算(注意:不是四舍五入)。在这个案例中eigrp发送包通过E-C-A和E-B-A的比率为1:1,这样做到了负载均衡的目的。

现在我们假设在E-B间的metric为25,B-A间的metric为15。这样E-B-A的metric为40,因为40不小于2×20(20是可行的路径metric,2是variance值),这样在E-C-A和E-B-A之间不可以实现负载均衡。如果希望实现负载均衡,我们需要将 variance值设置为3。这样两条链路上的traffic share比率为

◆For path E-C-A: 40/20 = 2

◆For path E-B-A: 40/40 = 1

这样eigrp在E-C-A和E-B-A的流量比率为2:1。通过这样的方法,eigrp不仅支持了不等值的路由负载均衡,而且也支持了智能负载均衡

在关键字min使用时,traffic仅仅通过最小cost路径发送,即使在路由表中有多个路由路径

router eigrp 1 
network x.x.x.x
variance 3
traffic-share min across-interfaces

这样配置的结果是,eigrp仅仅通过E-C-A的路径发

十一、EIGRP和WAN链路
     ip bandwidth-percent eigrp AS号 百份比 //配置EIGRP占用链路带宽的比例
     注:百分比可大于100
     配置链路带宽:
          n个相同的CIR frame-relay,bandwidth CIR*n
          n个不同的CIR frame-relay,bandwidth 最低CIR*N,
     第二种混合的方法是:
         最低CIR的配置 点到点,其他CIR配置 多点
          eg: interface s0.1 multipoint
              bandwidth 768
              interface s0.2 point-to-point
              bandwidth 56
      第三种: ip bandwidth-percent 与bandwidth合用:
           eg: interface s0.1 point-to-point
               bandwidth 25
               ip bandwidth-percent eigrp as号 百分比(110)
十二、配置EIGRP身份验证
      路由器身份验证方式:1、简单密码身份验证(明文身份验证):is-is,ospf,ripv2都支持
                                         2、MD5身份验证:ospf、ripv2、BGP、eigrp
      注:配置EIGRP身份验证,需要指定密钥ID、密码、密钥的寿命。
      配置MD5身份验证步骤如下:
      1、进入接口模式;
      2、配置 ip authentication mode eigrp as md5     //启动md5
      3、配置 ip authentication key-chain eigrp as号 密钥链名//定义密钥链名
      4、exit并进入全局模式配置 key chain 密钥链名    //进入密钥链配置模式
      5、 配置key id号        //指定密钥ID
      6、 配置key-string 密码 //指定密钥密码
      7、 配置accept-lifetime start-time {infinite|end-time|duration seconds}
      8、 配置send-lifetime start-time {infinite|end-time|duration seconds}
       注:eigrp中的MD5密码,若没有使用service password-encrption,则以明文存在路由器中,若使用,则以加密类型的方式存储。
       md5身份验证故障: 密码不一至
       debug eigrp packets //查看EIGRP报文收发状况
       若接收到: received packet with md5 authentication,key id=1//表示正常
                         pkt key id=2,authentication mismatch //表示不正常,多数是密码不一至
       可使用show ip eigrp neighbors 来查看其连接性。
十三、在企业中使用EIGRP
      1、影响EIGRP扩展性变量如下:
            1、邻居间交换的信息量(越少越好);
            2、路由器数量(越少,EIGRP占用的资源量就越少);
            3、拓扑的深度(即所经过的跳数年,跳数越大,所耗费的会聚时间越长,建议不超过7跳)
            4、网络中的替代路径数(越小越好,可以减少会聚时间)
      2、EIGRP通用设计原则:1、会聚路由器要有足够的     内存
                                              2、中央--分支拓扑要有足够的 带宽
                                              3、合理的地址分配方案----   集中
十四、EIGRP查询和陷入主动状态 (需要理解)
  陷入主动状态:如果路由器在3分钟(默认时间)内没有收到对查询的应答,路由将陷入主动状(sia)
  修改其默认时间的命令:times active-time[time-limit|disabled]
  导致进入SIA最常见的原因如下:
     1、路由器CPU使用率过高,导致无法回答查询;
     2、路由器间链路质量太差,导致路由器间丢失数据包;      
     3、某些故障,导致数据流只沿一个方向传输。(单向传输)
   而命令:eigrp log-neighbor-changes //启动邻接关系变化功能,可以帮助检测SIA相关问题。
   防止SIA的方法: 1、限制EIGRP查询范围,可降低SIA的发生概率;
                                    限制EIGRP查询范围方法:
                                    1、在合适的路由器接口上使用:ip summary-address 汇总子网 子网掩码
                                          宣告给邻居路由/29,query查询/30位,邻居不知道,则发送reply
                                    2、在中央--分支网络中使用末节路由选择(stub routing)
                                          配置命令: EIGRP stud [receive-only|connected|static|summary]
                                 receive-only:只接收不转发,static 静态路由,connected 只转发直连,summary:汇总, connected、summary默认启用.
                              2、在EIGRP数据包报头中新增两个类型:长度、值(tlv)三元组:SIA--查询,SIA--应答
十五、妥善关闭:使用goodbye消息来实现,旨在改善EIGRP会聚速度。Goodbye以HELLO包方式发送。
         no network将network命令功能删除,并在与此连接的接口上发送Goodbye消息。
         no router eigrp 也将发送Goodbye,但在关闭接口/重启路由时,EIGRP将不会发送Goodbye.
十六、查看EIGRP运行情况命令如下:
         show ip eigrp neighbors //显示EIGRP邻居表
         show ip route //显示IP路由选择表中各种路由选择协议提供的条目
         show ip route eigrp //显示路由选择表中EIGRP条目。
         show ip protocols//显示路由选择协议的参数和状态。
         show ip eigrp interfaces//显示配置EIGRP的接口信息。
         show ip eigrp topology //显示EIGRP拓扑表
         show ip eigrp traffic 显示发送与接收的EIGRP报文数.
         -------------------------------------------------
         Debug: debug eigrp packets    //查看发送与接收的EIGRP分组类型
         debug eigrp neigbbors //查看EIGRP邻居和HELLO分组内容
         debug ip eigrip        //查看接口发送与接收的EIGRP分组(会产生大量输出数据)
         debug ip eigrp summary //查看有关EIGRP活动的摘要消息。