使用 Libreswan 在 AWS 上配置多个 VPN IPSec 隧道之间的路由

Configuring routing between muliple VPN IPSec tunnels on AWS using Libreswan

我已经在 AWS 上部署了 RHEL 7.5 VM 运行 Libreswan 3.23-5。我已经成功地设置了几个从我的 VM 到其他 6 个组织的 IPSec 隧道。我们希望实现的是一种中心辐射型设置,其中每个组织只需要一个到 AWS(我的 VPN VM)的 VPN 隧道,并且应该能够通过 Hub 的 IPSec 隧道与其他 6 个组织通信(AMQP)。我已经成功地让他们 ping 我的子网,但我希望他们能够 ping 其他组织的子网。这是我在 conf 文件中为每个连接或通过路由 table 设置的东西吗?目前,ipsec.d 目录下的配置文件只包含我在 leftsunets 行中的子网,而不包含其他组织。

conn hub-to-spoke1
    type=tunnel
    authby=secret
    left=%defaultroute
    leftid=hub.public.ip.address
    leftnexthop=%defaultroute
    leftsubnets=hub.subnets.cidr.blocks
    right=spoke1.public.ip.address
    rightsubnet=spoke1.subnet.cidr.block
    pfs=yes
    auto=add
    ikelifetime=24h
    keylife=8h
    ike=aes256-sha1;modp1536
    phase2=esp
    phase2alg=aes256-sha1;modp1024

我们正在使用预共享密钥。我必须在我这边做哪些配置才能将连接转发给其他组织?每个组织必须做什么才能允许来自其他 6 个组织的连接通过一个隧道?我非常感谢任何帮助,因为这是我第一次涉足网络。

通过将分支的私有子网添加到集线器的左侧子网,我能够成功连接合作伙伴,并且每个合作伙伴都应该将其他私有合作伙伴子网作为右侧子网。您还必须将合作伙伴的子网添加到 AWS 控制台中的路由 table。这是集线器的示例配置文件:

conn hub-to-spoke
    type=tunnel
    authby=secret
    left=%defaultroute
    leftid=hub.public.ip.address
    leftnexthop=%defaultroute
    leftsubnets="all hub subnets and all other spokes subnets"
    right=spoke.public.ip.address
    rightsubnets="all spoke subnets"
    pfs=yes
    auto=add
    ikelifetime=24h
    keylife=8h
    ike=aes256-sha1;modp1536
    phase2=esp
    phase2alg=aes256-sha1;modp1024

这里的辐条是一个示例配置

conn spoke-to-hub
    type=tunnel
    authby=secret
    left=%defaultroute
    leftid=spoke.public.ip.address
    leftnexthop=%defaultroute
    leftsubnets="spoke's subnets"
    right=hub.public.ip.address
    rightsubnet="list of hub's subnets and other spokes subnets"
    pfs=yes
    auto=add
    ikelifetime=24h
    keylife=8h
    ike=aes256-sha1;modp1536
    phase2=esp
    phase2alg=aes256-sha1;modp1024

您必须确保没有私有子网重叠。