【OCI_32】OCIの名前解決(DNS)の基本を勉強する
業務でOCIの名前解決に触れることがありました。環境はオンプレミスを含め完全なプライベートな環境であったため、プライベートな環境の名前解決に特化していますが、曖昧なところがあったので調べてみました。
OCIの名前解決は、いくつかのコンポーネントの組み合わせで成り立っています。
本記事では、以下の要素を中心に整理していきます。
・DNSリゾルバ
・プライベート・ビュー
・プライベート・ゾーン
・エンドポイント(リスニング / 転送)※OCIの設定画面どおりに記載しています
・パブリック・ゾーン
目次
OCIの名前解決の要素
DNSリゾルバ、プライベート・ビュー、プライベート・ゾーン、エンドポイント(リスニング、転送)、パブリック・ゾーンの役割は、以下のとおりです。

アーキテクチャ図
今回勉強することをアーキテクチャ図へまとめてみました。以下の①~⑦の通信について図示しています。
①クライアントがDNS問い合わせを送信
②オンプレミスDNSがOCIへフォワーディング(internal.example.com ドメインを条件付きフォワーダ)
③リスニング・エンドポイントが受信
④DNSリゾルバが処理
⑤プライベート・ビュー内のゾーンを検索
⑥プライベート・ゾーンからIPアドレスを取得(test.internal.example.com → 10.0.0.5)
⑦結果がクライアントに返る

各要素の説明
各要素の説明をもう少し詳しく説明していきます。
DNSリゾルバ
VCNを作成した時に自動作成され、名前解決を実行します。VCNごとに存在しています。
デフォルトではVCN内のComputeはネームサーバに169.254.169.254(リンクローカルのIPアドレス)が設定され、名前解決の問い合わせを実行します。VCN外からは参照できません。
169.254.169.254はDNSリゾルバそのものではなく、OCIが提供するDNSサービスへの問い合わせ窓口であり、実際の名前解決処理はその背後にあるDNSリゾルバが行っています。
169.254.169.254というIPアドレスも各VCNごとにリンクローカルとして扱われています。
プライベート・ビュー
コンパートメントに作成される独立したリソースとなります。
プライベート・ビューは、複数のプライベート・ゾーンをまとめて管理する単位です。
プライベート・ビューの中に複数のプライベート・ゾーンを作成して管理するとイメージすればよいです。
DNSリゾルバは、このプライベート・ビューを参照して名前解決を行います。
プライベート・ビューは、複数のDNSリゾルバから参照できるので他のVCNからでも参照して名前解決に利用することができます。
プライベート・ゾーン
プライベート・ゾーンは、内部向けのDNSレコードを管理するための仕組みでFQDNとIPアドレスの対応表を持ちます。
インターネットからは参照することはできません。
例:test.internal.example.com → 10.0.0.5
エンドポイント(リスニング / 転送)
エンドポイントは、DNSクエリの受け取りや転送を行うための仕組みです。
■リスニング・エンドポイント
外部(オンプレミスなど)からのDNS問い合わせを受け付ける入口です。
オンプレミスDNSからフォワーディングしてOCIのリスニング・エンドポイントにつなぐという感じです。
リスニング・エンドポイントは、サブネットに作成されIPアドレスを持ちます。
■転送・エンドポイント
外部のDNSサーバへ問い合わせを転送する出口となります。
転送・エンドポイントは、サブネットに作成されIPアドレスを持ちます。
パブリック・ゾーン
パブリック・ゾーンは、インターネットから名前解決されるドメインを管理します。
インターネット公開用として利用されます。
例:www.example.com → グローバルIP
名前解決の流れ
インターネットからパブリック・ゾーンに対する名前解決は、皆様ご存じと思いますのでここでは割愛させていただきます。
ここでは例として、オンプレミスDNSからOCIの内部リソース(test.internal.example.com → 10.0.0.5)を名前解決する場合の流れを簡単に整理しています。(※上記、アーキテクチャ図に記載したものと同じです)
①クライアントがDNS問い合わせを送信
②オンプレミスDNSがOCIへフォワーディング(internal.example.com ドメインを条件付きフォワーダ)
③リスニング・エンドポイントが受信
④DNSリゾルバが処理
⑤プライベート・ビュー内のゾーンを検索
⑥プライベート・ゾーンからIPアドレスを取得(test.internal.example.com → 10.0.0.5)
⑦結果がクライアントに返る
まとめ
OCIのプライベートな環境を中心に名前解決の仕組みについて、まとめてみました。DNSリゾルバやプライベート・ビューが特に理解するまでに時間がかかりました。今回はデフォルトのプライベート・ビューなどの仕組みについて記載しましたが、次回は、手動でプライベート・ビューやプライベート・ゾーンを作成し、名前解決を意図的に誘導する方法などを勉強したいと思います。