web-dev-qa-db-ja.com

DNSで複数のPTRレコードが推奨されないのはなぜですか?

I 多くの場合read DNS構成で複数のPTRレコードを使用することはお勧めしません。

ただし、その理由は、あいまいであるか、それほど明白ではないことがよくあります。

  • "それは問題を引き起こす可能性があります"、
  • 「単一の答えを期待しているプログラムでバグを引き起こすことができます」:それはソフトウェアの問題ですよね!
  • 「DNS応答パケットを大きくしすぎる可能性があります」: [〜#〜] edns [〜#〜] でこれは修正されませんか?

これらの正当な理由はありますか?他の(良い)理由を知っていますか?このすべては、「レガシーの恐怖」のように見えます...

36
Totor

逆名のPTRレコード(例:7.2.0.192.in-addr.arpa)は、そのIPアドレスに関連付けられている正規名の正規名を識別することが期待されています。

ネットワークノードのゲートウェイポインターとフルアドレスノードの通常のホストポインターの両方が、対応するホストのプライマリドメイン名を指すようにPTR RRを使用します。

差出人: http://tools.ietf.org/html/rfc1035#section-3.5

この期待は、逆引きを行うソフトウェアに反映されています。多くの場合、そのようなソフトウェアは、単一の名前が返されることを明確に期待しており、その名前をそのホストの正規名として使用できることを期待しています。複数の名前が返された場合は、ランダムに1つを取るのが一般的です。これは、この特定の機会にどの名前を使用したいかを知る方法がないためです。

一般的な予想では、IPアドレスに関連付けられた正規名が1つあり、その名前はPTRが指すものであるため、通常、複数の名前を追加してもメリットはありません(ランダムなA/AAAAレコードには一致するPTR)がありますが、使用するPTRレコードを制御できないため、奇妙な結果を引き起こす可能性があるため、潜在的な欠点があります。複数追加した場合。

本質的に、複数のPTRレコードがある場合、実際にはホストをより正当なものに見せることはせず、むしろ逆にすると、検証に失敗したり、何かを壊したりするリスクがあります。

おそらくいくぶん極端な比喩として、写真ですべての名前が異なる5つのパスポートを空港で引き渡すことは、おそらく1つだけを引き渡す場合と同じように受信されません。

20

RFCがこれらのPTRレコードを処理するための制限や方法を課していないため、すべてが予測できない動作に帰着します。ほとんどの実装ではラウンドロビンが選択されるため、希望する結果が得られません(多くの名前を単一のIPに完全に一致させる)。

詳細については、こちらをご覧ください: https://supernoc.rogerstelecom.net/pdfs/multiple-ptrs.pdf

また、Glibcのgetnameinfo関数からこのバグを確認してください( https://sourceware.org/bugzilla/show_bug.cgi?id=579 )。これがインターネット上の無数の異なるシステム(一部は非常に古く、パッチが適用されていない)で発生しないことをどのように保証できますか?

原則として、不特定で予測できない動作を回避することは、原則として強化することをお勧めします。残念ながら、単一のIPの複数のPTRレコードはそのカテゴリに分類されます(RFCに関する限り)。

16

複数のPTRがある場合、PTRが特定の転送レコードと一致することをどのように保証しますか?

これは、ほとんどの受信SMTPサーバーが転送が逆に一致するかどうかをチェックするメールサーバーの相互作用で特に重要です。

かなり難しいのは、複数のPTRがあり、どのPTRが選択され、接続時に指定した転送と一致するかを保証する方法がないことです。

完全な一致を保証する最も簡単な方法は、前方エントリに一致する1つのPTRを持つことです

2
user274768