BGP - IGP 如何知道正确的路由?

网络工程 路由 bgp ospf 国际电联
2021-07-17 00:17:09

让我们考虑自治系统 AS100 中的主机 A。假设它想与另一个 AS 中的主机 B 通信,例如 AS200。在 AS100 中有几个路由器。在一个 AS 内,使用的路由协议是内部网关协议,例如 OSPF 或 RIP。

AS100需要知道通过其他AS-es到AS200的路径,所以AS100中的边缘路由器是BGP路由器,BGP是用于自治系统之间路由的外部网关协议。

如果 AS100 连接到两个 AS(它有两个 eBGP 路由器),AS100 中的主机 A 如何知道要与哪个 BGP 路由器通信,以便与 AS200 中的主机 B 通信?主机 A 告诉它的路由器它想与主机 B 通信。现在,该路由器需要知道到主机 B 的路径。但主机 B 在 AS100 之外。

eBGP 路由器是否将其路由表发送到一个 AS 中的所有路由器(BGP 和 IGP)我的意思是,AS 内部的“普通”路由器必须知道很多,他们必须选择合适的边界路由器,以便主机 A 可以与主机 B 通话。

如果所有路由器都知道同样的事情,那为什么还有人需要 iBGP?通常 BGP 路由表很大,所以这可能是一个错误的陈述,但我不确定如果它的邻居路由器不知道边界路由器拥有的所有路由,主机 A 怎么知道正确的路径。

3个回答

eBGP 路由器是否将其路由表发送到一个 AS 中的所有路由器(BGP 和 IGP)?

不,这就是运行单独协议的全部意义所在。BGP 发言者将极少量的路由重新分配到 IGP 中。如果你的 AS 外只有一条链路,那么 BGP 路由器只需要重新分配一条默认路由即可。如果您有多个出口点,您可以重新分配一些汇总路线以将交通引导至正确的方向。

通常,BGP 发言者仅将默认路由通告到 IGP 中,BGP 发言者将根据其路由信息将流量路由到 AS 外。

换句话说,A 不需要知道所有事情,它只需要知道如何到达边界路由器,然后边界路由器可以正确地路由流量。

有多种方法可以做到这一点。

其他 AS 可能正在发送默认路由,或者 AS100 中的路由器可能只配置了默认路由。

其他 AS 只能通过 BGP 通告自己的路由。

其他 AS 可以向 AS100 通告完整的 BGP 路由。

BGP 有许多因素可以影响决定以哪种方式切换目的地为另一个 AS 的流量。这是整本书的主题,超出了本网站的范围。它远比 IGP 路由协议复杂,它可能涉及许多步骤来确定最佳路径。通常归结为到达另一个 AS 的 AS 跳数。

您可能对 iBGP 的作用感到困惑。iBGP和eBGP的区别在于邻居是否在同一个AS。一个 AS 几乎总是有更多的路由器,而不仅仅是连接到其他 AS 的路由器。AS 内部的路由器将具有与其邻居相同的 AS 编号,因此它们将使用 iBGP。

这也将是一个关于如何在 AS 内进行设计的巨大讨论。同样,您可以拥有默认路由、完整或部分路由表、组合等,或 IGP 和 iBGP 的混合(之所以涉及,是因为您可以使用全网状网络、路由反射器、联盟等)。

可以控制BGP邻居互相发送什么。它可以是完整的路由表,也可以是 AS 所有者认为合适的任何内容。这个问题没有一个答案。

BGP协议是INTERNET的路由协议。它是所有自治系统互连的方式。BGP 由两种类型的对等体组成,内部对等体和外部对等体(从 AS 的角度来看)。

然后,您就像网络管理员一样,需要知道您想向全世界宣布的网络(一旦您获得了一些更高的组织,如 ARIN、RIPE 等)。好吧,您需要知道您是专有的并且想要“宣布”的网络。这就是 AS100 和 AS200 所做的,宣布主机 A 和 B 连接到的网络。

您怀疑该网络的已知信息如何跨 2 个其他自治系统传播。这就是 BGP 的工作方式:一个自治系统负责宣布自己的网络并重新发送(被允许或需要)从 eBGP 对等体那里学习到的网络。

在这种情况下,就像一个巨大的 BGP 对等体网格。

然后,主机 A 可以与不同自治系统上的主机 B 通信,原因是,例如:AS200 知道到达位于 AS100 上的 network_of_host_A,并且它通过 some_number_of_AS(称为 AS_PATH)到达。