我正在运行 CentOS 7 VM坚强的天鹅它在我们的 LAN 和 Google Compute Engine 之间建立了 VPN 隧道(Google Cloud VPN)。这样,LAN 上的本地机器就可以被 GCE 实例访问,反之亦然。
我想在 Docker 容器中运行 strongSwan,而不是在资源密集型 VM 中运行。但是,我非常确定我无法让容器知道我们的 LAN,因此无法让 GCE 实例访问我们 LAN 上的机器(反之亦然)——因为 VPN 隧道只会在容器的网络和 Google 的网络之间创建。
我是对的吗?或者这可以以某种方式实现吗?
答案1
strongSwan 在隧道模式下使用 IPsec,这(在 Linux 上)需要加载并使用一些内核模块。加载模块并对其进行配置不是您可以在普通容器内执行的操作。您可以通过使容器具有特权并使用“主机”模式网络来解决这个问题,以便容器可以看到它创建的隧道(docker run --privileged --net=host
),但本质上这会禁用容器与其主机之间的隔离,因此这可能不是您想要的。