使用 WireGuard 在 GCP 上进行动态路由

问题描述 投票:0回答:1

TL;博士;是否可以通过 WireGuard 隧道向 GCP Cloud Router 通告 BGP 路由?

详情如下。

程序化方法

我正在使用

terraform
来管理基于 GCP 的资源。

网络设置

我有一个本地部署网络和 GCP 网络,如下所示:

  • 本地网络
    • WireGuard 端点
      10.1.1.1
      。隧道IP:
      192.168.1.2
      。接口:
      wg0
      .
    • 具有静态 IP 的服务器
      1.2.3.4
      5.6.7.8
  • GCP网络:
    • 具有单个子网的 VPC
      10.2.2.0/24
    • WireGuard 端点
      10.2.2.2
      。隧道IP:
      192.168.1.3
      。接口:
      wg0
      .

我已在两个 WireGuard 端点之间设置了 VPN 隧道。

所需路线

我希望可以通过 VPN 隧道从我的 GCP 网络访问本地服务器

1.2.3.4
5.6.7.8
。特别是:GCP 上所需的路由应该是:

  • 1.2.3.4
    :下一跳是
    10.2.2.2
  • 5.6.7.8
    :下一跳是
    10.2.2.2
  • 否则:默认路由

当前路由设置

我已经通过设置两条静态路由实现了想要的路由。

但是,静态路由是全局资源,我希望最终将我的 GCP 设置扩展到多个区域,并为每个区域拥有单独的 WireGuard 隧道。

理想情况下,我想要基于区域的静态路由,但这不可用。经过广泛的研究,我发现动态路线是最简洁的方法。

问题:使用 WireGuard 进行动态路由

我完全没有 BGP 经验。根据我的理解,我必须:

  1. 通过 BGP 从我的本地网络通告到
    1.2.3.4
    5.6.7.8
    的路由。
    • 根据我的研究,BIRD是一种解决方案,但我不确定这是否是一种矫枉过正。
  2. 在 GCP 上设置云端路由器
  3. 将云端路由器配置为从
    10.2.2.2
    上的 VPN 隧道接收 BGP 路由。

我注意到最后一步是否可行。我找到了一个关于使用第三方VPN的页面,但我不确定是否支持WireGuard。

如何配置 GCP 云端路由器以从 WireGuard VPN 隧道接收 BGP 路由?

替代方法

我发现的实施基于区域的路线的其他方法是:

但是,两者都需要设置负载均衡器,这对于有效实现两条静态路由来说似乎有点过分了。

google-cloud-platform networking bgp wireguard google-cloud-compute-engine
1个回答
0
投票

你的问题真是

How can I configure a GCP Cloud Router to receive BGP routes from a Network Virtual Appliance?

答案是“NCC Router Appliance”,它可以让您准确地做到这一点。对于(非常彻底且可能比您需要的更复杂)参考实现,您可以查看 NCC-RA 网络阶段的 Fabric FAST 实现

© www.soinside.com 2019 - 2024. All rights reserved.