【重识云原生】第四章云网络4.3.5节——EIGRP协议

 《重识云原生系列》专题索引:

  1. 第一章——不谋全局不足以谋一域
  2. 第二章计算第1节——计算虚拟化技术总述
  3. 第二章计算第2节——主流虚拟化技术之VMare ESXi
  4. 第二章计算第3节——主流虚拟化技术之Xen
  5. 第二章计算第4节——主流虚拟化技术之KVM
  6. 第二章计算第5节——商用云主机方案
  7. 第二章计算第6节——裸金属方案
  8. 第三章云存储第1节——分布式云存储总述
  9. 第三章云存储第2节——SPDK方案综述
  10. 第三章云存储第3节——Ceph统一存储方案
  11. 第三章云存储第4节——OpenStack Swift 对象存储方案
  12. 第三章云存储第5节——商用分布式云存储方案
  13. 第四章云网络第一节——云网络技术发展简述
  14. 第四章云网络4.2节——相关基础知识准备
  15. 第四章云网络4.3节——重要网络协议
  16. 第四章云网络4.3.1节——路由技术简述
  17. 第四章云网络4.3.2节——VLAN技术
  18. 第四章云网络4.3.3节——RIP协议
  19. 第四章云网络4.3.4节——OSPF协议
  20. 第四章云网络4.3.4.3节——OSPF协议工作原理
  21. 第四章云网络4.3.4.4节——[转载]OSPF域内路由
  22. 第四章云网络4.3.4.5节——[转载]OSPF外部路由
  23. 第四章云网络4.3.4.6节——[转载]OSPF特殊区域之Stub和Totally Stub区域详解及配置
  24. 第四章云网络4.3.4.7节——[转载]OSPF特殊区域之NSSA和Totally NSSA详解及配置
  25. 第四章云网络4.3.5节——EIGRP协议
  26. 第四章云网络4.3.6节——IS-IS协议
  27. 第四章云网络4.3.7节——BGP协议
  28. 第四章云网络4.3.7.2节——BGP协议概述
  29. 第四章云网络4.3.7.3节——BGP协议实现原理
  30. 第四章云网络4.3.7.4节——高级特性
  31. 第四章云网络4.3.7.5节——实操
  32. 第四章云网络4.3.7.6节——MP-BGP协议
  33. 第四章云网络4.3.8节——策略路由
  34. 第四章云网络4.3.9节——Graceful Restart(平滑重启)技术
  35. 第四章云网络4.3.10节——VXLAN技术
  36. 第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计
  37. 第四章云网络4.3.10.3节——VXLAN隧道机制
  38. 第四章云网络4.3.10.4节——VXLAN报文转发过程
  39. 第四章云网络4.3.10.5节——VXlan组网架构
  40. 第四章云网络4.3.10.6节——VXLAN应用部署方案
  41. 第四章云网络4.4节——Spine-Leaf网络架构
  42. 第四章云网络4.5节——大二层网络
  43. 第四章云网络4.6节——Underlay 和 Overlay概念
  44. 第四章云网络4.7.1节——网络虚拟化与卸载加速技术的演进简述
  45. 第四章云网络4.7.2节——virtio网络半虚拟化简介
  46. 第四章云网络4.7.3节——Vhost-net方案
  47. 第四章云网络4.7.4节vhost-user方案——virtio的DPDK卸载方案
  48. 第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现
  49. 第四章云网络4.7.6节——virtio-blk存储虚拟化方案
  50. 第四章云网络4.7.8节——SR-IOV方案
  51. 第四章云网络4.7.9节——NFV
  52. 第四章云网络4.8.1节——SDN总述
  53. 第四章云网络4.8.2.1节——OpenFlow概述
  54. 第四章云网络4.8.2.2节——OpenFlow协议详解
  55. 第四章云网络4.8.2.3节——OpenFlow运行机制
  56. 第四章云网络4.8.3.1节——Open vSwitch简介
  57. 第四章云网络4.8.3.2节——Open vSwitch工作原理详解
  58. 第四章云网络4.8.4节——OpenStack与SDN的集成
  59. 第四章云网络4.8.5节——OpenDayLight
  60. 第四章云网络4.8.6节——Dragonflow
  61. 第四章云网络4.9.1节——网络卸载加速技术综述

  62. 第四章云网络4.9.2节——传统网络卸载技术

  63. 第四章云网络4.9.3.1节——DPDK技术综述

  64. 第四章云网络4.9.3.2节——DPDK原理详解

  65. 第四章云网络4.9.4.1节——智能网卡SmartNIC方案综述

  66. 第四章云网络4.9.4.2节——智能网卡实现

  67.  《云原生进阶之容器》专题第六章容器6.1.1节——容器综述

  68. 【云原生进阶之PaaS中间件】第一章Redis-1.1简介

  69. 【云原生进阶之PaaS中间件】第二章Zookeeper-1-综述

  70. 【云原生进阶之PaaS中间件】第三章Kafka-1-综述

  71. 【云原生进阶之PaaS中间件】第四章RabbitMQ-1-简介及工作模式

  72. 【云原生进阶之数据库技术】第一章MySQL-1-基础概述

  73. 【云原生进阶之数据库技术】第二章-Oracle-1-简介

  74. 【云原生进阶之数据库技术】第三章-PostgreSQL-1-综述

  《云原生进阶之容器》专题索引:

  1. 第一章Docker核心技术1.1节——Docker综述

  2. 第一章Docker核心技术1.2节——Linux容器LXC

  3. 第一章Docker核心技术1.3节——命名空间Namespace

  4. 第一章Docker核心技术1.4节——chroot技术

  5. 第一章Docker核心技术1.5.1节——cgroup综述

  6. 第一章Docker核心技术1.5.2节——cgroups原理剖析

  7. 第一章Docker核心技术1.5.3节——cgroups数据结构剖析

  8. 第一章Docker核心技术1.5.4节——cgroups使用

  9. 第一章Docker核心技术1.6节——UnionFS

  10. 第一章Docker核心技术1.7节——Docker镜像技术剖析

  11. 第一章Docker核心技术1.8节——DockerFile解析

  12. 第一章Docker核心技术1.9节——docker-compose容器编排

  13. 第一章Docker核心技术1.10节——Docker网络模型设计

  14. 第二章——Kubernetes概述

  15. 第二章Controller Manager原理剖析--2.1节Controller Manager综述

  16. 第二章Controller Manager原理2.2节--client-go剖析

  17. 第二章Controller Manager原理2.3节--Reflector分析

  18. 第二章Controller Manager原理2.4节--Informer机制剖析

  19. 第二章Controller Manager原理2.5节--DeltaFIFO剖析

  20. 第二章Controller Manager原理2.6节--Informer controller

  21. 第二章Controller Manager原理2.7节--Indexer剖析

  22. 第二章Controller Manager原理2.8节--Resync机制

  23. 第三章List-Watch机制3.1节-- List-Watch机制剖析

1 EIGRP协议简介

1.1 EIGRP协议概念

        EIGRP(Enhanced Interior Gateway Routing Protocol)增强内部网关路由协议,也是Cisco公司的私有协议(2013年已经公有化),它结合了链路状态和距离矢量型路由选择协议的Cisco专用协议,具有快速收敛,减少带宽占用等特点。

        EIGRP是由距离矢量和链路状态两种路由协议混合,因此可以像距离矢量协议那样,从它的相邻路由器那里得到更新信息;也像链路状态协议那样,保存着一个拓扑表,然后通过自己的DUAL算法选择一个无环路径。

        不同于传统的距离矢量协议,EIGRP有着很快的收敛时间,而且不用发送定期的路由更新;也不像链路状态协议,EIGRP并不知道整个网络是什么样的,它只能靠邻居公布的信息。EIGRP使用与IGRP相同的路由算法DUAL(扩散更新算法),DUAL机制是EIGRP的核心,通过它来实现无环路径。内部EIGRP管理距离为90,外部EIGRP管理距离为170,支持等价和非等价负载均衡。IP数据包中,EIGRP的协议字段为88。

1.2 EIGRP的特点

  1. 100%无环:如果整个网络包含在一个自制系统中,EIGRP使用DUAL能保证一张100%无环路由转发表;
  2. 快速收敛:EIGRP使用DUAL(),通过备份路由而实现,当S不可用时,快速切换到FS上从而达到快速收敛的目的;
  3. 使用多播、单播:使用组播(224.0.0.10)或单播进行路由更新,节省链路带宽;
  4. 增大了网络规模:RIP***只能是15跳;而EIGRP***可支持255跳,IGRP为224跳,他们两个默认都为100跳;
  5. 支持三种网络层协议:EIGRP支持IP、IPX、Apple Talk三种网络层协议,这也就增大了EIGRP的使用范围;
  6. 支持变长子网掩码VLSM)和非连续网络:EIGRP是一种无类路由协议,它将通告每个目标网络的子网掩码,支持不连续子网和VLSM,RIP和IGRP则不支持;
  7. 路由信息部分更新策略:减少了带宽的消耗、更好地利用带宽,EIGRP不像RIP和IGRP那样,每隔一段时间就交换一次路由信息,它使用 触发式更新和增量更新,仅当某个目的网络的路由状态改变或路由的度量发生变化时,才向邻居发送路由 更新,因此其更新路由所需要的带宽比RIP和EIGRP小得多。EIGRP从EIGRP分组即将发出的接口上获得带宽 参数,这个参数值是基于接口指定的。例如:默认情况下,所有串行接口都有1544kb/s的带宽,不过这个 带宽值是可以配置的,EIGRP最多可以使用50%的接口带宽来承载EIGRP分组(可以使用ip bandwidth- percent eigrp来修改),这就保证了EIGRP分组不会在主要的网络收敛过程中“饿死”常规的数据分组。RIP和IGRP没有这种特性,所以大量的RIP和IGRP更新分组可能会阻止常规的分组通过。
  8. 无缝连接数据链路层协议和拓扑结构:EIGRP不要求对OSI参考模型的2层协议做特别的配置.不像OSPF,OSPF对不同的2层协议要做不同配置,比如以太网帧中继,EIGRP能够有效的工作在LAN和WAN中,而且EIGRP保证网络及不会产生环路(loop-free);而且配置起来很简单;支持VLSM;它使用组播单播,不使用广播,这样做节约了带宽;它使用和IGRP一样的度量值算法,但是EIGRP度量值是32位的;它可以做非等价的路径的负载平衡.
  9. 配置简单:使用EIGRP协议组建网络,路由器配置非常简单,它没有复杂的区域设置,也无需针对不同网络接口类型实施不同的配置方法。使用EIGRP协议只需使用router eigrp命令在路由器上启动EIGRP路由进程,然后再使用network命令使能网络范围内的接口即可。

1.3 名词解释

  • 度量值:EIGRP使用带宽(bandwidth)、延迟(delay)、可靠性(reliability)、负载(loading)、***传输单元(MTU)这五个值来计算度量,默认情况下只有带宽和延迟起作用。计算公式为——EIGRP度量=[(10^7/路径上的较低带宽)+(所有延迟之和)]×256;EIGRP度量=IGRP度量×256。
  • 可行距离(Feasible Distance):到达一个目的地的最小度量值。
  • 通告距离(Advertise Distance):相邻路由器所通告的它自己到达某个目的地的最小度量值。
  • 可行条件(Feasible Condition):通告距离(AD)小于可行距离的条件即AD
  • EIGRP 后继(Successor):一个直接连接的邻居路由器,它满足FC,通过它具有到达目的地的最小度量值的路 由器。后继路由器被用作下一跳来将报文转发到目的地。
  • 可行后继(Feasible Successor):一个邻居路由器,它满足FC,具有到目的地第二低度量值的路由器。当主 路由S不可用时,FS被用来替代主路由,因而被保存在拓扑表中,当做备用路由。
  • 活跃状态/主动路由(active state):是一种正在搜索FS的状态,当路由器丢失了S,并且没有FS可用时,该路由进入活跃状态,是一条不可用的路由。当一条路由处于活跃状态时,路由器向所有邻居发送查询来寻 找另外一条到达该目的地的路由。
  • 被动状态/被动路由(passive state):是一种目前有正确的路由到达目的地的状态,当路由器失去了S而有一个FS时,或者再找到一个S时,该路由进入被动状态,是一条可用路由。
  • 邻居关系:EIGRP通过hello包来建立邻居关系,在低速链路上hello包的发送间隔为60秒、高速链路上为5秒。 在一段时间内如果没有收到hello包则重置邻居关系,这个时间为保持时间(hold time),默认的保持时间是hello时间的三倍。这两种时间均可以手动修改,在建立邻居关系时,K值和自制系统号必须一样。可以 通过show ip eigrp neighbor查看邻居关系。

1.4 EIGRP形成邻居的条件

  1. AS号相同;
  2. 度量计算的K值相同;
  3. 认证相同(EIGRP只支持密文认证);
  4. 对端通告的Neighbor ID必须在本端的直连网段中存在。

        注意:路由协议都是通过端口的Primary IP传输数据流并形成Neighbor ID(代表一个接口)。EIGRP路由器在接收到Hello后会用自己的Primary IP的子网掩码与Hello中的Neighbor ID进行与运算,得出网络地址后与自己路由表中的直连网段进行匹配,有则认为对方是邻居,并将其放入邻居表中,没有就会以不在同一子网为由来拒绝形成邻居。

        说明:IGRP和EIGRP在相同的自制系统中可以自动再发布路由信息,但是也可以关闭自动再发布路由信息。

1.5 EIGRP涉及的4种重要技术

  1. 邻居发现协议:使用hello分组来发现邻居,维护邻居,检查邻居状态等等。
  2. 可靠传输协议RTP:确保EIGRP分组能顺序的传递到所有邻居。
  3. DUAL算法:有限状态机,决算进程根据所有邻居通告的所有路由,依据距离信息来选择前往目的地的无环路路径。
  4. 协议无关模块:EIGRP的协议无关模块负责处理随网络层协议而异的需求。如IP-EIGRP是兼容IP网络

1.6 协议区别

IGRP(Interior Gateway Routing Protocol,内部网关路由选择协议)是Cisco特有的基于距离向量路由协议,虽然同样应用于规模较小的局域网络,但是,与RIP路由协议有所不同,IGRP使用IP层的端口号9进行报文交换,而RIP则是使用520端口进行报文交换。

        IGRP同样是一种动态距离向量路由协议,它由Cisco公司20世界80年代中期设计推出,使用跳数来确定到达一个网络的最佳路径,使用延迟、带宽、可靠性和负载来确定最优路由。默认状态下,IGRP每90秒钟发送一次路由更新广播,在3个更新周期(即270秒)内,如果没有从路由中的第一个路由器接受到更新,则宣布路由器不可访问。在7个周期(即630秒)后,Cisco IOS(网际操作系统)软件会从路由表中清除该路由。

        EIGRP结合了链路状态和距离矢量型路由选择协议的Cisco专用协议,采用弥散修正算法(DUAL)来实现快速收敛,可以不发送定期的路由更新信息以减少带宽的占用,支持Appletalk、IP、Novell和NetWare等多种网络层协议。自从EIGRP路由协议诞生后,IGRP路由协议便很少再被使用了。

2 EIGRP协议详解

2.1 EIGRP的三张表Neighbor Table、Topology Table、Routing Table

        初始运行EIGRP的路由器都要经历发现邻居、了解网络及选择路由的过程,在这个过程中同时建立三张独立的表格:Neighbor Table、Topology Table、Routing Table。其中Neighbor Table保存了和路由器建立了邻居关系的且直连的路由器;Topology Table包含路由器学习到的到达目的地的所有路由条目;Routing Table则是包含记录到达目的地址所需最短可行距离与下一跳路由地址的路由表。

        以路由器R4为例介绍Neighbor Table、Topology Table、Routing Table

 

  1. R4的Neighbor Table中的每个邻居都转发一份IP路由表的备份给R4;
  2. R4把从邻居处收到的路由表存储在自己的Topology Table中,如图,R4分别收到R2和R3到网络172.16.1.0/24通告,通告距离为110和160,R4收到后加上自己到R2和R3的度量后就得到了计算距离210和260;
  3. R4检查Topology Table,然后选择出一条到达目的地的最短路由,确定下一跳的Successor routers为R2,然后把它放在Routing Table中。

2.1.1 EIGRP的Routing Table

  • D:在本自制系统里学到的路由。
  • D EX:从外面发布进来的路由。

2.1.2 EIGRP的Neighbor Table

  • Address:邻居路由器的地址。
  • Interface:本地到邻居的接口。
  • Hold time:等待没有从邻居处接受到任何数据报文的最长时间,当收到新的报文后Hold time复位。
  • SRTT(Smooth round-trip time)顺利往返时间:一个EIGRP报文发送给邻居然后到本地路由器从邻居处接收到确认报文所花费的时间,单位是ms。
  • RTO(Retransmission timeout)重传超时:重新传输报文之前等待确认报文的时间,单位是ms。
  • Q Cnt(Queue count)队列计数:等待发送的EIGRP报文数,如果这个数值持续高于0,说明网络发生了拥塞。

2.1.3 EIGRP的Topology Table

  •  P:passive,表示网络处于稳定状态。
  • A:active,表示当前网络不可用,正处于发送查询状态。
  • U:update,表示网络处于等待update包的确认状态。
  • Q:query,表示网络处于等待query包的确认状态。
  • SIA:stuck-in-active,表示网络持续处于active状态,说明EIGRP网络的收敛发生了问题。

2.1.4 EIGRP路由的Traffic Table(接收和发送信息表) 

 2.2 EIGRP的报文类型

        EIGRP使用可靠传输协议RTP(Reliable Transport Protocl),RTP确保每一个EIGRP分组都必须得到确认,只有前一个分组得到确认之后才会发送下一个分组,RTP的重传机制使得发送给邻居可靠的报文在RTO(Retransmit Time Out)超出以后,还没得到确认的话,RTP会将分组重传(重传为单播,目的是为了不影响那些已经正常确认的路由),最多重传16次,如果16次之后还没有确认则重置邻居关系,直到邻居关系保持时间(hold time)超出,宣布邻居不可达。接收者需要对update、reply和query这些有序号的报文进行确认,不需要可靠性的报文(如Hello和ACK)则没有必要确认。

        EIGRP使用多种类型的packet,这些packet通过IP头部信息里的协议号88来标识。在EIGRP协议中,总共会使用5种类型的数据包,分别为Hello、Update、 Query、Reply、Ack,下面介绍各种数据包的功能与用途:

  • Hello:以多播的方式发送,用于发现邻居路由器,并维持邻居关系。
  • 更新(update):当路由器收到某个邻居路由器的***个Hello报文时,以单点传送方式回送一个包含它所知道的路由信息的更新报文。当路由信息发生变化时,以多播的方式发送一个只包含变化信息的更新报文。注意,两个更新报文的内容不一样。
  • 查询(query):当一条链路失效,路由器重新进行路由计算。但在拓扑表中没有可行的后继路由时,路由器就以多播的方式向它的邻居发送一个查询报文,以询问它们是否有一条到目的地的可行后继路由。
  • 答复(reply):以单点的方式回传给查询方,对查询数据报文进行应答。
  • 确认(ACK):以单点的方式传送,用来确认update、query、reply数据报文,以确保传输的可靠性。

        说明:OSPF要求邻居必须具有相同的Hello和Down的判定间隔才能进行通信,而EIGRP没有这种限制。在实际应用中,将EIGRP的保持时间设为Hello间隔的3倍,而在OSPF中将保持时间设为Hello间隔的4倍。

2.3 EIGRP路由维护过程

  1. 建立相邻关系:运行EIGRP的路由器自开始运行起,就不断地用多播地址224.0.0.10从参与EIGRP的各个接口向外发送Hello报文。当路由器之间彼此都收到Hello报文后,这时双方建立起邻居关系。
  2. 发现网络拓扑,选择最短路由:当路由器通过Hello报文动态地发现了一个新邻居时,也获得了来自这个新邻居update通告的路由信息。路由器将获得的路由更新信息首先与拓扑表中所记录的信息进行比较,FD最小的为S,如果有相同的FD的话,路由表可以存在多个S,默认可以存在4个。符合FC的路由被放入拓扑表,作为FS备选路由器,如果S因故无效,而有效的FS存在的话,FS将代替S并无需进行重新计算。EIGRP的TopologyTable一次可以存在多个有效地FS。
  3. 路由查询、更新:当路由信息没有变化时,EIGRP邻居间只是通过发送Hello报文,来维持邻居关系,以减少对网络带宽的占用。在发现一个邻居丢失、一条链路不可用时,EIGRP立即会从拓扑表中寻找FS,启用备选路由器。如果拓扑表中没有FS,将该路由设置为活跃状态,向所有邻居发送查询数据报文,除了失效邻居。如果某个邻居有一条到达目的地的路由,那么它将对这个查询进行答复,并且不再扩散这个查询。否则,相邻路由器将进一步向它自己的每个邻居查询,只有所有查询都得到答复后,EIGRP才重新计算路由,重置FD,选择新的后继路由器。如果相邻路由器没有可替换的路由,也没有相邻的邻居路由器,那么它就向请求路由器发回一个度量为无穷大的回复报文。

2.4 路由计算方法

        EIGRP选择一条主路由(最佳路由)和一条备份路由放在topology table(EIGRP到目的地支持最多16条链路。从12.3T IOS版本之后,最多支持16条负载均衡,之前为6条).它支持几种路由类型:内部,外部(非EIGRP)和汇总路由.EIGRP使用混合度量值.

2.4.1 EIGRP Metric的5个标准

  • 带宽(bandwidth)

        10的7次方除以源和目标之间最低的带宽乘以256(10的7次方除以以Kbit/s为单位的最小带宽,然后加上延迟之和除以10,最后乘于256)

  • 延迟(delay)

        接口的累积延迟乘以256,单位是10微秒

  • 可靠性(reliability)

        根据keepalive而定的源和目的之间最不可靠的可靠度的值

  • 负载(loading)

        根据包速率和接口配置带宽而定的源和目的之间最不差的负载的值

  • 最大传输单元(MTU)

        路径中最小的MTU.MTU包含在EIGRP的路由更新里,但是一般不参与EIGRP度的运算

2.4.2 EIGRP Metric的计算

  1. 一般情况下,K5=0;EIGRP度量值的计算公式为:256*{K1(10^7/带宽)+K2(10^7/带宽)/(256-负载)+K3(延迟)}
  2. 由于默认情况下,K1和K3是1,其他的K值都是0。所以通常情况下,度量值=256×(10^7/最小带宽+累积延时/10)
  3. 如果修改K值,使K5不等于0,则 Metric 计算式变成:256*[K1(10^7/带宽)+K2(10^7/带宽)/(256-负载)+K3(延迟)]*[K5 / (可靠性+K4)]
  4. 计算出的Metric值不是整数时自动取整,比如计算结果为8501.39 ,显示值将为8501。
  5. 通过配置权重(K值),可以修改EIGRP度量值计算方式。可以再EIGRP配置模式使用命令:Metric weightTosK1 K2 K3 K4 K5 来修改K值,Tos 只有一个有效值0,否则将被忽略。

        EIGRP 要求两台路由器的K值必须相同才能成为邻居。另外,K2,K4,,K5最好不要设置,因为这些参数设置为非零之后,会导致计算度量值时会考虑接口的负载和可靠性,而负载和可靠性会随时间变化,这将导致EIGRP重新泛洪拓扑数据,还可能导致路由器不断地选择不同的路由,由此导致网络不稳定。

2.5 恢复协议

        EIGRP的Update包是非周期性发送的:

  1. Hello包在一般的网络中(比如点到点,point-to-point)是每5秒组播1次(要随机减去1个很小的时间防止同步);
  2. 在多点(multipoint)X.25,帧中继(Frame Relay,FR)和ATM接口(比如ATM SVC)和ISDN PRI接口上,Hello包的发送间隔是60秒.

        在所有的情况中,Hello包是不需要确认的.可以在接口配置模式下修改该接口的Hello包默认的发送间隔,命令为

ip hello-interval eigrp

        当一个路由器收到从邻居发来的Hello包的时候,这个Hello包包含了一个holdon time,这个holdown time告诉这个路由器等待后续Hello包的最大时间.如果在超出这个holdown time之前没有收到后续Hello包,那么这个邻居就会被宣告为不可达,并通知DUAL这个邻居已丢失.默认hold time是3倍于Hello包发送间隔的, 更高链路-- 默认Hello间隔和保持时间是5s和15s T1或低于T1链路-- 分别是60s和180s可以在接口配置模式下修改这个默认的holdown time,命令为:

ip hold-time eigrp.

        EIGRP邻居信息都记录在邻居表(neighbor table)中,使用show ip eigrpneighbors命令查看IP EIGRP的邻居。

2.6 环路解决方案

        如果EIGRP不考虑环路的问题,那么当连接路由3和4的线路断开后会因到不了network a而使路由1-3相互查询怎么去network a而产生环路。因此EIGRP对于环路的防止考虑两方面:

  1. 水平分割(Split Horizon)

        永远不会在同一个接口下通告一条该接口学到的路由信息

  1. 路由的毒性逆转(Poison reverse)

        接收路由信息的接口,再从该接口通告出刚才学到的路由为不可达

触发条件:

  • 当两台路由器进行邻居初始化时,他们会互相以最大的metric值通告回刚才学到的路由信息(路由中毒
  • 当拓扑发生改变时,会临时关闭水平分割和毒性逆转,重新学习拓扑
  • 发送查询请求时,会引起水平分割,比如当一个路由器查询一条未知网段去向时,他会向每一个邻居发送查询,处于该网段的继承者(successor)会返回查询给该路由器,而该路由器会反馈一个查询结果给其他邻居,不会再次告诉那个继承者要走这个网段应该要经过自己

2.7 路由分发策略

        在一些大型网络中,往往存在不同的自治区域需要互联的情况。比如在图1的情况下,AS号为1000的要与AS号为2000的两个EIGRP相互通信,只需要在中间路由器配置重分发,注意配置重分发也要避免路由环路

 示例:

Router One

router eigrp2000 network 172.16.1.0 0.0.0.255

Router Two

router eigrp2000

redistribute eigrp1000 route-map to-eigrp2000

network 172.16.1.0 0.0.0.255--在AS=2000内定义邻居AS=1000去AS=2000的网段

!

router eigrp1000

redistribute eigrp2000 route-map to-eigrp1000--在AS=1000内定义邻居AS=2000去AS=1000的网段

network 10.1.0.0 0.0.255.255

route-map to-eigrp1000 deny 10

match tag 1000

!

route-map to-eigrp1000 permit 20

set tag 2000

!

route-map to-eigrp2000 deny 10

match tag 2000

!

route-map to-eigrp2000 permit 20

set tag 1000

--当AS=1000的网段被标上(tag)1000的标记,当AS=2000重分发进AS=1000时,被标上1000的路由信息将被拒绝,以防产生环路;反之在AS=2000上亦然。

Router Three

router eigrp 1000network 10.1.0.0 0.0.255.255

路由1和3之间就能互访了。

3. 优缺点

3.1 EIGRP路由协议主要优点

        精确路由计算和多路由支持。EIGRP协议继承了IGRP协议的最大的优点是矢量路由权。EIGRP协议在路由计算中要对网络带宽、网络时延、信道占用率和信道可信度等因素作全面的综合考虑,所以EIGRP的路由计算更为准确,更能反映网络的实际情况。同时EIGRP协议支持多路由,使路由器可以按照不同的路径进行负载分担。

        较少带宽占用。使用EIGRP协议的对等路由器之间周期性的发送很小的hello报文,以此来保证从前发送报文的有效性。路由的发送使用增量发送方法,即每次只发送发生变化的路由。发送的路由更新报文采用可靠传输,如果没有收到确认信息则重新发送,直至确认。EIGRP还可以对发送的EIGRP报文进行控制,减少EIGRP报文对接口带宽的占用率,从而避免连续大量发送路由报文而影响正常数据业务的事情发生。

快速收敛。路由计算的无环路和路由的收敛速度是路由计算的重要指标。EIGRP协议由于使用了DUAL算法,使得EIGRP协议在路由计算中不可能有环路路由产生,同时路由计算的收敛时间也有很好的保证。因为,DUAL算法使得EIGRP在路由计算时,只会对发生变化的路由进行重新计算;对一条路由,也只有此路由影响的路由器才会介入路由的重新计算。

        MD5认证。为确保路由获得的正确性,运行EIGRP协议进程的路由器之间可以配置MD5认证,对不符合认证的报文丢弃不理,从而确保路由获得的安全。

路由聚合。EIGRP协议可以通过配置,对所有的EIGRP路由进行任意掩码长度的路由聚合,从而减少路由信息传输,节省带宽。

        实现负载分担。去往同一目的的路由表项,可根据接口的速率、连接质量和可靠性等属性,自动生成路由优先级,报文发送时可根据这些信息自动匹配接口的流量,达到几个接口负载分担的目的。

        配置简单。使用EIGRP协议组建网络,路由器配置非常简单,它没有复杂的区域设置,也无需针对不同网络接口类型实施不同的配置方法。使用EIGRP协议只需使用router eigrp命令在路由器上启动EIGRP 路由进程,然后再使用network 命令使能网络范围内的接口即可。

        区域概念,EIGRP已经引用AS概念,可以进行大规模网络的路由支持了。

3.2 EIGRP路由协议主要缺点

        定时发送HELLO报文。运行EIGRP的路由器之间必须通过定时发送HELLO报文来维持邻居关系,这种邻居关系即使在拨号网络上,也需要定时发送HELLO报文,这样在按需拨号的网络上,无法定位这是有用的业务报文还是EIGRP发送的定时探询报文,从而可能误触发按需拨号网络发起连接,尤其在备份网络上,引起不必要的麻烦。所以,一般运行EIGRP的路由器,在拨号备份端口还需配置Dialer list和Dialer group,以便过滤不必要的报文,或者运行TRIP协议,这样做增加路由器运行的开销。而OSPF可以提供对拨号网络按需拨号的支持,只用一种路由协议就可以满足各种专线或拨号网络应用的需求。

        基于分布式的DUAL算法。EIGRP的无环路计算和收敛速度是基于分布式的DUAL算法的,这种算法实际上是将不确定的路由信息散播(向邻居发query报文),得到所有邻居的确认后(reply报文)再收敛的过程,邻居在不确定该路由信息可靠性的情况下又会重复这种散播,因此某些情况下可能会出现该路由信息一直处于活动状态(这种路由被称为活动路由栈),并且,如果在活动路由的这次DUAL计算过程中,出现到该路由的后继(successor)的测量发生变化的情况,就会进入多重计算,这些都会影响DUAL算法的收敛速度。而OSPF算法则没有这种问题,所以从收敛速度上看,虽然整体相近,但在某种特殊情况下,EIGRP还有不理想的情况。

        EIGRP是Cisco公司的私有协议。Cisco公司是该协议的发明者和唯一具备该协议解释和修改权的厂商。如果要支持EIGRP协议需向Cisco公司购买相应版权,并且Cisco公司修改该协议没有义务通知任何其他厂家和使用该协议的用户。而OSPF是开放的协议,是IETF组织公布的标准。世界上主要的网络设备厂商都支持该协议,所以它的互操作性和可靠性由于公开而得到保障,并且在众多的厂商支持下,该协议也会不断走向更加完善。

参考链接

EIGRP协议之理论详解-51CTO.COM

EIGRP协议完整教程

EIGRP协议_百度百科

14-EIGRP路由协议详解_songly_的博客-CSDN博客_eigrp路由协议

EIGRP协议的配置_一下子就醒了的博客-CSDN博客_eigrp配置

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江中散人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值