構成可能な PTR レコードを使用して、VM インスタンスの外部 IP アドレスに関連付けられた逆引き DNS レコードを定義し、これらのレコードに依存するアプリケーションが正常に動作できるようにします。
アプリケーションによっては、IP アドレスをドメイン名に解決するために逆引き DNS レコード(PTR レコード)が必要なものがあります。たとえば、SMTP を使用するアプリケーションには、メールの送信元のドメインを指す PTR レコードが必要です。このようなレコードを使用しないスパムフィルタは、評価の低いメールにマークを付けることで、そのメールが迷惑メールフォルダに入れられるか、まったく送信されないようにできます。
PTR レコードは、VM インスタンスのプライマリ ネットワーク インターフェースにのみ追加できます。PTR レコードは、ロードバランサ、Cloud NAT、その他の VM 以外の IP アドレスでは使用できません。
IPv6 PTR レコードは、インスタンスのプライマリ ネットワーク インターフェースが、外部 IPv6 アドレス範囲を持つデュアルスタック サブネットに接続されている場合にのみ使用できます。この場合、IPv4 と IPv6 の PTR レコードを個別に作成できます。
自動的に作成された内部 DNS の PTR 名をオーバーライドするカスタム PTR レコードを作成するには、マネージド逆引き参照ゾーンをご覧ください。
準備
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Google アカウントをお持ちの場合は、Search Console を使用して確認できます。
- Google アカウントまたは Google 以外のアカウントがある場合は、VM の IP アドレスを DNS 構成に追加して確認できます。
- Search Console を開き、インスタンスに PTR レコードを追加するときに使用する Google アカウントを使ってログインします。複数のアカウントでドメインの所有権を確認できます。
- PTR ドメイン名を入力します。
- [続行] をクリックします。
- 手順に沿って操作し、[Go to Property] をクリックします。
- 画面下の左側のメニューにある [設定] をクリックし、[所有権の確認] をクリックします。
- VM がまだ存在しない場合は、リージョン静的外部 IP アドレスを予約して、後で VM の作成時に使用します。
- VM の外部 IP アドレスを含む「A」レコードをドメインの DNS 構成に追加します。
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
VM の詳細を指定します。
[詳細オプション] セクションを開き、次の操作を行います。
- [ネットワーキング] セクションを開きます。
- この VM で使用する 1 つ以上のネットワーク インターフェースを作成します。また、デフォルトのネットワーク インターフェースを使用することもできます。
- [ネットワーク インターフェース] セクションで、最初のネットワーク インターフェース(プライマリ ネットワーク インターフェース)を開きます。
- [パブリック DNS PTR レコード] セクションで、追加する PTR レコードの各タイプを選択します。
- [PTR ドメイン名] に、追加する PTR レコードのタイプごとにドメイン名を入力します。
- [外部 IPv4 アドレス] フィールドまたは [外部 IPv6 アドレス] フィールドで、以前に予約した IP アドレスを選択します。DNS 構成を使用して VM の IP アドレスを確認した場合は、そのアドレスを指定する必要があります。
- ネットワーク インターフェースの設定を確認するには、[完了] をクリックします。
新しい VM の残りのプロパティを構成します。
ページの下部にある [作成] をクリックします。
IPv4 PTR レコードを関連付けて新しいインスタンスを作成するには、
gcloud instances create
コマンドを使用します。gcloud compute instances create INSTANCE_NAME \ --image-family IMAGE_FAMILY \ --image-project IMAGE_PROJECT \ --public-ptr \ --public-ptr-domain DOMAIN_NAME \ --address=IP_ADDRESS
次のように置き換えます。
INSTANCE_NAME
: 新しい VM インスタンスの名前。IMAGE_FAMILY
: 使用可能なイメージ ファミリーのいずれか。IMAGE_PROJECT
: すべてのイメージとイメージ ファミリーの参照が解決される Google Cloud プロジェクト。プロジェクト名を指定しない場合は、現在のデフォルト プロジェクトが使用されます。DOMAIN_NAME
: このインスタンスに追加するドメイン名。IP_ADDRESS
: 以前に予約した IP アドレス。DNS 構成を使用して VM の IP アドレスを確認した場合は、そのアドレスを指定する必要があります。
関連付けられた IPv6 PTR レコードを含む新しいインスタンスを作成するには、次の操作を行います。
IPv4 PTR レコードを含む新しいインスタンスを作成するには、
instances.insert
メソッドにPOST
リクエストを行います。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/family/debian-10" }, "boot": true } ], "networkInterfaces": [ { "network": "NETWORK", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External NAT", "natIP": "IP_ADDRESS", "publicPtrDomainName": "DOMAIN_NAME", "setPublicPtr": true } ] } ] }
次のように置き換えます。
PROJECT_ID
: オブジェクトの ID。ZONE
: インスタンスのゾーン。MACHINE_TYPE
: マシンタイプ。INSTANCE_NAME
: インスタンスの名前。NETWORK
: ネットワークの URL。IP_ADDRESS
: 以前に予約した IP アドレス。DNS 構成を使用して VM の IP アドレスを確認した場合は、そのアドレスを指定する必要があります。DOMAIN_NAME
: 追加するドメイン名。
IPv6 PTR レコードを含む新しいインスタンスを作成するには、次の操作を行います。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
編集するインスタンスをクリックします。
[編集] をクリックします。
[ネットワーク インターフェース] セクションで、プライマリ ネットワーク インターフェースをクリックします。
[パブリック DNS PTR レコード] セクションで、追加する PTR レコードの各タイプを選択します。
[PTR ドメイン名] に、追加する PTR レコードのタイプごとにドメイン名を入力します。
[完了] をクリックし、[保存] をクリックします。
VM にアクセス構成がない場合は、
gcloud compute instances add-access-config
コマンドを使用して追加します。gcloud compute instances add-access-config INSTANCE_NAME
ここで、
INSTANCE_NAME
は実際のインスタンス名に置き換えます。gcloud compute instances update-access-config
コマンドを使用して、アクセス構成を更新して PTR レコードを追加します。IPv4 と IPv6 の両方の PTR レコードを追加するには、次のコマンドを個別に使用します。IPv4 の場合:
gcloud compute instances update-access-config INSTANCE_NAME \ --public-ptr \ --public-ptr-domain DOMAIN_NAME
IPv6 の場合:
gcloud compute instances update-access-config INSTANCE_NAME \ --ipv6-public-ptr-domain=DOMAIN_NAME
次のように置き換えます。
INSTANCE_NAME
: 更新するインスタンスの名前。DOMAIN_NAME
: 追加するドメイン名。
VM にアクセス構成がない場合は、
instances.addAccessConfig
メソッドにPOST
リクエストを送信してアクセス構成を追加します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addAccessConfig?networkInterface="nic0"
instances.updateAccessConfig
メソッドにPOST
リクエストを送信して、アクセス構成を更新して PTR レコードを追加します。IPv4 と IPv6 の両方の PTR レコードを追加するには、次のリクエストを個別に行います。IPv4 の場合:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0 { "setPublicPtr": true, "publicPtrDomainName": "DOMAIN_NAME", "type": "ONE_TO_ONE_NAT" }
IPv6 の場合:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0 { "publicPtrDomainName": "DOMAIN_NAME", "type": "DIRECT_IPV6" }
次のように置き換えます。
PROJECT_ID
: プロジェクト ID。ZONE
: インスタンスのゾーン。INSTANCE_NAME
: インスタンス名。DOMAIN_NAME
: 追加するドメイン名。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
編集するインスタンスをクリックします。
[編集] をクリックします。
[ネットワーク インターフェース] セクションで、プライマリ ネットワーク インターフェースをクリックします。
[パブリック DNS PTR レコード] セクションで、削除する PTR レコードの各タイプのチェックボックスをオフにします。
[完了] をクリックし、[保存] をクリックします。
IPv4 の場合:
gcloud compute instances update-access-config INSTANCE_NAME \ --no-public-ptr
IPv6 の場合:
gcloud compute instances update-access-config INSTANCE_NAME \ --no-ipv6-public-ptr
IPv4 の場合:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0 { "setPublicPtr": false, "type": "ONE_TO_ONE_NAT" }
IPv6 の場合:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0 { "publicPtrDomainName": "", "type": "DIRECT_IPV6" }
PROJECT_ID
: プロジェクト ID。ZONE
: インスタンスのゾーン。INSTANCE_NAME
: インスタンス名。メンテナンス イベント中のライブ マイグレーション プロセスの一環として VM が別のホストに移行されると、PTR レコード ロジックで一部のエッジケースが正しく処理されず、DNS PTR は完全修飾ドメイン名(FQDN)である
googleusercontent.com
に戻されます。機能を元に戻すには、PTR レコードをもう一度適用してください。IPv6 PTR レコードを持つ VM を停止すると、IPv6 PTR レコードは一時的に登録解除され、VM に表示されません。このレコードは、VM を再起動すると自動的に追加されます。
- リソースの静的外部 IP アドレスを構成して管理する方法の概要について、静的外部 IP アドレスの予約を確認する。
- 仮想マシン インスタンスを作成および管理する方法については、VM インスタンスを作成して起動するをご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
ドメインの所有権を確認
カスタム PTR レコードで VM を作成する前に、ドメイン名を所有していることを確認してください。所有権を確認することは、ドメインの所有者であることを Google に証明するための、一種のセキュリティ対策です。
ドメイン名の所有権を確認するには、次の 2 つの方法があります。
Search Console を使用して確認する
ドメインを所有していることを確認したら、[設定] ペインで [ユーザー] をクリックし、その他の確認済み所有者を表示します。他のドメインに PTR レコードを追加するには、現在のドメインが表示されている左側のプロパティ選択ツールをクリックします。[プロパティの追加] をクリックして、対象のドメインを追加します。
ドメイン名が即時に確認されない場合、推奨される方法を使用して確認を取得します。
VM の IP アドレスを DNS 構成に追加して確認する
PTR レコードを含む VM インスタンスを作成する
PTR レコードは、新しいインスタンスの作成時に指定できます。既存のインスタンスの PTR レコードを追加するには、PTR レコードを追加するをご覧ください。
コンソール
VM が開始した後、VM の外部 IP アドレスに対してリバース DNS ルックアップを実行して、PTR レコードが想定どおりに機能していることを確認できます。
gcloud
REST
PTR レコードを追加する
PTR レコードを追加するには、VM インスタンスのプライマリ ネットワーク インターフェース(
nic0
)でアクセス構成を更新します。コンソール
gcloud
REST
PTR レコードを削除する
PTR レコードを削除するには、VM インスタンスのプライマリ ネットワーク インターフェース(
nic0
)のアクセス構成を更新します。PTR レコードを削除すると、Google Cloud はデフォルトの完全修飾ドメイン名googleusercontent.com
でリバース DNS ルックアップに応答します。コンソール
gcloud
PTR レコードを削除するには、
gcloud compute instances update-access-config
コマンドを使用します。IPv4 と IPv6 の両方の PTR レコードを削除するには、次のコマンドを個別に使用します。INSTANCE_NAME
は、更新するインスタンスの名前に置き換えます。REST
PTR レコードを削除するには、
POST
リクエストをinstances.updateAccessConfig
メソッドに対して実行します。IPv4 と IPv6 の両方の PTR レコードを削除するには、次のリクエストを個別に行います。次のように置き換えます。
制限事項
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-21 UTC。
-