我有一个相当复杂的场景,我设法用 GNS3 复制了它。请看附图。在这种情况下,我有四个“分支机构”,每个分支机构都有自己的路由器,它们之间通过 /30 网络相互连接。每个分支机构都有一个带有两台主机的简单第 2 层哑交换机。
NetworkA 和 NetworkB 位于 OSPF 区域 0。而 NetworkC 和 NetworkD 位于区域 1,而 NetworkD 连接两个区域。
OSPF 邻接在以下之间形成:
- 网络 A 和网络 B
- 网络 B 和网络 D
- 网络D和网络C
- NetworkA 和 NetworkC 之间不形成 OSPF 邻接关系。
为了这个问题,我们将假设不允许在 NetworkA 和 NetworkC 之间形成 OSPF 邻接关系。我们还将假装我们实际上不知道在 NetworkA 后面发现了哪些 IP;即使图片显示 192.168.1.16/29 子网在那里。出于这个原因,我们将 NetworkC 上的最后网关设置为指向 NetworkA。
所以现在,NetworkA 正在向 NetworkB 宣传它的网络,而后者又向 NetworkD 宣传它的网络,最后它们被宣传到 NetworkC。如果 NetworkC (PC-3) 上的主机尝试 ping NetworkA (PC-2) 上的主机,则数据包会一直到达 NetworkD,然后到达 NetworkB,最后通过 NetworkA。而不是直接在 NetworkC 和 NetworkA 之间走路径。这是因为 NetworkC 的路由表中有 OSPF 路由告诉它通过 NetworkD 转发它们。
我想找到一种方法,让从 NetworkC 到 NetworkA 的流量通过最后的网关。我相信我需要做的是为 NetworkC 设置一种方法来抑制它为 NetworkA 接收的任何 OSPF 路由,并完全依靠它的最后网关来访问 NetworkA 后面的任何内容。
我可以通过简单地在 NetworkA 和 NetworkC 上添加静态路由来完成这项工作,但是对于这个问题,我们假装我们不知道 NetworkA 后面的 IP(尽管它们显示在图中)。出于这个原因,我不能在 NetworkCRouter 上使用静态路由到 192.168.1.16/29 网络,反之亦然,在 NetworkARouter 到 192.168.1.24/29 网络。
我一直在研究 OSPF 入站过滤,方法是使用带有分发列表的路由映射来匹配特定路由并拒绝将它们添加到路由表中。但我无法弄清楚如何正确实施它。这是你会做的事情吗?或者我相信另一种方法是使用单独的 OSPF 进程 ID 将它们分开。但我也不确定如何让它发挥作用。
