OpenVPN和VPC对等-如何使用BIND9解析两个不同帐户中的.compute.internal域

时间:2019-07-04 09:06:17

标签: amazon-web-services dns bind amazon-vpc openvpn

在我们公司,我们有3个AWS帐户,其中一个主要帐户,用作IAM的“根”帐户并托管OpenVPN Access Server。其他两个帐户是prostg。每个帐户都有其自己的VPC,具有不同的IP范围,并且我们在root和pro帐户之间有一个VPC对等,而在root和stg之间有一个对等。 IP路由已经设置好,并且一切都在这一方面得到控制。

(对不起,我还不能上传图片,因此您具有链接) VPN+VPC-Peering

问题与DNS解析有关。设置是这样的:

我已经在OpenVPN服务器中安装了BIND9,以便使用named.conf.local

中的配置进行私有托管域的DNS转发
zone "stg-my-internal-domain.com" IN {
    type forward;
    forward only;
    forwarders { 10.229.1.100;10.229.2.100; };
};


zone "pro-my-internal-domain.com" IN {
    type forward;
    forward only;
    forwarders { 10.228.1.100;10.228.2.100; };
};

还有两个Route53入站解析器(在每个VPC上运行一个简单的BIND服务器)也可以在stg的10.229.1.100和10.229.2.100中运行,对于pro的帐户在10.228.1.100 10.228.2.100中运行

VPN客户端具有使用Access Server作为DNS解析器的OpenVPN配置文件。

从客户端,我可以完美地解析my-service-1.pro-my-internal-domain.commy-service-2.stg-my-internal-domain.com,但是当我想解析内部域名(例如AWS用{{1}在每个VPC内生成的内部域名)时,问题就来了}

我知道这是一种反模式,我应该尽可能多地使用私有域,但是在某些情况下,例如EMR集群,YARN和Hadoop管理器使用引用内部AWS名称的链接,从而使无法解决。

所以我的问题是:如果主服务器发生故障,是否有任何方法可以配置DNS将解析委派给辅助地址?

我可以使用所有帐户解析器为my-service-2.eu-west-1.compute.internal区域设置转发器,但是 DNS规范说,仅当第一个不可访问时才使用辅助名称服务器,因此,只要它回答一个空的或“未知”响应,它仍然是有效的响应,而第二个则不会被查询。

我们非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

为什么不只将内部主机名更改为公共DNS名称?这些服务当然使用分配给它们的主机名。您可以更改它。 参见https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-hostname.html

您可能(也可能不需要)为每个分配固定的专用IP。无论如何,将此私有IP都发布在公共DNS区域中。然后,您应该能够正确解析这些名称。请注意,您还可以在启动时在每个实例上运行脚本,以更新主机名和dns记录。

要对公共DNS中的私有IP地址进行很好的讨论,请参见https://serverfault.com/questions/4458/private-ip-address-in-public-dns

作为参考,这是那里的最佳答案:

  

有些人会说,任何公共DNS记录都不应公开私有IP地址。...以为您是在让潜在的攻击者掌握利用私有系统可能需要的某些信息。就我个人而言,我认为混淆是一种较差的安全性,尤其是在我们谈论IP地址时,因为总的来说无论如何它们都很容易猜到,因此我不认为这是现实的安全性折衷。这里更大的考虑是确保您的公共用户不要在托管应用程序的常规公共服务中提取此DNS记录。即:外部DNS查找以某种方式开始解析为他们无法到达的地址。除此之外,我看不出将私有地址A记录放入公共空间是否有问题的根本原因…………尤其是当您没有备用DNS服务器来承载它们时。如果确实决定将此记录放入公共DNS空间,则可以考虑在同一服务器上创建一个单独的区域来保存所有“私有”记录。这样可以更清楚地表明它们是私有的。...但是,对于一个A记录,我可能不会打扰。

答案 1 :(得分:0)

如果您的 VPN 与您的 EMR 集群(或任何其他计算资源)位于同一区域,AWS 仅支持这些内部 ipv4 DNS 主机名的 DNS 解析。我已经联系了他们的支持人员,他们已经确认了这一点。

例如,我在法兰克福设置了 AWS Client VPN 终端节点,在爱尔兰设置了 EMR 集群。我正在向我的主机推送 VPC 的私有 DNS 服务器(并且在两个 VPC 中启用所有其他相关配置),以便我可以解析私有 Route53 DNS 区域记录。

当我连接到 VPN 时,

我无法解决这个问题:

$ dig +short ip-10-11-x-x.eu-west-1.compute.internal
$

但我可以解决以下问题,即与 VPN 端点位于同一区域的实例:

$ dig +short ip-10-10-x-y.eu-central-1.compute.internal
10.10.x.y

如何解决这个问题:

将您的 EMR 集群移动到与您的 VPN 相同的区域,或者相反。

但最简单的解决方案可能是使用 Chrome 插件 (here's an example) 自动将 ip-x-y-z... URLS 重定向到 x.y.z IP。