やろうとしたこと
VPC 内の特定のインスタンスに対して、VPC 外部からも内部からも 設定した DNS で名前解決させたい
具体的な設定
-
サーバの状態
- EC2 (in VPC)
- private ip 10.0.0.1
- public ip 1.1.1.1
- AWS外のサーバ
- public ip 1.1.1.2
- EC2 (in VPC)
-
パブリックな DNS (事情があり Route 53 ではない)
- example.com の DNS サーバ
- 設定レコード
- hoge.example.com
- A レコード 1.1.1.1
- fuga.example.com
- A レコード 1.1.1.2
- hoge.example.com
-
Route 53 (Private host zone in VPC)
- example.com の DNS サーバ
- 設定レコード
- hoge.example.com
- A レコード 10.0.0.1
- hoge.example.com
問題となったこと
ここで問題となったのが、 EC2 (in VPC)
から fuga.example.com
への名前解決ができなくなりました。
パブリックゾーン プライベートホストゾーン が Route 53 であれば、名前空間が重複している場合、特に意識することなく リクエストをパブリック DNS リゾルバーに転送
してくれるのですが、パブリックな DNS が Route 53 ではない DNS サーバを使っているのであれば、Route 53 からは外側に重複する名前空間があるか判定できないため、Route 53 から パブリックな DNS に問い合わせることもなく、名前解決に失敗します。
冷静に考えれば、そうなることに気づけるのですが、それによって焦った経験をしたので、メモとして残しておきます。
Route 53 と 外部の DNS を使う場合、重複した名前空間を使うのはやめておきましょう。
※ 参考記事 プライベートホストゾーンを使用する場合の考慮事項