OSPF或iBGP用于内部路由协议?

网络工程 路由 路由器 bgp ospf 国际电联
2021-07-13 19:58:18

所以计划是,两个核心路由器每个都有一个 eBGP 会话到两个具有完整路由的 ISP 之一。两台路由器相互发布完整的表,以便它们可以通过 iBGP 更智能地控制流量。

为便于论证,三个接入路由器都有一条通往每个核心路由器的路径。我将配置 iBGP 并从每个核心路由器发布默认路由,以便它们对硬件故障具有一定的弹性,并使用过滤器来控制实际发送到接入设备的路由。

我听说人们通常将 OSPF 用于他们的 IGP,当然其中有一个元素是特定于案例的。

我的问题是:用 OSPF 替换 iBGP 有什么好处?

3个回答

iBGP 需要全网状网络或使用诸如联盟或路由反射器之类的缓解措施,BGP 不会与 OSPF 的速度等任何东西融合。

每个 OSPF 路由器都可以完全了解其所在区域中的所有路由,而无需全网状网络,并且会非常非常快地收敛。

建议对 iBGP 使用 IGP。如果没有 IGP,iBGP 必须在面向外部的接口上邻居,有了 IGP,iBGP 可以在永远不会关闭的环回接口上邻居,并且可以有多个路径到达。

我见过iBGP-only用于本地路由,但是比较困难和脆弱。

首先,我会质疑其他一些人认为 OSPF 收敛速度比 BGP 快的断言,但稍后会对此进行更多讨论。先回答OP问题。

你两个都想要。

iBGP 旨在在路由器上的环回接口之间运行,并且它不会(至少没有调整和转动一些旋钮)改变它所通告的路由的任何属性(包括下一跳)。

那么这有什么影响呢?

让我们将您的边界路由器称为路由器 A 和路由器 B,并将您的三个接入路由器称为路由器 1、路由器 2 和路由器 3。

路由器 A 和 B 从您的上游获取完整的 Internet 馈送,并将下一跳设置为互连链路上的上游接口地址。当这些路由再次通过 iBGP 传递时,除非您进行调整,否则路由器 1、2 和 3 接收的路由的下一跳仍然是该互连链路远端的 IP 地址。

路由器将执行递归查找以找到该 IP 地址的路径,然后在路由安装在转发表中时使用该下一跳。“但是,”你说,“我会使用 next-hop self。” 请参阅下一段了解这是如何工作的。

“但是,”您也可能会说,“我只是将默认设置发布到路由器 1、2 和 3。” 好的,但是默认路由必须来自某个地方……如果它是一个已经存在的默认路由(比如静态路由),它将有一个可以使用的下一跳。如果它是生成的默认值......它可能会使用 iBGP 会话运行的环回地址作为下一跳。同样,这不会被视为接口,也不会被视为路由器 1、2 和 3 中的直接连接路由,因此它们仍然需要进行递归查找才能找到它。

因此,您需要某种 IGP 运行,例如 OSPF、IS-IS 或 EIGRP,或者甚至只是大量的后台管理静态数据,以实现递归查找的可达性。

“但是,”你又说,“我将在接口地址而不是环回上运行 iBGP 会话。好的,但现在你的 BGP 对等会话依赖于“启动”工作的接口。因此,例如,如果路由器 1 和路由器 A 之间的接口发生故障,那么在该接口上运行的 iBGP 对等会话也会发生故障。但是路由器 1 仍然能够向路由器 A 发送流量,它只需要通过路由器 B 来完成。所以,您希望 iBGP 会话保持正常运行,即使这些接口出现故障,因为您的最终下一跳仍在那边,并且那边仍然可以通过另一条路径到达...OSPF(我使用 OSPF,但您可以子 IS- IS 和 EIGRP 在任何您看到 OSPF 的地方)将找出其他内部路径,并在递归查找中正确构建转发表。

所以,是的,您可能可以调整足够多的旋钮并在没有任何 IGP 设置的情况下获得纯 iBGP 设置...

帮自己一个忙,如果您是纯粹的思科商店,请打开 OSPF、IS-IS 或什至 EIGRP(但请考虑您是否真的想接受供应商锁定,如果您这样做...考虑未来的潜在决定使用不同供应商的设备......即使只是为了让思科对你的定价保持诚实)。为路由器之间的所有接口打开它,并使用被动设置在上游连接上进行设置,也可能在使用被动设置的接入路由器的下游连接上进行设置。然后在环回之间设置 iBGP 对等互连。考虑路由反射器(可能在路由器 A 和 B 上)以减少所需的配置工作……从大约 5 个路由器开始这样做是有意义的。

这确实是最明智的方法。

现在,协议收敛速度。

由于这些协议的常见用例,大多数人认为 BGP 很慢而 OSPF(或其他任何东西)很快。人们通常将完整的 Internet 或至少其中的很大一部分拉入 BGP,而仅处理 OSPF 中的内部路由(10 到 100 条,可能是数千条路由)。因此,让我们假设您将一半的 Internet 路由拉入 BGP...尝试构建一个包含 250,000 多个路由的 OSPF 区域,然后让我知道这对您来说是怎样的。让我们看看它是否比 BGP 收敛得更快……或者除非你的路由器上有一个非常强大的控制平面。

在给定情况下,BGP 可以频繁地收敛或重新收敛,比 OSPF 和其他更快,至少取决于您如何衡量它。如果在广播网络中包含 OSPF 的邻居发现,则 BGP 几乎肯定会在类似的路由组合中获胜。

另一个区别是 BGP 将在完成(重新)收敛之前开始将路由放入路由和转发表中,这可能是一个好处,而 OSPF 实现几乎肯定会等到最后才开始将路由放入路由和转发表. 有时,收敛部分路由集会很有用。有时不是。

虽然@RonMaupin 所说的一切都是真的,但在您的特定情况下,只有五个路由器,添加另一个路由协议并没有太多好处

由于您没有全网状网络,您必须将核心路由器配置为路由反射器。

唯一真正的缺点是 BGP 的收敛速度比 OSPF 慢,但有一些方法可以最大限度地减少这种不足。