最长前缀匹配的共存

网络工程 路由 ipv4 ip转发表
2021-08-02 07:50:33

例如,128.92.128.0/17和128.92.128.0/18可以一起包含在一个转发表中吗?还是第一个必须改成128.92.192.0/18?因为另一半会去第二个前缀?

2个回答

IP 转发表通常存储在一个m-trie 中,它是一个 256-way trie

如果转发表实现为 256 路 m-trie,则 128.92.128.0/17 将包含 128.92.128.0/18 的 mtrie 条目...尽管这两条路由很容易到达不同的 IPv4 下一跳,因为IP 路由的工作原理是最长前缀匹配获胜。

这是 128.92.128.0/17 的 mtrie 的简化视图...

128.92.128.0/17 米

这是 128.92.128.0/18(包含在 128.92.128.0/17 中)的 mtrie 的简化视图...

128.92.128.0/18 米

两条路由都将被安装到活动路由表中,如果更具体的路由与被路由的数据包相关,则更具体的路由将获胜。

128.92.128.0/18 将被安装,但 128.92.128.0/17 也将被安装,因为 /18 没有覆盖所有的 /17。

如果你有这样配置的静态路由......

128.92.128.0/18 VIA x.x.x.x
128.92.128.0/17 VIA z.z.z.z

您将在活动表中获得以下结果。

128.92.128.0 - 128.92.191.255 will be routed via x.x.x.x
128.92.192.0 - 128.92.255.255 will be routed via z.z.z.z

/17 路由不会出现在路由表中的唯一方法是,如果静态路由发生了类似的事情。

128.92.128.0/18 VIA x.x.x.x
128.92.192.0/18 VIA y.y.y.y
128.92.128.0/17 VIA z.z.z.z

您的活动表将如下所示。

128.92.128.0 - 128.92.191.255 will be routed via x.x.x.x
128.92.192.0 - 128.92.255.255 will be routed via y.y.y.y

由于您拥有更具体的 /18 路由所涵盖的所有 /17,因此 /17 会从活动路由表中删除。