我正在寻找一种解决方案,使分布式客户端可以通过互联网轻松地相互联系。
为此,我设置了一个 OpenVPN 服务器,所有客户端都连接到该服务器。如果我将自己连接到该服务器,我可以通过 IP 访问所有设备。
什么是(推荐的)网络结构来为连接的客户端提供名称解析?
或者您是否有更好的解决方案,可以让我轻松访问我的分布式设备(按名称调用它们)?
答案1
在 tun 模式下使用 OpenVPN(这是更常见的模式,也是此处的合理选择)意味着 OpenVPN 为每个连接的设备分配第二个 IP 地址,客户端可以通过 openvpn 服务器分配的 IP 相互访问
确保 Openvpn 为每个客户端分配一个不变的地址非常简单。有多种机制可以做到这一点,包括使用 openvpn 跟踪和存储的共享空间池 - ifconfig-pool-persist 指令(只需确保客户端数量小于池大小并且池文件已备份) - 或使用服务器上的 ifconfig-push 语句为每个客户端创建特定的配置文件。
值得指出的是,如果您使用 pki(私钥基础设施) - 这在大多数环境中都是有意义的,则用户名/客户端名称是在证书上的主题名称中指定的名称。
定义静态 IP 后,您可以在 DNS 中定义它们。具体如何操作取决于您的 DNS 配置,可以像硬编码一样简单。或者,Openvpn 提供了一个钩子“lean-address”,它将运行一个脚本 - 其中 $1 $2 和 $3 是操作的名称、ip 和 username-per-subject-cert,可用于根据您的环境修改您的 DNS。