会计考友 发表于 2012-8-3 20:20:19

CCNP之BSCI中文读书笔记(4)

Module4 Configuring EIGRP

EIGRP Features EIGRP是Cisco的私有路由协议,它综合了距离矢量和链路状态2者的优点,它的特点包括:
1.快速收敛:EIGRP使用Diffusing Update算法(DUAL)来实现快速收敛.路由器使用EIGRP来存储所有到达目的地的备份路由,以便进行快速切换.如果没有合适的或备份路由在本地路由表中的话.路由器向它的邻居进行查询来选择一条备份路由
2.减少带宽占用:EIGRP不作周期性的更新,它只在路由的路径和度发生变化以后做部分更新.当路径信息改变以后,DUAL只发送那条路由信息改变了的更新,而不是发送整个路由表.和更新传输到一个区域内的所有路由器上的链路状态路由协议相比,DUAL只发送更新给需要该更新信息的路由器
3.支持多种网络层协议:EIGRP通过使用protocol-dependent modules(PDMs),可以支持ApplleTalk,IP和Novell Netware等协议
4.无缝连接数据链路层协议和拓扑结构:EIGRP不要求对OSI参考模型的层2协议做特别是配置.不像OSPF,OSPF对不同的层2协议要做不同配置,比如以太网和帧中继
总之,EIGRP能够有效的工作在LAN和WAN中,而且EIGRP保证网络不会产生环路(loop-free);而且配置起来很简单;支持VLSM;它使用多播和单播,不使用广播,这样做节约了带宽;它使用和IGRP一样的度的算法,但是是32位长的;它可以做非等价的路径的负载平衡
EIGRP Databases
运行了EIGRP的路由器维持3张表:neighbor table,topology table和routing table,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012303689.jpg

其中neighbor table保存了和路由器建立了邻居关系的,直接相连的路由器
topology table包含路由器学习到的到达目的地的所有路由条目,其过程如下:
1.neighbor table中的每个邻居都转发1份IP路由表的拷贝给它们的邻居
2.然后每个邻居把从它们自己的邻居处得来的路由表存储在自己的EIGRP拓扑数据库中
3.EIGRP检查拓扑数据库,然后选择出一条到达目的地的最佳路由
4.EIGRP从拓扑数据库中选择到达目的地的最佳的successor routes,然后把它们放到路由表里.路由器为每种协议(比如IP,IPX)各自保持1张单独是路由表

会计考友 发表于 2012-8-3 20:20:20

CCNP之BSCI中文读书笔记(4)

Feasible Distance vs. Advertised Distance
为了决定到达目的地的最佳路由(successor)和备份路由(feasible successor),EIGRP使用下面2个参数:
1.advertised distance:EIGRP邻居到达目标网络的度
2.feasible distance:到达邻居路由器的度加上advertised distance(即邻居到达目标网络的度)
路由器比较所有的FD,然后选择FD值最低的放进IP路由表
来看一个例子,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012308387.jpg

如图显示的是C的EIGRP拓扑数据库,里面包含了邻居A和B的信息.A和B都知道如何到达网络10.1.1.0/24.从图中我们看见A到达目标网络的advertised distance是1000;B是1500.FD分别是2000和2500.C经过比较,将FD值低的,这里就是A的条目,作为到达网络10.1.1.0/24的最佳路径
EIGRP Metric Calculation
EIGRP选择一条主路由(最佳路由)和一条备份路由放在topology table(EIGRP到目的地支持最多6条链路).它支持几种路由类型:内部,外部(非EIGRP)和汇总路由.EIGRP使用混合度
EIGRP度的5个标准如下:
1.带宽:10的7次方除以源和目标之间最低的带宽乘以256
2.延迟(delay):接口的累积延迟乘以256,单位是微秒
以上是默认的2个,下面是可选的3个标准:
3.可靠性(reliability):根据keepalive而定的源和目的之间最不可靠的可靠度的值
4.负载(loading):根据包速率和接口配置带宽而定的源和目的之间最不差的负载的值
5.最大传输单元(MTU):路径中最小的MTU.MTU包含在EIGRP的路由更新里,但是一般不参与EIGRP度的运算
EIGRP使用DUAL来决定到达目的地的最佳路由(successor).当最佳路由出问题的时候,EIGRP不使用holddown timer而立即使用备份路由(feasible successor),这样就使得EIGRP可以进行快速收敛
看看EIGRP计算度的公式,K是常量,公式如下:
metric=*
默认:K1=1,K2=0,K3=1,K4=0,K5=0
这样就得到默认的度的简化计算公式,如下:
metric=bandwidth+delay
注意,不推荐修改K值.K值通过EIGRP的hello包运载.如果两个路由器的K值不匹配的话它们是不会形成邻居关系的
EIGRP Metrics Backward Compatible to IGRP

会计考友 发表于 2012-8-3 20:20:21

CCNP之BSCI中文读书笔记(4)

EIGRP的度和IGRP的度能够很好的进行兼容.IGRP的度是以24位的格式,而EIGRP是32位的格式.它们之间的关系是EIGRP的度是256倍于IGRP的度.也就是说假如IGRP的度为1000的话,换算成EIGRP的度为256000
来看一个EIGRP度的计算的例子,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012302150.jpg

注意图上各个路由器之间的链路带宽,先看看A经过B,C到达D之间的度的计算,AB之间,BC之间为T1线路,CD之间带宽为64kbps,计算如下:
带宽=10,000,000/64*256=40,000,000
累积延迟=(2000+2000+2000)*256=1,536,000
所以度=带宽+累积延迟=41,536,000
EIGRP Packets
EIGRP的5种包的类型,如下:
1.hello包:路由器使用hello包来发现邻居,采用多播的方式
2.update包:采用单播或多播的方式发送.更新发生在路由器启动,拓扑或度发生变化,和路由状态的迁移(主动到被动)
3.query包:当路由器开始进行路由计算和没有FD的时候,它就发送给邻居一个可靠的查询包来询问是否有到达目的地的FD.查询包通常以多播的方式发送
4.reply包:以单播的方式发回给发出查询包的路由起,作为应答
5.acknowledge(ACK)包:ACK包是采用单播的hello包,包含非0的确认数字.update包,query包和reply包均是可靠发送,所以它们都需要确认;而hello包和ACK包就不需要确认
EIGRP Hello Packets
当你在路由器的接口配置了EIGRP以后,路由器会周期性的以组多播的方式向外发送hello包.多播地址是224.0.0.10.当和它在1个AS里的其他运行了EIGRP的路由器接收到hello包以后,就会和它形成邻居关系.不在1个AS里,而且度的计算方式不一样(即K值不同),是不会形成邻居关系的.如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012304163.jpg

它们的K值一样,并且在同一个AS里,这样它们会形成邻居关系

会计考友 发表于 2012-8-3 20:20:22

CCNP之BSCI中文读书笔记(4)

EIGRP Timershello包在不同的介质上发送间隔是不一样的,如下:
1.在以下介质中是以每5秒进行发送:广播型介质,比如以太网,令牌环(Token Ring)和分布式光纤接口(FDDI);在点到点类型的串行链路中比如PPP和HDLC,还有帧中继和ATM;带宽大于T1线路的多点线路,比如交换式多兆位数据服务(SMDS),帧中继,ATM和ISDN PRI
2.在以下类型中间隔时间是60秒:带宽小于T1线路的多点线路,比如ISDN BRI,帧中继,SMDS,ATM和X.25
当配置EIGRP的时候,EIGRP进程动态发现和它直接相连的运行了EIGRP的路由器.每个路由器在它自己的neighbor table中都保持的有邻居的信息,包括到达邻居路由器的地址和接口.还保持的有hold time.hold time是3倍于hello time
EIGRP在低速链路上发送hello包的频率较低,因为hello包会占用额外的带宽.不过可以在接口配置模式对默认时间进行修改,使用ip hello-interval eigrp {AS-number} {seconds}命令;修改hold time的时间的命令也是在接口配置模式,使用ip hold-time eigrp {AS-number} {seconds}命令.当你修改了hello包的时间间隔以后,hold time是不会自动修改的(之前hold time=hello time*3)所以要人工进行修改
EIGRP Adjacency Establishment Conditions
即使两个路由器的hello time和hold time相互之间不匹配,它们仍然有可能成为邻居.hello包包含了hold time的信息和保持跟踪每个EIGRP邻居路由器的hold time
如果EIGRP路由器在hold time超出之前没有收到EIGRP包,路由器就会察觉拓扑的变化.路由器删除邻居路由器的相关信息,包括从邻居那里认可的topology table条目.假如FD可用的话,EIGRP进程将进行重新收敛
EIGRP不会基于次要地址(secondary address)建立邻居关系,因为EIGRP使用接口的主地址
show ip eigrp neighbors Command
使用show ip eigrp neighbors命令查看EIGRP邻居关系,如下:

http://www.examw.com/cisco/Files/2011-3/30/1012307598.jpg

看下各个输出的含义,如下:
1.neighbor address:邻居路由器的地址,如上图可以看出p2r2有2个邻居
2.queue(Q Cnt):等待发送的排队排列的包.如果这个值持续高于0的话,说明发生了拥塞问题
3.Smooth Round Trip Timer(SRTT):从邻居处发送和接收包的平均回程时间.单位是毫秒.这个通常用来决定RTO(Retransmit Time Out)
4.RTO:单位是毫秒.路由器在重新传输包之前等待ACK的时间
5.hold time:定义了等待没有从邻居那里接收到任何包的最大时间.当接受到新的包以后,hold timer复位
6.Interface:本地到邻居的接口
EIGRP Reliability
Reliable Transport Protocol(RTP)用来保证EIGRP包发送给邻居的可靠的传输.RTP支持单播和多播的混合方式.出于效率问题的考虑,只有一些特定的EIGRP包需要可靠的传输.比如在拥有多播能力的多路访问网络中,比如以太网,就不需要单独的发送可靠的hello包给所有邻居.EIGRP发送1个单独的hello包的多播,其中包含接收者不需要对这些包进行确认
其他类型包,比如update包就需要确认.所有运载路由信息的包(update,reply和query)就需要可靠传输因为它们不是周期性的发送.每个包分配的有序列号然后要求确认.这些序列号和确认就使得这些包可以可靠的传输

会计考友 发表于 2012-8-3 20:20:23

CCNP之BSCI中文读书笔记(4)

ACK包和hello包,是不需要可靠性的
EIGRP Retransmission Policy and Transport Mechanism
RTP的重传机制:路由器发送给邻居可靠的包在RTO超出以后,还没得到确认的话,将进行包的重传.最大重传次数16次,直到hold time超出
EIGRP的传输使用了窗口技术,并且窗口大小是1,stop-and-wait机制,即要对传输的包进行一一确认.假如一个路由器A有两个邻居B和C,当分别给B和C发送1个包以后,B做出了及时的应该而C还没有做出应答,A就必须等待,直到C做出应答以后才能发送下一个包,这样带来的影响是降低了效率.解决的办法是对没有得到确认的多播包采用单播包来传送
Initial Route Discovery in EIGRP
来看看EIGRP中邻居的发现和建立过程,如下图:

http://www.examw.com/cisco/Files/2011-3/30/101230743.jpg

具体过程如下:
1.路由器A启动,然后在链路上发送hello包
2.路由器B接收到A发来的hello包,然后做出应答,发回update包给A,告诉A它自己的路由表的信息.但是这个时候邻居关系还没有建立直到B发回hello包给A.在B给A的update包里设置了初始位(init bit)的,说明这是初始过程
3.当双方交换过hello包以后,邻居关系建立.A发回ACK包给B确认它已经收到了从B而来的update包
4.A吸收update包到它自己的topology table中去.topology table包括了从邻居那里得来的所有目的地信息
5.A发送update包给B
6.B收到A发来的update包后做出应答;发回ACK包给A
整个过程完成
Verifying EIGRP Connectivity Using debug Commands
debug eigrp packets:显示执行这条命令的路由器的接收和发送的包的类型,如下:
RouterA#debug eigrp packets
(略)
01:38:29: EIGRP: Sending HELLO on Serial0/0
01:38:29: AS 100, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0
01:38:31: EIGRP: Received HELLO on Serial0/0 nbr 10.1.2.2
01:38:31: AS 100, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
Received EIGRP Update
01:38:33: EIGRP: Received UPDATE on Serial0/0 nbr 10.1.2.2
01:38:33: AS 100, Flags 0x0, Seq 23/37 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
01:38:33: EIGRP: Enqueueing ACK on Serial0/0 nbr 10.1.2.2
01:38:33: Ack seq 23 iidbQ un/rely 0/0 peerQ un/rely 1/0
01:38:33: EIGRP: Sending ACK on Serial0/0 nbr 10.1.2.2
(略)
如果K值不匹配的话,当然就建立不了邻居关系,如下 :
RouterA#debug eigrp packets
(略)
01:39:13: EIGRP: Received HELLO on Serial0/0 nbr 10.1.2.2
01:39:13:AS 100, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0 peerQ un/rely 0/0
01:39:13:      K-value mismatch
(略)

会计考友 发表于 2012-8-3 20:20:24

CCNP之BSCI中文读书笔记(4)

debug ip eigrp:显示路由器发送和接收的EIGRP包的相关信息,如下 :
RouterA#debug ip eigrp
IP-EIGRP Route Events debugging is on
01:57:23: IP-EIGRP: Processing incoming UPDATE packet
01:57:23: IP-EIGRP: Int 172.16.1.0/24 M 10639872 - 9999872 640000
SM 384000 - 256000 128000
(略)
如上输出,内部路由标的有Int字样,FD为9999872(带宽值)+640000(延迟)=10639872,其中FD是路由器A到达目标网络172.16.1.0/24;SM代表source metric,advertised distance是256000+128000=384000.因为带宽值是由10的7次方除以真正的带宽得来的,而且计算EIGRP度的时候是选择链路带宽值低的那条.所以EIGRP的度为9999872(bandwidth)+640000(delay)=10639872
Selection of a Successor by DUAL
如果有相同的FD的话,路由表可以存在多个successor,默认可以存在4个.FS(feasible successor)是备份路由.要限定一个FS,下一跳的路由器的advertised distance必须比当前successor路由的FD要小
如果successor因故无效,而有效的FS存在的话,FS将代替successor并无需进行重新计算.EIGRP的topology table一次可以存在多个有效的FS;如果successor因故无效,同时又没有有效的FS的话,EIGRP将进行重新计算.计算过程将计算出新的一个successor
successor是下一跳的路由器到达目标网络中的最佳路由器.FD最低的成为successor.所有的路由器只选择下一跳的路由器,然后每个路由器依靠下一跳路由器做出到达目标网络的最可靠的决定.所有的路由器依赖于successor(最佳的下一跳路由器)到达目标网络
来看一个例子,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012305331.jpg

假设路由器B把网络10.1.1.0/24宣告给它的邻居路由器C,B到网络10.1.1.0/24的耗费为1000,C把这个值作为从B那里得到的advertised distance.C再加上它自己到达B的耗费(1000)得到通过B到达目标网络的FD(即1000+1000=2000)
D宣告网络10.1.1.0/24给C.如图,D到达网络10.1.1.0/24的耗费是1500,C从D那里得到这个作为advertised distance,然后加上它自己到达D的耗费(1000)得到FD为2500.路由器C比较所有的FD,选择值低的那个作为最佳路由,即选择通过B到达目标网络.所以路由器B作为C到达目标网络的successor
EIGRP Feasible Successor
FS,是作为successor的备份,FS路由存储在topology table中,一张topology table可以保持多个FS.FS的选举是经过比较非successor的AD,而且AD要比FD小,才能被认可为FS.这个比较的过程,可以写成下面的数学方程式:
AD of second best route < FD of best route(successor) = FS
注意这里的AD不是管理距离而是advertised distance
如下是没有FS的一个公式:
AD of second best route ≥ FD of best route(successor) ≠ FS

会计考友 发表于 2012-8-3 20:20:25

CCNP之BSCI中文读书笔记(4)

来看一个实例,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012306380.jpg

如图,B和C之间的链路down掉了,C从路由表中删除通过B到达网络10.1.1.0/24的条目并且查询自身的topology寻找可用的FS.由于D可以到达网络10.1.1.0,所以C将通过D走,最终到达网络10.1.1.0/24.C之所以这么选择是因为D到达B的AD比FD要小.还可以通过数学证明,来证实网络上没有产生环路
EIGRP Query Process
我们来看看EIGRP的查询和应答的过程,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012308164.jpg

这张图是EIGRP刚启动的时候,从图中可以看出FD,advertised distance,successor,FS
假设当有条链路down掉了,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012309886.jpg

会计考友 发表于 2012-8-3 20:20:26

CCNP之BSCI中文读书笔记(4)

当B和D之间的链路down掉后,DUAL做出以下反应:
1.在路由器D上标记通过路由器B到达目标网络10.1.1.0/24为不可用
2.D没有到达目标网络的FS,因为通过C的advertised distance(即2+1=3)比通过B的FD(1+1=2)要大.于是DUAL设置到达目标网络的度为-1(即代表不可达),如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012307872.jpg

而且在D的topology table里没有可用的FS,于是路由状态由passive改变到active,如上图.当迁移到active状态后,D发送查询query包给它的邻居来寻找新的successor.D发送查询给C和E来寻找到达目标网络的替代路由.它在路由器C和E上标记查询未决(Q)
3.DUAL在路由器E上面标记不可通过路由器D到达目标网络10.1.1.0/24
4.在路由器D上,它收到从C发送来的应答reply包,应答表明通过C到达目标网络没有任何问题.然后它移除路由器C上的查询标记.D的状态仍然为active,因为它还在等待E对它的应答
5.在路由器E上,DUAL没有找到到达目标网络的FS,状态迁移到active状态,并且发送查询(Q)给C,然后标记路由器C为查询未决,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012301337.jpg

会计考友 发表于 2012-8-3 20:20:27

CCNP之BSCI中文读书笔记(4)

6.路由器D仍然为active状态因为它还在等待E的应答
7.路由器E上,DUAL收到从C发来的应答,应答表明无任何问题.E从C移除查询标记.E计算新的FD并把新的successor路由放进topology table中去.然后更改到达目标网络的状态为passive(收敛),如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012308054.jpg

8.路由器D收到E的应答并表明网络无问题,D从E删除查询标记,并计算出新的FD,然后把新的successor路由放进自己的topology table中.因为通过C和E的路由拥有相同的FD,因此它们都做为新的successor.到达目标网络的路由状态从active迁移到passive(收敛).过程如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012318444.jpg

9.在路由器D上的topology table中存在2条到达目标网络的successor路由,这2条路由将都会出现在路由表里,而且会起到等价链路的负载均衡作用.网络状态稳定,收敛完毕.如下图:

http://www.examw.com/cisco/Files/2011-3/30/10123124.jpg

注意整个收敛过程,只有D和E到达目标网络的状态为actvive,C的状态一直都是passive.因为B和D之间链路的down掉对C没有影响

会计考友 发表于 2012-8-3 20:20:28

CCNP之BSCI中文读书笔记(4)

Configuring EIGRP
配置EIGRP的具体步骤,如下:
1.在全局配置模式下使用router eigrp [命令启用EIGRP,在一个AS内,所有要配置EIGRP的路由器必须拥有相同的AS号
2.定义EIGRP网络号使用network 命令,可以使用wildcard mask来定义特殊的IP地址,子网或网络
3.如果你使用了串行连接,还得定义链路带宽.如果你不定义带宽,EIGRP默认认为带宽为T1线路的带宽大小,即1.544Mbps.如果实际的链路带宽比这个低的话,路由器将不能收敛,或者路由update包会丢失.使用bandwidth 命令定义带宽.这个带宽对于点对点的帧中继网络中,定义的带宽是CIR;而对于其他的普通串行线路,定义的就是实际带宽
来看一个EIGRP配置的实例,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012313908.jpg

如图,所有的路由器都在AS 109里,路由器A没有使用wildcard mask.如果A使用了以下的配置:
RouterA(config)#router eigrp 109
RouterA(config-router)#netw 10.1.0.0
RouterA(config-router)#netw 10.4.0.0
RouterA(config-router)#netw 172.16.1.0
RouterA(config-router)#netw 172.16.2.0
路由器A将对网络进行自动汇总,使得配置看上去像是这样的,如下:
RouterA(config)#router eigrp 109
RouterA(config-router)#netw 10.0.0.0
RouterA(config-router)#netw 172.16.0.0
如果路由器A的配置命令是如下这样的:
RouterA(config)#router eigrp 109
RouterA(config-router)#netw 10.1.0.0 0.0.255.255
RouterA(config-router)#netw 10.4.0.0 0.0.255.255
RouterA(config-router)#netw 172.16.1.0 0.0.0.255
RouterA(config-router)#netw 172.16.2.0 0.0.0.255
使用wildcard mask来定义参与AS 109的EIGRP进程的直接相连的路由器接口.在上面这个例子里,定义的就是处于10.1.0.0/16,10.4.0.0/16,172.16.1.0/24和172.16.2.0/24里的所有接口都会参与AS 109里的EIGRP进程
看看在EIGRP中使用wildcard mask的例子,如下图:

http://www.examw.com/cisco/Files/2011-3/30/1012315763.jpg
页: [1] 2
查看完整版本: CCNP之BSCI中文读书笔记(4)