我已经配置了一个带有自定义路由的 VPN 服务器,该路由仅为我的 VPC 路由流量,有一些应用程序在 EKS 上运行,例如 grafana,我们使用 Route53 通过 NLB DNS 来访问它们。我基于 OpenVPN CLI 的旧 VPN 能够解析所有 DNS,但新 VPN 无法解决此问题。
我得到的错误是:NX Domain
我尝试更改路线但无法访问。我想在连接VPN后访问该URL。
过去几天我正在处理同样的问题,并找到了解决方案,部分归功于以下两篇文章:
我将在下面详细介绍我的案例和解决方案:
就上下文而言,我们一直在使用 EC2 实例上托管的 OpenVPN 服务器来访问我们的 AWS 资源,包括同一 VPC 中的资源、其他 VPC 以及 LB 和私有 DNS 记录背后的资源。
最近,由于各种原因,我们想切换到Pritunl,但在配置按预期工作时遇到了困难。设置服务器并添加适当的路由后,我们能够通过其私有 IP 访问资源,例如其他 EC2 实例,但在 DNS 解析方面遇到困难。
实际文档中未提及的问题是,您需要支付订阅/许可证费用才能使用 DNS 解析 (NAT) 所需的某些功能。具体来说,您需要企业订阅,每个主机(实例)每月 70 美元。
如果您选择付费订阅,则可以按照链接的第一篇文章进行操作,以使 DNS 解析适用于私有 DNS 区域中的记录。我还将在以下几行中详细说明我的步骤。
删除
0.0.0.0/0
路由,然后添加专用网络/VPC 的路由(即 172.31.0.0/16
)。对于 VPC 路由,我还勾选了将每个路由用作 NAT Route
的选项。我认为这不是完全必要的,但应该很有用。如果没有许可证,此选项不可用。
至于如何解决私有 DNS 问题,您需要添加一条充当 NAT 路由的路由。在我们的示例中,我们使用了
172.31.0.2/32
,它属于托管我们的 Pritunl 服务器的 VPC (172.31.0.0/16
)。之后,您需要单击 Pritunl 服务器以打开其设置。在那里,您必须将此 x.x.x.2
路由放在 DNS Server
部分中(将 x.x.x.2 替换为 IP)。这条路线应该是那里唯一的一条。此外,您还必须修改 DNS Search Domain
部分以包含此路由以及 Google 的 DNS 搜索域。它应该看起来像这样x.x.x.2, 8.8.8.8
。通过此设置,DNS 请求应首先使用您的 VPC 的 DNS 解析器,该解析器还应解析私有记录,然后才使用 Google 的 DNS 解析器。
此后,私有 DNS 解析应该按预期工作。希望这有帮助。