EIGRP的‘黑话’与‘潜规则’:从邻居表、拓扑表到可行距离,一次讲清那些让人困惑的概念
EIGRP的‘黑话’与‘潜规则’:从邻居表、拓扑表到可行距离,一次讲清那些让人困惑的概念
如果你已经能够熟练配置EIGRP,却对那些晦涩的专业术语感到头疼,这篇文章就是为你准备的。我们将用最直观的方式,拆解EIGRP的核心机制,让你真正理解这个协议的精妙之处。
想象一下,EIGRP就像一个精密的导航系统,而三张表(邻居表、拓扑表、路由表)就是它的核心数据库。理解这三张表的关系,是掌握EIGRP的关键。
1. EIGRP的三张表:通讯录、备选路线与最终导航
1.1 邻居表:你的EIGRP通讯录
邻居表就像是你的手机通讯录,记录着所有可以直接联系的EIGRP邻居。这张表的核心字段包括:
- 邻居路由器ID
- 本地接口
- 保持时间(Hold Time)
- 邻居的IP地址
Router# show ip eigrp neighbors IP-EIGRP neighbors for process 100 H Address Interface Hold Uptime SRTT RTO Q Seq (sec) (ms) Cnt Num 0 10.1.1.2 Gi0/0/0 13 00:12:34 20 200 0 15提示:邻居关系的建立需要满足三个基本条件:AS号相同、K值匹配、能够互相收到Hello包。
1.2 拓扑表:你的备选路线图
拓扑表是EIGRP最复杂也最强大的部分,它包含了所有已知路由的完整信息,而不仅仅是最终选择的最佳路径。关键概念包括:
| 术语 | 全称 | 解释 |
|---|---|---|
| FD | 可行距离 | 本地到达目标网络的最佳度量值 |
| AD | 通告距离 | 邻居到达目标网络的度量值 |
| FC | 可行性条件 | 判断某路径是否能成为备份路径的条件 |
拓扑表中每条路由可能有多个条目,EIGRP会根据这些信息选择最优路径,并确定可行的备份路径(满足FC条件的路径)。
1.3 路由表:你的最终导航
路由表是从拓扑表中筛选出的最优路径的集合。只有满足以下条件的路由才会进入路由表:
- 在拓扑表中具有最小的FD值
- 满足所有可行性条件
- 通过DUAL算法的最终验证
Router# show ip route eigrp D 192.168.1.0/24 [90/30720] via 10.1.1.2, 00:05:21, GigabitEthernet0/0/02. DUAL算法:EIGRP的无环保证
DUAL(扩散更新算法)是EIGRP的核心算法,它确保了路由计算的快速收敛和无环特性。理解DUAL需要掌握以下几个关键点:
2.1 可行后继(Feasible Successor)
可行后继是指满足FC条件的备份路径。FC的数学表达是:AD < FD。这意味着:
- 邻居通告的到达目标的距离(AD)必须小于当前最佳路径的距离(FD)
- 满足这个条件的路径可以确保不会形成路由环路
2.2 DUAL的有限状态机
DUAL算法实际上是一个有限状态机,主要状态包括:
- 被动状态:路由稳定,有可行后继
- 主动状态:路由失效,正在寻找新路径
- 扩散计算:向邻居查询替代路径
注意:路由保持在被动状态的时间越长,网络稳定性越好。频繁进入主动状态可能意味着网络存在问题。
2.3 与OSPF的对比
| 特性 | EIGRP | OSPF |
|---|---|---|
| 收敛速度 | 极快(有可行后继时) | 较快 |
| 无环保证 | 通过DUAL算法 | 通过SPF算法 |
| 资源消耗 | 较低 | 较高 |
| 配置复杂度 | 较简单 | 较复杂 |
3. 度量值计算:EIGRP的路径选择标准
EIGRP使用复合度量值来选择最佳路径,默认情况下考虑带宽和延迟:
3.1 度量值计算公式
度量值 = 256 × (K1×带宽 + K2×带宽/(256-负载) + K3×延迟) × (K5/(可靠性+K4))默认情况下,K1=K3=1,其他K值为0,因此简化为:
度量值 = 256 × (带宽 + 延迟)其中:
- 带宽 = 10^7 / 路径中最小的带宽(单位:kbps)
- 延迟 = 路径中所有接口延迟的总和(单位:微秒)
3.2 查看和修改度量值
Router(config-router)# metric weights 0 1 0 1 0 0这个命令修改K值,参数依次是:TOS(通常为0)、K1、K2、K3、K4、K5。
3.3 实际计算示例
假设有两条路径到达目标网络:
路径A:带宽=100Mbps,延迟=100μs
- 带宽项:10^7 / 100000 = 100
- 延迟项:100
- 度量值 = 256 × (100 + 100) = 51200
路径B:带宽=1Gbps,延迟=200μs
- 带宽项:10^7 / 1000000 = 10
- 延迟项:200
- 度量值 = 256 × (10 + 200) = 53760
在这个例子中,EIGRP会选择路径A,因为它的度量值更小。
4. 高级特性与实战技巧
4.1 非等价负载均衡
EIGRP支持非等价负载均衡,这是它的一大特色。配置方法:
Router(config-router)# variance 2这个命令中的数字是乘数因子,任何路径只要其度量值小于最佳路径度量值乘以这个因子,就会被加入路由表。
4.2 路由汇总
EIGRP默认在主类网络边界自动汇总,但通常建议手动配置更精确的汇总:
Router(config-if)# ip summary-address eigrp 100 192.168.0.0 255.255.252.04.3 末节路由器配置
将分支路由器配置为末节路由器可以减少不必要的查询流量:
Router(config-router)# eigrp stub [connected|static|summary|redistributed|receive-only]4.4 常见问题排查
当EIGRP邻居关系无法建立时,检查以下方面:
- 物理连接:接口是否up/up
- ACL过滤:是否阻止了EIGRP流量(端口88或组播224.0.0.10)
- AS号匹配:两端是否使用相同的AS号
- K值匹配:两端的metric weights是否一致
- 主IP地址:是否使用接口的主IP地址通信
5. EIGRP的演进与最佳实践
虽然EIGRP曾经是思科专有协议,但自2013年开放标准后,它已经可以在多厂商环境中使用。在实际部署中,有几个经验值得分享:
- 保持K值为默认值:除非有特殊需求,否则不要修改K值,这可能导致兼容性问题
- 合理规划AS号:在大型网络中,可以考虑使用不同的AS号实现层次化设计
- 注意带宽设置:特别是串行链路,确保接口带宽配置反映实际物理带宽
- 善用路由过滤:使用distribute-list控制路由传播,减少不必要的流量
在最近的一个企业网络升级项目中,我们通过精细调整EIGRP的hello和hold时间,成功将收敛时间从秒级降低到亚秒级。关键在于:
- 将hello间隔从默认的5秒调整为1秒
- 保持hold time为hello间隔的3倍
- 确保所有相关接口的配置一致
