将内部 route53 DNS over VPN 公开给本地 ActiveDirectory

nva*_*sch 5 domain-name-system vpn authoritative amazon-web-services amazon-route53

情况

我们正在将我们的 Web 应用程序迁移到 AWS。为了连接我们的本地网络和 AWS,我们创建了一个 VPN 连接。这没有问题。

在本地,我们有一个 MS AD (2008 R2),它是(其中包括)ourcompany.tld(不是实际域名;))的权威服务器

在 AWS 上,我们希望所有内部服务都命名为:*.dev.ourcompany.tld。此 DNS 应由内部 route53 解析。

在 AWS 上,公共资源被命名为 *.ourcompany.tld。此 DNS 由我们自己的名称服务器解析。(在职的)

问题

在我们的内部部署网络上,我们希望能够解析 someserver.dev.saa.nl。为了实现这一点,我们的 MS ActiveDirectory 需要被告知在 AWS 上查找此域名。

AWS 内部 route53 只能从 AWS VPC 内部访问。AD 无法直接达到此目的。

AWS 内部 route53 只能通过非权威的 VPC DNS 转发器访问。

MS AD 需要存根区域和条件转发器的权威来源。

我们所做的/尝试过的

  • 在 VPC 中创建 DNS 转发器。此转发器是非权威的。当您将 DNS 转发器设置为计算机本身的主要 DNS 时,它会很好地工作。ActiveDirectory 不允许我们使用服务器不是权威的消息创建存根区域或条件转发器。
  • 在 amazon VPC 中为 dev.ourcompany.tld 创建一个带有存根区域的 DNS 服务器。创建存根区域时,它将报告为权威的,但是由于我们只能通过 VPC DNS 转发器(在 VPC IP + 2 上)解析 DNS,它拒绝创建存根,因为其来源不权威。与权威主机的直接连接返回状态 REFUSED。
  • 搜索 AWS 文档。我们找到的唯一合适的解决方案是https://aws.amazon.com/blogs/security/how-to-set-up-dns-resolution-between-on-premises-networks-and-aws-using-aws- directory-service-and-amazon-route-53/然而,法兰克福地区(我们受法规约束)没有简单的 AD。AWS 上的完整 MS AD 也可以使用,但我们不准备每月为 dns 转发器支付 300 欧元以上

  • 联系 AWS 支持。经过一周的漫长等待,他们似乎仍然不明白这个问题。我们正在制定业务支持计划。

任何人都可以就我们如何使用我们现有的 AD 解决这个问题提供一些指导吗?

图表

更新:将 另一个域路由到 AWS 内部路由 53 只需简单地忽略带有条件转发的错误即可。但是,对于子域,我们需要进行委托,这反过来在查询时会抛出 SERVFAIL。

更新 2: 这似乎是不可能的。AWS 技术支持也放弃了。我们现在已经为我们所有的服务器和服务注册了另一个域名,并在我们的 AD 中使用了一个固定的 DNS 来设置 IT 部门以外的其他人使用的服务。使用 EC2 中的代理将其转换为 LB DNS 名称。

MLu*_*MLu 2

如果我猜对了,我们有两个限制:

  1. dev.ourcompany.tld Route53 区域只能从 VPC 解析,不能通过 VPN 解析,并且
  2. 本地 AD 希望直接与dev.ourcompany.tld权威名称服务器对话,而不是与转发器对话。

由于这些限制,我们必须设计一个解决方案,1) 让 AD 认为它直接与 Route53 对话,2) 让 Route53 认为 DNS 请求来自 VPC 中的 IP。

一种可能的答案是NAT - 网络地址转换,这就是我的做法:

  1. 使用 Amazon Linux 等启动小型 EC2 实例,并在实例的网络设置中禁用“源/目标检查”。也许也给它一个固定的私有IP地址。并允许安全组中传入的 TCP 和 UDP 端口 53。

  2. /etc/sysctl.conf通过设置允许IP转发net.ipv4.ip_forward=1

  3. 在实例上进行配置iptables,将端口 53 上的所有传入流量重定向到 Route53,即VPC-CIDR+2。就像是:

    iptables -t nat -A PREROUTING -p tcp --dport 53 \
             -s <on-prem-cidr> -j DNAT --to <VPC-CIDR+2>
    
    iptables -t nat -A PREROUTING -p udp --dport 53 \
             -s <on-prem-cidr> -j DNAT --to <VPC-CIDR+2>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将AD指向该实例的私有IP。DNS 流量将经过 NAT 处理并转发到 Route53,Route53 会认为该流量来自 VPC 并进行应答。AD 也会很高兴,因为答案将直接来自权威名称服务器。

希望有帮助:)