EIGRP:( Enhanced Interior Gateway Routing Protocol )增强型内部网关路由协议

EIGRP 是一种Cisco专用协议,同时具备链路状态和距离矢量路由协议的优点.只发送变化后的信息(这类似于链路状态协议),同时只将这些信息发送给邻接路由器(这类似于距离矢量协议). 距离矢量路由协议的路由学习是“道听途说”,路由器不知道整个网络的拓扑,所以可能产生环路;链路状态是每个路由器都学习到整个网络的拓扑结构,再计算从自身到其它路由器的路径,所以不可能产生环路。

EIGRP 是增强的IGRP ,因为它会聚速度快,且可确保在任何时候拓扑中都没有环路.

(1). 通过发送和接收Hello包来建立和维持邻居关系,并交换路由信息;

(2). 采用组播(224.0.0.10)或单播进行路由更新;

(3). 管理距离值AD 为 90 (内部EIGRP) 或170 (外部EIGRP);

(4). 采用触发更新,减少带宽占用;

(5). 支持可变长子网掩码(VLSM),默认开启自动汇总功能;

(6). 支持 IP ,IPX和 AppleTalk 等多种网络层协议;

(7). 对每一种网络协议 ,EIGRP 都维持独立的3张表:

⦁ 邻居表(show ip eigrp neighbor)

可行距离(FD):到达一个目的网络的最小度量值; FD: 我到邻居的距离 AD

  • 通告距离(AD):邻居路由器所通告的它自己到达目的网络的最小的度量值; AD:我的邻居到达目标网络有多远
  • 可行性条件(FC):是EIGRP 路由器更新路由表和拓扑表的依据。可行性条件可以有效地阻止路由环路,实现路由的快速收敛。可行性条件的公式为:AD<FD。
  • 后继站(successor):到达目的网络路径成本最低的路由器--FD 最低
  • 可行后继站( FS ):除了成本最低的路径外,还存储备用路径,要成为可行后继站,下一跳路由器的AD 必须小于当前路由器的FD
  • 填充EIGRP 表

    ⦁邻居表(show ip eigrp neighbor)

    ⦁拓扑表(show ip eigrp topology)

    ⦁路由表(show ip route eigrp)

    eirp计算(EIGRP理论详解及基础实验)(1)

    eirp计算(EIGRP理论详解及基础实验)(2)

    EIGRP 发送 5 种类型的分组:

    1. Hello pACKet:用来发现和恢复邻居,通过组播的方式发送,使用不可靠的发送

    2. Update packet:传播路由更新信息,不定期的,通过可靠的方式发送(比如网络链路发生变化).当只有一台路由器需要路由更新时,update通过unicast的方式发送;当有多个路由器需要路由更新的时候,通过组播的方式发送

    3. Query(查询) packet: 当找不到Feasible Successor 时,发送查询报文(Unicast)是DUAL finite state machine用来管理扩散计算用的,查询包可以是组播或unicast;应答包是通过unicast的方式发送,并且方式都是可靠的

    4.Reply(应答) packet:回应查询报文。(Unicast)

    (其中2、3、4都是可靠传输报文,收到后要发送ACK进行确认)

    5. ACK(acknowledgement) packet:不包含数据(data)的Hello包,使用unicast的方式,不可靠的发送

    EIGRP Hello分组

    EIGRP 路由器通过Hello 协议动态地发现与之直接相连的其他EIGRP 路由器,路由器使用组播地址 224.0.0.10 通过EIGRP 接口向外发送EIGRP分组.Hello分组的发送间隔随介质而异.

    ⦁在LAN 链路上,每隔 5 秒发送一次

    ⦁在低速链路上,每隔 60 秒发送一次

    可以在接口上使用配置命令来修改:

    int s0/0

    ip hello-interval eigrp 1 15

    ip hold-time eigrp 1 45

    保持时间默认为Hello间隔的 3 倍,但当Hello间隔被修改后,保持时间并不会自动地相应调整,要手工修改保持时间

    EIGRP 邻居起不来的原因有三种:

    1)AS号不匹配

    AS号不同的两个EIGRP之间是建不起邻居的,因为它们的进程号不相同。

    2)K值不相同

    EIGRP计算开销有5个因素:带宽,延迟,负载,可靠性,MTU。用K1,K2,K3,K4,K5 分别代替这几个值。当K值不同时,计算开销的方式就不同了,就不能传递路由了,即不能建邻居(默认情况下K1 =K3=1,K2,K4,K5=0)

    3)HELLO时间不同

    EIGRP的hello包更新时间为5秒,死亡时间为15秒,如果有一个进程的hello时间改成大于了5秒,在5秒内对方没有收到hello包就会认为没有邻居,此时也起不来邻居,但是过了改了的时间后又会给对方一个hello包,对方过5秒就回了hello包,此时邻居又会起来,所以hello时间不同时会出现邻居时而有时而又断了的情况。

    初始路由发现

    eirp计算(EIGRP理论详解及基础实验)(3)

    (1)链路上路由器 A 启动后,通过其所在EIGRP 接口发送Hello 分组

    (2)通过其个接口收到Hello分组后,路由器B用更新分组进行应答 ,更新分组中包含路由选择表中的全部路由

    (3)两台路由彼此交换Hello分组后,邻接关系建立.路由器 A 用ACK 分组应答路由器 B

    (4)路由器 A 将更新分组中的信息加入拓扑表中

    (5)路由器 A 向路由器 B 发送一个更新分组

    (6)收到更新分组后,路由器 B 向路由器A 发送一个ACK 分组

    选择路由

    EIGRP 与其它路由选择协议的最大不同可能是其路由选择过程.EIGRP 选择主路由(后继路由)和备用路由(可行后继路由),并将它们加入拓扑表中.然后,将主路由(后继路由)加入到路由选择表中.EIGRP 支持多种类型的路由,包括内部.外部和汇总路由.

    ⦁内部路由:源于EIGRP 自治系统内部的路由

    ⦁外部路由:是从另一种路由选择协议或另一个EIGRP 自治系统获悉的路由

    ⦁汇总路由:是针对多个子网的路由

    EIGRP 度量值的计算

    EIGRP使用度量值来确定到目的地的最佳路径。对于每一个子网,EIGRP拓扑表包含一条或者多条可能的路由。每条可能的路由都包含各种度量值:带宽,延迟等。EIGRP路由器根据度量值计算一个整数度量值,来选择前往目的地的最佳路由。

    当路由器选路的时候,计算出度量值最低的路径,也就是FD,来确定最佳路由。当路由失效的时候,使用RD来选择替代路由。

    计算EIGRP 度量值时使用 5 个变量,但默认情况下,只使用其中的两个(带宽.延迟)

    1)带宽:源和目的地之间的最小带宽

    2)延迟:路径上接口的累计延迟

    3)可靠性:源和目的地之间的最低可靠性,基于存活消息

    4)负载:源和目的地之间链路上的最重负载,基于分组速率和接口的配置带宽

    5)MTU:最大传输单元,路径上最小的MTU

    EIGRP 度量值的计算公式=[ K1 * Bandwidth (K2 * Bandwidth)/(256-Load) K3*Delay ]*[K5/(Reliability K4) ] *256

    默认情况下,K1 = K3 = 1 ,K2 = K4 = K5 = 0

    Bandwidth =10^7/所经由链路中入口带宽(单位为Kbps)的最小值

    Delay=所经由链路中入口的延迟之和(单位为μs)/10

    也就是说默认情况下,计算公式=[10^7/Bandwidth Delay]*256

    eirp计算(EIGRP理论详解及基础实验)(4)

    EIGRP 路由选择表

    EIGRP 根据 AD 和FD 来确定前往目的地的后继路由(最佳路由)和可行后继路由(备用路由).

    路由器对其拓扑表中前往特定网络的所有路由的 FD 进行比较,并将 FD 最小的路由加入到路由选择表中,该路由为最佳路由

    eirp计算(EIGRP理论详解及基础实验)(5)

    EIGRP DUAL(有限状态机):

    它跟踪所有邻居通告的所有路由,并根据度量值来选择前往目的地的无环路高效路径.

    eirp计算(EIGRP理论详解及基础实验)(6)

    eirp计算(EIGRP理论详解及基础实验)(7)

    在获悉链路出现故障后,会将 10.1.1.0/24的度量值设置为不可达(-1表示不可达)

    路由由被动状态变为主动状态,向邻接路由器发送查询,以寻找新的后继路由

    EIGRP 基本配置

    R4(config)#router eigrp 1 (AS 号)

    R4(config-router)#no auto-summary (关闭自动汇总)

    R4(config-router)#network 4.4.4.0 255.255.255.0 (宣告子网)

    R4(config-router)#network 192.168.34.0(主类网络)

    EIGRP 协议在通告网段时,如果是主类网络(即标准A、B、C 类的网络,或者说没有划分子网的网络),只需输入此网络地址;如果是子网的话,则最好在网络号后面写子网掩码或者反掩码,这样可以避免将所有的子网都加入EIGRP 进程中。

    反掩码是用广播地址(255.255.255.255) 减去子网掩码所得到。如掩码地址是255.255.248.0,则反掩码地址是0.0.7.255。在高级的IOS 中也支持网络掩码的写法。运行EIGRP 的整个网络AS 号码必须一致,其范围为1-65535 之间。

    EIGRP 默认路由

    1)写一条默认路由,network到EIGRP进程

    ip route 0.0.0.0 0.0.0.0 interface (接口必须是up而且要有address,或者是null0,也可以是lookback接口)

    router eigrp AS

    network 0.0.0.0

    缺点:会在宣告的路由器上,将所有接口激活.包括你不想激活的接口

    2)写一条默认路由,重分布静态到EIGRP进程

    ip route 0.0.0.0 0.0.0.0 interface(接口必须是up而且要有address或者是null0)

    router eirp AS

    redistribute static metric 10000 100 255 1 1500 默认路由出现的形式D*EX ,AD=170

    3)接口下手工汇总 ip summary-address eirp 90 0.0.0.0 0.0.0.0 ,在连接eigrp内部router的接口上汇总

    0.0.0.0的默认路由会传递给接口连接的邻居(不在乎auto/no auto-summary/也不需要写静态)

    缺点:具有方向性.具有抑制明细的特点。

    4)ip default-network x.x.x.x(必须主类的网络)

    并且这条路由要能出现在本地路由表和整个网络中(也就是说必须在eigrp路由模式下用network指令把这条路由宣告进去)

    (不需要静态路由)因此需要作 auto-summary 或者手工汇总

    如果你 no auto-summary,那么必须有一条静态路由来指出这是个主类的,并且以主类的方式传播进eigrp区域内

    邻居的路由表里也必须是汇总路由,如果将学到路由当作传递的缺省网络.此时路由条目必须是主,(传递的要求是主类路由带有"D*")

    EIGRP不会产生0.0.0.0的默生路由,而是借用带有D*的路由的下一跳做为缺省下一跳。RIP传递是一条0.0.0.0/0的默认路由。

    在EIGRP中default-information 不是用来传递默认路由而是用来控制

    default-information allow in 是默认在进程中开启,允许所有可传递的默认网络进入本路由器

    default-information allow out 是默认在进程中开启,允许所有可传递的默认网络传递出本路由器

    命令前加no跟out或者in.表示不允许进入默认路由或者传递默认路由,而不是no掉此命令

    EIGRP 基础实验

    eirp计算(EIGRP理论详解及基础实验)(8)

    查看命令:

    1)查看路由表:show ip route

    eirp计算(EIGRP理论详解及基础实验)(9)

    2)查看邻居:show ip eigrp neighbor

    eirp计算(EIGRP理论详解及基础实验)(10)

    3)查看拓扑:show ip eigrp topology

    eirp计算(EIGRP理论详解及基础实验)(11)

    4)查看接口的带宽和延迟:show int s0/0

    eirp计算(EIGRP理论详解及基础实验)(12)

    5)查看运行的协议:show ip protocol

    eirp计算(EIGRP理论详解及基础实验)(13)

    6)查看运行的接口:show ip eigrp interface

    eirp计算(EIGRP理论详解及基础实验)(14)

    7)查看数据包统计: show ip eigrp traffic

    eirp计算(EIGRP理论详解及基础实验)(15)

    8)动态查看邻居关系:debug eigrp neighbos

    eirp计算(EIGRP理论详解及基础实验)(16)

    9)动态查看发送和接收包: debug eigrp packets

    eirp计算(EIGRP理论详解及基础实验)(17)

    ============

    R1

    enable

    conf t

    int lo0

    ip add 1.1.1.1 255.255.255.0

    int s0/0

    ip add 192.168.12.1 255.255.255.0

    no shut

    exit

    router eigrp 1

    no auto-summary

    network 1.1.1.0 0.0.0.255

    network 192.168.12.0

    ===============

    R2

    enable

    conf t

    int s0/0

    ip add 192.168.12.2 255.255.255.0

    no shut

    int s0/1

    ip add 192.168.23.2 255.255.255.0

    no shut

    exit

    router eigrp 1

    no auto-summary

    network 192.168.23.0

    network 192.168.12.0

    ===============

    R3

    enable

    conf t

    int s0/1

    ip add 192.168.23.3 255.255.255.0

    no shut

    int s0/0

    ip add 192.168.34.3 255.255.255.0

    no shut

    exit

    router eigrp 1

    no auto-summary

    network 192.168.23.0

    network 192.168.34.0

    ============

    R4

    enable

    conf t

    int lo0

    ip add 4.4.4.4 255.255.255.0

    int s0/0

    ip add 192.168.34.4 255.255.255.0

    no shut

    exit

    router eigrp 1

    no auto-summary

    network 4.4.4.0 0.0.0.255

    network 192.168.34.0

    ,