このたび、DNSサーバーをCloudflareに移行しました。
Cloudflareは稀に障害によって様々なサービスが落ちたりすることがあるため、少し不安だったのですが、落ちたらまた元のサービスに戻そうということで、DNSを移行しました。
iCloud+ メールとの相性
iCloud+には、カスタムドメインでメールを送受信できる機能があります。ドメインをicloudのサーバに転送してそこから受信したり、逆にicloudのサーバ経由で送信できます。 この機能がDNS移行時に少しトラブルがあったので、そのメモを残しておきます。
CloudflareのDNSでは、リクエストをproxyできる機能があるようです(Ref: Cloudflare Docs)。 iCloud+メールのために、いくつかDNSを設定していたのですが、その中にDKIM署名のためのフィールドがあります。
通常はDKIMに必要なsig1._domainkeyを、TXTでそのまま値を記述するのですが、iCloud+メールではCNAMEで別のiCloudのサーバに転送します。
このCNAMEエントリをProxyしていたせいで、Gmailで以下のエラーが出ていました。
Authentication-Results: mx.google.com; dkim=permerror (no key for signature)
CloudflareのDNSで、proxyを解除するとDKIM認証が通るようになりました。
ただ、DKIM自体の認証は通っているはずなのに、まだ以下の警告(アラインメント)が出ていました。
From ヘッダー (送信メールアドレス) が DKIM ドメイン (送信ドメイン) と一致しません。この From ヘッダーの ID は「なりすまし」の可能性があるため、このメールには注意してください。
DMARCの設定
iCloud+メールでは、以下の設定を求められます(参考: Apple)。
- TXT(iCloudでの管理用?)
- SPF
- MX
- DKIM
これにはDMARCが含まれていないため、別途DNSに適当な内容を登録しました。 すると、Gmail側でもDMARCがpassとなり、アラインメントに関する警告もなくなりました。