是否可以在 AWS 中设置桥接 VPN 来连接单个 LAN 中的多个客户端并允许它们之间进行广播?

是否可以在 AWS 中设置桥接 VPN 来连接单个 LAN 中的多个客户端并允许它们之间进行广播?

我有一台 AWS 服务器,我想将其设置为 LAN 游戏的 VPN。我们要玩的游戏不支持直接 IP 连接,并使用广播显示在其他玩家的大厅中。

问题是 - 我不确定桥接 VPN 是否适用于 AWS。如果我将 tap0 与 eth0 桥接,AWS 的 DHCP 服务器会向客户端提供 IP 地址吗?如果没有,还有什么办法可以做到这一点?例如使用虚拟以太网接口?那么我需要设置自己的 DHCP 服务器吗?还是有更简单的方法来完成所有这些?

答案1

我花了几个小时努力尝试类似的设置在 AWS 上运行基于 TAP 的 OpenVPN,最后终于让它工作了。@user1686 的评论在这方面非常有价值。

如果您在云环境中运行 OpenVPN 服务器,我建议不要在服务器上使用 eth 桥(实际上根本不需要 eth 桥)。您只需在每个客户端和服务器上使用 tap 接口。但是,您需要在有效子网内定义一些地址范围(即 192.168.2.0/24;192.168.2.211-192.168.2.220)并为您的客户端分配 IP 地址。我通过将 IP 地址推送到客户端来实现这一点。但重要的是通过 OpenVPN 启动脚本明确设置服务器 tap0 接口的 IP 地址。

server.conf(摘录)

dev tap

# Define your IP address range within a valid subnet
server-bridge 192.168.2.210 255.255.255.0 192.168.2.211 192.168.2.220
client-to-client

# Set server tap0 ip address on startup
up openvpn-server-up.sh

# Set client config dir
client-config-dir ccd

openvpn-服务器启动.sh

#!/bin/sh
ifconfig tap0 192.168.2.210 netmask 255.255.255.0 broadcast 192.168.2.255

为每个客户端在 /etc/openvpn/ccd/(证书通用名称)下创建客户端配置,示例 CN=client - ccd/client

ifconfig-push 192.168.2.211 255.255.255.0

然后为每个客户端创建一个标准的 TAP 客户端配置。

client.conf(摘录)

client
dev tap
remote <ip> 1194

完成所有设置后,您应该能够 ping 您的客户端,并且还可以使用依赖 Layer2 广播进行客户端发现的应用程序(例如魔兽争霸 3)。

干杯

答案2

根据您的描述,VPN 旨在为客户端与其他客户端架起桥梁,因此完全没有必要将其另外桥接到服务器的“eth0”接口。(也就是说,根本不需要设置内核“桥接”设备 - VPN 服务器程序将在内部处理客户端到客户端的桥接。)

游戏的运行和 VPN 的运行都不需要桥接访问服务器的物理 LAN – VPN 作为一个独立的以太网网络就足够了。

当网络与服务器的物理以太网隔离时,VM 提供程序就变得无关紧要了——它几乎可以在任何事物上工作。

如果我将 tap0 与 eth0 桥接,AWS 的 DHCP 服务器会向客户端提供 IP 地址吗?

我其实不知道答案。(可能,因为您始终可以获得不与其他客户共享的私有 DHCP 服务。也可能不是,因为它仅适用于虚拟机本身。)

如果没有,是否有其他方法可以做到这一点,例如使用虚拟以太网接口?

无需任何额外的“虚拟以太网接口”。如果虚拟机要运行自己的游戏服务器,那么tap0 您需要的接口。如果虚拟机仅用于中继数据,则客户端之间的桥接将在 VPN 软件内部进行。

那么我需要设置自己的 DHCP 服务器吗?

如果您计划将 VPN 用作“站点到站点”桥梁(即将整个 LAN 连接在一起),那么是的,您将需要某处的一个 DHCP 服务器。

但如果 VPN 是严格客户端到客户端的(即每台 PC 都有自己的 VPN 应用程序和自己的连接),那么在许多情况下,VPN 软件本身将能够分配 IP 地址 - 无需 DHCP。例如,OpenVPN 和 ZeroTier 都已默认为客户端分配地址。

相关内容