我想知道在不创建多条路由的情况下从路由中排除子网的最佳方法。例如,在交换机上,我可能有 ip route 10.0.0.0 255.0.0.0 10.54.21.1 我想要做的是仍然能够连接直接连接到此交换机的 10.2.2.0 255.255.255.240 的项目。我仍然希望 10.0.0.0/8 子网的其余部分路由到 10.54.21.1。
答案1
路由器(和 L3 交换机)具有内部层次结构,其中路由信息被提升到 FIB(转发信息库,俗称“路由表”)。思科使用“管理距离”的概念(越低越好)
路由信息的来源包括:
- 连接路线 (AD 0)
- 静态路由(AD 1,可定制)
- 动态路由协议(eBGP 20、EIGRP 90、OSPF 110、RIP 120、iBGP 200,仅列举 Cisco 使用的一些值)
- 如果有来自多个来源的重叠信息,则优先选择 AD 较低的来源,并将其提升到 FIB
由于 10.2.2.0/28 直接连接到该路由引擎,因此您实际上无法用任何静态路由(其广告 AD 不能低于 1)覆盖此“直接”或“本地连接”路由(管理距离为 0)。
但是,只有当具有该地址/子网的接口(我假设是“接口 vlan xxx”,对吗?)实际上处于“启动”状态时,这才是正确的。
只要接口处于“关闭”状态,其子网就不会显示为已连接路由(使用 进行检查show ip route connected
) - 并且到该子网的流量将按照路由表定义进行转发。 在您的例子中,这将沿着 10.0.0.0/8 路由进行。