将入站流量重定向到另一个未运行 BGP 的路由器

网络工程 路由 bgp
2021-07-14 02:08:31

人们,

我的 ISP 核心上有两个路由器。首先是一个有点旧的 Cisco 设备,这是我与上游、IX 和下游进行 eBGP 会话的地方。第二个是 MikroTik CCR,它为我的客户充当 DHCP 服务器、防火墙等。

由于我们网络的增加,旧的 Cisco 路由器无法流畅地处理所有当前流量,但由于内部原因,我们暂时无法将其更改为其他设备。

我正在考虑将所有传入流量直接重定向到 MikroTik 设备,这样就不需要由 Cisco 路由了。但我不确定这是可能的。

我的每个上游都使用 /29 范围,因此我可以在与我和上游边界路由器相同的范围内对 MikroTik 路由器进行寻址。前任。:

  • 上游第一路由器:198.51.100.1/29
  • 上游的第二个路由器:198.51.100.2/29
  • 我的 Cisco 路由器:198.51.100.6/29
  • 我的 MikroTik 路由器:198.51.100.5/29

网络图-核心

192.0.2.1 是 MikroTik 路由器 (192.0.2.2) 的默认网关。

如果 MikroTik 设备正在运行 BGP,使用 as-path prepend 很容易解决这个问题,但由于技术和商业原因,它不是也不能得到解决。

我认为可以通过以下方式将广告前缀的 BGP 下一跳属性更改为 MikroTik 路由器的 IP 地址来完成重定向(与上述网络图一致):

route-map CHANGE_NEXTHOP permit 10
 set ip next-hop 198.51.100.5
!
router bgp XXXXXX
 neighbor 198.51.100.1 route-map CHANGE_NEXTHOP out
 neighbor 198.51.100.2 route-map CHANGE_NEXTHOP out
!

这样,上传流量将通过两个路由器之间的直接连接流动,而下载流量将从上游直接流向 MikroTik 路由器。

但是,我在某处读到这仅在 BGP 会话是多跳时才有可能,而在邻居直接连接时则不然。此外,据我所知,更改下一跳是 iBGP 的唯一功能。

我远不是 Cisco 专家,并且进行了大量搜索,但没有找到解决我疑问的结论性答案,所以有人可以告诉我是否可以执行我在上面的配置中描述的操作。片段或对我的棘手情况提出任何解决方案?

不幸的是,我目前无法在实验室(甚至使用虚拟机)上运行它来测试是否按预期工作。

我将对此表示感谢以及您提供的任何进一步信息。

4个回答

可能有一种方法可以通过利用以下 BGP 下一跳规则来实现这一点:

来自 RFC 4271, 5.1.3 NEXT_HOP:

当向外部对等体 X 发送消息时,对等体与说话者相距 1 个 IP 跳:

- 如果被宣布的路由是从内部对等体获知或在本地发起的,则 BGP 发言者可以使用内部对等路由器(或内部路由器)的接口地址,对于 NEXT_HOP 属性,发言者可以通过该地址到达所公布的网络,前提是对等方 X 与该地址共享一个公共子网。这是“第三方”NEXT_HOP 属性的一种形式。

你可以试试这个:

  • 删除网络 192.168.2.0/30 上 Cisco 和 Mikrotik 之间的 OSPF 邻接

  • 在共享网络 198.51.100.0/29 的 Cisco 和 Mikrotik 路由器之间创建 OSPF 邻接

  • 确保 Cisco 路由器通过 OSPF 学习的路由的下一跳为 198.51.100.5

  • 清除 BGP 会话。Cisco 路由器现在应该向内部子网通告路由,BGP NEXT_HOP 为 198.51.100.5

这篇文章展示了一个例子:

http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/26634-bgp-toc.html

BGP 下一跳(多路访问网络)

在此处输入图片说明

此示例显示下一跳在多路访问网络(如以太网)上的行为。

假设 AS300 中的 RTC 和 RTD 运行 OSPF。RTC 使用 RTA 运行 BGP。RTC 可以通过 170.10.20.3 到达网络 180.20.0.0。当 RTC 向 RTA 发送关于 180.20.0.0 的 BGP 更新时,RTC 将用作下一跳 170.10.20.3。RTC 不使用自己的 IP 地址 170.10.20.2。RTC 使用此地址是因为 RTA、RTC 和 RTD 之间的网络是多路访问网络。RTA 使用 RTD 作为到达 180.20.0.0 的下一跳比通过 RTC 的额外跳更明智。注意:RTC 将 180.20.0.0 通告给下一跳为 170.10.20.3 的 RTA。如果 RTA、RTC 和 RTD 的通用介质不是多路访问,而是 NBMA,则会出现进一步的复杂情况。

我假设您想影响入站互联网流量,并且您知道如何处理出站流量。

那么完成此操作的最简单方法是在 Cisco 路由器向其上游做广告时在其上执行“ as-path prepending ”。然后,您的入站互联网流量肯定会以最短的路径到达您,这将通过 MikroTik 路由器。

要查看示例,请参阅

为 cisco 和 mikrotik 创建一个 vrrp 地址,并将其设为核心交换机的默认网关。将 mikrotik 设置为更高优先级的成员。

mikrotik 应该有一个从 cisco 路由器接收的默认路由和一个来自“我的网络”的路由,首选“我的网络”作为优先路由。这可以通过 OSPF 或静态分配。

使用来自 microtik 或 cisco 的 IP SLA 探针来检查与“我的网络”的上游连接。如果上游出现问题,请降低 mikrotik 路由器上的 vrrp 优先级,以便流量将通过 cisco 流出。

在设置中,您将有冗余,并且假设您在 cisco 上输入传入流量,则通过 cisco 传入流量不会有任何问题。传入和传出流量将采用不同的路径。

MicroTik 支持 BGP重定向入站流量可能需要您运行 BGP。