У меня есть маршрутизатор OpenWRT с IP-адресом, доступным в VPC Amazon EC2. На маршрутизаторе работает сервер dnsmasq.
IP-адрес маршрутизатора 192.168.13.1. Клиент подключен к маршрутизатору с именем хоста «iPhone» и IP 192.168.13.117.
Домен VPC - examplevpc.com
Я хочу, чтобы все DNS-запросы в VPC для * .routername.examplevpc.com разрешались через сервер dnsmasq по адресу 192.168.13.1. Например, запрос для iphone.routername.examplevpc.com должен вернуть 192.168.13.117.
С сервера в VPC я могу успешно запустить nslookup iPhone 192.168.13.1
и получите IP-адрес iPhone. dig iPhone @192.168.13.1
тоже работает.
Я пробовал добавить запись NS routername.examplevpc.com
-> 192.168.13.1
to route53 для VPC, но он не работает - dig iPhone.routername.examplevpc.com
отвечает NXDOMAIN
. Надо ли что-то делать дополнительно?
РЕДАКТИРОВАТЬ:
Так я нашел этот вопрос в котором говорилось, что мне нужно настроить перенаправление DNS в VPC. Поэтому я установил 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'
Нашел ответ ...
Смутно задокументировано здесь: http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html
Мне пришлось явно установить мой частный DNS-сервер с помощью набора параметров DHCP VPC.
Я бы сказал, что вам разрешено использовать доменное имя только с записями 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.