Eigrp路由协议简介:
是个距离矢量路由协议。收敛很快,不会出现环路。路由信息的传输采用增量更新,减少了路由信息交换对网络带宽的占用。它和igrpcisco私有的路由协议,支持在不等代价路径上支持负载均衡,这是其他路由协议所不具备的。网络设计更灵活,路由的汇总可在任何路由的任何端口上进行。
eigrp路由协议中存在三张表:
Eigrp邻居表,拓扑表,和路由表。在邻居表中,存在两个参数:fdfeasible distance)和adadvertised distance)。先举例说明:
Network
Feasible distance
Advertised distance
Eigrp neighbor
10.1.1.0/24
2000
1000
Router a (e0)
10.1.1.0/24
2500
1500
Router b (e1)
在路由器ab中都存在到目的网段10.1.1.0/24的路由信息。其中ad是路由器向网络中宣告自己到目标网络的开销,而fd是由邻居路由器自己的开销加上宣告路由器到目标网络的开销得到的。当路由器b向路由器a发出的宣告ad2000大,则路由器a就怀疑这条路由是通过自己到达目标网络的,它不会将这条路由放到拓扑表中。也就是当某路由器的邻居向自己宣告的ad大于它到邻居的fd时,此路由器不会把这条路由放到拓扑表中,从而避免环路的产生。
Igrp路由协议在评价路由的质量时会综合考虑到目标网络的带宽,延迟,负载,可信度,最大传输单元,eigrp也会综合考虑这些因素,并且它的metric值要比igrp24位的值要大,它是32位的,它对路由的评价会更精确,可信度更高。
Metric值的计算公式:
Metric=[k1*BW+k2*BW/(256-load)+k3*delay]*[k5/(reliability+k4)]
       其中:k1=1,k2=0,k3=1,k4=0,k5=1
k5=0时公式如下:
Metric=k1*BW+k2*BW/(256-load)+k3*delay
    其中:,k1=1,k2=0,k3=1bw 表示带宽,load表示负载,当然bw并不是我们的实际带宽,延迟也不是实际的延迟,它还有一个系数。
当数据穿越不同带宽的链路时,metric值的计算一链路中最小的带宽做为计算依据。
―――――router1――――――router2―――――――-router3―――――――
As200 igrp 172.16..0     as3  eigrp 192.168..
当两个路由器属于同一个as时,即使他们执行的路由协议一个是igrp,另一个是eigrp,他们的路由信息也不需要再发布,只有在两个路由器属于不同的as时,他们的路由信息才需要再发布。再发布路由信息时主要是考虑它们的metric值。Metric值的换算如下:
Igrp metric=eigrp metric/256
Eigrp metric=igrp metric*256
eigrp中延迟的计算如下:
delay=延迟的实际时间/10*256 延迟的实际时间为微秒
eigrp中带宽的计算如下:
Bw=100000000/实际带宽*256 实际带宽的单位是kbps
Eigrp包的种类:
Hello:维持邻居联系
Update:交换路由更新
Query:用于当某条路由信息丢失时并且在没有其他冗余路由时的向邻居发出的查询
Reply:回应update的查询
ACK:当一个路由收到update包时,必须向发出update包的路由器发出ack包用于确认。
邻居关系的建立条件:
要建立邻居关系的路由器,用于计算metric值的k值必须相同;路由器必须是直连;路由器必须位于相同的自治区域。Eigrphello包通过向组播地址224.0.0.10发送组播信息来发现邻居。不需要hello timehold time匹配,而ospf的网络必须匹配。
Hello数据包发送周期和链路的带宽有关。在以太网,令牌环,fddi,广播介质,点到点的串行链路ppphdlc,点到点的子接口,点到多点中的带宽大于t1时的hello发送周期都是5秒;在多点的环境中(isdr bri,fr,smds,atm,x.25),当带宽小于等于t1时的发送间隔是60秒。当然这个周期是可以手工调整的。T1=1.544mbps
在一个网络中,可能要给一个接口指定多个地址,其中一个是主地址,那么它发出的hello包的地址都以这个主地址作为它的源地址。在这种情况下,两个路由器,只要他们处于不同网段,即使它们是直连,在缺省情况下,他们也不会建立邻居关系。
在路由器wang上:
Show ip eigrp neighbors
IP-EITRP neighbors for process 200
H   Address    Interface  Hold  Uptime   SRTTms  RTO  Q(cnt)    Seq
1  172.68.2.2      To0    13    02:15:30   8           200    0       9
0  172.68.16.2     Se1    10    02:38:29  29           200    0       6
显示当前路由器有两个邻居分别是172.68.2.2172.68.16.2,直连的端口分别是to0se1hold时间分别是13秒和10秒,建立邻居的时间分别是021530023829srtt表示当前路由器收到路由器wangupdate包时,回应的时间。Rto是当一个update包发出多长时间没有回应包ack,路由器需要重传。一般这个值是srtt的六倍,最大时间为5000ms,最小是200。不足200,按200计算;大于5000的按5000计算。
eigrp的五种包中,updatequeryreply的包是需要确认的。当一条新的路由产生时,路由器会向224.0.0.10这个组播地址发送组播消息,并在邻居表中录下没有回应确认信息的邻居,当达到rto的值时重传。当重传时间达到16次时,邻居关系将被reset。当然,reset动作,在低版本的路由器中没有那么简单。
Debug eigrp packets查看eigrp包的信息
Eigrp的弥散的更新算法(diffusing update algorithm):
路由器会记录下所有邻居发送过来的路由信息,然后选择一条无环的metric值最小的路径做为最佳路径。当最佳路径失效时,就采用其他可行路径。若没有可行路径,就向邻居发出查询,重新最佳路径。
当一个路由器收到路由信息时会比较他们的ad值,把到目的地址的最小ad值的路径作为最佳路径,把ad小于当前fd的路径作为可行路径,当最佳路径失效时,快速启用可行路径。
Router config#router eigrp autonomous-syste m-number
Config-router#network network-number [wildcard-mask]
――――――router b――――――――――――――router a――――――internet
10.1.0.0/24          10.64.0.1/24      10.64.0.2/24        172.34.0.0/24
Router a:
Router eigrp 100
Network 10.0.0.0
Network 172.31.0.0
Ip default-network 172.31.0.0
Ip route 172.34.0.0 255.255.0.0 172.31.1.1
在路由器上配置了缺省路由时,那么再sh  ip route::
Gateway of last resort is not set
<output omitted>
C 10.64.0.0/24 is directly connected,Ethernetr 0
S* 172.34.0.0/16 [1/0] via 172.31.1.1
Show ip eigrp topology查看拓扑表
路由汇总:
Eigrp的路由汇总是自动进行的,它在类的边界上自动进行,当然自动汇总是可以关闭的。路由汇总可以减小路由表的大小,update包的大小,从而加速了包的转发。还有很重要的一点,当到某一目的地址的路径失效时,而且没有其他可行路径时,路由器会向邻居发出query包。在邻居没有到目的地的路径时,这种查询会继续向自治系统内的其他邻居扩散。对这种查询范围的控制也可通过路由汇总来进行。
路 由的人工汇总可以在任意一个路由器的任意端口上配置。当在一个路由器的端口上配置了人工汇总后,这个路由器会马上产生一个汇总路由,同时把这条路由的端口 指向空端口,以防止环路的产生。也就是当一个数据包要到汇总路由指向的地址时,进行路由汇总的路由器,如果它知道下跳怎么走,就直接传给下跳;如果不知道 就丢弃掉,而不是转发给其它端口。当汇总路由赖以生存的子网宕掉后,这条汇总路由也随着失效。汇总路由的metric值,采用汇总子网中metric值最小的metric值作为汇总路由的tetric值。
Cofig#no auto-summary关闭自动汇总
Config-if#ip summary-address eigrp [as-number] [address] [mask]在接口模式下配置路由汇总
172.16.1.0  Route r a\
                  \
                   \    10...
                     云团――router c―――――internet
                   /                s0 192.168..  
                  /
172.16.2.0  router b/
Router a b上的配置:
Router eigrp 100
Network 10.0.0.0
Network 172.16.0.0
No auto-summary
Router c上的配置:
Router eigrp 100
Network 10.0.0.0
Int s0
Ip address 192.168.4.2 255.255.255.0
Ip summary-address eigrp 100
172.16.0.0       255.255.0.0
配置后router c上知道有172.16..0和172.16..0,而s0端口只知道有172.16..0/16
―――――――――――――――――――――――――――――――――――――
Eigrp支持在不等价的链路上的负载平衡。通过调整variance值来控制负载平衡链路之间的差距。缺省情况下,eigrp协议所占链路的开销不得大于链路总带宽的50%。在广域网链路中,通过f-r来配置点到点的子端口时,在点到点的环境中带宽是t1(1.544mbps),而在f-r中每个pvccir可能是56k,而eigrp路由协议会认为我们的总带宽是t1,这时我们就需要在每个子端口上来指定它的链路带宽和cir一致。在多点的环境中,配制就比较麻烦,因为每条链路的带宽是不同的。可以把他转换成多个点到点的链路再配置它的cir
点到点的环境配置:
Interface serial 0.1 point-to-point
Bandwidth 56
Interface serial 0.10 [pomt-to-point
Bandwidth 56
点到点和点到多点的混合环境:
对于点到多点的环境,不同带宽的vc划分成多个子端口,把有相同的cir值的vc分到一个子端口,把其他的vc放到单独的子端口
Interface serial 0.1 multipoint
Bandwidth 768(三个256的vccir的和)
Interface  serial 0.2 point-to-point
Bandwidth 56
当 路由器的一条路由丢失时,并且没有其他可行路由时,它会向它的邻居发出查询信息。当邻居也没有它所要的信息时,邻居回向自己的邻居继续发出查询,只至查询 蔓延到整个网络。那样将占用大量的带宽,并且使网络收敛减缓。我们可以用路由汇总来控制查询区域。因为当一个路由器上记录的是一条汇总路由时,它就不会继 续向自己的邻居发出查询。只有当邻居记录的是一条具体路由时才会向邻居发出查询。需要注意的是。把一个eigrp自治系统分成多个区域的方法并不能控制eigrp的查询蔓延。
控制eigrp查询的另外一种方法:
Config-router#eigrp stub [receive only |connected |static |summary]
其中receive only只接受来自eigrp的信息;connected只把自己直连的信息向外发送;static只把自己的静态路由信息向外发送;summary把自己汇总的路由发送给自己的邻居。通常用于一个星形的结构中。一个stub router会向自己的邻居宣告自己的stub身份,当邻居的某条路由丢失时,邻居不会向它发出查询。
附:这些笔记是我从视频教程还原而来,力争保持和教程主讲讲师的意图一致.如有明显的偏差,请高人斧正.