構成可能な 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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
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 つの方法があります。
- Google アカウントをお持ちの場合は、Search Console を使用して確認できます。
- Google アカウントまたは Google 以外のアカウントがある場合は、VM の IP アドレスを DNS 構成に追加して確認できます。
Search Console を使用して確認する
- Search Console を開き、インスタンスに PTR レコードを追加するときに使用する Google アカウントを使ってログインします。複数のアカウントでドメインの所有権を確認できます。
- PTR ドメイン名を入力します。
- [続行] をクリックします。
- 手順に沿って操作し、[Go to Property] をクリックします。
- 画面下の左側のメニューにある [設定] をクリックし、[所有権の確認] をクリックします。
ドメインを所有していることを確認したら、[設定] ペインで [ユーザー] をクリックし、その他の確認済み所有者を表示します。他のドメインに PTR レコードを追加するには、現在のドメインが表示されている左側のプロパティ選択ツールをクリックします。[プロパティの追加] をクリックして、対象のドメインを追加します。
ドメイン名が即時に確認されない場合、推奨される方法を使用して確認を取得します。
VM の IP アドレスを DNS 構成に追加して確認する
- VM がまだ存在しない場合は、リージョン静的外部 IP アドレスを予約して、後で VM の作成時に使用します。
- VM の外部 IP アドレスを含む「A」レコードをドメインの DNS 構成に追加します。
PTR レコードを含む VM インスタンスを作成する
PTR レコードは、新しいインスタンスの作成時に指定できます。既存のインスタンスの PTR レコードを追加するには、PTR レコードを追加するをご覧ください。
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
VM の詳細を指定します。
[詳細オプション] セクションを開き、次の操作を行います。
- [ネットワーキング] セクションを開きます。
- この VM で使用する 1 つ以上のネットワーク インターフェースを作成します。また、デフォルトのネットワーク インターフェースを使用することもできます。
- [ネットワーク インターフェース] セクションで、最初のネットワーク インターフェース(プライマリ ネットワーク インターフェース)を開きます。
- [パブリック DNS PTR レコード] セクションで、追加する PTR レコードの各タイプを選択します。
- [PTR ドメイン名] に、追加する PTR レコードのタイプごとにドメイン名を入力します。
- [外部 IPv4 アドレス] フィールドまたは [外部 IPv6 アドレス] フィールドで、以前に予約した IP アドレスを選択します。DNS 構成を使用して VM の IP アドレスを確認した場合は、そのアドレスを指定する必要があります。
- ネットワーク インターフェースの設定を確認するには、[完了] をクリックします。
新しい VM の残りのプロパティを構成します。
ページの下部にある [作成] をクリックします。
VM が開始した後、VM の外部 IP アドレスに対してリバース DNS ルックアップを実行して、PTR レコードが想定どおりに機能していることを確認できます。
IPv4 PTR レコードを関連付けて新しいインスタンスを作成するには、
gcloud instances create
コマンドを使用します。gcloud compute instances create
INSTANCE_NAME \ --image-familyIMAGE_FAMILY \ --image-projectIMAGE_PROJECT \ --public-ptr \ --public-ptr-domainDOMAIN_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 レコードを含む新しいインスタンスを作成するには、次の操作を行います。
PTR レコードを追加する
PTR レコードを追加するには、VM インスタンスのプライマリ ネットワーク インターフェース(nic0
)でアクセス構成を更新します。
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-domainDOMAIN_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
: 追加するドメイン名。
PTR レコードを削除する
PTR レコードを削除するには、VM インスタンスのプライマリ ネットワーク インターフェース(nic0
)のアクセス構成を更新します。PTR レコードを削除すると、Google Cloud はデフォルトの完全修飾ドメイン名 googleusercontent.com
でリバース DNS ルックアップに応答します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
編集するインスタンスをクリックします。
[編集] をクリックします。
[ネットワーク インターフェース] セクションで、プライマリ ネットワーク インターフェースをクリックします。
[パブリック DNS PTR レコード] セクションで、削除する PTR レコードの各タイプのチェックボックスをオフにします。
[完了] をクリックし、[保存] をクリックします。
PTR レコードを削除するには、gcloud compute instances update-access-config
コマンドを使用します。IPv4 と IPv6 の両方の PTR レコードを削除するには、次のコマンドを個別に使用します。
IPv4 の場合:
gcloud compute instances update-access-config
INSTANCE_NAME \ --no-public-ptrIPv6 の場合:
gcloud compute instances update-access-config
INSTANCE_NAME \ --no-ipv6-public-ptr
INSTANCE_NAME
は、更新するインスタンスの名前に置き換えます。
PTR レコードを削除するには、POST
リクエストを instances.updateAccessConfig
メソッドに対して実行します。IPv4 と IPv6 の両方の 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 インスタンスを作成して起動するをご覧ください。