【SPOTO思博网络】干货!!网工路由基础解析!《EIGRP协议》
EIGRP原理
EIGRP的五种报文
Hello:建立与维护邻居关系,hello数据包以组播方式发送,影响EIGRP邻居建立的点:AS号不一致、K值不一致、认证不通过
**:传递路由信息(使用seq和ack保证数据可靠性)
Query:丢失路由表中某一条路由,并且没有备份路径时,以组播的方式向所有EIGRP接口发出查询
SIA-Reply:
Ack:hello报文的变种,用作确认
Query和reply用于现有最佳路径丢失,但是拓扑表中也无可用备份路径时,重新向邻居查询最佳路径
EIGRP Query过程:当路由条目丢失时,EIGRP路由器向邻居发送Query报文,丢失的路由条目会置为active state。接收路由器收到Query时,且有该路由信息: 如果查询者不是该路由的可行后继路由器,那接受路由器会把可行后继路由器以Reply发给查询者 如果查询者是该路由的可行后继路由器,则该路由器会先判断本地拓扑表内是否有该路由的备份路由(其他可行后继路由器):
1.如果有备份路由,则该路由器将更新本地路由表,将最优路由切换至该路由,并将以该路由器以Reply方式发送给查询者
2.如果没有该备份路由,将该路由条目置为active,然后转发查询发给其他EIGRP邻居
、
在查询中也会遇到很奇葩的情况:A给B发送查询,B没有该路由信息,B向C发送查询,B因为其他原因没有收到C的reply消息。所以B也不能回复给A
没加active增强,如果A的邻居B在3分钟内没有回复查询结果,丢失的路由条目将处于SIA状态,路由器重置对于未能答复邻居的邻居关系
Active增强后,如果A的邻居B在3分钟内没有回复查询结果,A过了3分钟后,对B作存活确认,如果B存活,计时器清0(重新等待消息)。如果B不存活,丢失的路由条目将处于SIA状态,路由器A重置对于未能答复邻居的邻居关系。
EIGRP stub
未启用末节特性:B中的10.1.1.0/24链路断开,B向A、C、D、E发送Query
启用末节特性:B中的10.1.1.0/24链路断开,其他路由器到10.1.1.0/24的路由都要经过B,所以这些查询根本没必要出现。以抑制Query报文!C、D、E启用末节特性,B只会向A发起查询
末节特性:提高网络的稳定性,降低了资源开销,并简化了远程路由器配置。末节路由器发送了一个特殊的对等体消息给所有的邻居,报告其状态为Stub路由器。邻居不会向Stub路由器发送任何Query消息,末节路由器通常用于Hub-and-spoke拓扑。
EIGRP stub配置:#配置了末节特性的路由器向邻居通告【啥也不通告|直连|静态|汇总】路由Router(config-router)#eigrp stub [receive-only | connected | static | summary]注意:默认值为向邻居通告直连和汇总路由
EIGRP邻居发现和恢复
邻居:指在网络上直连的通告EIGRP的路由器
建立邻居关系:两台路由器在特定接口(启用EIGRP协议的接口)以组播方式每5s发送一次hello数据包,接收到hello数据包的路由器B会将路由器A放入自己的邻居表(同理路由器A中也有路由器B)。成功建立邻居关系!
注意:启用了EIGRP协议的路由器,会监听组播地址224.0.0.10
维护邻居关系:hello数据包中包含一个抑制时间(holdtime),该抑制时间会告诉路由器B,在它收到后续hello数据包之前等待的最常时间。如果抑制计时器超时,路由器B还没收到hello数据包,那么宣告这个邻居不可达!
Holdtime=3*hello (一般5s)
注意:EIGRP发送的hello包的频率大于RIP发送路由更新的频率高得多,因此EIGRP收敛速度比RIP收敛速度更快。所以EIGRP网络的通信效率比RIP网络的通信效率高
AS号:相邻两台路由设备上配置了相同AS号的EIGRP协议,且双方满足建立邻居的条件(metric公式中k1-k5参数完全相同),便会正常建立和维护邻居状态。
相反配置了不同的AS号的EIGRP协议,它们就无法相互发送路由更新,也不会建立邻居关系,不同的AS号的相邻EIGRP路由器之间需要使用重分布来相互转发路由信息。一台路由器上可以启用多个不同的AS号,用来宣告不同的网络。无论从哪个AS邻居EIGRP设备学来的路由,都会保存在同一个路由表中。路由器转发数据时,只会查看路由表中是否有去往该目的地址的路由。
影响建立邻居关系的条件:AS号、metric、passive-interface
Passive-interface:路由器不会在该接口发送和接收hello消息,无法建立邻居关系
EIGRP邻居表、拓扑表、路由表
邻居表(neighbor table)
Address:下一跳路由器IPInterface:对应接口Hold: 对应hello时间Uptime:邻居建立多久
两台直连路由器之间使用hello包建立邻居,并相互把对方存在邻居表中,之后相互发送自身的完整路由信息
查看EIGRP邻居表:show ip eigrp neighbors
拓扑表(topology table)
路径状态(P/A/U/Q/R/r/s) 目的地,后继路由器,FD值,下一跳(FD/AD),接口
注意:拓扑表中存放的是去往目的地的所有备份路径和最佳路径,最佳路径是在经过计算后,加入到路由表中的路径!
将学习到的每一条路由信息放入拓扑表,并在拓扑表中运行DUAL算法,选出去往某一个目的网络最优的路径放入路由表中
查看拓扑表:show ip eigrp topology
路由表(route table)
路由表转载去往每一个目的网络的最优路径。注意:路由表只有最佳路径,不存在备份路径。
最佳路径计算过程:邻居表中先建邻居——拓扑表中再计算metric值,并根据DUAL计算出最佳路径——将最佳路径加入到路由表
DUAL有限状态机
DUAL的特征:自带防环机制,无需使用水平分割、路由毒化等特性。DUAL算法可以在当前路径失效时,快速收敛出新的路径。
注意:最佳路径和备份路由由DUAL算法在拓扑表中计算出注意:AD和FD实际为metric值注意:FS(可行后继路由器)可以有多个,只要满足AD<FDmin
最佳路径:选择具有最小的FD的路由器,成为successor(后继路由器),将最佳路径加入路由表
备份路径:若最小FD>另一个AD(非最佳路径已选择的AD),那么该具有该AD的路由器,成为FS(可行后继路由器),否则没有备份路径
先比较FD值,选最小的,成为successor(后继路由器)如果AD<最小FD,那么拥有该AD值的路由器成为可行后继路由器,一旦已有的后继路由器发生断开,拓扑表中的可行后继路由器顶替上来如果AD>最小FD,那么没有可行后继路由器,防止发生路由环路,一旦已有的后继路由器发生断开,会重新向其他邻居请求去目标网络的路径
metric计算
问题:两个路由器之间链路的度量值是如何计算的?答:通过公式算出来的。
公式:
影响链路度量值(metric)的参数有以下几个:
*Bandwidth:源和目的之间的最小带宽
*Delay:路径上接口的累积延迟*Reliability:源和目的之间的最低可靠性,基于存活消息
*Loading:源和目的之间链路上的最大负载,基于速率和接口配置的带宽
那么默认metric公式=(DLY+BW)*1 (cisco文档中说当K5=0是,后面式子为1)
延迟取值沿路所有数据出接口(或路由入口)延迟的累加
-DLY= 延迟(us) / 10 x 256
带宽取值沿路所有数据出接口(或路由入口)带宽的最低值
-BW= [10000000 / 带宽(Kbps)] x 256
metric默认=延迟(DLY)+带宽(BW)
取值:路由入接口或者数据出接口
【路由入接口或者数据出接口】:路由学习方向
修改度量值参数:metric weight tol k1 k2 k3 k4k5 (tol为0,无其他意义)
注意:建立邻居之后,修改k值也会断开邻居注意:metric值越小,路径越优
EIGRP特性
EIGRP基本配置
show命令
查看邻居表:do show ip eigrp neighbor查看(满足FC条件)拓扑表:do show ip eigrp topology查看是否满足FC条件的拓扑表:show ip eigrp topology all-links查看路由表:do show ip route eigrp查看活动路由协议进程的参数和当前状态:show ip protocols(主要查看K值)查看是否自动汇总:do show run | se routerShow running-config | section r e查看接口信息:do show ip eigrp interfaces查看接口对应的IP 地址:do show ip interface brief查看发送和接受的IP数据包的数量:do show ip eigrp traffic查看所有类型的EIGRP数据包(包括发送和接受的):debug eigrp packet查看EIGRP邻居交互:debug eigrp neighbor查看EIGRP对路由表的宣告和更改:debug ip eigrp route查看EIGRP路由活动的简要报告:debug ip eigrp summary查看不同类别的EIGRP活动,包括路径计算:show ip eigrp events
配置EIGRP
第一步:设置AS号需要建立邻居的所有路由必须具有相同的AS号Router(config)#router eigrp AS号(autonomous-system-number:1-65535)
第二步:关闭自动汇总自动汇总功能作用就是对外通告路由条目时,将其汇总为主网络,所以在存在不连续子网的环境中,使用无类距离矢量路由协议,就要关闭自动汇总Router(config-router)#no auto-summary
第三步:宣告网络使用反掩码可以精确宣告主机或者宣告网络Router(config-router)#network 网络号(network-number)反掩码 (wildcard-mask)
修改接口带宽:Router(config-if)#bandwidth 带宽值修改接口延迟:Router(config-if)#delay 延迟值(us)修改holdtime:ip hold-time eigrp
EIGRP高级配置
EIGRP汇总
汇总的目的:产生更小的路由表、更小的路由更新
自动汇总特性:(了解)
*在主网边界,子网汇总为一个主类网络。
*只汇总本地产生的路由,不汇总邻居传过来的路由
*启用自动汇总的路由器会创建一条指向Null 0接口的汇总路由,防止环路
*自动汇总默认开启(高版本IOS中已默认关闭)
手动汇总特性:(掌握)*汇总可以配置在网络内的任何一台路由器的任意接口。*接口上配置路由汇总时,路由器会自动创建一条指向Null 0接口的汇总路由,防止环路*当汇总的最后一条明细路由不存在时,汇总路由也将被删除*明细路由中的最小度量作为汇总路由的度量
EIGRP是基于链路的汇总,为了让邻居收到的路由变少,所以在本地路由物理接口上做汇总路由
Null 0路由会在路由表中存在
EIGRP手动汇总配置:#关闭自动汇总Router(config-router)#no auto-summary #接口将生成汇总路由Router(config-if)#ip summary-address eigrp as号 addressmask 汇总路由AD值(自动产生)
EIGRP负载均衡/不等价负载均衡
EIGRP可以做等价负载均衡路由和不等价负载均衡路由
等价负载:具有相同且为最小Metric的路由加入路由表,如果符合等价负载均衡,那么EIGRP会自动产生负载均衡路由
在路由表中,去往同一目的地的路由最多有十六个负载条目:*V值设置成1表示等价负载,默认4条等价负载路径*可以修改负载均衡条目数,maximum-paths 1表示关闭负载
#V值设定Router(config-router)#variancemultiplier不等价负载两个前提条件:①备用路径AD值<主用路径最小FD值(即FC条件)②备用路径FD值<主用路径FD×V值
【解释】Router E选择RouterC到达network Z,因为最小FD=20
Variance设置为2,Router E也会选择Router B到达network Z:30<[2*(FD)=40] 这里2和负载数量没有关系,如果路由器D满足FD<最小AD,那么也能成为负载链路。
Router D不会参与不等价负载均衡(25>20,不满足FC条件)
EIGRP默认路由
三种方法下放默认路由:
第一种方法Network 0.0.0.0: Ip route 0.0.0.0 0.0.0.0 serial 0 Router eigrp 100 Network 0.0.0.0
第二种方法Redistribute static: Ip route 0.0.0.0 0.0.0.0 serial 0 Router eigrp 100 Redistribute static
第三种方法Summary address: Ip summary-address eigrp 100 0.0.0.0 0.0.0.0边缘路由器连接内网的接口下配置
EIGRP认证
EIGRP认证分为明文和密文认证两种!
明文认证:(了解)
路由器发送数据包和密钥
邻居检查密钥是否匹配
安全性较低
密文认证:(掌握)
采用MD5加密生成消息摘要
配置密钥ID和密钥
路由器发送数据包和消息摘要,密钥不发送
安全性高
EIGRP使用密钥链(key chain)管理密钥,密钥链中包含多个密钥ID、密钥、密钥生存周期
EIGRP只支持MD5认证,生成一个消息摘要
路由器发送路由更新报文时,使用第一个有效的密钥
路由器配置一个密钥ID(key id)和密钥(key-string),每个参与认证的邻居必须配置相同的密钥ID和密钥
EIGRP认证配置:(掌握)#进入key chain配置模式设置key chainRouter(config)#key chain SPOTO【密钥连名称】#进入key id 配置模式设置key idRouter(config-keychain)#key 1【密钥ID】#配置key-stringRouter(config-keychain-key)#key-string CCIE【密码】#进入路由器接口配置下,指定EIGRP数据包的MD5认证Router(config-if)#ip authentication mode eigrp as号 md5#调用key chain中的key启用EIGRP数据包的认证Router(config-if)#ip authentication key-chain eigrp as号 密钥链名称
注意:EIGRP认证时,路由器发送最低的key id,并且携带ID。只有keyID和key值分别完全相同时才能成功认证
命名模式
启用命名模式:Router(config)#rotuer eigrpTESTRouter(config-router)#address-familyipv4 unicast autonomous-system 1Router(config-router)#network 10.1.1.0 0.0.0.255传统模式升级为命名模式:Router(config-router)#eigrpupgrade-cli TESTConfiguration will be converted from routereigrp 88 to router eigrp TEST.Are you sure you want to proceed?[yes |no]:yes