简介
Enhanced Interior Gateway Routing Protocol 增强型内部网关协议是是增强的距离矢量协议,它依靠扩散更新算法 (DUAL) 计算网络中到目标的最短路径。
EIGRP优点
- 在正常工作期间,网络资源的使用率非常低;仅在稳定网络上传输 hello 数据包
- 当发生更改时,仅传播路由表更改,而不传播整个路由表;这可减少路由协议自身放在网络上的负载
- 可以快速收敛网络拓扑中的更改(在某些情况下,几乎可以瞬间收敛
EIGRP的三张表
- IP EIGRP Neighbor Table 邻居表——用来存放和邻居路由器相关的数据。
- IP EIGRP Topology Table 拓扑表——用来存放所有从邻居路由器学习到的路径信息。
- The IP Routing Table 路由表——拓扑表中的后继(Successor)会被放入路由表,路由器根据路由表来转发数据包。
EIGRP数据包
- HELLO分组:以224.0.0.10发送,无需确认Hello包
- 更新:只在必要的时候传递必要的信息;以可靠方式发送,需要确认
- 查询
- 应答:响应查询分组,单播;可靠方式传播
- 确认(ACK)
基本原理
邻居发现和维护(邻居表)
为了在整个网络中分配路由信息,EIGRP 使用非周期性的增量路由更新。(EIGRP 只在这些路径更改时发送有关已更改路径的路由更新)
只发送路由更新的基本问题是:无法知道邻居路由器是否挂了。EIGRP每隔一定时间就发送hello数据包,这个时间称为hello间隔。
EIGRP 依靠邻居关系在整个网络中可靠地传播路由表更改;当两个路由器在公共网络上看到彼此的 hello 数据包时,它们成为邻居。
show ip eigrp neighbors |
建立拓扑表
邻居路由器彼此通信,交换它们的拓扑表。
show ip eigrp topology |
拓扑表包含建立到每个可达网络的一组距离和矢量所需的信息,包括:
- 上游邻居报告的到此目标的路径上的最低带宽
- 总延迟
- 路径可靠性
- 路径负载
- 最短路径最大传输单元 (MTU)
- 可行距离
- 报告距离
- 路由源(外部路由将被标记)
EIGRP的Metric
5个标准
- 带宽(bandwidth)
- 延迟(delay)
- 可靠性(reliability)
- 负载(loading)
- 最大传输单元(MTU)
计算
$$
[(K1 × Bandwidth + \frac{K2 × Bandwidth}{256 - Load} + K3 × Delay)×(\frac{K5}{Reliability + K4})] × 256
$$
- 注意: 如果K5 = 0,公式减少到
$$
[(K1 × Bandwidth + \frac{K2 × Bandwidth}{256 - Load} + K3 × Delay)] × 256
$$ - 默认K1 = 1,K2 = 0,K3 = 1,K4 = 0,K5 = 0
- 延迟取值沿路所有数据出接口(或路由入口)延迟的累加Delay=延迟(us) / 10 × 256(数据传输方向和路由传输方向相反!!!)
- 带宽取值沿路所有数据出接口(或路由入口)带宽的最低值$Bandwidth=[10^7 / 带宽(Kbps)] × 256$
- EIGRP路由Metric默认为 $延迟+带宽$
- EIGRP域内所有路由器的K值都必须设为相同的值
术语
- Successor 后继路由器——被实际选中作为到达目标网络所使用的下一跳路由器。
- Fessible Successor 可行后继路由器——到达该目标网络的备份下一跳路由器(必须满足FC)。
- Advertised Distance 通告距离——邻居到达目标网络的度量值。
- Feasible Distance 可行距离——邻居到达目标网络的度量值( AD)加上本路由器到达该邻居的度量值。
- Feasible Condition 可行性条件——邻居到达目标网络的度量值( AD)小于本路由器的FD时,则认为该邻居通告的路径满足FC。
判定一条路径是否无环路
DUAL算法:Diffusing Update Algorithm 用于计算最佳无环路径和备用路径
关键点:
- 关键路径不可用时使用可用后继路径
- 无可用后继路径时向邻居求助
水平分割与毒性逆转
- 水平分割规则规定:永远不从通过其获知路由的接口通告该路由。
- 毒性逆转规则规定:一旦通过某个接口获知路由,便通过该同一接口将其通告回为不可达路由。
- 举例:
路由器one 通过一个多点接口(如帧中继)连接到 路由器 two和three
水平分割——如果 路由器one 从 路由器 two 获知 网络 A,那么它不会从同一接口将到 网络 A 的路由通告回 路由器 3。
毒性逆转——当 路由器one 从 路由器two 获知网络A时,它会通过其到 路由器two和three 的链路通告 网络A 为不可达网络。如果路由器three显示通过 路由器one 到 网络A 的任何路径,它将由于不可达通告删除该路径。
汇总
EIGRP 中有两种汇总形式:自动汇总和手动汇总。
自动汇总
EIGRP 每次穿过两个不同的主类网络之间的边界时会执行自动汇总。
路由器two 只向 路由器one 通告 10.0.0.0/8 网络,因为 路由器2 用来到达 路由器1 的接口位于不同的主类网络中(A类网络和B类网络)。
手动汇总
字面意思。。手动配置。。
EIGRP的配置
基本配置
- 创建EIGRP进程,并进入路由进程的配置模式
Router(config)#router eigrp autonomous-system-num |
EIGRP将autonomous-system-num参数称为“自治系统”编号
- 在指定的接口上激活EIGRP
Router(config-router)#network network-number [wildcard-mask] |
如果不加通配符掩码,则自动识别为主类通告,也就是如果键入 network 10.1.1.0,实际为 network 10.0.0.0
查看及排错
命令 | 作用 |
---|---|
Router#show ip eigrp neighbors | Displays the neighbors discovered by IP EIGRP |
Router#show ip eigrp topology | Displays the IP EIGRP topology table |
Router#show ip route eigrp | Displays current EIGRP entries in the routing table |
Router#show ip protocols | Displays the parameters and current state of the active routing protocol process |
Router#show ip eigrp traffic | Displays the number of IP EIGRP packets sent and received |
Router#debug eigrp packet | Displays all types of EIGRP packets, both sent and received |
Router#debug eigrp neighbor | Displays the EIGRP neighbor interaction |
Router#debug ip eigrp route | Displays advertisements and changes EIGRP makes to the routing table |
Router#debug ip eigrp summary | Displays a brief report of the EIGRP routing activity |
Router#show ip eigrp events | Displays the different categories of EIGRP activity, including route calculations |
EIGRP负载均衡
EIGRP 在路由表中最多放置四个等价路由,然后路由器将对这些路由进行负载均衡。负载均衡的类型(按数据包或按目标)取决于在路由器中执行的交换的类型。但是,EIGRP 也可以在非等价链路上进行负载均衡。
等价负载均衡
- 所谓的等代价路径指的到达同一个目的地度量值相等的路径
- 默认最多支持4条等价路径之间进行流量负载,最大可为16条
非等价负载均衡
Variance multiplier |
EIGRP在多条路径上执行非等价负载均衡的条件:
- 路由必须是无环的(即满足FC条件: AD<FDmin)
- FD <= FDmin × multiplier(差异值是一个乘数:流量将被放到度量小于最佳路径度量与差异值相乘得到的结果的任何链路上。)
举栗子——
假定有四条路径到指定的目标,并且这些路径的度量如下:
- 路径 1:1100
- 路径 2:1100
- 路径 3:2000
- 路径 4:4000
默认情况下,路由器将流量同时放在路径 1 和 2 上。(等价负载均衡)使用 EIGRP 的 variance 命令来指示路由器同时将流量放在路径 3 和 4 上。要均衡路径 1、2 和 3 上的负载,可以使用差异值 2,因为 1100 x 2 = 2200,该值大于通过路径 3 的度量。同样地,要同时添加路径 4,需要在 router eigrp 命令下发出 variance 4。