自由気ままに書いちゃおう

好きなことをつらつらと・・・

VPCのDNS設定

VPCを作成した直後のDNS関連設定は以下のようになっている。

GUIから確認するには、「VPC」>対象VPCを選択>「概要」タブ
 
① DNS解決(DNS Resolution): はい
② DNSホスト名:いいえ
 
■① DNS解決(AWSコンソール上からVPC選択>右クリック「DNS resolution」 もしくは、DHCPオプションの「enableDNSSupport」)について
VPCに対して、DNS解決がサポートされるかどうか。ここでのDNS解決はパブリックDNSのこと。
当該設定がTRUE(YES)の場合は、インスタンス作成時にグローバルIPアドレスがランダムで割り当てられる。
※サブネットの「パブリック IPv4 アドレスの自動割り当て」次第で割り当て状態が変わるので、上記は予め自動割り当てを有効にしていた場合となる。
 
デフォルトでTRUE(=YES)。

【TRUEの場合】
VPC範囲の+2のIPアドレスがDNSサーバ(AmazonProvidedDNS=Route53のプライベート/パブリックDNSどちらとも)として起動する。
AmazonProvidedDNSは、Route53への問い合わせを意味する。
 
      →RHEL7で/etc/resolv.conf を見てみると、以下の通りnameserverが設定されている。この設定はDHCPオプションセットで指定している内容が自動的に反映される。
       なお、AmazonProvidedDNS=VPCのネットワークセグメント+2となる。
 
          # cat /etc/resolv.conf
          # Generated by NetworkManager
          search ap-northeast-1.compute.internal itoprivate.local
nameserver 172.17.0.2        ※VPCネットワークが「172.17.0.0/16」のため。
 
 
【FALSEの場合】
・パブリックDNSホスト名は付与されない
DHCPオプションセットで指定した場合、プライベートDNSホスト名(=ip-~.ap-northeast-1.compute.internal)は付与されるが、AmazonProvicedDNS(=Route53)による名前解決は不可となる。
 
■② DNSホスト名(AWSコンソール上からVPC選択>右クリック「DNS Hostname」もしくは DHCPオプションの「enableDnsHostnames」)について
VPC内に起動されるインスタンスがパブリックDNSホスト名(=ec2-グローバルIPアドレス.ap-northeast-1.compute.amazonaws.com)を取得するかどうか。

デフォルトでFALSE(=NO)。
 
【TRUEの場合】
VPC内のインスタンスのDNS名を取得するが、前提として「DNS解決(DNS resolution)」がTRUEである必要がある



====以下、DNS解決、DNSホスト名のTRUE,FALSE状態におけるインスタンス作成時の状態===
 
■DNS解決TRUE、DNSホスト名:FALSE の状態でインスタンスを作成した場合
「パブリックDNS」が空白となる。
 
■DNS解決TRUE、DNSホスト名:TRUE の状態でインスタンスを作成した場合
「パブリックDNS」に値が入る。


■Route53のプライベートホストゾーンについて
プライベートホストゾーンはVPCに紐づいている。
インターネットにリソースを公開することなく、VPC内専用のローカルDNS環境を構築することができる。
プライベートホストゾーンに定義されているカスタムDNSドメイン名を使用している場合は、
enableDnsHostnames属性 とenableDnsSupport属性をtrueにする必要がある。