LoginSignup
4
2

More than 5 years have passed since last update.

Route 53のPrivate DNSを試す

Last updated at Posted at 2014-12-22

はじめに

VPCで利用可能なAmazonProvidedDNSの動きが気になり、
Route 53でサポートされたVPC内のPrivate DNSとあわせて試してみる。

オンプレと組み合わせた名前解決周りの設計は、結構悩ましい事が多いので、楽になればいいなと。

想定した構成

DFSの構成を検証した際に考えたのは、

  • 利用する名前空間内のRootゾーンにRoute 53でホスト。
  • AWS上で組むシステム単位でサブドメイン的なhost名を使って利用するイメージ。

という構成。設定的にはこんな感じ。

  • dfs.local :Route53のPrivateDSNを利用。domain.dfs.localのNSレコードを持たせる。
  • domain.dfs.local:ActiveDirectory側で利用するDNSサーバを利用。フォワーダーにAmazonProvidedDNSを設定する。

AmazonProvidedDNSがActiveDirectory側のDNSにも問合せ可能だと色々と捗りそう。

環境構築

  1. VPCの構築やら、Route53のHosted Zoneの設定を行う。詳細は色々な所で解説されているので、そちらを参考に。
  2. 作成したhostedゾーンに以下の様なレコードを追加
レコード名 タイプ 内容
domain.dfs.local. A  B.B.B.B
domain.dfs.local.  MX A.A.A.A
domain.dfs.local.  NS B.B.B.B
domain.dfs.local.  TXT "TEXT"
dc01.domain.dfs.local. A C.C.C.C
dc02.domain.dfs.local. A D.D.D.D

LinuxクライアントからAmazonProvidedDNSに対してQueryを投げる

検証結果

Privateゾーンの権威サーバに対して、直接のアクセスが可能かを確認してみると、status: REFUSEDとなり、アクセスできない。

$ dig @<権威サーバ> dfs.local soa

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> @<権威サーバ> dfs.local soa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 13903
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;dfs.local.         IN  SOA

;; Query time: 80 msec
;; SERVER: <権威サーバ>#53(<権威サーバ>)
;; WHEN: Mon Dec 22 07:46:37 2014
;; MSG SIZE  rcvd: 27

名前解決をするためには、AmazonProvidedDNS経由のみで問い合わせる必要があるようだ。

続いてdomain.dfs.localに関してQueryType=anyでQueryを投げるとstatus: SERVFAILとなり、何処かでエラーが発生して、応答が得られない。

$ dig @AmazonProvidedDNS domain.dfs.local any

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> @AmazonProvidedDNS domain.dfs.local any
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 11839
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;domain.dfs.local.      IN  ANY

;; Query time: 13 msec
;; SERVER: AmazonProvidedDNS#53(AmazonProvidedDNS)
;; WHEN: Mon Dec 22 07:52:14 2014
;; MSG SIZE  rcvd: 34

色々と試してみた結果、domain.dfs.localのnsレコードが悪さをしているようで、
このレコードを削除すると、きちんと引ける様になる

$ dig @AmazonProvidedDNS domain.dfs.local any

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> @AmazonProvidedDNS domain.dfs.local any
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20903
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;domain.dfs.local.      IN  ANY

;; ANSWER SECTION:
domain.dfs.local.   44  IN  TXT "TEXT"
domain.dfs.local.   41  IN  MX  10 A.A.A.A.
domain.dfs.local.   153 IN  A   B.B.B.B

;; Query time: 0 msec
;; SERVER: AmazonProvidedDNS#53(AmazonProvidedDNS)
;; WHEN: Mon Dec 22 07:57:38 2014
;; MSG SIZE  rcvd: 94

続いて、サブドメイン風に作ったdc01.domain.dfs.localのレコードが返ってくるかを確認

$ dig @AmazonProvidedDNS dc01.domain.dfs.local any

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> @<AmazonProvidedDNS> dc01.domain.dfs.local any
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28756
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;dc01.domain.dfs.local.     IN  ANY

;; ANSWER SECTION:
dc01.domain.dfs.local.  49  IN  A   C.C.C.C

;; Query time: 0 msec
;; SERVER: <AmazonProvidedDNS>#53(<AmazonProvidedDNS>)
;; WHEN: Mon Dec 22 07:59:14 2014
;; MSG SIZE  rcvd: 55

これも大丈夫。どうやら、Privateゾーンに関しては、

  • nsレコードが設定されていると、何らかのエラーが発生する

これが本当に仕様だとしたら、ドキュメントの何処かに書いてありそうだけど、該当箇所が見つからず。

まとめ

  • nsレコードを設定した場合に、status: SERVFAILになる原因は分からず。時間があるときにもう少し詳しく調べよう。
  • AmazonProvidedDNSがVPC内部に建てた独自DNSに対してQueryを投げるような事はダメっぽい
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2