首页 > 代码库 > CCNA 学习笔记(五)--动态路由协议(EIGRP)

CCNA 学习笔记(五)--动态路由协议(EIGRP)


    通过学习RIP后,我们对路由的一些基本路由协议有了认识,现在再让我们去了解下思科的一个私有协议:EIGRP

EIGRP路由协议

(也叫增强型内部网关协议enhanced interior gateway protocol)

    它是结合了距离矢量与链路状态协议的,思科私有的动态路由协议,只能是应用于思科的设备上面。若网络中有使用其它厂商的设备时,EIGRP是不能使用的。


1、EIGRP的特点:

wKioL1R2v5HjGtwLAAHL3NRUlhk273.jpg


    快速收敛、减少带宽占用。(使用DUAL扩散更新算法,通过路由备份更新,当S路由不能用时,快速切换到FS上,从而达到快速收敛的作用。)

    100%无环路。    (在同一个自治系统中,EIGRP使用DUAL算法,100%保证无环路。)

    使用多播或者单播来更新路由。 (使用组播224.0.0.10或者单播进行路由更新,减少带宽占用)

    增大了网络规模。    (RIP最大15跳、ERGRP 255跳、IGRP  224跳、别的默认是 100跳)

    支持三层网络协议。    (支持IP、IPX等等)

    支持VLSM与不连续的网络。(RIP与IGRP不支持)

    触发更新。    (当路由发生变化时才会发查询包更新路由表,使用增量更新)

    无类路由协议。    (可划分子网、可聚合子网路由)

    高级矢量协议。    (具有距离矢量属性,又具有链路状态协议特征)

    唯一支持不等价负载均衡路由协议。

    同一个设备上支持多个EIGRP进程。


2、度量值(metric):DUAL算法:用于计算最佳无环路径与备用路径)

        RIP:是使用跳数来作为度量值,选择到达目的网络最低跳数的路由来发送数据。

        EIGRP计算方式为:

            带宽(bandwidth):链路上最小的带宽。

            延迟(delay):链路上的部延迟值。

            负载(loading):链路上最大的负载值。

            可靠性(reliability):链路上可靠性的最小值。

            最大传输单(MTU):链路中最小值。

wKiom1R2zWOQiHO9AAMHu2LpU5w307.jpg

3、几个概念:

    A、可行距离(feasible distance):到达一个目的网络的最小距离值。

    B、通告距离(advertise distance):相邻路由器所通告的它自己到达某个目的网络的最小值。

    C、可行条件(Feasible condistion):通告距离小于可行距离。

    D、后继(successor):指从当前路由到达目的路由器路径最优的路由。

       后继必须满足二个条件:

        1、它到达目的路由器具有最低度量值。

        2、它不是路由环路的一部分。

第一个条件:可以通过比较从所有相邻的路由器学习到达目的路由的最低路径度量值,来选取出具有最低度量值的路由器。

第二个条件:可以通过FC可行条件来保证。

    若是有多个相同的去同一个目的地的路由器度量值,那就会有多个后继,以达到负载均衡。

    E、可行后继(feasible successor):

       除了最低度量值路径外,在拓扑表中还存储了到达每个目的地的后备路径。

要想成为可后后继路由器,那么下一跳的路由器的通告距离必须小于当前路由的可行距离,也就是:AD<FD.可行后继路由一定比当前路由器离目的地更近些,但由于它不是最低度量值班,所以它不会存储在路由表中,只是会存储在拓扑表中。

       可行后继与后继一样,到达同一个目的地的路径有好多条,所以可行后继会有多个。

4、EIGRP路由状态:

    1、被动状态/被动路由(passive state):是一种目前具有正确的路由到达目的地的状态。当路由器失去S(successor),还有一个FS(Feasible successor),或者再寻找到一个S(successor)时,该路由进入被动状态,是一个可用路由。

    2、活动状态/主动路由(active state):当S(successor)丢失,但又没有FS(feasible successor)时,它进入活跃状态主去的搜索S(successor),是一条不可用路由。当一条路由处于活跃状态下,路由器会向邻居发送查询,寻找另一条可到达目的地的可用路由。

    3、邻居关系:EIGRP通过发送HELLO包来建立邻居关系。在低带的链路下,HELLO包发送的间隔时间为60秒,若是在高速的链路下,HELLO包的发送时间为5秒,如果在一段时间内没有收到邻居发过来的HELLO包,则重置邻居关系。在等待HELLO包的时间,我们称之为保持时间(hold time)。这时间一般为HELLO时间的3倍。(注:EIGRP建立邻居关系的条件:K值&自治系统号要一致,可以通过sh ip eigrp neighbor来查看)

5、EIGRP 的五种包:

    1、HELLO包:建立与维护邻接关系,组播地址:224.0.0.10

    2、更新包:

        A、新建立邻居关系时,需要发送UPDATE包,单播包,唯一一次发送整个路由表。

        B、拓扑表发生变化或者收到别外发过来的UPDATE包时,发多播包

    3、查询包:当发现网络路径不可达时,发送Query包,发多播包。

    4、应答包:收到Query包时的回复包,发多播包。

    5、确认包:单播包,对Update/Query/Reply包的确认(ACK)。

wKioL1R4LLvBRRlQAAG4v7fh_90408.jpg

6、EIGRP的工作过程:

    1、发送HELLO包,发现邻居,建立邻居表。

    2、交换路由信息,建立拓扑表。

    3、运行DUAL算法,形成路由表。

7、EIGRP路由的维护:

    1、收敛后,拓扑无发生变化,用hello包来维持邻居关系。

    2、发现新的路由时,发送update包,当发现S(successor)丢失时,FS(feasible successor)立刻成为S(successor)快速收敛,若是没有FS(feasible successor)时,发送query包查询。

    3、当拓扑稳定时,该路由状态为passive,表示该路由可用。当丢失S(successor)时,该路由失效,FS(feasible successor)立刻成为S(successor),路由再成为Passive状态。 如果没有FS(feasible successor)时,该路由就会成为活跃状态(active),向所有的邻居发送query包,同时active计时器启动。

8、EIGRP的三张表:

    1、邻居表(neighbor table):保存了与路由建立邻居关系且直接相连的路由。

    2、拓扑表(topology table):存储包含从所有的路由中学习的,到达目的地的所有路由条目。

    3、路由表(routing  table):存储最佳路径的路由条目。

以下图拓扑为例:

wKioL1R3zorCtJPZAAEa4PiwrPo601.jpg

我们主要是看下R2到达目的网络 2.2.2.2 的三张表。

wKioL1R36prAwDHHAAKIXp5PH9U703.jpg

从上图,我们可以看出:

    与R2相邻的路由器的IP地址分别为:192.168.12.1    192.168.23.3

    R2的    S0/1    S0/2二个接口分别与上面的二个路由器相连接。

同时,若遇到当前路由是运行了几个EIGRP进程的,我们在查阅EIGRP的邻居时,就要使用命令:

show ip eigrp neighbor>>>>>这个是只运行一个EIGRP进程时查看方式。

show ip eigrp 100 neighbor >>>>>这个是查阅AS号为100的邻居。

wKiom1R4JvDzqcsCAANaxDy2DDs275.jpg


wKiom1R4KIzhNvD9AAPQsYkCTcU006.jpg

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

实验:

wKiom1R4MzSx5k3rAAEPbOu6JyQ213.jpg


1、基本配置:

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

R1(config)#no ip domain lo 

R1(config)#lin co 0

R1(config-line)#logg sy

R1(config-line)#exec-t 0 0

----------------------------------------------------

R1(config-line)#lin vty 0 4

R1(config-line)#pass hznethome

R1(config-line)#login

----------------------------------------------------

R1(config)#int lo 0

R1(config-if)#ip add 1.1.1.1 255.255.255.0

R1(config-if)#no sh

----------------------------------------------------

R1(config-if)#int s0/0

R1(config-if)#ip add 192.168.12.1 255.255.255.0 

R1(config-if)#no sh

----------------------------------------------------

R1(config-if)#int s0/1

R1(config-if)#ip add 192.168.14.1 255.255.255.0

R1(config-if)#no sh

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

R2(config)#no ip domain lo

R2(config)#lin co 0

R2(config-line)#logg sy

R2(config-line)#exec-t 0 0

R2(config-line)#lin vty 0 4

R2(config-line)#pass hznethome

R2(config-line)#login

----------------------------------------------------

R2(config-line)#int lo 0

R2(config-if)#ip add 2.2.2.2 255.255.255.0

R2(config-if)#no sh

----------------------------------------------------

R2(config-if)#int s0/1

R2(config-if)#ip add 192.168.12.2 255.255.255.0

R2(config-if)#no sh

----------------------------------------------------

R2(config-if)#int s0/2

R2(config-if)#ip add 192.168.23.2 255.255.255.0

R2(config-if)#no sh

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

R3(config)#no ip domain lo

R3(config)#lin co 0

R3(config-line)#logg sy

R3(config-line)#exec-t 0 0

R3(config-line)#lin vty 0 4

R3(config-line)#pass hznethome

R3(config-line)#login

----------------------------------------------------

R3(config-line)#int lo 0

R3(config-if)#ip add 3.3.3.3 255.255.255.0

R3(config-if)#no sh

----------------------------------------------------

R3(config-if)#int s0/3

R3(config-if)#ip add 192.168.23.3 255.255.255.0

R3(config-if)#no sh

----------------------------------------------------

R3(config-if)#int s0/2

R3(config-if)#ip add 192.168.34.3 255.255.255.0

R3(config-if)#no sh

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

R4(config)#no ip domain lo

R4(config)#lin co 0

R4(config-line)#logg sy

R4(config-line)#exec-t 0 0

R4(config-line)#lin vty 0 4

R4(config-line)#pass hznethome

R4(config-line)#login

----------------------------------------------------

R4(config-line)#int lo 0

R4(config-if)#ip add 4.4.4.4 255.255.255.0

R4(config-if)#no sh

----------------------------------------------------

R4(config-if)#int s0/1

R4(config-if)#ip add 192.168.14.4 255.255.255.0

R4(config-if)#no sh

----------------------------------------------------

R4(config)#int s0/2

R4(config-if)#ip add 192.168.34.4 255.255.255.0

R4(config-if)#no sh

wKioL1R4OGzyorajAANoYrgEzJw579.jpg

2、EIGRP协议的配置:

R1(config)#router eigrp 100

R1(config-router)#net 1.0.0.0 0.0.0.255

R1(config-router)#net 192.168.14.0 0.0.0.255

R1(config-router)#net 192.168.23.0 0.0.0.255

R1(config-router)#end

----------------------------------------------------

R2(config)#router eigrp 100

R2(config-router)#net 2.0.0.0 0.0.0.255

R2(config-router)#net 192.168.12.0 0.0.0.255

R2(config-router)#net 192.168.23.0 0.0.0.255

R2(config-router)#end

----------------------------------------------------

R3(config)#router eigrp 100

R3(config-router)#net 3.0.0.0 0.0.0.255

R3(config-router)#net 192.168.23.0 0.0.0.255

R3(config-router)#net 192.168.34.0 0.0.0.255

R3(config-router)#end

----------------------------------------------------

R4(config)#router eigrp 100

R4(config-router)#net 4.0.0.0 0.0.0.255

R4(config-router)#net 192.168.14.0 0.0.0.255

R4(config-router)#net 192.168.34.0 0.0.0.255

R4(config-router)#end

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


好困了,不写了,实验就只是做了基本的实验,别的实验以后再发上来吧!!!

祝大家好运!!!


本章的实验如果想要的话,请下载附件,谢谢!

本文出自 “最后一班车” 博客,请务必保留此出处http://hznethome.blog.51cto.com/722914/1584085

CCNA 学习笔记(五)--动态路由协议(EIGRP)