【网络协议】EIGRP - 第一部分

ops/2025/1/11 15:38:39/

概述

本文将给出有关距离矢量路由协议操作的基础概念、探讨 EIGRP 的基本原理并说明如何进行基本配置和验证。

文章目录

    • 概述
    • 距离矢量路由协议
    • EIGRP
      • 算法
      • 协议相关模块 (PDM)
      • 可靠传输协议 (RTP)
      • EIGRP 数据包类型
        • Hello 数据包
        • Update 数据包
        • 确认包 (ACK)
        • 查询和回复包
      • EIGRP 路由传播
      • EIGRP 的优缺点
      • EIGRP 的三种表
        • 邻居表
        • 拓扑表
        • 路由表
    • EIGRP基本配置与验证

距离矢量路由协议

内部网关协议可以分为两类:距离矢量路由协议和链路状态路由协议。本节将探讨距离矢量路由协议,这些概念对于理解 EIGRP 至关重要。

“距离矢量”(Distance Vector) 的名称表明,这些路由协议广告的路由通常是以方向和距离的矢量形式发送的。

如果将其比作一个在陌生国家旅行的游客,距离矢量协议就像路牌,只提供到某个目的地的方向和距离,而不会显示整个国家的地图。游客只有到达指示的点后,才会发现下一个目的地。

同样,距离矢量路由协议只提供到目的地的下一跳或方向以及到达该处的距离或度量值。

使用距离矢量路由协议的路由器并不了解到目标网络的完整路径,它仅知道:

  • 方向或出站接口
  • 到目标的距离或度量

距离矢量路由协议具有以下固有特性:

  • 定期更新:按固定间隔发送更新或仅在必要时发送。
  • 邻居是直接连接的路由器。
  • 路由表更新通常是全量更新(EIGRP 除外)。

和所有其他路由协议一样,距离矢量路由协议也使用算法来确定最佳路径。路由更新通常定义以下机制:

  1. 通过发送和接收消息交换路由信息。
  2. 计算最佳路径的方法。
  3. 检测拓扑变化并相应更新的方法。

当配置了相同路由协议的路由器启动时,以下操作会发生:
1.初始信息交换:包括路由协议安全性、发现数据包等信息。
2.路由交换:路由器通过广播接收来自其他路由器的更新,根据算法计算,将最佳路径添加到路由表中。
3.收敛:这是指路由域中的所有路由器完成路由信息交换后,可以相互通信的状态。其速度取决于:

  • 路由域中的路由器数量。
  • 当拓扑发生变化时路由器学习新路由的速度。
  • 算法计算拓扑中每个网络的成本的速度。

EIGRP_45">EIGRP

EIGRP(Enhanced Interior Gateway Routing Protocol,增强型内部网关路由协议)是 Cisco 在 1992 年首次发布的第二代专有路由协议,它是 Cisco 首个专有路由协议 IGRP 的无类别改进版。由于它是 Cisco 专有协议,因此仅运行在 Cisco 路由器上。

在之前的文章中,我们讨论了无类别和有类别路由协议的区别。我们提到,无类别路由协议在广告网络时包含子网掩码,因此可以使用 VLSM(可变长子网掩码)和 CIDR(无类别域间路由)。

EIGRP 的显著特点:

  • RTP(可靠传输协议)
  • 有界更新:仅在拓扑发生变化时发送更新,并仅发送到受影响的路由器。
  • 使用 DUAL(扩散更新算法) 找到最佳路径。
  • 与相邻路由器建立邻居关系。
  • 维护邻居表、拓扑表和路由表。

EIGRP 的运行方式与链路状态路由协议(如 OSPF)有一些相似之处,但它仍然是距离矢量路由协议。

算法

DUAL 算法是 EIGRP 用于路径确定和维护更新路由的核心引擎。这不同于其他使用 Bellman-Ford 算法的距离矢量路由协议。当 EIGRP 路由域中检测到变化时,路由器会交换多个消息,以建立冗余链路或进行相应更新。在 EIGRP 中,更新通常是部分的有界的,这意味着如果某条路由失效,路由器仅会通知受影响的路由器失效的路由。

通过 EIGRP 发送的路由更新是距离矢量形式的,且仅传输给直接连接的受影响的邻居路由器。

协议相关模块 (PDM)

EIGRP 的操作不仅限于 IP 协议,它还可以为 IPX 和 AppleTalk 等不同网络层协议进行路由。这种支持通过协议相关模块(PDMs) 实现。

可靠传输协议 (RTP)

EIGRP 路由域中传输的消息由可靠传输协议(RTP) 支持。此协议要求消息接收者为各种消息发送确认包。该协议运行时使用的地址是 EIGRP 的多播地址 224.0.0.10

EIGRP__81">EIGRP 数据包类型

理解 EIGRP 如何交换路由信息,必须了解其五种数据包类型。

Hello 数据包

Hello 数据包是 EIGRP 配置时发送的第一个数据包,用于发现邻居并与其建立邻接关系。

发送间隔

  • 慢速链路:60 秒
  • 带宽大于 1.544Mbps(如 T1 链路):5 秒

Hello 包的时间为定时器的三倍。如果 EIGRP 路由域中的路由器连续三个 Hello 包未响应,则该路由器通常被认为已断开。

Update 数据包

EIGRP 中,更新包用于向邻居发送路由信息。

EIGRP 的路由更新通常是部分的有界的。如果拓扑没有变化,通常不会发送更新;如果发生变化,更新包可以作为单播发送给单个受影响路由器,或作为多播发送给多个受影响路由器。

确认包 (ACK)

ACK 包用于验证更新或其他类型的消息是否收到。RTP机制可确保 ACK 消息可靠送达。

查询和回复包

当路由器缺失某条路由时,查询和回复包负责向邻居探测缺失的路由。

发送方式

  • 查询:多播消息
  • 回复:单播消息

EIGRP__113">EIGRP 路由传播

当配置了 EIGRP 的路由器启动时,会向域内所有路由器发送 Hello 消息以建立邻接关系。当邻居响应后,形成邻居关系。然后,路由器将包含其信息的更新发送给邻居,路由器据此绘制出拓扑表,包括所有最佳路由和备用路径。从中选取最佳路径用于数据包转发。

EIGRP__118">EIGRP 的优缺点

优点:
1.与其他路由协议相比,EIGRP 的收敛速度非常快,在故障发生时重新收敛的速度也很快。
2.相比链路状态路由协议和静态路由,EIGRP 的配置更简单。
3.支持的功能比其他内部网关协议(IGP)更多。
4.可在网络的任何点进行路由汇总。
5.支持负载均衡。

缺点:
EIGRP 是 CISCO 专有协议,这意味着网络中如果有其他品牌的路由器,可能无法运行 EIGRP

EIGRP__132">EIGRP 的三种表

邻居表

包含与运行 EIGRP 的相同自治系统直接相连的所有路由器。邻居关系的形成由 Hello 数据包启动。

拓扑表

显示 EIGRP 域中路由器已知的所有路由,包括主路由和备用路径。

路由表

显示由 DUAL 算法计算出的最佳路由,用于 EIGRP 的数据包转发。

EIGRP_145">EIGRP基本配置与验证

在这里插入图片描述

拓扑图显示了四台路由器和四台主机PC。每台路由器都有多个路由器与其相连。每台路由器上的LAN 1是PC的网络段,其他LAN则通过环回接口进行配置。

下表显示了该网络中使用的IP地址方案。

在这里插入图片描述

第一步是对所有路由器进行初始配置,我们需要在所有路由器上配置以下参数:

  • 配置主机名
  • 设置一个普通密码为“cisco”
  • 禁用 IP 域名查找
  • 为控制台线路配置密码“cisco”,并要求登录时需要输入密码
  • 将控制台线路的执行超时时间更改为45分钟
  • 配置控制台线路的同步日志记录
  • 配置4条Telnet线路,设置密码为“cisco”,并要求登录时需要输入密码
  • 将VTY线路的执行超时时间更改为25分钟
  • 配置VTY线路的同步日志记录
  • 根据上面的地址方案配置所有的IP地址和时钟速率,并启用所有接口
  • 将配置保存到NVRAM

完成这些配置后,我们可以开始进行EIGRP的配置。

首先,需要理解自治系统(Autonomous System, AS)。

自治系统是用于标识由单个实体控制或拥有并具有相同策略的所有网络的一种方式。在EIGRP中,AS始终相同。自治系统的另一种称呼是路由域(Routing Domain)。

进程ID用于标识路由域上的EIGRP进程。如果需要在一个路由器上运行多个EIGRP实例,则需要使用不同的进程ID来标识它们。

EIGRP中,为了确保工作正常,路由域内所有路由器的进程ID必须匹配。

在所有路由器上,需要进入全局配置模式,并通过以下命令启动EIGRP路由协议:

router eigrp <process_ID>

该命令用于在路由器上启动EIGRP

EIGRP的进程ID是一个介于1到65536之间的数值,用于标识EIGRP进程。这意味着我们可以在一个路由器上运行多个EIGRP实例,但只有当路由域中的进程ID相同时,通信才会正常。因此,EIGRP进程1无法与EIGRP进程2进行通信。

在本场景中,我们使用的进程ID为 100。以下是在R1上需要输入的命令示例:

在这里插入图片描述

此命令应在此路由域内的所有路由器上输入。当执行此命令后,我们将进入EIGRP的特定配置模式,其提示符如下所示:

在这里插入图片描述

动态路由协议通过通告其直接连接的网络来工作。因此,在路由器上,我们需要使用如下命令通告这些网络:

Router(config-router)# network <network-ID>

<network-ID> 应为要通告的特定子网。例如,在R1上,我们需要通告所有与其直接连接的子网。

虽然EIGRP是一个无类路由协议(classless routing protocol),但它表现为一个有类路由协议(classful routing protocol)。这意味着路由将自动汇总到其默认类。这可能导致某些路由被遗漏,即使我们的配置是正确的。因此,我们需要禁用默认的按类边界的路由汇总,使用以下命令:

Router(config-router)# no auto-summary

为了让此命令有效执行,通常最佳实践是在router eigrp命令之后立即执行此命令。

在我们的场景中,成功配置所有路由器的EIGRP所需的命令如表格所示。

在这里插入图片描述

配置完成后,我们能够在每台路由器上看到以下输出。下图显示了路由器 R1 上的输出。

在这里插入图片描述

接下来验证 EIGRP 配置。

在所有路由器上完成配置后,我们需要验证 EIGRP 是否已正确配置并正常运行。以下命令可用于完成验证:

1.show ip eigrp interfaces
此命令显示参与 EIGRP 的接口及其对应的进程 ID。

2.show ip route
此命令显示通过 EIGRP 学习到的主要路由以及用于流量转发的路由。

3.show ip eigrp topology
此命令显示 EIGRP 学习到的所有主备路由以及进程 ID。

4.show ip eigrp neighbors
此命令显示每台路由器的邻居以及进程 ID。

5.debug ip eigrp
此命令显示每台路由器的 EIGRP 统计信息,实时活动情况。

下图显示了上述一些命令在路由器 R1 上的输出。

1.show ip eigrp interfaces
此输出将显示所有启用了 EIGRP 的接口及其关联的进程 ID。

在这里插入图片描述

正如上方输出所示,红色标注部分显示了进程 ID 为 100,并显示了参与 EIGRP 的所有接口。

此命令对于验证被动接口非常有用。

2.show ip route 命令
下表展示了 R1 上运行 show ip route 命令后的输出结果。

在这里插入图片描述

正如上方输出所示,R1 已获得网络拓扑图中所有网络的路由信息。

红色标注的部分显示了路由协议指示符为 “D”,这表示该路由由 EIGRP 学习得来。网络 192.168.24.8 是通过 EIGRP 学到的,其 管理距离(Administrative Distance)为 90度量值(Metric)为 3193856。R1 是从 192.168.13.14(即 R3)获取此路由信息的,数据是通过接口 s0/1(与 R3 相连)学习到的。

3.show ip eigrp topology 命令
此命令将显示该路由器通过 EIGRP 学到的所有路由,包括主路由和备用路由。

在这里插入图片描述

这些是 R1 所知道的所有路由。红色标注的行显示,该路由器已经获得通往 172.16.1.64/29 的路由信息,此路由是通过 192.168.13.14 学习得来的。

4.show ip eigrp neighbors 命令
此命令将显示直接与该路由器相连并参与 EIGRP 的邻居路由器。

在这里插入图片描述

如上所示,R1 通过接口 se0/0se0/1 发现了两个邻居路由器。此命令对于发现未参与 EIGRP 的路由器非常有用。

完成上述配置后,所有主机 PC 都能够ping通。


http://www.ppmy.cn/ops/149187.html

相关文章

《通过财报看企业》

“借贷关系”“净资产收益率”“财务报表”、净利润、盈利能力、现金流 第1章 净利润&#xff1a;决定一家公司的股价能涨多高 企业经营&#xff1a;存货周转率 企业市值&#xff1a;市值净利润市盈率 龙头企业&#xff1a;行业内收入规模最大、盈利能力最强&#xff0c;…

RNN心脏病预测-Pytorch版本

本文为为&#x1f517;365天深度学习训练营内部文章 原作者&#xff1a;K同学啊 一 导入数据 import numpy as np import pandas as pd import torch from torch import nn import torch.nn.functional as F import seaborn as sns from sklearn.preprocessing import Standard…

html使用css外部类选择器

在写html时&#xff0c;可以在head标签里导入外部css样式&#xff0c;在body中需要使用这个类的标签时&#xff0c;可以标签中选择类&#xff08;class&#xff09;为定义的css样式。 <!DOCTYPE html> <html lang"en"> <head><meta charset&qu…

java后端对接飞书登陆

java后端对接飞书登陆 项目要求对接第三方登陆&#xff0c;飞书登陆&#xff0c;次笔记仅针对java后端&#xff0c;在看本笔记前&#xff0c;默认已在飞书开发方已建立了应用&#xff0c;并获取到了appid和appsecret。后端要做的其实很简单&#xff0c;基本都是前端做的&…

30天开发操作系统 第 12 天 -- 定时器 v1.0

前言 定时器(Timer)对于操作系统非常重要。它在原理上却很简单&#xff0c;只是每隔一段时间(比如0.01秒)就发送一个中断信号给CPU。幸亏有了定时器&#xff0c;CPU才不用辛苦地去计量时间。……如果没有定时器会怎么样呢?让我们想象一下吧。 假如CPU看不到定时器而仍想计量时…

【数据结构】树的定义

在计算机科学中&#xff0c;树&#xff08;Tree&#xff09;是一种重要的基础数据结构&#xff0c;广泛应用于许多领域&#xff0c;如文件系统的目录结构、数据库的索引、编译器的语法树、人工智能的决策树等。理解树的基本概念和术语&#xff0c;对于学习计算机科学及其相关技…

排序:插入、选择、交换、归并排序

排序 &#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性 &#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序&#xff0c;…

51c~Pytorch~合集4

我自己的原文哦~ https://blog.51cto.com/whaosoft/12311033 一、Pytorch~训练-使用 这里介绍了Pytorch中已经训练好的模型如何使用 Pytorch中提供了很多已经在ImageNet数据集上训练好的模型了&#xff0c;可以直接被加载到模型中进行预测任务。预训练模型存放在Pytorch的…