AWS Client VPN客户端-客户端通信

问题描述

我有一个使用证书身份验证设置的AWS Client VPN。我正在为客户端-客户端访问系统进行此设置,基本上如this AWS scenario/example中所述。一切正常,如果我知道他们的IP地址,我可以从一个客户端向另一个客户端ping。

我的问题是:在实际使用中,如果客户端每次连接到VPN时都被分配一个随机IP地址,那么该系统有什么用,并且无法不检查就知道哪个客户端已连接或它们的IP地址是什么AWS控制台还是使用describe-client-vpn-connections CLI(需要IAM凭据)?

有什么方法可以

  • 将静态IP地址分配给特定的客户端,这样它们每次连接到VPN时都会收到相同的地址吗?
  • 获取已连接客户端的列表(以及它们的CommonName和IP地址)?
  • 使用连接的客户端的主机名/计算机名代替其随机VPN IP地址?
  • 无需使用AWS控制台或describe-client-vpn-connections CLI获取已连接客户端列表的任何其他方法,即可将一个客户端连接到另一个客户端?

解决方法

您要求的大部分内容都是不可能的。在许多组织中,客户与客户之间的沟通不是常态。对于客户端到服务器的通信,AWS Client VPN可以很好地工作。

无法将静态IP地址分配给特定客户端。 您可以使用以下AWS CLI命令获取当前连接和客户端IP地址的列表:

aws ec2 describe-client-vpn-connections --client-vpn-endpoint-id (endpoint ID)

您也许可以让您的客户端通过共享的DNS服务器进行注册,以获取其VPN IP地址。

我怀疑您会更好地使用OpenVPN之类的东西来开发自己的VPN解决方案,而其中的大部分AWS Client VPN都是基于此构建的。