ec2 route53 + openwrt:openwrt 作为 ec2 vpc 中的名称服务器

ec2 route53 + openwrt:openwrt 作为 ec2 vpc 中的名称服务器

我有一台 OpenWRT 路由器,其 IP 可在 Amazon EC2 VPC 内访问。该路由器正在运行 dnsmasq 服务器。

路由器 IP 为 192.168.13.1。客户端连接到路由器,主机名为“iPhone”,IP 为 192.168.13.117。

VPC 域名是 examplevpc.com

我希望 VPC 内对 *.routername.examplevpc.com 的所有 DNS 查询都通过 192.168.13.1 处的 dnsmasq 服务器进行解析。例如,对 iphone.routername.examplevpc.com 的查询应返回 192.168.13.117。

从 VPC 内的服务器,我可以成功运行nslookup iPhone 192.168.13.1并获取 iPhone IP 地址。dig iPhone @192.168.13.1也可以工作。

我尝试为 VPC 添加 NS 条目routername.examplevpc.com->192.168.13.1到 route53,但是不起作用 --dig iPhone.routername.examplevpc.com响应为NXDOMAIN。我还需要做点什么吗?

编辑:


所以我找到了这个问题上面说我需要在 VPC 内设置 DNS 转发。因此我在以下位置设置了一个 DNS 转发器172.28.0.5

ubuntu@ip-172-28-1-13:~$ nslookup hostname.routername.vpcdomain.net 172.28.0.5
Server:         172.28.0.5
Address:        172.28.0.5#53

Non-authoritative answer:
Name:   hostname.routername.vpcdomain.net
Address: 192.168.13.89

然后我按照@dsmsk80 在他的评论中所建议的去做了:

A record: ns1.vpcdomain.net -> 172.28.0.5
NS record: routername.vpcdomain.net -> ns1.vpcdomain.net.

这是失败的输出dig

ubuntu@ip-172-28-1-13:~$ dig hostname.routername.vpcdomain.net

; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> hostname.routername.vpcdomain.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 52300
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;hostname.routername.vpcdomain.net.      IN      A

;; Query time: 20 msec
;; SERVER: 172.28.0.2#53(172.28.0.2)
;; WHEN: Tue Oct 27 19:37:29 UTC 2015
;; MSG SIZE  rcvd: 53

但是,当直接指定名称服务器时,它可以按预期工作:

ubuntu@ip-172-28-1-13:~$ dig hostname.routername.vpcdomain.net @ns1.vpcdomain.net

; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> hostname.routername.vpcdomain.net @ns1.vpcdomain.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50111
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;hostname.routername.vpcdomain.net.      IN      A

;; ANSWER SECTION:
hostname.routername.vpcdomain.net. 0     IN      A       192.168.13.89

;; Query time: 33 msec
;; SERVER: 172.28.0.5#53(172.28.0.5)
;; WHEN: Tue Oct 27 19:38:35 UTC 2015
;; MSG SIZE  rcvd: 69

还有nslookup

ubuntu@ip-172-28-1-13:~$ nslookup hostname.routername.vpcdomain.net ns1.vpcdomain.net
Server:         ns1.vpcdomain.net
Address:        172.28.0.5#53

Non-authoritative answer:
Name:   hostname.routername.vpcdomain.net
Address: 192.168.13.89

openwrt上的配置如下:

config dnsmasq
        option domainneeded     1
        option boguspriv        1
        option filterwin2k      0  # enable for dial on demand
        option localise_queries 1
        option rebind_protection 1  # disable if upstream must serve RFC1918 addresses
        option rebind_localhost 1  # enable for RBL checking and similar services
        #list rebind_domain example.lan  # whitelist RFC1918 responses for domains
        option local    '/routername.vpcdomain.net/'
        option domain   'routername.vpcdomain.net.'
        option expandhosts      1
        option nonegcache       0
        option authoritative    1
        option readethers       1
        option leasefile        '/tmp/dhcp.leases'
        option resolvfile       '/tmp/resolv.conf.auto'
        #list server            '/mycompany.local/1.2.3.4'
        #option nonwildcard     1
        #list interface         br-lan
        #list notinterface      lo
        #list bogusnxdomain     '64.94.110.11'

答案1

我想说你可以使用仅具有 NS 记录的域名它指定对指定类和域具有权威性的主机。

那么,如果将这些记录添加到您的区域,会发生什么情况?

A record: routername-ns1.examplevpc.com. -> 192.168.13.1
NS record: routername.examplevpc.com. -> routername-ns1.examplevpc.com.

或者更短的形式:

A record: routername-ns1 -> 192.168.13.1
NS record: routername -> routername-ns1.examplevpc.com.

答案2

找到答案了...

令人困惑的是,这里有记录:http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html

我必须通过 VPC DHCP 选项集明确设置我的私有 DNS 服务器。

相关内容