因为rip的收敛时间长  尤其是使用过程中   链路down掉    重收敛的时间比较长  所以在中到大型的园区网中很少用到rip协议 只有在很小的局域网中用到rip   因为收敛时间可能会稍微短一些

所以在中大型的园区网内会用到EIGRP   路由选择协议   收敛速度最快    
 
EIGRP   ----enhanced   internat  gateway routeing protocol    增强型的内部网关路由协议    思科私有协议   13年前只运行 在思科设备上  前身为IGRP  (仅为有类协议 当前都不支持 )     13年之后其他设备也可以支持    当前已经变为公有协议
      核心算法 dval     既不是距离矢量又不是链路状态    eigrp 使用平衡混合性协议    有些行为是距离矢量  有些行为 时链路状态  
 
 
归类:1.范围来分  ---igp 内部协议        金融网  银行网   运行商内网等等  都属于大型的内网
  默认为100跳    可以修改到256跳  
2.核心算法分类  a   距离矢量协议    例如  rip
   b  链路状态协议   稍微高级一些  不发送路由表中的路由信息
·   可以传递lsa  ( 链路状态信息   接口  网段等等链路通告) 泛洪的形式     
lsa放在lsdb的链路状态数据库中     
spf   最短路径算法    提取最优路径信息   加入路由表
链路状态协议都有三张表   eigrp与ospf都有
a 邻居表    建立邻居用hello报文  lsa
b 链路状态数据库(拓扑表)       包含邻居传过来的路由信息   放置lsa信息   链路如何连接的信息
c 路由表     根据b拓扑表进行扩散更新计算 去往目的地有哪些路径 并且提取最优路径计算 生成路由表
 
EIGRP不发送拓扑信息     仍旧发送路由条目信息   一个高级的距离矢量协议  b拓扑表可以用来做优化用来路由备份(只有在eigrp中才有)  一 旦最优的路由条目down掉  可以在拓扑表中以最短的时间计算出两外一条路由   ms级别    
   3.无类协议
a与ripv2的相同点
 需要关闭自动汇总的功能    no auto-summary
 精确汇总    手工汇总
b与ripv2的不同点
eigrp支持路由聚合-----高级的路由汇总
路由聚合与路由汇总的区别
路由汇总:172.16.0.0/24     与172.16.1.0/24   汇总成一条172.16.0.0/23    同样是子网
此为主b类网段    掩码长度为16位   汇总后的掩码长度大于或者等于16   都称为路由汇总
路由聚合:192.168.0.0/24与192.168.1.0/24   聚合成一条192.168.0.0/23
此为主c类网段 掩码长度为24为    聚合后的结果为23   小余24     所以称为路由聚合
192.168.0.0/23又叫做超网  super net
  支持路由聚合就支持   就支持 CIDR   无类域间路由        通过汇总或聚合的方式减少internet骨干路由条 目的数量   ripv2是特例   并不支持路由聚合   即不会存在超网路由
 
EIGRP 特性
a 高级的距离矢量协议     advanced distance vector
b rapid covergence    快速的收敛
c 无类路由    没有环路
d 配置简单   类似与rip
rip封装:layer2 报头|ip|udp|rip|fcs|    格式        ripv2   组播地址224.0.0.9
eigrp封装:layer2 报头|ip|eigrp|fcs|    格式     少了udp信息   只封装了两次     叫做跃层封装   
ip中有一个protocol字段   描述上层协议字段   值用来描述直接用ip报文封装的程序的属性   协议号字段  88      组播地址 224.0.0.10    
时间
5s     带宽大于1.544m/bs  
60s   带宽小于1.544m/bs  
holdtime 保活时间-是hello报文发送周期的3倍
e    增量更新    incremental updates
路由更新报文
rip周期性发送路由更新报文
eigrp发送更新报文有两种情况:   增量更新
a    建立邻接关系   发送初始的路由更新报文   包含能发送的一切路由     即初始收敛
b 当拓扑变更   链路崩溃   路由器down等影响到路由条目时候   会发生路由重新收敛     才会再次发送路 由条目的更新报文
f    load balancing across equal-and unequal-cost pathways   支持等价负载均衡和非等价负载均衡
ecmp   等价多路径    多条不相同的路径   管理距离和度量值一样     
uecmp    unequal cost multiple pathways   到某网段的多条不同路径 管理距离或者度量值不一样  均可以被加入到 路由表中   只是度量值较低的路由使用频率会更高
默认情况下    只支持ecmp      如果想支持uecmp 需要设置一个variance 的值   值为1 仅支持ecmp    值为1-128中 的任何一个值可以支持uecmp
g  flexible network design   灵活的网络设计
h multicast and unicast instead of broadcast addrss     组播 单播替代广播
i support for VLSM and discontiguous subnets  支持VLSM和不连续子网     所有无类的路由选择协议均支持
j manual summarization at any point in the internetwork     手动汇总    需要关闭自动汇总   
k support for multiple network layer protocols    支持不同网络协议栈 tcp/ip  appletalk   ipx/spx等等 可以同时运行多 个eigrp的进程  互相不影响     MPLS VPN 需要用到此种技术    
 
 
 
EIGRP    细节
1.表
a 邻居表   ip eigrp neighbor table         建立邻居之后发送routing table中的路由条目(最优的)到topologytable
内容  next-hop router    |     interface 
b 拓扑表 topology table 比路由表多fd可行距离和ad通告距离两项内容   每条路由条目都携带这两个参数       相同目的地的多条路由有好有坏(由dual算法来计算)   有最优的和可备份的    其他的比较次的路由会被 协议给隐藏     将最优的路由条目放到routing table中        同时维护一个备份的路由
内容 destination1|       
c 路由表     仅仅是最优路由条目   routing  table
内容 destination1|       
 
 
2.建立邻居    (排错注意事项)   满足的条件
a     相同的AS号  表明自己路由器属于哪个AS组    association
     b 相同的k值  衡量路径的优劣 k1-k5  默认值为  1  0  1  0  0    分别对应bandwidth 带宽   dely延迟      
 reliability可靠性      load负载           mtu最大传输单位
即默认情况下 计算路径好坏只计算带宽和可靠性
也可以修改其他的k值
c 相同的认证
3.分组报文类型
hello问候       update与rip报文一样    query查询 reply应答 ack确认   
 
dual算法:涉及到查询和应答报文
本地计算 和扩散更新计算  
本地计算是路由切换时使用     最优路由切换到备份路由继续使用时就是本地计算
扩散更新计算 :当一台路由器丢失了一条去往某网段的路由   同时并没有备份路由  此时需要进行此计算 询问邻居
步骤:
a 给邻居发送查询报文query   询问去往某网段怎么走    组播
b 单播 邻居查询自己的路由表   如果有就单播给源路由器   告知有路由条目并发送此条目     如果没 有同样告 知没有此路由   即无论有没有路由条目都必须用发送reply应答报文
如果邻居一直没发送reply报文    则会dual计算失败  会等待180s  如果还没有   则down掉与此邻居的 邻接关系       
 
4.eigrp的重置邻居关系的三种方式:
a 三倍的hello时间未收到hello
b query报文发送后  180s内没有收到应答
c 给对方发送了16份可靠传输报文重传    都没有收到ack应答
根据eigrp报文的格式    由于是ip格式封装   并无可靠性可言     所以eigrp内部提供与tcp类似的可靠性的确认重 传机制     需要ack报文的确认报文应答    确认重传机制    支持最大的重传次数为16次
上面五中报文中     hello报文    不需要确认重传机制   因为周期性发送
更新报文 需要确认重传机制 不周期性发送
查询报文 需要确认重传机制
应答报文 需要确认重传机制
5.ack与hello的区别  
报文中都有一个ack位   如果置0   就是hello报文;如果置为1就是ack报文
ack只能单播     而hello可以单播也可以组播
6.EIGRP metrics    度量值计算    包括k1-k5的5个方面   取值为0-255
带宽  延迟 负载 (默认1)                 可靠性(默认255)          最大传输带单元
其中可靠性指的是报文发送成功率    丢包率    来评测   
负载     链路带宽利用率       流量越多  负载越大        流量约少负载越小      选择负载越小的越好   路径越优
负载和可靠性的值默认值 负载为1      可靠性为255      不会根据链路的状态而动态  改变        需要通过管理                                   命令来修改
MTU一般不会出现在度量值的计算当中
计算公式:k1-k5默认值为 10110
默认:metric=bw+delay           
delay=总延迟      10的-5次方为单位来表示    即10微s 为单位
bw=10的7次方/BW    单位为kb/s
metric=k1*bw+((k2*bw)/(256-load))+k3*delay
if k5 !=0
则Metric=metric*[k5/(reliablity+k4)];  最后再*256    一般不用mtu计算度量值
实例:k1-k5如何取值
a-------b------c   为完整的路径  
负载为ab     ac两链路的最大值为完整路径的负载
带宽为ab ac两链路中最小的的为完整路径的带宽
延迟为ab ac两链路累加到一起 为完整路径的延迟
mtu为ab ac两链路的最小值
可靠性为ab ac的最小值
默认情况下只用带宽和延迟来计算度量值
接口的选择:统一的计算标准   基于控制层面路由流向所有入接口    提取所有入接口的所有带宽和延迟   带宽取 最小    延迟取和
EIGRP Path Calculation     router c
 
EIGRP - 骡子 - stupidmule@126 的博客
 
a 上图中路由器c中有三张表分别是邻居表     拓扑表 最终路由表
b 假设目的网段为d  c-a-d      和c-b-d   两条路由
拓扑表中fd表示可行性度量值  fd最小的为最优路由 2000代表路由器 c通过a到达d     即cad的度量值 ad代表通告度量值 1000代表路由器a到达目的网段的度量值 ad的度量值
  同理 fd=2500为cbd的度量值
ad=1500 为bd的度量值
  
c 判断拓扑表中的路由能否成为备份路由的条件    FC 表示可行性条件专门用来选取备份路由
此路由中的ad值需要小余最优路由的fd的值  才能成为备份路由
在图中显示即bd的度量值小余cad的度量值   才能保证报文传递时距离目的地越来越近     否则如果bd大于cad表 示距 离目的地越来越远 有可能成为环路
d 图中successor表示最优路由的下一跳路由器       又叫后继站
feasible successor表示次优路径并且能够成为备份路由的下一跳路由器
 
 
EIGRP Configuration   配置命令
EIGRP - 骡子 - stupidmule@126 的博客
 
a autonomous-system  进程号或者叫名字  12.4ios版本 取值范围1-65535   必须是阿拉伯数字
  15.xios版本 支持命名式的进程号    需要指定as号   两台邻居路由器as 号需要一致
b 关闭自动汇总     no auto-summary
c 支持两种宣告
1.主类宣告     与rip v2类似   主类网络号
2.精确宣告 利用通配符掩码方式    直接指定路由器的某个接口的ip地址    宣告进eigrp进程
 
 
 
 
实例
EIGRP - 骡子 - stupidmule@126 的博客
 
1.需求
 r1-3为路由器   运行eigrp路由选择协议        r4   r5模拟pc机         r4获取r5dhcp服务器分配的ip地址
r1地址  s1/0 12.1.1.1 255.255.255.0
s1/1 13.1.1.1  255.255.255.0
r2地址 f0/0 24.1.1.2  255.255.255.0
s1/1 12.1.1.2 255.255.255.0
r3地址 s1/0 13.1.1.3 255.255.255.0
f0/1 35.1.1.3 255.255.255.0
r5地址 f0/0 35.1.1.5 255.255.255.0
2.命令
a dhcp server设置
r2#int fa 0/0
#ip helper-address 35.1.1.5 中继
 
r5#service dhcp
#ip dhcp pool 24
#network 24.1.1.0 255.255.255.0
#default-router 24.1.1.2
#dns-server 24.1.1.2
#ip dhcp excluded-address 24.1.1.1 24.1.1.3
#ip default-gateway 35.1.1.3

b eigrp 设置   
r2#router eigrp 90    90 为eigrp进程号  id号    一般用管理距离值
#no auto-summary 取消自动汇总
#eigrp router-id 2.2.2.2  路由器id   距离矢量协议中用不到   但是在链路状态协议中是重要的
建立邻居时会用到
#network 24.1.1.2 0.0.0.0    宣告接口   更精确
#network 12.1.1.2 0.0.0.0 
 
r1#router eigrp ccie
#address-family ipv4 unicast autonomous-system 90
地址簇    同一个进程支持多个协议    既可以支持v4又可以支持v6  也可以同时支多个不同的 网络
#eigrp router-id 1.1.1.1  定义路由器id
#network 12.1.1.1 0.0.0.0 宣告接口
#network 13.1.1.1 0.0.0.0 
#topology base    关闭自动汇总
#no auto-summary
   
#show run | section router eigrp    验证命令
 
同时在ipv6上运行eigrp协议
#address-family ipv6 unicast autonomous-system 90
 
 
 
 
r3#router eigrp ccie
#address-family ipv4 unicast autonomous-system 90
#eigrp router-id 3.3.3.3
#network 13.1.1.3 0.0.0.0
   #network 35.1.1.3 0.0.0.0
   #topology base
   #no auto-summary
 
 
实例2        手工汇总
EIGRP - 骡子 - stupidmule@126 的博客
1.r4地址    192168.1.4    255.255.255.0
r6地址 192.168.0.6    255.255.255.0
r2地址 192.168.1.2    255.255.255.0   连接r4     作为r4的网关
192.168.0.2    255.255.255.0 连接r6 作为r6的网关
取消r5的dhcp服务器功能
2.在r2的ser1/1接口   作手工汇总 
#router eigrp 90
#network 192.168.0.2 0.0.0.0宣告接口
#network 192.168.1.2 0.0.0.0      之后在r1上验证路由表
 接口级别汇总   控制层面的路由流向的出接口
 
r2#int ser1/1
#ip summary-address eigrp 90 192.168.0.0 255.255.254.0      手工汇总的命令
192.168.0.0/23   会出现在r1的路由表中   取代之前出现的两条路由 192.168.0.2和192.168.1.2
 
 
3.认证    与ripv2类似  eigrp但是只支持密文认证
r2#conf t
#key chain r2
#key 1
#key-string  密钥值
#int ser1/1
#ip authentication key-chain eigrp 90 r2
#ip authentication mod eeigrp 90 md5
 
 
其中r1为15.x版本的ios所以 认证命令需要在eigrp进程中进行设置   新版本的eigrp
r1#router eigrp ccie
#address-family ipv4 unicast autonomous-system 90
#af-interface serial 1/0 进入接口    在接口下进行认证
#authentication key-chain r1
#authentication mode md5
 
实例3 修改路由度量值     dual重新计算最优路径
EIGRP - 骡子 - stupidmule@126 的博客
   选路   要求修改度量值    使用r2-r1-r3-r5路径
1.准备工作
配置r2和r3新加入接口的ip地址
 r2  s1/0  23.1.1.2     255.255.255.0
#router eigrp 90      进程号
#network  23.1.1.2 0.0.0.0 宣告接口
#
 
r3   s1/1    23.1.1.3   255.255.255.0
#router   eigrp    ccie    进入进程
#address-family ipv4 unicast autonomous-system 90
 
#network 23.1.1.3 0.0.0.0
 
r2#show ip route eigrp   显示    35.1.1.0【90/2172416】   中括号中的数值为度量值
2.计算路径的度量值
 
 
上面的的2172416 计算的方法
路径为r2-r3-r5 需要提取带宽和延迟值
  需要用到控制层面路由流向的入接口 r3的fa0/1 和 r2的serial1/0
r3#show interface fa0/1 显示接口的具体信息可以看到
BW 100000kb/s DLY 100 usec 一个是带宽 一个是延迟
根据上面的值计算
r2#BW  1544kb/s       DLY 20000 usec   
计算得带宽得(10的7次方)/1544=6476    总带宽
延迟得(20000+100)/10=2010
(6476+2010)*256=2172416
r2-r1-r3-r5的度量值就是在上面的度量值基础之上  多计算了r1的serial1/1接口的延迟
所以为(6476+2010+2000)*256=2684416
 
3.使用r1的路径    而不用直接走r3到r5
修改度量值方式与rip一样    使用偏移列表
a r2#access-list 10 permit  35.1.1.0
#router  eigrp  90
#offset-list 10 in 600000 serial 1/0  
#end
#clear ip route *
 
验证#show ip route eigrp
显示路由经过r1    度量值为2684416为最优路由条目
b 声明被动接口
r2#router eigrp 90
   #passive-interface fastethernet 0/0
   #passive-interface fastethernet 0/1
 
验证:show ip protocol   可以查看哪些接口是被动接口   也可看到v值   非等价负载开关
c 非等价负载均衡
EIGRP - 骡子 - stupidmule@126 的博客
 
条件一:(最优路径的fd)*v值》=(次优路径的fd)        但是由于度量值不同  所以负载不一样  一个大一个小
条件二:次优路径的ad必须要小余最优路径的fd
同时满足以上两个条件   此次优路径就可以加入路由表   与最优路由一起负载均衡   
设置v值命令
r2#router eigrp 90
#variance 2     设为2
 
排错命令
a show run | section router eigrp    查看eigrp全局的配置命令
b  show ip route eigrp   查看是否有目标路由条目      看是否有过滤
c 1.查看是否有邻居 show ip eigrp neighbors     查看as号是否一致
2.查看宣告接口    是否有报文在排队   show ip eigrp interfaces     
3.查看k值 router eigrp  90
metric weights 0 1 0 1 0 0   其中第一个0代表 tos值   只能为0  其余一次为k1-k5
4.查看秘钥是否启用 并且一致
posted on 2017-11-27 09:18  学习记录园  阅读(4023)  评论(0编辑  收藏  举报