DNS ゾーンファイルを Route 53 にインポートし、インポート中に発生したエラーをトラブルシューティングするにはどうすればよいですか?

所要時間4分
0

ドメインネームシステム (DNS) を別のサービスプロバイダーから移行しています。DNS ゾーンファイルをインポートして、Amazon Route 53 ホストゾーン内のすべてのレコードを移動する必要があります。その方法を教えてください。

簡単な説明

インポート処理を開始する前に、インポート中にエラーが発生しないように、DNS ゾーンファイルで次のことを確認してください。

  • ゾーンファイルは、RFC 準拠の形式である必要があります。
  • ゾーンファイル内のレコードのドメイン名は、ホストゾーンの名前と一致する必要があります。
  • Route 53 は、$ORIGIN および $TTL キーワードをサポートしています。ゾーンファイルに $GENERATE または $INCLUDE キーワードが含まれている場合、インポートは失敗し、Route 53 はエラーを返します。
  • ゾーンファイルをインポートすると、Route 53 は権限ステートメント (SOA) レコードを無視します。ゾーンファイル内にある、ホストゾーンと同じ名前のネームサーバー (NS) レコードも無視されます。
  • インポートできる最大レコード数は 1,000 です。
  • ホストゾーンにゾーンファイルに表示されるレコードがすでに含まれている場合、インポートプロセスは失敗し、レコードは作成されません。
  • ゾーンファイルの内容を確認し、場合に応じて、レコード名の末尾にドットが含まれているか、除外されているかを確認します。
  • ゾーンファイル内のレコード名の末尾にドットが含まれている場合 (example.com.)、インポートプロセスは、その名前を完全修飾ドメイン名 (FQDN) として解釈します。この場合、その名前の Route 53 レコードが作成されます。
  • ゾーンファイル内のレコード名の末尾にドットが含まれていない場合 (www)、インポートプロセスは、その名前をゾーンファイルのドメイン名 (example.com) と連結します。この場合、連結された名前 (www.example.com) を持つ Route 53 レコードが作成されます。

注注意: 正規名 (CNAME)、メールエクスチェンジャー (MX)、ポインター (PTR)、サービス (SRV) レコードの場合、RDATA 値に含まれるドメイン名にもこの動作が適用されます。example.com のゾーンファイルを使用していて、ゾーンファイル内の CNAME レコード (末尾にドットなし) が www.example.com (末尾にドットなし) の RDATA 値を持っている場合、インポートプロセスは、support.example.com という名前の Route 53 レコードを作成します。このレコードは、www.example.com.example.com にトラフィックをルーティングします。ゾーンファイルをインポートする前に、RDATA 値を確認し、必要に応じて更新します。

解決方法

DNS ゾーンファイルをインポートする

ゾーンファイルをインポートしてレコードを作成するには、次の手順に従います。

  1. Route 53 コンソールを開きます。
  2. ナビゲーションペインで [Hosted zones] (ホストゾーン) を選択します。
  3. [Hosted zones] (ホストゾーン) ページで、[Create hosted zone] (ホストゾーンの作成) を選択します。
  4. ドメインの名前を入力します。(オプション) コメントを入力することもできます。
  5. [Create] (作成) を選択します。
  6. [Import zone file] (ゾーンファイルをインポート) を選択します。
  7. [Import zone file] (ゾーンファイルをインポート) ペインで、ゾーンファイルの内容を [Zone file] (ゾーンファイル) テキストボックスに貼り付けます。
  8. [Import] (インポート) を選択します。

注: ゾーンファイル内のレコードの量によっては、レコードが作成されるまでに数分かかる場合があります。

Route 53 ホストゾーンで DNS レコードが作成されたら、移行プロセスを続行できます。移行プロセスを完了するには、Amazon Route 53 を既存のドメインの DNS サービスにするの手順に従います。

DNS ゾーンファイルのインポート中に発生したエラーのトラブルシューティング

次の例は、DNS ゾーンファイルのインポート中に表示される可能性がある一般的なエラーメッセージを解決するためのトラブルシューティング手順を示します。

「[AliasTarget、すべての [TTL、および ResourceRecords]、TrafficPolicyInstanceId] のうち、正確に 1 つを予期していましたが、{DNS_Record} での変更では何も見つかりませんでした」

原因: ゾーンファイルの DNS レコードに存続時間 (TTL) の値が指定されていません。

ゾーンファイルの例:

$ORIGIN testdomain.com
@ A 1.1.1.1
www CNAME example.com

エラーメッセージの例:

Invalid request: Expected exactly one of [AliasTarget, all of [TTL, and ResourceRecords], or TrafficPolicyInstanceId], but 
found none in Change with [Action=CREATE, Name=testdomain.com, Type=A, SetIdentifier=null]

解決方法: ユースケースに応じて、$TTL キーワードを使用してすべての DNS レコードに TTL を割り当てるか、個々のレコードに TTL 値を指定します。

$ORIGIN testdomain.com
$TTL 60
@ A 1.1.1.1
www CNAME example.com
  • または -
$ORIGIN testdomain.com
@ 60 A 1.1.1.1
www 60 CNAME example.com

「ゾーンファイルに含まれている {Record_Type} の種類のレコードの値が多すぎます。1 つの値が予期されていましたが、{n} 個の値が指定されています。行 {m}。」

原因: 特定の DNS レコードのために複数の値が行「m」で指定されました。

例 1 ゾーンファイル:

$ORIGIN testdomain.com
$TTL 60
@ TXT  "abc" "xyz"

例 1 エラーメッセージ:

The zone file contains too many values for a record with a type of TXT. 1 
values were expected, but 2 values are specified. On line 3. '@ TXT  
"abc" "xyz"'

解決方法: 複数の TXT レコード値を別々の行に指定します。各値の前後に二重引用符 ("example value") を使用してください。

$ORIGIN testdomain.com
$TTL 60
@ TXT "abc" 
@ TXT "xyz"

例 2 ゾーンファイル:

$ORIGIN testdomain.com
$TTL 60
@ A 1.1.1.1 2.2.2.2 3.3.3.3

例 2 エラーメッセージ:

The zone file contains too many values for a record with a type of A. 1 
values were expected, but 3 values are specified. On line 3. '@ A 
1.1.1.1 2.2.2.2 3.3.3.3'

解決策:

$ORIGIN testdomain.com
$TTL 60
@ A 1.1.1.1 
@ A 2.2.2.2
@ A 3.3.3.3

「{Value} で CharacterStringTooLong (値が長すぎます) {値} が発生しました」

原因: TXT 値の文字列が 255 文字を超えています。

ゾーンファイルの例:

$ORIGIN testdomain.com
$TTL 60
www TXT "spf1 +a +mx ip4:1.1.1.1 ip4:2.2.2.2 ip4:3.3.3.3 ip4:4.4.4.4 ip4:5.5.5.5.5 ip4:6.6.6.6 ip4:7.7.7.7 ip4:8.8.8.8 ip4:9.9.9.9 ip4:10.10.10.10 ipv4:11.11.11.11 ip4:12.12.12.12 ip4:13.13.13.13 ip4:14.14.14.14 ip4:15.15.15.15.15 include:spf.abc.com include:_spf.xyz.com ~all"

エラーメッセージの例:

[Invalid Resource Record: 'FATAL problem: 
CharacterStringTooLong (Value is too long) encountered with '"spf1 +a 
+mx ip4:1.1.1.1 ip4:2.2.2.2 ip4:3.3.3.3 ip4:4.4.4.4 ip4:5.5.5.5.5 
ip4:6.6.6.6 ip4:7.7.7.7 ip4:8.8.8.8 ip4:9.9.9.9 ip4:10.10.10.10 
ipv4:11.11.11.11 ip4:12.12.12.12 ip4:13.13.13.13 ip4:14.14.14.14 
ip4:15.15.15.15.15 include:spf.abc.com include:_spf.xyz.com ~all"'']

解決方法: 255 文字を超える TXT レコード文字列を、同じレコード内の複数のテキスト文字列に分割します。各値の前後に二重引用符 ("example value") を使用してください。

$ORIGIN testdomain.com
$TTL 60
www TXT "spf1 +a +mx ip4:1.1.1.1 ip4:2.2.2.2 ip4:3.3.3.3 ip4:4.4.4.4 ip4:5.5.5.5.5 ip4:6.6.6.6 ip4:7.7.7.7 ip4:8.8.8.8 ip4:9.9.9.9 ip4:10.10.10.10 ipv4:11.11.11.11""ip4:12.12.12.12 ip4:13.13.13.13 ip4:14.14.14.14 ip4:15.15.15.15.15 include:spf.abc.com include:_spf.xyz.com ~all"

注: TXT レコードの値の最大文字数は 4,000 文字です。

「DNS 名 example.com の CNAME 型 RRSet には、正確に 1 つのリソースレコードが含まれていません」

原因: 同じドメイン名に対して複数の CNAME レコードが作成されました。

注: このメソッドを使用してホストゾーンにインポートされたレコードは、Simple Routing ポリシーを使用して作成されます。その結果、複数の CNAME レコードを 1 つの DNS レコードで指定することはできません。

ゾーンファイルの例:

$ORIGIN testdomain.com
$TTL 60
www CNAME abc.com
www CNAME xyz.com

エラーメッセージの例:

Error occurred [RRSet of type CNAME with DNS name www.testdomain.com. is not permitted as it 
conflicts with other records with the same DNS name in zone 
testdomain.com., RRSet of type CNAME with DNS name www.testdomain.com. 
does not contain exactly one resource record.]

解決方法: [Import] (インポート) オプションを使用する代わりに、ユースケースに応じて、[Weighted] (加重)、[Latency] (レイテンシー)、[Failover] (フェイルオーバー)、または [Geolocation routing policies] (位置情報ルーティングポリシー) を使用してレコードを個別に作成します。


AWS公式
AWS公式更新しました 2年前