OSPF 与 BGP 路由表大小

网络工程 路由 bgp ospf 协议理论
2021-07-21 10:35:38

我对 BGP 与 OSPF 中的路由表大小感到困惑。我的理解是,在路由器运行 OSPF 的 AS 中,每个路由器都拥有网络的全貌,因此每个路由器都有一个条目和到达它的度量。如果 AS 中的路由器运行 BGP,每个路由器将只知道它的邻居;因此,它将有更少的条目。

这个假设正确吗?如果是,您能否提供一个示例来说明这是如何发生的,以及为什么总是如此?

2个回答

不要将路由协议表与路由表混淆。每个路由协议都维护自己的一组表,这些表与路由表不同。路由表将包含路由协议表中的最佳路由。

BGP 和 OSPF 服务于不同的目的。OSPF 将始终位于单个 AS 内。BGP 主要用于自治系统之间的路由(eBGP)。BGP 可以在 AS (i​​BGP) 内使用,但 iBGP 有一些限制和规则。例如,iBGP 对等体不能通告从另一个 iBGP 对等体学到的路由,因此 iBGP 必须保持全网状或使用某种缓解措施(路由反射器或联盟)。

OSPF 维护其所在的整个 OSPF 区域的完整图片,并且仅维护该区域,而不一定是可能由多个区域组成的整个 AS。

BGP 将拥有每个邻居的条目、每个邻居向其通告的前缀以及 BGP 属性,这些属性可能会占用大量空间。

OSPF 只会在您的自治系统中交换路由。基本上,OSPF 知道您所有的 vlan 和所有路由器接口。

BGP 交换来自其他 AS 的路由:如何从 google、twitter、colt、level3 到达网络...

在您的 AS 内,您可能有多个 BGP 路由器,它们了解那些外部网络。但不知何故,他们必须交换信息。例如,您的路由器 A 可能直接连接到 colt 网络,而路由器 B 可以更轻松地访问 google。

(非常)旧的方法是重新分配 OSPF 内的所有外部路由。现在这不是一个好的做法,因为 OSPF 是为更快的收敛而设计的,并且不会随着那么多路由进行扩展。OSPF 会淹没所有更改,无法以与 BGP 相同的方式应用“策略”,并且不支持抑制 (AFAIK)。

当前的最佳实践是在所有路由器 (iBGP) 之间建立内部 BGP 会话:在内部路由器之间交换外部路由。

希望它有所帮助。