web-dev-qa-db-ja.com

IPv4アドレスのメールサーバーにはAAAAレコードが必要ですか?

Gmailから自分のドメインのSMTP/IMAPサーバーからOutlook経由で送信される電子メールに予期しないバウンスバックが発生したことに非常に驚きました(詳細は匿名化されています)。

送信したメッセージを1人以上の受信者に配信できませんでした。これは永続的なエラーです。次のアドレスが失敗しました:

  [email protected]
    SMTP error from remote mail server after end of data:
    Host gmail-smtp-in.l.google.com [1234:a1b2:4321:a12::1a]:
    550-5.7.1 [1234:1234:1234:a12::12a1] Our system has detected that this message
    550-5.7.1 does not meet IPv6 sending guidelines regarding PTR records and
    550-5.7.1 authentication. Please review
    550-5.7.1  https://support.google.com/mail/?p=IPv6AuthError for more information
    550 5.7.1 . 123ab123456abc.123 - gsmtp

なぜそれがIPv6AuthErrorであるのか理解できませんでしたが、 逆IPルックアップ が私のPTRを使用して機能し、 DKIMとSPFのレコードは問題ありませんでしたが、 DNS IPV6ルックアップテスト を実行しました。これにより、単純な「見つかりません」エラーがスローされました。

aaaa:my-domain.com

問題を見つけるaaaa

テスト:公開されたDNSレコード結果:DNSレコードが見つかりません

これは驚くべきことではありません。私のドメインはIPV4のIPアドレス上にあるので、IPV6のみのIPアドレスを使用しない限り、それらは必要ないと考えて(おそらく、ひどく?)aaaaレコードを設定したことはありません。

同じmy-domain.comアドレスから同じGMailアドレスへのそれ以上の電子メールは同じエラーを出さないので、それは断続的な問題です。 AAAAを追加しました@mail、およびwwwレコードは、私のIPV4 IPアドレスの自動変換されたIPV6バージョンを指しています。これまでのところ問題はないようですが、断続的な問題が修正されたかどうかはわかりません。

私の電子メールはEximを使用して送信されます メールサーバー上の各ドメインにIPv4アドレスを割り当てる動的構成 。私のExim構成には、代わりにIPv6アドレスを割り当てることを私が知っているものは何もありませんが、netstat -tulpn | grep :25は、EximがIPv6アドレスをリッスンしていることを示しています。

netstat -tulpn | grep :25
tcp        0      0 0.0.0.0:2525           0.0.0.0:*             LISTEN      2788/exim   
tcp        0      0 0.0.0.0:25             0.0.0.0:*             LISTEN      2788/exim   
tcp        0      0 :::2525                :::*                  LISTEN      2788/exim   
tcp        0      0 :::25                  :::*                  LISTEN      2788/exim 

だから私の質問は:IPV4 IPアドレスを使用するように構成されたメールサーバーがメールを送受信するためにAAAAレコードを必要とするのはどのような状況ですか?

どうやらあなたのメールサーバーはIPv6経由でGoogleに接続しています。このインターネットはIPv6をサポートするためにより多くの人々を必要とするので、これは素晴らしいことです!

あなたが見ていたのは(A、AAAAレコードなど)あなたへのインバウンド接続用です。 Googleが認識しているのは、アウトバウンド接続です。 DNSにAAAAレコードがない場合でも、サーバーはIPv6を介して通信できる可能性があり、明らかに通信できました。

まず:変換トリックを使用してIPv4アドレスをAAAAレコードに入れないでください!これにより、到達可能性が大幅に損なわれます。ホラーストーリーについては RIPE 74でのプレゼンテーション をご覧ください。 IPv4とIPv6は異なるプロトコルであり、アドレスを変換するだけでは不十分です。実際のIPv6アドレスを使用してください。あなたのサーバーは明らかにそれらを持っています、さもなければそれはIPv6を介してグーグルに接続することができなかったでしょう。

GoogleがIPv6経由で着信接続を受信すると、そのアドレスで逆引き参照(PTRレコード)を実行して、そのアドレスの正規のホスト名を確認します。次に、その名前を検索して、その名前に実際にそのアドレス(AAAAレコード)があるかどうかを確認し、リバースレコードが嘘をついていないことを確認します。次に、送信元IPv6アドレスをSPFレコードと照合して、このアドレスがそのドメインからメールを送信することになっているのかどうかを確認します。

基本的に、これらはGoogle(および他の多くの)がIPv4に対して行うのと同じチェックです。 IPv6は新しいプロトコルであるため、Googleはチェックをより厳密にすることを決定しました。彼らは人々が最初からそれを正しく理解することを望んでいるので、IPv4のようにレガシーな混乱は発生しません。これが、IPv6を介して通信するときにすぐに気付く理由かもしれません。

これがお役に立てば幸いです。最初に行うことは、メールサーバーのIPv6アドレスを見つけることです。また、意識的に構成しなかった場合は、IPv6ファイアウォール設定を確認し、IPv4設定と整合させることもできます。 IPv6のサポートは素晴らしいですが、安全に行うようにしてください:)

3
Sander Steffann