【网络协议】EIGRP - 第二部分
概述
在【网络协议】EIGRP - 第一部分中,探讨了EIGRP的概念及其工作原理等。
在这一部分中,将探讨EIGRP的度量值,学习DUAL算法并在实验中加以实现。
文章目录
- 概述
- EIGRP度量
- DUAL概念
- 路由汇总
- 手动汇总
- 默认路由和路由汇总配置
- 路由汇总配置
- 分发默认路由
- 被动接口 (Passive Interfaces)
EIGRP度量
路由协议通过一个称为度量值(METRIC)的值来衡量到达路径的距离。度量值由路由协议算法计算,通常表示到达特定目的地的成本。
EIGRP使用由多个值组成的度量值,这称为复合度量值。在EIGRP中,它由以下值组成:
- 带宽
- 延迟
- 可靠性
- 负载
注意:MTU不参与度量值的计算。
在EIGRP中更改度量值时,上述度量被分配了被称为K值的参数:
- 带宽 – K1
- 延迟 – K2
- 可靠性 – K3
- 负载 – K4
- MTU – K5
如果K值为0,则不会使用这些K值。
注意:尽管上述公式有所提及,但CISCO建议在实际路由器配置中不要更改这些值,因此我们不会进一步讨论它们。
DUAL概念
在前一部分中,我们提到EIGRP使用DUAL(Diffusion Update Algorithm,扩散更新算法)来计算路由。在本节中,我们将学习DUAL如何计算最佳路径以及如何找到备用或冗余的无环路径。
在本节中,我们将讨论几个术语。这些术语对于理解EIGRP至关重要:
- Successor(后继者)
- FD(Feasible Distance,可行距离)
- FS(Feasible Successor,可行后继者)
- RD(Reported Distance,报告距离)或AD(Advertised Distance,通告距离)
- FC(Feasibility Condition,可行性条件)
为了更好地理解这些概念,我们将使用下面所示的拓扑结构进行说明。
上述拓扑由4台路由器和2台PC组成。连接按照关键表中显示的带宽进行配置,这些是此类链路的默认带宽。EIGRP已在所有四台路由器上配置,并且网络已经完全收敛。
IP地址分配方案如表所示。
在EIGRP中,Successor(后继者)是用于将数据包转发到目标的邻居路由器。这是一条无环路径,并且具有最低的成本或度量值。通过检查EIGRP域中的IP路由表,可以找到后继者,其路由器的IP地址显示在关键字“VIA”之前。
在我们的场景中,我们可以检查R1的路由表以确定到网络192.168.4.0/24的后继者。
在红框中高亮显示的部分表示,网络192.168.4.0/24的后继者经由192.168.14.2,该IP地址是R4上FastEthernet 2/0接口的IP地址。因此,这条路由的后继者是路由器R4。
可行距离(Feasible Distance,FD) 是用于到达某个网络的度量值。DUAL算法通常将其确定为最低成本的无环路径。
在上述输出中,到网络192.168.24.0/30(R2和R4之间的链路)的可行距离显示在蓝框中,为2172416。
当一条路由失效时,EIGRP通常会非常快速地收敛并使用备用路径(如果存在),这是因为备用路径通常由DUAL算法预先计算并存储在拓扑表中。
下面是R1上“show ip eigrp topology”命令的输出,可以看到在高亮部分,网络192.168.24.0有两条路径,分别是经由192.168.14.2(R4)和192.168.12.2(R2)。
在下面的场景中,从R1到网络10.10.2.0/24的可行距离等于(R1到R3的距离)+(R3到S1的距离),总计为110。而(R1到R4的距离)+(R4到S1的距离)为220,因此这条路径的成本更高。
记住:度量值越低,路由越优。
通告距离或报告距离是从邻居的角度到达某个网络的度量值。
在上述场景中,到达网络10.1.2.0/24的通告距离在R1上是从R3到交换机的距离,这里显示为10,如上方红色箭头所示。
可行后继者(FS) 是满足可行性条件(FC)的邻居,并为后继者提供无环的冗余路径。
可行性条件(FC) 是DUAL用来判断冗余路径是否可行的方法。此条件通常表明,只有当邻居到目标网络的通告距离小于当前后继者到同一网络的可行距离时,该路径才可以被视为可行后继者。
为了更好地理解可行性条件,我们结合上图和以下解释。
在我们的场景中,如果R4到S1的距离小于R1到S1的距离,则路由器R4可以被视为可行后继者。例如:
- 到网络10.1.2.0/24通过R4的**通告距离(RD)**是10。
- 到网络10.1.2.0/24的**可行距离(FD)**是110。
10 < 110,则该路由器满足可行性条件,并可以成为可行后继者。
在这个拓扑中,已满足可行性条件,因此到网络10.1.2.0/24的备用路径将通过R4。
路由汇总
EIGRP在默认情况下使用自动汇总命令(auto-summary)在主要网络边界自动进行汇总。然而,EIGRP是一种非常灵活的路由协议,它允许在网络中任何适当的位置进行路由汇总。
如前所述,可以通过在EIGRP的路由器配置模式中使用no auto-summary
命令禁用自动汇总。命令如下:
Router(config-router)#no auto-summary
手动汇总
进行手动汇总时,我们使用超网(Supernet)路由。
超网是其子网掩码小于其所在类别掩码的网络地址。如果我们有多个子网,可以通过汇总生成一个新地址,并由路由器通告。
下表显示了需要汇总的五个子网。
要汇总这些地址,我们遵循以下步骤:
步骤 1:将 IP 地址转换为二进制格式
将需要汇总的 IP 地址转换为其二进制形式,如下所示:
步骤 2:找到匹配的位数
比较这些二进制地址,确定哪些位是相同的。当遇到不匹配的列时,停止比较。这就是汇总边界。在我们的场景中,前两个字节和第三个字节的前五位是匹配的,如下图中的红线所示:
匹配位的总数将成为新的子网掩码。
注意: 子网掩码的网络部分仅由“1”组成,因此在我们的案例中,子网掩码是:
255.255.248.0
这在斜线表示法中等于 /21
。
步骤 3:确定网络地址
网络地址由子网的匹配位组成。在我们的例子中,第三个字节中匹配的位全为零,因此网络地址为:
192.168.0.0
如果匹配位中有“1”,子网地址应包含这些值的总和。
最终的超网地址为:192.168.0.0/21
,这将成为路由器上通告的汇总地址。
在 EIGRP 中通告汇总地址时,需要在接口配置模式下操作。汇总地址应在参与 EIGRP 的所有接口上进行通告。以下是配置汇总地址的命令:
Router(config-if)#ip summary-address eigrp <process-ID> <NETWORK_ADDRESS> <SUBNET_MASK>
PROCESS_ID
是配置 EIGRP 时使用的进程 ID。NETWORK_ADDRESS
是手动汇总后得出的超网地址。SUBNET_MASK
是超网的新子网掩码。
默认路由和路由汇总配置
在将企业网络连接到其他网络(例如互联网)时,由于我们无法控制这些网络,可能需要配置默认路由,将任何未知流量转发到互联网。在本实验中,我们将使用以下场景:
拓扑由三台路由器组成,所用接口已显示。两台主机(PC)在其子网中使用第一个可用的 IP 地址,而路由器上的 LAN 接口使用子网中的最后一个可用 IP 地址,如下所示:
我们的任务是配置默认路由,并在 EIGRP 中重新分发它,使 R2 和 R3 能够访问互联网资源。此外,R2 和 R3 上有 5 个环回接口,我们还需要配置这些接口的汇总地址,以便向 R1 通告。
注意: 为了模拟互联网上的默认路由,在 ISP 上配置了网络地址 60.200.200.0/30
。
所有基础配置(包括 IP 地址)已在路由器上完成,因此我们将直接从 EIGRP 配置开始。
我们将在所有路由器上使用 EIGRP AS 1。
注意: 当要求配置 EIGRP 且需要禁用自动汇总时,这应该是配置的第一步。以下是各路由器的配置示例:
完成此配置后,除默认路由外,所有路由应在网络中传播。现在,我们需要检查 R1 的路由表,看看它有多少条路由。
可以看到,我们通过 EIGRP 学到了 10 条路由,我们希望通过手动汇总 R2 和 R3 上的环回网络来减少这个数量。
路由汇总配置
如前所述,进行路由汇总或超级网络的步骤如下:
- 将要汇总的网络写出并转换为二进制。
- 找出汇总的子网掩码,从最左边的位开始。
- 向右遍历,找到所有连续匹配的位。
- 当找到不匹配的位时,停止。你就找到了汇总边界。
- 计算最左边匹配位的数量,这个数量就是你汇总路由的子网掩码。
- 找到汇总的网络地址,复制匹配的 22 位,并在末尾加上所有 0 位,直到 32 位。
在 R2 上,这些步骤如下所示。
第 1 步:
第 2 步 - 第 4 步:
在这种情况下,匹配的位数是前两个八位组和第三个八位组的前四个位。这一点由红线标示。
第 5 步:
匹配的位数为 20,因此新的子网掩码是 255.255.240.0。
第 6 步。
新的网络地址将是 10.10.0.0/20。
这是我们将在 R2 的 Serial 0/0 接口上通告的汇总地址。使用的命令如下所示。
R2(config)#int s0/0
R2(config-if)#ip summary-address eigrp 1 10.10.0.0 255.255.240.0
现在,我们需要在 R3 上配置相同的内容,以汇总它的环回网络。
第 1 步:
第 2 步 - 第 4 步:
在这种情况下,匹配的位数是前两个八位组和第三个八位组的前三个比特。这一点由红线标示。
第 5 步:
匹配的位数为 19,因此新的子网掩码是 255.255.224.0。
第 6 步:
新的网络地址将是 172.16.0.0/19。
这是我们将在 R3 的 Serial 0/0 接口上通告的汇总地址。使用的命令如下所示。
R3(config)#int s0/0
R3(config-if)#ip summary-address eigrp 1 172.16.0.0 255.255.224.0
在 R2 和 R3 执行这两个命令后,我们需要查看 R1 的路由表,以确认是否获取了汇总路由,而不是我们之前看到的单独路由。
如上所示,R1 现在仅从 R2 和 R3 接收汇总路由。这些路由以红色突出显示。
分发默认路由
要配置默认路由,我们按照以下步骤操作。
第 1 步:
在 R1 上配置一个静态默认路由,使用以下命令:
R1(config)#ip route 0.0.0.0 0.0.0.0 s0/2
这将使所有未知流量通过 R1 的 Serial 0/2 接口转发到互联网。R1 的路由表现在将显示此路由,如下图红色高亮的框所示。
然而,我们还需要让 R2 和 R3 转发未知流量到互联网。正如下图所示,R2 的路由表中没有默认网关,R3 也是如此。这意味着来自 R2 和 R3 上的主机的任何目的地为互联网的流量都会被丢弃。
为了解决这个问题,我们需要将 R1 上配置的静态默认路由重新分发到 R2 和 R3。
在 EIGRP 中,我们需要使用 redistribute
命令来使配置了静态默认路由的路由器更新 EIGRP 路由域中的其他路由器。执行该命令时,它会告知 EIGRP 将默认路由包括在其更新中。当 EIGRP 域中的路由器收到该路由时,它们会将其识别为默认路由,并将其添加到路由表中。
在 R1 上的命令是:
R1(config-router)#redistribute static
当在 R1 上执行此命令时,R2 和 R3 上应该会出现一条新路由。默认路由将被重新分发到 R2 和 R3,如下所示 R3 的路由表所示。
现在,如果我们从 PC_B 向互联网中的网络发起 ping 操作,我们应该能够收到回复,如下所示的输出所示。我们将要 ping 的 IP 地址是 60.200.200.1。
如图,我们从互联网上的 IP 地址收到了回复,这意味着默认网关已正常工作。
被动接口 (Passive Interfaces)
本文中我们将讨论的最后一个 EIGRP 命令是被动接口命令。这个命令用于限制路由更新在某些接口上的传播。在我们的网络中,我们需要安全性,通常不需要向只有终端用户的区域(例如我们的 LAN)发送路由更新。因此,使用此命令可以限制 EIGRP 更新。当执行此命令时,它会停止在特定接口上的任何路由更新。通常,这些接口通常是像 FastEthernet 这样的 LAN 接口。
配置被动接口的命令如下所示:
Router(config-router)#passive-interface <interface_NAME><interface_ID>