Назад | Перейти на главную страницу

ec2 route53 + openwrt: openwrt как сервер имен в ec2 vpc

У меня есть маршрутизатор 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.