思科EIGRP及命名的EIGRP的协议解析

• 高级距离向量
• 快速收敛
• 支持可变长子网掩码(VLSM)和不连续子网
• 触发式更新
• 支持多种网络层协议
•可伸缩的网络设计
• 使用组播(224.0.0.10)和单播代替广播
• 可以在任意一点做手工汇总
• 100%无环的无类路由协议(使用DUAL算法)
• 容易为广域网和局域网配置
• 支持等价和非等价的路径负载

EIGRP 的关键技术
– 邻居的发现和恢复——使用hello报文
– 可靠传输协议(RTP机制)——确保EIGRP邻居间的数据包有序地可靠传输
(可靠组播-224.0.0.10.同时接收到组播数据包的邻居会发送一个单播的确认包)
– DUAL(扩散算法)有限状态机——选择最短的、无环的路径到每个目的地
邻居宣告
R1(config)#router eigrp 90 创建EIGRP的AS号为90
R1(config-router)#no auto-summary 关闭自动汇总
R1(config-router)#network 12.1.1.1 0.0.0.0 宣告自身设备的直连网段
用单播建立eigrp邻居
R3(config)#router eigrp 90
R3(config-router)#neighbor 34.1.1.4 e0/0
R3(config-router)#network 34.1.1.3 0.0.0.0

R4(config)#router eigrp 90
R4(config-router)#neighbor 34.1.1.3 e0/0 建立邻居的IP地址和出接口
R4(config-router)#network 34.1.1.4 0.0.0.0

建立邻居的条件
1,K 值不同无法建立邻居
2,AS 号不相同无法建立邻居
3,认证通过
4,主地址下发出hello 包
5,即使hello时间和holdtime不匹配也可以建立邻居关系
6,两端必须都是单播或者都是组播才可以建立邻居
7,被动接口上是不能建立邻居的

Eigrp的三张表
邻居表—— 描述运行 EIGRP 的直连路由器(邻居)信息(show ip eigrp neighbors)
拓扑表—— 描述从 EIGRP 本身或者邻居学习到的路由信息(show ip eigrp topology)
路由表——从 EIGRP 拓扑表选出最优的路由放入路由表(show ip route eigrp)
验证
邻居表
在这里插入图片描述

Hold time :默认值为 15 秒; 邻居表中的hold time数值,来自对等体;该计时器是一个倒计时的计时器,一旦从邻居收到新的hello报文,将会根据新的hello报文中的参数刷新该数值;计时器到期,将会重置邻居关系;
Uptime: 建立起邻居的时间
SRTT:往返时间本路由器发送更新到收到邻居的确认信息这段时间
RTO:重传超时时间(应该是SRTT的6倍) 在本路由器在规定时间内没有收到邻居的确认信息,需要重传,rto用于确定什么时候重传:在组播发送数据包的时候,该数据包的单播拷贝会放进一个重传队列中排队,一旦这个这个 组播数据包发送失败,即没有收到邻居的Ack确认,那么这个拷贝就会被再次发送出去,而触发这个动作的时限, 即等待这个Ack的时间就称为RTO(重传超时),如果重传16次还没有得到确认,这个邻居就被宣布无效(16次重传机制)
Q cnt:队列计数,表示有多少个可靠报文还没有得到确认,在运行正常的环境下该值应为0。
seq:序列号

查看拓扑信息
在这里插入图片描述路由表
在这里插入图片描述

EIGRP报文

  1. hello: 用于建立和维护EIGRP的邻居关系Destination224.0.0.10.
  2. Update: 用于发送EIGRP的路由更新信息Destination224.0.0.10,当只有一个peer需要更新时为单播——可靠包
  3. Query: 用于向邻居发出路由的查询信息Destination224.0.0.10.——可靠包
  4. Reply: 用于响应路由信息查询(Unicast)——可靠包
  5. ACK: 用于EIGRP的可靠传输的确认,是对2.3.4三种包的确认。 (unicast packet,对update、query、reply进行确认).
  6. SIA-Query:用于避免SIA超时导致邻居关系重置——可靠包
  7. SIA-Reply:用于避免SIA超时导致邻居关系重置——可靠包

RTP(可靠传输机制)
可靠包(需要确认的):update、query、reply
1.eigrp路由器为每个邻居维护一个重传输列表
发送可靠报文的同时,先将此报文放入“重传输列表”中
如果对方返回ACK,则从“重传输列表”中将此报文删除
如果到达RTO的时间,也没收到ACK,则重新发送这个包。重传最大次数为16次,如果都没收到确认,则邻居关系down(重传用单播)

2.更新时是1到1的窗口机制,上一个包发送完(每一个可靠的包都要求被确认),才发下一个包

EIGRP对等体(邻居)通讯过程
1,双方接口开启EIGRP能力
2,一旦一方收到了符合对等体条件的hello报文,则立刻形成邻居表项;
3,向对等体发送update报文,但并不携带实际内容 (init)
4,双方确认完init的update报文 (隐式确认)
5,开始交互路由,发送Query和Reply
6,最后使用ack确认

EIGRP Metric
使用以下五个参数来计算度量值:
• Bandwidth 带宽
• Delay 延时
• Reliability 可靠性
• Loading 负载
• MTU 最大传输单元
EIGRP 度量值的计算方法

Metric = 256×(10 7 /BW min + Delay sum /10)
度量值参数从路由更新的入向取值
带宽取值: 路由沿途更新入接口的最小带宽 (木桶原理) 单位:KB
延迟取值: 路由沿途更新所有入接口的延迟总和 单位:microseconds/10
严重注意:度量值的计算过程中,每一个值的计算结果要取整
show ip eigrp topology 44.1.1.1/32 //查看EIGRP度量值

DUAL算法
3.1 四个术语–AD、FD、S、FS
FD(可行距离):本地到目的网络的总长称为FD,路径的metric
AD(通告距离):每个邻居到目的网络的metric,每个前缀都会有一个AD
总长最小的(最小的FD)即为最优路由
S(后继路由器):最优路径的下一跳路由器
FS(可行后继路由器):次优路径的下一跳路由器 有冗余链路时才可能有FS

成为FS的条件(可行条件FC–用于防环):
FS的AD<S的FD(等于都不行)

注意:
1.FS是次优的无环路径
2.不能成为FS的路由不会放入拓扑表中

DUAL有限状态机
DUAL有限状态机用于计算路由,保证无环网络
– Advertise Distance AD = 邻居到达目的地的成本
– Feasible Distance FD = AD加上到达邻居的成本
– Successor 后继= 拥有最低成本路径的下一跳邻居(最低的FD,最低的Metric)
– Feasible successor (FS) 可行后继=次佳路径的下一跳邻居( AD小于后继的FD)
– 可行性条件 FC (Feasibility Condition) 满足“FC=AD<FD”这个条件的路由条目将会放入到EIGRP的拓扑表中。
如果一条路由丢失,并且存在可行后继,那么可行后继会被立刻提升为后继,实现快速收敛
如果一条路由丢失,并且不存在可行后继,则向所有邻居发送query,必须收到所有邻居的reply,才算query完毕

DUAL有限状态机的决策过程
1.跟踪邻居通告的所有路由
2.用S和FS选择无环路径
3.当EIGRP失去后继或失去路由时,将立刻查询拓扑表是否有可行后继;
有:立即将其提升为后继,并通知邻居
没有:则进行DUAL计算;即发送查询分组,直至收到回复。
对于被查询的邻居:
1、有相关路由,则回复后继的相应的合法度量值;
2、没有相关路由,有其它邻居,则继续传递查询;
3、没有相关路由,没有其它邻居,回复度量值为无穷大的回复分组,表示没有可替换的路由;
三、海选
DUAL计算完成时,始发者会将该路由的FD设置为无穷大,确保所有合法度量应答都满足可行条件,并成为FS,至此DUAL结束;
之后执行本地计算,先选取一个合法FD最小的成为后继,然后将不符合实际FC条件的条目从拓扑表中删除;

查看所有路径(包括不是FS的路由):
sh ip eigrp topology detail-links
或:
sh ip eig topology all-links

EIGRP 路由汇总
自动汇总
只对自己直连路由有效,对邻居传过来的路由无效,生成主类的汇总路由(有类边界自动汇总),并且会在本地形成一条管理距离为 5,出接口指向 null 0 的汇总路由
R1(config)#router eigrp 1
R1(config-router)#auto-summary //开启全局自动汇总

手工汇总
手工汇总是无类的,可以汇总非直连的路由(学习过来的路由),并且会在本地形成一条管理距离为 5,出接口指向 null 0 的汇总路由
手工汇总具有方向性,仅仅在汇总接口的方向向外传递
支持自定义汇总路由的管理距离和复合度量值
R1(config)#int s1/0
R1(config-if)#ip summary-address eigrp 90 10.1.4.0 255.255.252.0

负载均衡
修改接口参数影响的是所有路由
偏移列表 offset-list
in方向,影响本设备
out方向,影响邻居设备
偏移列表对路由进行精准操控,但该列表只能增加度量值,不能减少
R5(config)#access-list 1 permit 10.1.5.0 0.0.0.0
R5(config)#router eigrp 1
R5(config-router)#offset-list 1 out 1888256 e0/2 //调用控制列表,在出方向调整偏移量

非等价负载均衡
让去往相同目的地数据通过多条路径转发,并且转发成本是不一样的(metric不一样大)
非等价负载均衡的条件: 必须是可行后继才允许参加非等价负载均衡
计算方法
FS的FD / Successor的FD = X // 该数值向上取整,比如 1.2 则取 2
一, 计算过程
R1#sh ip eigrp topology 44.1.1.1/32
13.1.1.3 (Serial1/1), from 13.1.1.3, Send flag is 0x0
Composite metric is (2323456/409600), route is Internal
12.1.1.2 (Serial1/0), from 12.1.1.2, Send flag is 0x0
Composite metric is (2809856/2297856), route is Internal
2809856/2323456=1 (此时不能使用1 ,应当比1大)
二操作
R1(config)#router eigrp 90
R1(config-router)#variance 2
三验证
R1(config)#do sh ip route eigrp
44.0.0.0/32 is subnetted, 1 subnets
D 44.1.1.1 [90/2323456] via 13.1.1.3, 00:00:12, Serial1/1
[90/2809856] via 12.1.1.2, 00:00:12, Serial1/0

必须存在FS【FC=AD<FD】
variance 的数值必须大于 FSD的FD / S的FD;
Variance的值为两个FD相除向上取整

EIGRP的SIA
当一条路由消失且没有可行后继可用时,丢失的路由处于不稳定状态,并会向除了拥有successor的接口发送查询
如果邻居有路由会回复reply,否则会继续发送查询发给邻居的邻居
如果三分钟内没有收到reply,会reset所有没有回复的邻居
当路由器得到所有邻居的答复之后路由器将计算后继信息
– 默认情况下:如果邻居3分钟内不答复这个查询,说明发生了 SIA路由器将重置这个邻居的邻居关系.
思科针对于SIA新开发了两种报文(SIA-QUERY/SIA-REPLY)
在这里插入图片描述

如果由于某个路由器故障,无法回复ack,则它的前一个路由器便卡在了active状态,结果会导致与之相关的所有邻居全部断掉,导致许多路由器的路由条目都要更新,会使网络不稳定。
所以为了应对这种情况,新版本的EIGRP又增加了两种报文,SIA-Query报文和SIA-Reply报文
当active-time到了90秒的时候,A会给B发送SIA-Query报文,询问你是否也卡在了active状态,这个时候B先回复一个ack报文,然后再回复SIA-Reply告诉A是的,这个时候A发现B这里没问题,于是等180秒到了以后,邻居关系就不会断掉。(最多发送3次)
同样地,B也会给C发送SIA-query报文,但是C由于某些原因无法回复,所以等180秒到了以后,B和C的邻居关系就断掉了,但是A和B的邻居关系正常维持。

操作方案
1.使用汇总
2.利用AS边界限制查询范围
3.末节路由器
通过命令把远程路由器配置成Stub路由器,Stub路由器会向所有邻居发送信息告之自已的状态,其他路由器将不会向Stub路由器发送查询。
R1(config-router)#eigrp stub ?
connected Do advertise connected routes 泄露直连路由
leak-map Allow dynamic prefixes based on the leak-map 泄露图
receive-only Set receive only neighbor 不发送任何路由
redistributed Do advertise redistributed routes泄露重分布的其他IGP路由
static Do advertise static routes泄露重分布的静态路由
summary Do advertise summary routes泄露汇总路由
默认情况是直连加汇总

泄露路由
如果stub路由想要将自已学到的路由再传给下一路由器,需要用到leak-map

R1(config)#access-list 10 permit 0.0.0.0 0.0.0.0
R1(config)#route-map LEAK permit 10
R1(config-route-map)#match ip add 10
R1(config)#router eigrp 90
R1(config-router)#eigrp stub leak-map LEAK

认证
– EIGRP 只支持 MD5 认证方式.
– 路由器生成并校验每一个 EIGRP 包.路由器验证它所收到的每个路由更新数据包 .
– 配置一个密钥 (password) 以及密钥 ID; 每一个邻居都必须有相同的密钥.
R1(config)#key chain ccie //配置秘钥名称
R1(config-keychain)#key 1 //配置秘钥序号
R1(config-keychain-key)#key-string ccnp //配置秘钥密码
R1(config-if)#int s1/0
R1(config-if)#ip authentication mode eigrp 1 md5 // 设置认证模式为MD5 (32位只支持md5认证)
R1(config-if)#ip authentication key-chain eigrp 1 ccie //调用秘钥

命名的Eigrp
计算公式
提前条件,默认情况下 k1=k3=1, k2=k4=k5=k6=0
在这里插入图片描述R1(config)#router eigrp ccie //64位eigrp命名 (32位后面跟数字)
R1(config-router)#address-family ipv4 unicast autonomous-system 6 //ipv4的单播地址族自治号码为6
R1(config-router-af)#network 10.0.0.0 //宣告网络
R1(config-router)#address-family ipv6 unicast autonomous-system 66 //ipv6的单播地址族自治号码为66
R1(config-router-af)#no shutdown
IPv6使用最强认证,密钥及密钥链自定义
R1(config-router)#address-family ipv6 unicast autonomous-system 66
R1(config-router-af)#af-interface s1/0
R1(config-router-af-interface)#authentication key-chain ccie //调用秘钥
R1(config-router-af-interface)#authentication mode hmac-sha-256 cisco //对MD5进行再次验证的密码为cisco

Eigrpv6
直接配置在接口,而不必须有全局单播地址,可以无网络状态
必须一个router ID
不再有route-map的命令,取而代之的是前缀列表
默认情况下 eigrp 进程是关闭的,需要在进程下做 no shutdown
R4(config)#ipv6 unicast-routing
R4(config)#ipv6 router eigrp 100
R4(config-rtr)#no shutdown
R4(config-rtr)#eigrp router-id 4.4.4.4
R4(config-if)#int e0/0
R4(config-if)#ipv6 enable
R4(config-if)#ipv6 eigrp 100 接口下宣告
.

被动接口
·EIGRP中也可以将一个接口设置为被动接口
·被动接口将不收也不发。所以根本无法和对端路由器建立邻居关系。

方案一
R4(config)#router eigrp 90
R4(config-router)#passive-interface loopback 0 将该接口设置为被动接口
方案二
R4(config-router)#router eigrp 90
R4(config-router)#passive-interface default 将所有接口设置为被动接口
R4(config-router)#no passive-interface s1/1将不是被动接口的从被动接口中剔除
R4(config-router)#no passive-interface e0/0
验证
R4#show ip protocols
在这里插入图片描述默认路由
重分布静态路由(推荐)
R3(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.14
R3(config-router)#redistribute static //重分布静态路由

路由汇总(注意方向性)
R2(config-router)#int s1/0
R2(config-if)#ip summary-address ei 1 0.0.0.0/0 //接口下汇总路由
R2(config)#ip route 0.0.0.0 0.0.0.0 s1/1 //写静态路由发布出去

network方式(会把自身的所有直连都宣告出去)
ip route 0.0.0.0 0.0.0.0 serial 0
router eigrp 90
network 0.0.0.0

注意:EIGRP中也有default-information 命令,不过这条命令不是用来下发默认路由的,是用来决定本路由器是否要收默认路由,或者是否要传默认路由。而且只对ip default-network(已经淘汰)命令下发的默认路由起作用。

水平分割
EIGRP中默认也是开启水平分割的
int s1/0
no ip split-horizon eigrp 90 //在接口上使用这条命令可以关闭水平分割

EIGRP最大hop数
在EIGRP路由器上可以设定可用路由的最大跳数。
如果一台路由器收到的路由传递的跳数已超过了自已设定的最大跳数,这条路由将不用也不传。
默认情况下是100,最大可修改为255
router eigrp 90
metric maximum-hops 255

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值