6. DUAL算法
1. DUAL 术语
DUAL有限状态机用于计算路由,保证无环网络
Advertise Distance AD = 后继到达目的地
Feasible Distance FD = 当前路由器通过后继到目标网络的距离
Successor 后继 = 拥有最低成本路径的下一跳邻居(最低的FD,最低的Metric)
Feasible successor FS 可行后继 = 次佳路径的下一跳邻居(AD小于经由后继的FD)
FC 可行条件 = AD要小于当前的FD
2. 如果后继失效,并且没有可行后继,将触发路由发现进程
尝试向外发送query,发送给所有邻居,内容为关于丢失的路由的查询消息
并且等待回应(reply)
邻居设备收到query之后会回应ack,用于RTP的确认,同时向外传递query消息,直至网络边界
边界设备则开始逐跳回应reply消息
直到所有query消息都得到了reply的回应,才开始重新评估可行后继列表
把该条目的可行后继条件设置为无穷大
然后把所有可能路径计算出FD,这样所有的邻居都会是FS
从中选取最优的作为后继
然后根据当前选举出的后继,就可以得到真正的FC
然后根据当前的FC,得出是否有可行后继
3. DUAL有限状态机
a. 产生输入事件,将重新评估FS列表
输入事件:当路由器直连链路发生变化(up / down、开销变化),收到更新、查询、回复报文
重新评估的过程:
- 本路由器执行一个本地计算,实际上是计算到达所有可能的FS的距离
- 如果距离发生变化,将进行相应的操作,并更新给邻居
- 在没有FS 的情况下,将执行DUAL计算
路由器执行DUAL计算的同时,不能做以下操作:(事件应有序的一次一个的被处理)
- 改变后继路由器
- 改变正在通告的路由的距离
- 改变路由的FD
- 开始路由的另一个DUAL计算
b. 当EIGRP失去后继或失去路由时,将立刻查询拓扑表是否有可行后继;
有:立即提升为后继,并通知邻居
没有:进行DUAL计算,即发送查询分组,直至收到所有回复
对于被查询的邻居:
- 有相关路由,则回复后继的相应的合法度量值
- 没有相关路由,有其他邻居,则继续传递查询
- 没有相关路由,没有其他邻居,回复度量值为无穷大的回复分组,表示没有可替换的路由
c. 海选
DUAL计算完成时,始发者会将该路由的FD设置为无穷大,确保所有合法度量应答都满足可行条件,并成为FS,至此DUAL结束
之后执行本地计算,先选取一个合法FD最小的成为后继,然后将不符合实际FC条件的条目从拓扑表中删除
作业:
在合适的位置对R2和R5 上的10.1.x.x的环回口做合理汇总,实现EIGRP网络的优化