将路由指向不直接连接的下一跳

网络工程 路由 路由器
2021-07-30 15:57:40

是否可以将路由指向不直接连接到我的路由器的下一跳?

例如:

RouterA拥有子网10.10.10.0/24
RouterA和RouterB
在10.0.1.0/24子网通信 RouterB和RouterC在10.0.2.0/24子网通信

路由器 C 已从路由器 B 学习到 10.0.1.0/24 子网,并将路由器 B 作为下一跳

我可以在路由器 C 上放置 10.10.10.0/24 子网的路由并将其直接指向路由器 A 吗?

路由器 C 是否足够聪明,可以确定它需要发送到路由器 B 才能到达路由器 A?我知道通常的做法是告诉路由器 C,路由器 B 是路由器 A 子网的下一跳。

2个回答

这被大多数供应商称为递归下一跳查找(或类似的东西)。大多数设备都能很好地处理这个问题,但进入静态路由并不是一个特别好的做法。

FWIW,iBGP 通常以这种方式工作。iBGP 会话中携带的“下一跳”是自治系统远端的下一跳,某种 IGP(通常是 OSPF,不太常见的是 IS-IS、RIP 甚至静态路由)用于递归地将该 iBGP 下一跳解析为直接下一跳。

如果你做的太多,设备就不得不做越来越多的递归层来找到真正的下一跳。我从来没有真正测试过任何设备,看看它会递归多少次找到真正的下一跳,但如果限制是 3 或 4,我不会感到惊讶。

路由器必须知道从哪个接口转发数据包。如果您尝试指定一条到它不知道的网络的路由,并且不包含有效的下一跳接口,则它不会将该路由输入到它的转发表中。

您需要引入路由协议,使路由器“足够智能”,知道如何处理该数据包。