这不是问题的直接答案,但从评论来看,我认为地址聚合和地址分配之间存在混淆。
更新:我认为您可以从不相交的集合和集合并集的角度来考虑这一点。每个子网都是一组 IP 地址。所有子网必须是不相交的,即每个子网都是唯一的。层次结构适用于联合,而不是单独的集合。也就是说,当集合的并集可以通过单个地址聚合时,汇总是可能的。因此,R1 可以汇总橙色、绿色和红色(以及 R3 和 R4 后面的任何内容)的并集。R2 可以总结绿色和红色的联合。
update2:你能用橙色跨越整个网络、红色跨越 R2 和 R3 之间的链接以及 R3 后面的任何东西来绘制你的图片,并且绿色相同。网络中的每个第 2 层网段都必须具有唯一的地址/掩码。但是您的地址可以在圆圈边界上汇总。
(1) 路线汇总仅在一个方向上起作用。如果所有路由到地址 10.1.*.*,R1 可以汇总路由,这意味着您图片之外的路由器将只学习到 10.1 的一个地址。. /16 通过 R1。相反,如果没有总结,他们可以学习到 10.1.100 的路线。, 10.1.200。分别。路由汇总不会影响内部发生的事情,内部发生的事情对路由汇总没有直接影响。
此外,R1 执行此操作的能力不需要您网络中的任何内容实际上是分层的。它只要求所有地址都匹配 10.1.*.* (并且网络的其他部分没有匹配的地址)。无论您如何在网络中分配地址,这都不会改变。
R1 和 R2 之间的链接具有 /30 或 /31 地址并不会阻止 R1 进行汇总。
(2) IP 互连第 2 层段。因此,IP 区分系统,可直接使用第 2 层和系统,不可访问,地址必须实际转发(这里路由意味着〜相同)。如果接口具有地址 10.1.0.1 和掩码 255.255.0.0,则 IP 可以假定所有匹配 10.1.*.* 的地址都是本地的,而不是转发的。这意味着,10.1.*.* 应该使用相应接口的第 2 层传送(对于 IP -> 执行 ARP,获取 MAC 地址,并将数据包发送到 MAC 地址)
在这种情况下,10.1.*.* 是本地的,但必须转发 10.1.100.* 的配置,虽然从最长前缀匹配的角度来看可能有意义,但实际上是不正确的。我找不到任何说明会发生什么的规范。我认为可以肯定地说,目前尚不清楚这是否会奏效。
因此,您可以拥有一个路由表:10.1.100.* -> 接口 3 通过 R_X(转发)和 10.1.*.* -> 接口 2 通过 R_Y(再次转发)(这将使用最长前缀匹配解决) ,但你不能有这样的情况 10.1.100.* -> interface 2 via R_Y (forwarded), 10.1.*.* -> interface 2, local。
(3)同样 IP 不知道 R1 和 R2 之间的链路是电缆。如果电缆是以太网,也不能保证它保持这种方式。您可以将其替换为交换机,并将 2 台路由器和 N 台主机插入交换机。如果这样做,并且这 N 台主机位于网络 10.1.*.* 中,理论上它们可以在该网络中拥有任何 IP,包括 10.1.100.1。如果发生这种情况,您的重叠子网将导致问题。
因此建议使用 /30 或 31/ 地址,因为它们只允许子网中的 2 个系统,如果您尝试让第三个系统进入,它将无法正常工作。
(4)作为示例,让我们考虑一种情况,您也希望在 R2 上进行路由汇总。R1 已经在汇总路由。
- 请注意,R1 和 R2 不能总结彼此之间的联系。他们必须了解这个链接。让我们将 10.1.0.0/31 分配给链接(以便 10.1.0.0000 000*(最后一个二进制文件)分配给此链接。
R2 有两个网络,绿色和红色,它要汇总地址。为此,这些网络必须具有具有公共前缀的地址,并且该前缀不应与上面的链接重叠。由于您有所有 10.1.*.* 可供选择,让我们为它们分配匹配任意地址10.1.1*** ****. **** ****(即 10.1.128.0/17)。然后红色的可以得到10.1.10 ** ****.*,绿色的可以得到10.1.11 ** ****.**** ****,或者 10.1.128.0/18 和 10.1.192.0/18 然后 R2 可以向 R1 宣布一个地址 10.1.128.0/17。R2 不能向其他任何人宣布它,因为它必须能够在绿色和红色之间进行路由。[请验证我的二进制到十进制转换!]
现在,在红色区域中,R2 和 R3 之间存在链接。我们可以为它分配一个匹配 10.1.128.0/18 的 /31 地址,或者10.1.10** ****.**** ****. 让我们使用全零并有 10.1.1000 0000.0000 000* 或 10.1.128.0/31。所有其他地址都可以分配给 R3 后面的任何地址。
因此,这就是您在分配子网时所做的事情。每个子网都有一个唯一的地址。但是,所有汇总的子网都可以由具有较短前缀的唯一地址覆盖。
这让我想到了最后的笔记
(5)。何时可以执行路由汇总实际上取决于您的协议。距离矢量协议可以在任何地方做到这一点,而链路状态路由则不能。链路状态路由协议必须知道拓扑,因此无法进行路由汇总。OSPF 将其域划分为单独的区域,每个区域单独进行链路状态路由,但区域间通信不是基于链路状态方法进行的。OSPF 只能在区域边界上进行汇总。外部路由和路由重新分配的情况更复杂,但它们遵循相同的模式。有“边界”路由器,可以从区域外获取路由并注入到区域中。路由汇总只能由这样的路由器完成。
(6)路由汇总与保留小表不同。路由汇总会影响路由协议本身交换的信息。即使您的路由器使用 OSPF 并且实际上无法汇总任何内容,它们(我认为)仍然能够在路由表中拥有更少的条目。
PS 我使用符号 .0100 0000. 作为 IP 地址中八位字节的二进制表示。而地址中的*表示,一个位可以有任意值,即不被前缀长度覆盖。10.1.10** 。**** 是一个 IP 地址,其中前 8 位是十进制 10,第二个 8 位是十进制 1,其余 2 个八位位组是二进制表示法,其中第三个八位位组必须以 10 开头,并且所有其他位都是任意或不相关的。