但是,在重分配方面,R1 如何决定是重分配自己的静态路由,还是通过 OSPF 发布从 R2 学到的静态路由?
关于重新分配的一个关键概念:重新分配发生在路由表中,而不是来自给定动态路由协议的“拓扑数据库”(各种协议的不同术语)。
要将从一个协议中学到的路由重新分配到另一个路由协议的“信息交换机制”中,该路由首先必须使其进入(本地)路由表。是的,在这种情况下,“静态”和“连接”与任何其他路由协议一样好(甚至“更强”,见下文)。
一旦重新分配,例如通过 OSPF,然后由其他路由器决定他们如何处理这些信息。他们将自行决定是否要将这些信息提升到他们的路由表中,或者他们是否有冲突的、更具体或更高级的信息,例如来自其他路由协议(如 eigrp、bgp、rip,甚至静态或连接)的信息。但是,它们都将通过给定的路由协议将原始信息传递给其他路由器。
什么使“更强”的路由信息取决于制造商或管理员。此信息不通过任何路由协议传递。思科将此度量标准称为“管理距离”,它有一组默认值,管理员可能会覆盖这些默认值。
现在来看看实际答案:
即使被“更强”路由(本地在既具有静态和从 OSPF 学习的给定路由器上)取代,有关此类路由的信息(在 OSPF 的情况下:“外部路由”)也会传递给另一个自治系统中的路由器。因此,您示例中的 R1 将执行此操作:
- 在其路由表中保留自己的静态路由。
- 转发(通过 OSPF)邻居的OSPF 外部路由(在 R2 上生成/发起,因为 R2 具有“重新分配静态”功能)到其其他邻居,因此他们可能会知道该网络可通过 R2 访问。像这样,信息分布在整个 AS 中。
- (如果也配置为“redistribute static”)R1 将生成一个额外的“OSPF 外部”路由,因此 AS 中的其他路由器可能会得知该网络也可以通过 R1 到达,并且邻居将通过 AS 传递信息。
AS 中的其他路由器现在将获悉在它们的 AS 中有两个ASBR(R1 和 R2)来宣布可能相同的外部网络的可达性。如果他们有数据包要转发到该网络,则由他们自行决定(阅读:他们如何选择填充自己的路由表,基于他们通过 OSPF 获知的信息)他们将选择哪条路径。
因此,在 OSPF 中,来自拓扑数据库的信息传递独立于给定路由器的本地路由表。