弥散更新算法(DUAL)是一个收敛算法.它代替了其他距离矢量协议使用的Bellman-Ford 算法。路由环路.甚至是在协议完全收敛前出现的瞬时环路.都会对网络性能造成不良影响。为了防止环路的形成.DUAL使用弥散计算的概念.执行分布的最短路径计算.并在执行这些计算的过程中.维护一个无环的环境。DUAL是EIGRP路由协议的核心。
 
拓扑表中集中存储了EIGRP进程的数据。拓扑表这个名称可能并不特別贴切.因为EIGRP毕竟还是一项距离矢量路由协议.它本身对网络的拓扑一无所知。尽管如此.拓扑表是EIGRP储存所有路由信息的地方.其中包含以下这些内容:
 
•每个己知目的地网络的前缀(地址/网络掩码);
•目的地网络的可行距离;
•每个通告了目的地网络的邻居路由器地址.以及去往这个邻居的出接口;
•每个邻居通告的目的地网络度量值.以及通过这个邻居去往目的地网络的路径度量值;
•目的地网络的状态;
•网络的其他信息(各种内部标记、网络类型和源等)。
 
EIGRP会通过以下途径生成并更新拓扑表:本地注入的网络(加入EIGRP的直连接口、本地重分布的路由).以及接收到的EIGRP更新包、査询包、响应包、SIA査询包和SIA响应包中通告的网络。所有通过EIGRP学习到的网络都会被放入拓扑表中.EIGRP会在所有邻居中.査找通告了最低总开销路径的邻居.并确认该邻居提供的是无环路径;找到后.它会把通过这条邻居去往该网络的路径放入路由表中。要记住.远端网络必须首先出现在拓扑表中.才能放入路由表中。
 
拓扑表中记录的每个网络都关联着一个状态信息。这个状态可以是被动或活动.被动状态表示EIGRP己经找到了去往这个网络的最短路径.并且对这条路径感到满意.活动状态表示EIGRP目前正在为这个网络寻找最短路径。在稳定拓扑中.所有路由器都应该处于被动状态。活动状态总是与发送査询包的路由器相关.这台路由器会让它的邻居也参与到寻找新路径的过程中。处于活动状态中.路由器无法修改路由表中特定网络的路由.也就是说路由器无法从路由表中移除这条路由.或者修改它的下一跳。只有当发出査询包的路由器从它的所有邻居那里接收到了响应包.活动状态才能圆满结束。直到那时.这条路由才能再次进入被动状态.路由器可以做出新的最短路径选择.并最终更新路由表中的条目。前文己经提到过.EIGRP在其设计中.可以避免在每个路由进程中出现路由环路。在路由进入活动状态后.在路由表中保留这条之前还能用(且无环)的路由.这种做法保证网络中不会出现环路.这条路由现在可能己经不是最优的了.甚至可能己经不可达了.但它仍是无环的。在弥散计算结束后.路由器会选出一条新的无环最有路径并开始使用它。EIGRP实际上是以这样一种方式工作的:它总是把一条无环路径换成另一条无环路径.并不会出现有可能形成环路的中间过渡状态。现在将其简要总结如下。
 
•如果在一台路由器需要选择一条新的最短路径时.提供了那条路径的邻居能够确保自己无环.那么这条路由就会保持在被动状态中.因为路由器己经拥有了做出正确选择的所有信息。
•如果提供了最短路径的邻居无法保证自己无环.或者根本没有提供最短 路径的邻居.路由器就需要进入活动状态。
 
下例中展示了路由器中EIGRP拓扑表中的内容.命令的输出内容以下图中的路由器R1为 例。这个网络中运行IPv6 EIGRP.R1和所有其他路由器之间的串行链路上只配置了IPv6链路本地地址.格式为FE80::〈路由器编号〉。图右侧的LAN是一个被动网络(R2、R3和R4连接在LAN中的接口都被配置为被动模式;因此不会通过它们建立EIGRP邻接关系).它所使用的全局IPv6前缀是2001 :DB8:CC1E:: /64。R4将去往2001:DB8:FFFF:: /48的静态路由重分布到EIGRP中。为了简化度量值的汁算.这个网络中的EIGRP只在计算中使用延迟度量参数 (K3=l.所有其他K值都设置为0)。工程师按照拓扑所示.配置了每个接口的延迟值。之所以在这个案例中使用IPv6.是因为这样做可以只使用链路本地地址实现最多的互连.而且这 样做可以使各种show和debug命令具有更强的可读性。为了简化案例.本例中只使用经典度量来选择路由。要记住.EIGRP会对计算出的经典度量值乘以256。注意仔细阅读案例中的注释内容。
这条命令显示EIGRP进程的AS号,Router ID,收集到的本地注入或从其它邻居学到的网络信息。输出中到2001:DB8:CC1E::/64的下一跳为FE80::3(R3)和FE80::3(R3),R4当前不满足成为预期下一跳的可行条件。这个命令是少数的几个之一真实展示EIGRP进程的Router ID的命令
 
使用all-links关键字,显示所有邻居通告的网络,也显示那些不满足可行条件检查的。
2001:DB8:FFFF::/48 还是只有一个邻居是因为EIGRP使用了毒性反转的水平分割。因为R2和R3使用R1作为他们到2001:DB8:FFFF::/48的下一跳,他们通告回R1一个无限度量。
 
 
通过关联一个指定的网络,显示出它的详细信息,注意存储的关于网络的信息:
状态,继承者数量,可行距离,覆盖线路类型的每个邻居的信息,到邻居的路径单独的度量成分,和混合计算度量的结果。
 
 
如果关于外部网络(重分布)的详细信息被拉入拓扑表,除了显示的信息之外,外部网络也携带关于执行重分布的路由器的信息,和原始的重分布路由,例如原始类型,AS号,或metric度量。
 
 
 
 
 
 
 

最新文章

  1. ASP.NET State Server 服务 sessionState
  2. swift 2.2 语法 (上)
  3. Windows Phone 8 解锁提示IpOverUsbSvc问题——IpOverUsbEnum返回No connected partners found解决方案
  4. 记录js的一些小技巧
  5. android 学习随笔十(网络:get、post提交数据)
  6. ASP.NET中Button控件的CommandName和CommandArgument属性用法
  7. Session深度探索
  8. Binomial Coeffcients 历届山东省省赛题
  9. 关于C#中readonly
  10. 玩转nodeJS系列:使用cluster创建nodejs单机多核集群(多进程)
  11. Python3 的序列
  12. obj-c利用dispatch库并发示例
  13. 聊聊Socket、TCP/IP、HTTP、FTP及网络编程
  14. Javascript 4.3 事件处理函数
  15. 固定浮动侧边栏(SmartFloat)
  16. jQuery学习笔记(一)
  17. [ 9.24 ]CF每日一题系列—— 468A构造递推
  18. strstr函数字符串匹配问题
  19. POJ 2608
  20. C++11 自动推导auto

热门文章

  1. python-基站位置查询
  2. python_Excel_xlwt
  3. nginx四种均衡策略
  4. Thinkphp5 post提交模糊查询带分页如何保留参数
  5. 前端内网穿透,localtunnel你值得拥有!
  6. Lambda表达式用法大比较: Scala和Java 8
  7. Maven系列(二) -- 将开源库上传到maven仓库私服
  8. 第 7 篇:文章详情的 API 接口
  9. redis 缓存穿透,缓存雪崩,缓存击穿
  10. MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)