MXルックアップで、間違った形式のホスト名(数字やハイフンで始まるホスト名など)を公開(および受信)できるかどうか疑問に思います。 DNSサーバーは通常、MXレコードを受け入れる前に確認しますか?
例えば、
0mx.example.com
-host.domain.com
host. domain.com
許可されていなくても、間違ったホスト名が何らかの方法で公開されたとします。 「良い」DNSサーバー(Google DNSなど)がMXルックアップでこれらの間違ったホスト名を渡さないと仮定できますか?
私は関連するものを実装しており、常に正しい形式のホスト名を返すようにMXクエリを「信頼」できることを知っておく必要があります。
答え1
[RFC 2181] 「11. 名前構文」によると、DNS は「すべてのバイナリ文字列」を受け入れます。
DNS自体は、リソースレコードを識別するために使用できる特定のラベルに1つの制限のみを適用します。この制限は、ラベルの長さとフルネームに関連しています。タグの長さは1〜63オクテットに制限されます。正規化されたドメイン名の長さは、255オクテット(区切り文字を含む)に制限されます。長さゼロのフルネームは、DNSツリーのルートを表すために定義され、通常は「.」として作成および表示されます。これらの制限により、すべてのバイナリ文字列をすべてのリソースレコードのラベルとして使用できます。同様に、すべてのバイナリ文字列は、ドメイン名を値の一部または全部(SOA、NS、MX、PTR、CNAME、および追加できるその他の値)として含むすべてのレコードの値として使用できます。
したがって、DNS サーバー、クライアント、およびメール転送ソフトウェアがこのタイプのデータを処理する方法をテストします。
答え2
認証されていないDNSサーバーの作成を防ぐ方法はありません。しかし、ここにいる誰も試さずに、GoogleのDNSサーバーがそのような記録をどのように処理するかについて明確な答えを与えることはできないようです。
答え3
DNSサーバーソフトウェアは、MXホスト名の構文に無効な文字があるかどうかを確認しますか?一部はそうで、一部はそうではありません。
キャッシュDNSリゾルバとして機能するソフトウェアは、特権DNSサーバーから受信したホスト名に対して検証を実行しますか?私はそれを疑う。
MXレコードに、ターゲットとして指定されたホストが有効なSMTPポートでリッスンしていることを確認するDNSソフトウェアがありますか?いいえ、誰かが書くことができるかもしれませんが、DNSサーバーでそのような検証を見たことはありません。
ドメインゾーンで作成されたDNSレコードにエラーがある可能性があると心配していますか?短いTTL(Time To Live)でこれらのレコードを生成してテストすることをお勧めします。新しいDNSレコードが良好であることを確認したら、TTLを通常の時間長に変更できます。 (短いTTLは、修正によって置き換えられる前に破損したレコードが長い間キャッシュされないことを意味します)