最长前缀匹配

网络工程 路由 路由器 网络 联网 路线
2022-02-27 23:50:22

我刚刚了解了这个概念,我有一个问题,之前有人也问过这个问题,但被严重误解了。

假设我的路由器在其路由表中有 Routes for Networks: 192.168.22.0/23192.168.22.0/25并且如果它根据最长前缀匹配接收到目标 IP 地址为192.168.22.1的数据包,它将选择具有子网 /25 并转发数据包,但是如果目标网络没有根据我的架构的预期 IP 地址怎么办。

它不会导致连接/数据包丢失并破坏我的网络吗?

作为网络工程师,我必须通过将重叠 IP 唯一地分配给192.168.22.0/25网络来设置我的网络,还是以不同的方式对其进行排序/处理?

请记住,我了解我无法在同一路由器上配置具有重叠子网的网络/ IP 地址,并且考虑的拓扑有点像连接到其他 2 个路由器的路由器,它们分别连接到这些网络。

3个回答

如果路由器没有到目标网络的路由,它将丢弃数据包。如果网络是直接连接的,路由器会针对 MAC 进行 ARP。如果没有响应,它将发送 ICMP 主机不可达消息。

不要将路由与子网混淆。您可以有重叠的路由,但不能有重叠的子网。所以 192.168.22.1 只能存在于一个子网中。

如果根据最长前缀匹配收到一个目的IP地址为192.168.22.1的数据包,它将选择子网为/25的路由条目转发该数据包

是的,它就是这样工作的。

根据我的架构,如果目标网络没有预期的 IP 地址怎么办

那么你的网络设计就有缺陷了。

有时,重叠的前缀是可以的 - 但它们可能不是。这完全取决于您的整体设计。

拥有不同的网关意味着您希望数据包以一种方式传输,192.168.22.0/23所有其他数据包则以另一种方式传输。实际上,如果您将所有这些与 /25 子网一起使用,则在此处用作 、 和 - 的摘要路由192.168.22.0/25192.168.22.0/25192.168.22.0/23192.168.22.128/23192.168.22.128/25192.168.23.0/25192.168.23.128/25

请注意,您不能从192.168.22.0/25“其他方式”路由器后面获得任何 IP 地址。无论您做什么,您都需要保持您的地址明确并且不能有重叠的子网。

该路由可能有意义的一个场景是连接192.168.22.0/23到更大网络的分支路由器。它有一个上行链路(可能指向192.168.0.0/16)和一个直接连接的子网192.168.22.0/25在该子网内是一个第 3 层交换机,该交换机在其他本地子网之间路由192.168.22.0/23

重叠的前缀可能违反直觉,因此您可能希望完全避免使用它们。毕竟,有些现代的设备通常不介意或多或少的路由条目,而透明和避免人为错误可能更为重要。

路由是非常确定性的,路由器无法猜测将数据报发送到哪里。如果一个路由表有两条或多于两条通往目的地的路径,它会使用最长匹配和其他方法来打破平局。路由器不能有冲突的重叠网络。如果路由器没有通向目的地的路径,即使是默认路由,它也会将数据包视为无法传递而丢弃。路由器在网络之间路由数据包,而不是从一个网络返回到同一个网络,因此路由器接口必须位于不同的、不重叠的网络中。