プライベートDNS

プライベート・ドメイン名システム(DNS)ゾーンを作成および管理します。

プライベート・ドメイン・ネーム・サービス(DNS)ゾーンを使用して、指定したドメイン名のプライベート・ゾーンを作成します。You can fully manage the zones and records  to provide hostname  resolution for applications running within and between virtual cloud networks (VCNs ), and on-premises or other private networks. トラフィック管理はパブリックDNSでのみ使用でき、プライベートDNSではサポートされていません。

プライベートDNSでは、ネットワーク間(たとえば、同じリージョン、クロス・リージョンまたは外部ネットワーク内の別のVCN)でのDNS解決も提供されます。プライベートDNSは、OCI DNS APIおよびコンソールで管理できます。

プライベートDNSで使用されるリソース

DNSリソース

  • プライベートDNSゾーン: プライベートIPアドレスなど、Virtual Cloud Network (VCN)内からのみアクセス可能なDNSデータが含まれています。プライベートDNSゾーンにはインターネットDNSゾーンに似た機能がありますが、プライベートDNSゾーンにVCN経由でアクセスできるクライアントに対してのみレスポンスを提供します。各ゾーンは単一のビューに属しています。
  • プライベートDNSゾーン・レコード: グローバルおよびプライベートDNSでは、様々なレコード・タイプがサポートされます。サポートされているリソース・レコードを参照してください。
  • プライベートDNSビュー: プライベートDNSビューは、プライベート・ゾーンのコレクションです。多くのビューで同じゾーン名を使用できますが、1つのビュー内のゾーン名は一意である必要があります。
  • プライベートDNSリゾルバ: VCN専用のプライベートDNSリゾルバに、VCN内のDNS問合せへのレスポンスを処理する構成が含まれます。リゾルバのビューにより、解決に適用可能なゾーンおよびレコード・データが決まります。リゾルバは、インターネットへの再帰およびDNSSEC署名ゾーンのDNSSEC検証を実行します。リゾルバ上のリゾルバ・エンドポイントは、169.254.169.254のデフォルト・イングレス以外の別のイングレスおよびエグレスを提供します。詳細は、プライベートDNSリゾルバを参照してください
  • プライベートDNSリゾルバ・エンドポイント: リゾルバ・エンドポイント・リソースを使用して、VCNでイングレスおよびエグレスを設定します。リゾルバ・エンドポイントは、それを作成したサブネット内のIPアドレスを使用します。対応するVNICがリゾルバ・エンドポイントごとに作成されます。

VCNリソース:

  • VCN: VCNを作成すると、専用リゾルバも自動的に作成されます。
  • サブネット: リゾン・エンドポイントの作成時に、VCN内のサブネットが使用されます。サブネットのIPアドレスは、リスニングおよび転送アドレスのために使用されます。
  • ネットワーク・セキュリティ・グループ(NSG): オプションで、リゾルバ・エンドポイントのネットワーク・セキュリティ・グループのリストを構成できます。NSGは、リゾルバ・エンドポイントとの間のイングレスおよびエグレス・トラフィックを制御します。

VCNリソースの詳細は、ネットワーキング・ドキュメントのプライベートDNS解決者を参照してください。

保護されたリソース

ゾーンやビューなどの一部のプライベートDNSリソースは、保護されています。保護されたリソースは、Oracleによって自動的に管理されます。保護されたリソースを表示できますが、編集は制限されています。保護されたリソースは、サービス制限または割当て制限にカウントされません。

  • すべてのVCN専用リゾルバ
  • デフォルト・ビュー:各VCN専用リゾルバには、保護されたデフォルト・ビューがあります。ゾーンをデフォルト・ビューに追加できますが、保護されたゾーンとの競合を回避するためにゾーン名に制限が適用されます。リゾルバが削除され、そのデフォルト・ビューに保護されていないゾーンが含まれている場合、デフォルト・ビューは削除されるのではなく保護されていないビューに変換されます。VCNでゾーンを解決できるように、デフォルト・ビューの他にビューを作成およびリゾルバにアタッチできます。

構成および解決

DNS

ドメイン・ツリーの全体または一部を作成できます。ビューは、任意の数のリゾルバで使用でき、同じリージョン内のVCN間でプライベートDNSデータを共有できます。プライベート・ゾーンとインターネット・ゾーンで同じゾーン名を使用できるため、これらのゾーンをスプリットホライズンDNSに使用できます。VCN内から、パブリック問合せとプライベート問合せに異なる回答を提供できます。

リゾルバは、デフォルトで169.254.169.254をリスニングします。リゾルバ・エンドポイントを定義して、より多くのイングレスおよびエグレスを実現できます。リスニング・リゾルバ・エンドポイントは、指定されたサブネット内でリスニングするために1つのIPアドレスを使用します。転送リゾルバ・エンドポイントは2つのIPアドレスを消費します。1つのアドレスは未使用で、2つ目のアドレスは転送に使用されます。リゾルバ・エンドポイントを作成する前に、サブネットで十分なIPアドレスが使用可能であることを確認してください。
重要

プライベートDNSエンドポイントのサブネットは、IPv4のみである必要があります。IPv6対応サブネットにプライベートDNSエンドポイントを作成するリクエストは成功しません。

問合せに回答するためのロジックを定義するルールを追加します。サポートされているルール・タイプは、FORWARDのみです。このルールは、クライアントIPまたはターゲットのQNAMEに基づいて、条件付きで問合せを宛先IPに転送します。宛先IPアドレスは、別のVCN内のオンプレミス設定、プライベート・ネットワークまたはリスニング・リゾルバ・エンドポイント用です。リゾルバ・ルールqnameCoverConditionsは、完全一致およびサブドメインをカバーします。

VCN内のDNSレスポンスは、専用リゾルバの構成を使用して特定の順序で評価されます:

  1. アタッチされた各ビューが順番に評価されます。デフォルト・ビューは最後に評価されます(リストに明示的に含まれていない場合)。
  2. リゾルバ・ルールが順番に評価されます。ビューに一致する最初のリゾルバ・ルールが適用されます。前述の条件と重複する条件(条件なしを含む)を持つリストの下位にあるルールは、評価されません。アクセスできないルールの例としては、より一般的なルールより後のより具体的なqnameCoverConditionまたはclientAddressConditionsがあります。より一般的なルールが一致する場合、より具体的なルールは評価されません。
  3. 問合せがインターネットに解決されます。

順番の最初の項目で回答を提供できる場合は、それを提供します。回答が提供されると、回答が否定的であっても、それ以上の項目は評価されません。

たとえば、問合せ名がプライベート・ビューのゾーンに含まれており、その名前がゾーンに存在しない場合、ゾーンは信頼できるNXDOMAINレスポンスを返します。

VCN

VCN間、またはVCNとオンプレミス・ネットワーク間のイングレスとエグレスには接続が必要です。Establishing a connection might require a local peering gateway (LPG ), having both VCNs attached to the same DRG, or a remote peering connection (RPC ) between VCNs. VCNとオンプレミス・ネットワーク間の接続には、FastConnectまたはIPSec トンネル(サイト間VPN)が必要です。

VCNセキュリティ・リストおよび参照されるNSGでは、必要なトラフィックを許可する必要があります。セキュリティ・リスト上のDHCPは、イングレスおよびエグレスに対して有効にする必要があり、対応するリゾルバ・エンドポイントのIPアドレスを含める必要があります。リスニング・エンドポイントのセキュリティ・ルールでは、宛先ポート53でコネクションレスUDPイングレス、ソース・ポート53でコネクションレスUDPエグレス、および宛先ポート53でTCPイングレスを許可する必要があります。転送エンドポイントのセキュリティ・ルールでは、宛先ポート53でコネクションレスUDPエグレス、ソース・ポート53でコネクションレスUDPイングレス、および宛先ポート53でTCPエグレスを許可する必要があります。

詳細は、チュートリアルプライベートDNSゾーン・ビューおよびリゾルバの構成を参照してください。

ユース・ケース

VCN内のカスタムDNSゾーン

プライベートDNSゾーンは、ビューにグループ化されます。すべてのVCN専用リゾルバには、自動的に作成されるデフォルト・ビューがあります。VCN内から解決されるカスタムDNSゾーンを作成するには、専用リゾルバのデフォルト・ビューにプライベート・ゾーンを作成するか、新しいビューにゾーンを作成して、専用リゾルバのアタッチ済ビューのリストに追加します。この設定方法の詳細なガイドは、ヘルプ・センター/プライベートDNSゾーンのビューおよびリゾルバの構成を参照してください。

スプリット・ホライズン

インターネット上のパブリック名と同じ名前のプライベート・ゾーンを作成します。次に、VCNリゾルバのビューのいずれかにそのゾーンを追加します。VCN内では、名前はプライベートDNS構成に基づいて解決されます。リクエストの発生元に応じて、同じ名前が異なる回答を提供します。プライベートDNSゾーンの透過性も参照してください。

リージョン内の共有プライベートDNSゾーン

同じリージョン内のVCNは、相互のプライベート・ビューからリクエストを解決できます。たとえば、VCN AおよびVCN Bでこのソリューションを実装するとします。VCN Aの専用リゾルバのデフォルト・ビューをVCN Bの専用リゾルバのアタッチされたビューに追加します。次に、VCN Bの専用リゾルバのデフォルト・ビューをVCN Aの専用リゾルバのアタッチされたビューに追加します。

同じプライベート・ゾーンまたはプライベート・ゾーンのコレクションを複数のVCNsで再利用できます。このソリューションにより、DNS構成の重複を減らすことができます。ビューを作成し、1つ以上のプライベート・ゾーンをビューに追加します。VCNごとに、VCNの専用リゾルバのアタッチ済ビューのリストに新しいビューを追加します。この設定方法の詳細なガイドは、ヘルプ・センター/プライベートDNSゾーンのビューおよびリゾルバの構成を参照してください。

プライベートDNSゾーンの透過性

プライベートDNSゾーンの場合、問合せ名がゾーン名と一致したときに問合せ解決の動作を変更するようにDNS解決モードを設定できます。透過性の一般的なユース・ケースは、OCIやオンプレミスなど、複数の場所にゾーン名が存在する場合です。透過性により、異なるゾーン・レコードを保持しながら、同じゾーン名を両方の場所に存在できます。次の3つのモードを使用できます。

  • 静的: これがデフォルトの動作になります。プライベート・ゾーンが問合せ名をカバーする場合、問合せ名がゾーンに存在しない場合はNXDOMAINが返されます。名前は存在するが、要求された特定の問合せタイプのデータがない場合は、NoDataレスポンスが返されます。
  • 透過的: 問合せ対象のドメインがゾーンでカバーされているが、そのドメインがゾーンに存在しないか、問合せ対象のドメインがゾーン名と一致するが、問合せ対象のタイプのレコードが存在しない場合は、問合せ解決をチェックするための通常の順序に従って、リゾルバの次の評価に進みます。これにより、すべてのドメインでのNXDOMAINレスポンスと、特にapexでのNoDataレスポンスが効果的にバイパスされます。
  • RTypeTransparent: 問合せ対象ドメインがゾーンでカバーされているが、問合せ対象ドメインがゾーン内に存在しないか、問合せ対象ドメインがゾーン内に存在するが、要求されたレコード・タイプには存在しない場合は、問合せの解決をチェックするための通常の順序に従って、リゾルバの次の評価に進みます。これにより、すべてのドメインでNXDOMAINおよびNoDataレスポンスが効果的にバイパスされます。
ノート

透過性によって続行する順序がトリガーされた場合、解決の評価は順序の次のビュー(存在する場合)から始まります。最大2つの透過性の連続が発生します。3番目の透過性の一致が発生すると、SERVFAIL応答が返されます。

透過性の動作を示すために、次の表に、様々な解決モードで問合せ解決がどのように行われるかを示すサンプル構成と例を示します。

プライベート・ゾーンとパブリック・ゾーンの構成: example.us-ashburn-1.oraclecloud.com
クエリー名 レコード・タイプ RDATA
プライベート・ゾーン
例:us-ashburn-1.oraclecloud.com A 1.2.3.4
bla.example.us-ashburn-1.oraclecloud.com A 5.6.7.8
api.example.us-ashburn-1.oraclecloud.com CNAME 例:us-ashburn-1.oraclecloud.com
公開ゾーン
例:us-ashburn-1.oraclecloud.com A 100.100.100.100
例:us-ashburn-1.oraclecloud.com TXT 「こんにちは!」
foo.example.us-ashburn-1.oraclecloud.com A 200.200.200.200
bla.example.us-ashburn-1.oraclecloud.com TXT 「世界!」
api.example.us-ashburn-1.oraclecloud.com CNAME 例:us-ashburn-1.oraclecloud.com

ゾーンの動作: example.us-ashburn-1.oraclecloud.com
問合せ名/タイプ 静的 透明性 RTypeTransparent ノート
1 例:us-ashburn-1.oraclecloud.com/a 1.2.3.4 1.2.3.4 1.2.3.4 名前と問合せタイプに完全一致が発生し、プライベート名が与えられます(したがって、100.100.100.100はこのリゾルバからは見られません)。
2 例:us-ashburn-1.oraclecloud.com/txt データがありません 「こんにちは!」 「こんにちは!」 オーバーライドは名前をカバーしますが、クエリータイプはカバーしないため、RtypeTransparentがインターネットに継続している間、StaticゾーンはNoData (名前が存在するがqtypeは存在しない)を示します。これはゾーンapexであるため、Transparentもインターネットに継続します。
3 bla.example.us-ashburn-1.oraclecloud.com/txt データがありません データがありません 「世界!」 オーバーライドは名前をカバーしますが、クエリータイプはカバーしないため、Staticゾーンと TransparentゾーンはNoData (name exists、 but not qtype)を示し、RtypeTransparentはインターネットを続行します。#2とは異なり、これはApexではないため、「透明」ゾーンは通過しません。
4 foo.example.us-ashburn-1.oraclecloud.com/a NXDOMAIN 200.200.200.200 200.200.200.200 一致するプライベートゾーンが存在するため、staticは「foo」が存在しないことを示しますが、名前が一致しないため、TransparentRtypeTransparentの両方がインターネットに継続します。
5 api.example.us-ashburn-1.oraclecloud.com/a 1.2.3.4 1.2.3.4 1.2.3.4 CNAMEはプライベート・ゾーンとインターネット・ゾーンの両方に存在するため、3つのモード(StaticTransparentおよびRtypeTransparent)はすべて、Aレコードをプライベート・ゾーンから1.2.3.4に解決します。「透過」モードは、レコード・タイプがプライベート・ゾーンにない場合にのみインターネットにフォールバックします。
6 api.example.us-ashburn-1.oraclecloud.com/txt データがありません データがありません 「こんにちは!」 レコードがインターネット・ゾーンにのみ存在するCNAME TXT問合せの場合、プライベート・ゾーンにはレコード・タイプが含まれていないため、「静的」および「透明」モードではNoDataが返されます。RtypeTransparentはインターネット・ゾーンにフォールバックし、TXT値を返します。

VCN間のDNS解決

リゾルバ・エンドポイントを使用して、VCN間でリクエストを送信します。VCNは異なるリージョンに存在できます。このソリューションには、ローカルまたはリモートのピアリング・ゲートウェイ(LPG/RPG)が必要です。VCN AからVCN Bにトラフィックを送信するには、リスニング・エンドポイントをVCN Bのリゾルバに追加します。次に、転送エンドポイントをVCN Aの専用リゾルバに追加します。

VCN Aの専用リゾルバにルールを作成し、VCN Aの転送エンドポイントを介してVCN Bのリスニング・エンドポイントのアドレスにトラフィックを転送します。VCN間の両方向でトラフィックを送信するには、各専用リゾルバに転送リゾルバ・エンドポイントとリスニング・リゾルバ・エンドポイントを追加し、各専用リゾルバにルールを追加します。

VCNとオンプレミス・ネーム・サーバー間の接続

リクエストは、VCNとオンプレミス・ネーム・サーバー間でどちらの方向にも送信できます。このソリューションでは、FastConnectまたはIPSecトンネル(IPSec VPN)を使用したVCNとオンプレミス・ネットワーク間の接続が必要です。VCNにトラフィックを送信するには、リスニング・エンドポイントをその専用リゾルバに追加し、トラフィックをそのアドレスに送信します。VCNからトラフィックを送信するには、転送エンドポイントをその専用リゾルバに追加し、エンドポイントを介してオンプレミス・ネーム・サーバーのアドレスにトラフィックを転送するルールを追加します。

高度なユース・ケース

VCNは、複数のユース・ケースに対して設定できます。1つのVCNを別のVCNとピアリングし、オンプレミス・ネーム・サーバーに接続するように構成できます。転送は、多くのVCNsにわたって連鎖することもできます。

サポートされているリソース・レコード

Oracle Cloud Infrastructure DNSサービスでは、多くのリソース・レコード・タイプをサポートしています。次のリストに、プライベートDNSに対してサポートされている各レコード・タイプの目的を簡単に説明します。パブリックDNSについては、パブリックDNSでサポートされているリソース・レコードを参照してください。レコード・データの入力時には機密情報を入力しないでください。RFCリンクは、レコード・タイプおよびデータ構造の詳細情報を提供します。

RDATAに関するノート

OCIは、すべてのRDATAを最もマシン読取り可能なフォーマットに正規化します。返されるRDATAの表示は、初期入力とは異なる場合があります。

例:

CNAMEDNAMEおよびMXレコード・タイプのRDATAは、1つ以上の絶対ドメイン名を含めることができます。これらのレコード・タイプのいずれかで指定されたRDATAがルートを表すドットまたはピリオッドで終わっていない場合は、ピリオドが追加されています。

www.example.com --> www.example.com.

様々なDNSライブラリを使用して、入力前にRDATAを正規化できます。

プログラミング言語 ライブラリ
Go GoのDNSライブラリ
Java dnsjava
Python dnspython

プライベートDNSのリソース・レコード・タイプ

A
ホスト名をIPv4アドレスに関連付けるために使用するアドレス・レコード。Aレコードの詳細は、RFC 1035を参照してください。
AAAA
使用されるアドレス・レコードは、IPv6アドレスのホスト名を指します。AAAAレコードの詳細は、RFC 3596を参照してください。
CAA
証明機関認可レコードは、そのドメインの証明書を発行する権限のある1つ以上の証明機関を指定するために、ドメイン名ホルダーによって使用されます。CAAレコードの詳細は、RFC 6844を参照してください。
CNAME
正規名レコードは、ドメインの正規名を識別します。CNAMEレコードの詳細は、RFC 1035を参照してください。
DNAME
委任名レコードはCNAMEレコードと同様の動作をしますが、ラベルの下にあるサブツリー全体を別のドメインにマップします。DNAMEレコードの詳細は、RFC 6672を参照してください。
MX
メール交換レコードは、ドメイン用のメールを受け入れるメール・サーバーを定義します。MXレコードはホスト名を指す必要があります。MXレコードは、CNAMEまたはIPアドレスを指すことはできません。MXレコードの詳細は、RFC 1035を参照してください。
PTR
ポインタ・レコード・リバースは、IPアドレスをホスト名にマップします。この動作は、ホスト名をIPアドレスにマップするAレコードの反対です。PTRレコードは、通常、逆引きDNSゾーンで検出されます。PTRレコードの詳細は、RFC 1035を参照してください。
SRV
サービスロケータレコードは、管理者が複数のサーバーに単一のドメインを設定するために使用されます。SRVレコードの詳細は、RFC 2782を参照してください。
TXT
テキスト・レコードは、説明的な、判読可能なテキストを保持し、特定の用途のために判読不可能なコンテンツを含めることもできます。このレコード・タイプは、通常、人間が判読できないテキスト項目を必要とするSPFレコードおよびDKIMレコードに使用されます。TXTレコードの詳細は、RFC 1035を参照してください。

必要なIAMポリシー

プライベートDNSを使用するには、ユーザーに(IAMポリシーという形で)十分な権限が必要です。管理者グループのユーザーには、必要な権限があります。ユーザーが管理者グループに属していない場合、次のようなポリシーによって、特定のグループがプライベートDNSを管理できます:

Allow group <GroupName> to manage dns in tenancy where target.dns.scope = 'private'

ポリシーを初めて使用する場合は、「ポリシーの開始」「共通ポリシー」を参照してください。プライベートDNSのポリシーの詳細は、DNSポリシー・リファレンスを参照してください。

プライベートDNSタスク