~~NOCACHE~~ ~~DISCUSSION~~ ## エンドポイントと名前解決 そのエンドポイント、ほんとにエンドポイントを経由している? 下記の図のように、実際の通信が想定していた通信と異なるルートになっていないですか? {{:Aws:SystemsManager:pasted:20210415-162520.png?direct 600x0}} 最近エンドポイント関連でハマったので、以下の組合せによる注意点メモ(Route 53 Resolverは考慮外) ・エンドポイント ・VPCのDNS解決 ・OSのDNS ### はじめに #### エンドポイントとVPCのDNS設定 ・エンドポイント作成時に[Enable DNS name]を有効にする場合は、VPCの[DNS解決]を有効にする必要がある。 ・エンドポイント作成時に[Enable DNS name]を無効にすれば、VPCの[DNS解決]は無効のままでもエンドポイントは作成できる。 ・エンドポイントの[Enable DNS name]を無効、VPCの[DNS解決]は有効という組み合わせも設定上できることはできる。 https://aws.amazon.com/jp/premiumsupport/knowledge-center/vpc-enable-private-hosted-zone/ #### エンドポイントとVPCのDNS解決が有効の場合 ・OSのDNS設定がAmazonProviedDNSを向いていれば、エンドポイントのプライベートIPへ名前解決ができる。 ・OSのDNS設定がオンプレDNSを向いている場合、エンドポイントのパブリックIPで名前解決される。(オンプレDNSはフォワーダー設定なしを想定) #### エンドポイントとVPCのDNS解決が無効の場合 ・OSのDNS設定がAmazonProviedDNSを向いると、エンドポイント含め全ての名前解決はできない。(hostsの情報や自身のホスト名は含まない) ・OSのDNS設定がオンプレDNSを向いている場合、エンドポイントのパブリックIPで名前解決される。(オンプレDNSはフォワーダー設定なしを想定) ### まとめ AmazonProviedDNS以外のDNSを設定した場合、OSのhostsにエンドポイントの情報を記載すれば想定通りの通信とできたが、 DNSフォワーダーの設定や、Route 53 Resolverを取り入れる方が綺麗な設計かと思います。 ^ OSのDNS参照先 ^ エンドポイントのDNS ^ VPC DNS解決 ^ 対応しない場合 ^ エンドポイントの名前解決をローカルIPで回答を受けたい場合の対応 ^ | AmazonProviedDNS | 有効 | 有効 | ローカルIPを回答 | 対応不要 | | AmazonProviedDNS | 無効 | 無効 | 名前解決されない | hostsにエンドポイントの情報を記載する | | AmazonProviedDNS | 無効 | 有効 | グローバルIPを回答 | hostsにエンドポイントの情報を記載する | | オンプレDNS(フォワード無し) | 有効 | 有効 | グローバルIPを回答 | hostsにエンドポイントの情報を記載する | | オンプレDNS(フォワード無し) | 無効 | 無効 | グローバルIPを回答 | hostsにエンドポイントの情報を記載する | | オンプレDNS(フォワード無し) | 無効 | 有効 | グローバルIPを回答 | hostsにエンドポイントの情報を記載する | | オンプレDNS(フォワード有り)Region.amazonaws.comをVPCのDNSのIPに設定 | 有効 | 有効 | ローカルIPを回答 | 対応不要 | | オンプレDNS(フォワード有り)Region.amazonaws.comをVPCのDNSのIPに設定 | 無効 | 無効 | 名前解決されない | hostsにエンドポイントの情報を記載する | | オンプレDNS(フォワード有り)Region.amazonaws.comをVPCのDNSのIPに設定 | 無効 | 有効 | グローバルIPを回答 | hostsにエンドポイントの情報を記載する | | | | | | | {{tag>AWS VPC エンドポイント DNS AmazonProviedDNS}}