Check-Host.cc

MG (Mail Group) 実験的チェッカー

MG (Mail Group) レコードは、メーリングリスト機能をドメインネームシステムのファブリックそのものにネイティブに組み込もうとする、信じられないほど野心的で初期のエンジニアリングの試みでした。アプリケーション層のメーリングリストマネージャーが登場する前、ネットワークエンジニアはDNSレコードを使用してインターネットバックボーン全体のグループ配信ロジックを指示できると理論づけました。この概念は、サーバー間ルーティングフェーズにおけるバルク電子メールの複製 (Bulk Email Duplication) を処理するための実験的メカニズムとしてRFC 1035で概説されました。

DNS層でのペイロードの複製

MGレコードのメカニズムは、DNSノードのクラスタリングに依存していました。管理者は dev-team.example.com のような擬似ドメイン (Pseudo-domain) ノードを作成します。次に、複数のMGレコードをこの単一のノードに添付し、各レコードはチームメンバーの個々のMB (Mailbox) レコードを明示的に指すようにしました。外部のメールサーバーがそのグループアドレスに電子メールを送信しようとすると、MGレコードについてDNSにクエリを実行します。権威ネームサーバーはメンバーの完全な配列 (Array) を返します。送信側サーバーは電子メールペイロードを複製し、DNS応答にリストされているすべての単一のメールボックスにメッセージを配信するために個別のSMTP接続を開始することになっていました。

キャッシュと伝播の失敗

MGプロトコルは、DNSキャッシュの本来の性質のため、現実世界の展開において見事に失敗しました。DNSはTime-To-Live (TTL) 値に大きく依存しており、中間のISPはネットワーク負荷を軽減するために24時間から48時間レコードをキャッシュします。ユーザーがメーリングリストから登録解除したい場合、システム管理者はゾーンファイルからMGレコードを削除しなければなりませんでした。しかし、外部サーバーは古いグループリストをキャッシュしていたため、グローバルなTTLが期限切れになるまで、ユーザーは何日もバルク電子メールを受信し続けました。静的なDNSゾーンの編集による動的なユーザーサブスクリプションの管理は、計算上非効率であり、ユーザーにとって非常にフラストレーションのたまるものでした。

アプリケーション層リストの台頭

ネットワークアーキテクトは、メーリングリストには複雑な状態管理 (State Management) — バウンスの処理、登録解除リンクの処理、モデレーションキューの管理 — が必要であり、DNSはそれらを処理するように設計されたことはないと普遍的に結論付けました。MGレコードは完全に放棄されました。業界は、GNU Mailman、Majordomo、そして最新のExchangeの配布グループ (Distribution Groups) のようなアプリケーションレベルのリストマネージャーに移行しました。これらのアプリケーションは標準のMXレコードの背後に配置され、単一の電子メールペイロードを受信し、内部SQLデータベースを使用して即座に複製と配信を管理し、メーリングリストのロジックをグローバルDNSルーティングテーブルから完全に分離します。