Oracle Cloud Infrastructureドキュメント

仮想クラウド・ネットワーク内の DNS

ドメイン・ネーム・システム(DNS)は、コンピュータがIPアドレスの代わりにホスト名を使用して互いに通信できるようにします。

警告

Oracle Cloud Infrastructureコンソール、APIまたはCLIを使用してクラウド・リソースに説明、タグまたはわかりやすい名前を割り当てるときは、機密情報を入力しないでください。

あなたのVCNのDNSの選択肢

次に、VCNに属するインスタンスのDNS名解決の選択肢を示します。 この選択は、DHCPオプションのサブネット・セットを使用して、VCNで「各サブネット」に対して行います。 これは、各サブネットに関連付けられているルート表とセキュリティ・リストを構成する方法と似ています。 詳細は、「DHCPオプション」を参照してください。

ノート

関連するサブネットのDNSタイプを指定するには、「ドメイン・ネーム・サーバーDHCP」オプションを使用します。 オプション値を変更する場合は、インスタンス上でDHCPクライアントを再起動するか、インスタンスを再起動します。 そうしないと、DHCPクライアントがリースをリフレッシュするまで(24時間以内に)変更が取得されません。

デフォルト選択: インターネットとvncリゾルバ
これはOracleが提供するオプションで、次の2つの部分から構成されています:
  • Internet Resolver: インスタンスが、インターネット上で公開されているホスト名を解決できるようにします。 インターネット・ゲートウェイまたはオンプレミス・ネットワークへの接続(DRGを介したIPSec VPN接続など)のいずれかによって、インスタンスにインターネット・アクセスする必要はありません。
  • VCN Resolver: インスタンスは、同じVCN内の他のインスタンス(これを割り当てることができる)ホスト名を解決します。 詳細は、「DNSドメインとホスト名について」を参照してください。
デフォルトでは、作成する新しいVCNはInternet and VCN Resolverを使用します。 ネットワーキング APIを使用している場合、この選択は「DhcpDnsOptionオブジェクト」VcnLocalPlusInternet列挙を参照します。
ノート

インターネットおよびVCNリゾルバは、インスタンスがIPSec VPN接続またはFastConnectによってVCNに接続されたオンプレミス・ネットワーク内のホストのホスト名を解決することを許可しません。 それを可能にするために独自のカスタムDNSリゾルバを使用してください。

カスタム・リゾルバ
解像度には、選択したDNSサーバーを使用します(最大3つ)。 DNSサーバーには次のものがあります:
  • インターネット経由で利用できます。 たとえば、Dyn Internet Guideの216.146.35.35などです。
  • VCNで。
  • オンプレミス・ネットワークで、IPSec VPN接続またはFastConnect (DRGを介して)経由してVCNに接続されているもの。

DNSドメインとホスト名について

最初にVCNとサブネットを作成するときは、それぞれにDNSラベルを指定することができます。 ラベルは、oraclevcn.comの親ドメインと一緒にVCNドメイン名とサブネット・ドメイン名を形成します:

  • VCNドメイン名: <VCN DNS label>.oraclevcn.com
  • サブネット・ドメイン名: <subnet DNS label>.<VCN DNS label>.oraclevcn.com

インスタンスを起動すると、ホスト名を割り当てることができます。 インスタンスの起動時に自動的に作成されるVNICに割り当てられます(つまり、「プライマリVNIC」)。 サブネット・ドメイン名とともに、ホスト名はインスタンスの完全修飾ドメイン名(FQDN)を形成します:

  • インスタンスFQDN: <hostname>.<subnet DNS label>.<VCN DNS label>.oraclevcn.com

例: database1.privatesubnet1.abccorpvcn1.oraclevcn.com

FQDNは、インスタンスのプライベートIPアドレスに解決されます。 Internet and VCN Resolverは逆DNSルックアップも有効にしており、プライベートIPアドレスに対応するホスト名を判別できます。

「セカンダリVNIC」をインスタンスに追加する場合は、ホスト名を指定できます。 結果として得られるFQDNは、VNICプライベートIPアドレス(つまり、「プライマリ・プライベートIP」)に解決されます。

「セカンダリ・プライベートIP」をVNICに追加する場合は、ホスト名を指定できます。 結果として得られるFQDNは、そのプライベートIPアドレスに解決されます。

DNSラベルとホスト名の要件

  • VCNとサブネット・ラベル: 最大15文字の英数字で、文字で始まる必要があります。 ハイフンとアンダースコアは使用できないことに注意してください。 値は後で変更できません。
  • ホスト名: 最大63文字で、RFC 952および1123に準拠している必要があります。 値は後で変更できます。
重要

ネットワーキング・サービスでは、ホスト名を63文字まで使用できます。 しかし、古いオペレーティング・システムの中にはホスト名を短くするものがあります。 Linuxでは、許可されるホスト名の最大長を決定する方法は次のとおりです:

getconf HOST_NAME_MAX

インスタンスのホスト名がOS固有の最大値よりも長い場合、インスタンスFQDNはVCN内で解決できません。 ネットワーキング・サービスを使用して「VNICの更新」を実行し、ホスト名をより短い値に変更することができます。

一意性:

  • VCN DNSラベルは、VCN全体で一意である必要があります(必須ではありませんが、ベスト・プラクティスです)
  • サブネットDNSラベルは、VCN内で一意でなければなりません
  • ホスト名はサブネット内で一意でなければなりません

ヒント

DNSラベルやホスト名をわかりやすい名前と混同しないでください。オブジェクト(つまり、「表示名」)に割り当てることができ、一意である必要はありません。

ホスト名の検証と生成

VCNとサブネットのDNSラベルを設定した場合、Oracleはインスタンス起動時にDNS準拠と一意性のホスト名を検証します。 これらの要件のいずれかが満たされない場合、起動リクエストは失敗します。

インスタンスの起動時にホスト名を指定しないと、Oracleはインスタンス表示名をホスト名として使用しようとします。 表示名が検証に合格しない場合、Oracleは自動的にサブネット全体で一意のDNS準拠のホスト名を生成します。 生成されたホスト名は、コンソールのインスタンス・ページで確認できます。 APIでは、ホスト名は「VNICオブジェクト」の一部です。

インスタンスの起動時にホスト名または表示名を指定しないと、Oracleは自動的に表示名を生成しますが、ホスト名は生成しません。 つまり、インスタンスはInternet and VCN Resolverを使用して解決できません。

ノート

インスタンス上のLinux OSホスト名は、インスタンスの起動時に設定したホスト名(またはOracleによって生成されたホスト名)に自動的に設定されます。 インスタンス上で直接ホスト名を変更すると、インスタンスのFQDNが更新されません。

「セカンダリVNIC」をインスタンスに追加するか、「セカンダリ・プライベートIP」をVNICに追加すると、Oracleは決してホスト名を生成しようとしません。 Internet and VCN Resolverを使用してプライベートIPアドレスを解決できるようにするには、有効なホスト名を入力します。

DNSのDHCPオプション

VCNにDNSに関連する2つの「DHCPオプション」があります:

  • ドメイン・ネーム・サーバー: DNSタイプ(Internet and VCN Resolver、またはカスタム・リゾルバのいずれか)を選択します。

    • デフォルトのDHCPオプション・セットのデフォルト値: Internet and VCN Resolver
  • 検索ドメイン: 単一の検索ドメインを指定します。 DNS問合せを解決するとき、OSはこの検索ドメインを問合せされている値に追加します。 DHCPオプションのセットには、検索ドメインを1つだけ指定できます。

    • デフォルトのDHCPオプション・セットのデフォルト値: 作成中にVCNのDNSラベルを指定したが、検索ドメインの値を指定していない場合は、VCNドメイン名(<VCN DNS label>.oraclevcn.com)。 検索ドメインの値を指定した場合は、その値が「検索ドメイン」オプションに使用されます。 DNSラベルを指定しなかった場合、DHCPオプションのデフォルト・セットには「検索ドメイン」オプションは含まれません。

VCNのすべてのサブネットに関連付けることができるDHCPオプションのデフォルト・セットは、デフォルト値を自動的に使用します。 つまり、<hostname>.<subnet DNS label>を使用して、VCN内の任意のインスタンスと通信することができます。 VCNが「検索ドメイン」オプションを含まないDHCPオプションのセットを使用する場合、インスタンスはFQDN全体を使用して通信する必要があります。

重要

通常、ネットワーキング・サービスが自動的に「検索ドメイン」オプションを追加し、これをVCNドメイン名( <VCN DNS label>.oraclevcn.com)これらのすべてが真実ならばに設定すると、DHCPオプションのいずれかのセットが最初に作成されると(デフォルト・セットまたはカスタム・セットを作成します):

  • VCNにはDNSラベルがあります
  • DNSタイプ=インターネットおよびVCNリゾルバ
  • DHCPオプション・セットの作成中に、検索ドメインを指定していない

DHCPオプションのセットを作成したら、いつでも「検索ドメイン」オプションを削除するか、別の値に設定することができます。

VCNでDNSホスト名を有効にする方法

Internet and VCN Resolver機能のリリース後に作成された新しいVCNだけが、それに自動的にアクセスします。 新しいVCNのDNSホスト名を有効にする方法は、使用しているインタフェースによって異なります。

コンソールを使用して新規VCNおよびサブネットを作成する場合
新しいVCNを作成し、APIを使用してサブネットを作成すると

シナリオ1: VCNを介してDNSホスト名でInternet and VCN Resolverを使用

典型的なシナリオは、Internet and VCN Resolver「VCN全体で」を有効にすることです。 つまり、VCN内のすべてのインスタンスは、IPアドレスを知らなくても互いに通信できます。 これを行うには、「VCNでDNSホスト名を有効にする方法」で新しいVCNを作成する手順に従い、DNSラベルをVCNおよびすべてのサブネットに割り当てる必要があります。 次に、すべてのインスタンスに起動時にホスト名(または少なくとも表示名)を割り当てるようにします。 「セカンダリVNIC」または「セカンダリ・プライベートIP」を追加する場合は、ホスト名も割り当てます。 インスタンスは、IPアドレスの代わりにFQDNを使用して相互に通信できます。 また、「ドメインDHCPの検索」オプションをVCNドメイン名(<VCN DNS label>.oraclevcn.com)に設定すると、インスタンスはFQDNではなく<hostname>.<subnet DNS label>だけを使用して相互に通信できます。

シナリオ2: カスタムDNSサーバーを使用してDNSホスト名を解決

インスタンスをVCN内のカスタムDNSサーバーとして構成し、インスタンスの起動時に構成したホスト名を解決するようにインスタンスを構成できます。 VCNドメインの転送先として169.254.169.254 (つまり<VCN DNS label>.oraclevcn.com)を使用するようにサーバーを構成する必要があります。

ノート

カスタムDNSサーバーは、インターネット用のサブネットとDNS用のVCNリゾルバに配置する必要があります。

Oracle Terraformプロバイダを使用したこのシナリオの実装例については、「ハイブリッドDNS構成」を参照してください。

シナリオ3: サブネットごとに異なるDHCPオプションを使用

「シナリオ1」は、Internet and VCN Resolverをすべてのサブネット、つまりVCN内のすべてのサブネットで同じ方法で使用することを前提としています。 ただし、DHCPオプションに「サブネット・レベルで」が設定されているため、異なるDNS設定「各サブネットごとに」を構成できます。 理解するべき重要なことはこれです: DNS問合せを生成するサブネットでは、対応するインターネットおよびVCNリゾルバの構成を行う必要があります。

たとえば、サブネットAのインスタンスAがサブネットBのインスタンスBのホスト名を解決するようにするには、Internet and VCN Resolverを使用するようにサブネットAを構成する必要があります。 逆にインスタンスBがインスタンスAのホスト名を解決するようにするには、Internet and VCN Resolverを使用するようにサブネットBを構成する必要があります。

サブネットごとに異なるDHCPオプションを構成できます。 たとえば、サブネットAの検索ドメインをsubneta.vcn1.oraclevcn.comに設定すると、サブネットAのすべてのインスタンスがホスト名だけを使用して相互に通信できることを意味します。 サブネットBの検索ドメインをsubnetb.vcn1.oraclevcn.comに設定して、サブネットBのインスタンスがホスト名だけで通信できるようにすることもできます。 しかし、これは、所与のサブネット内のインスタンスは、他のサブネット内のインスタンスと通信するためにFQDNを使用する必要があることを意味します。