Check-Host.cc

グローバルCNAMEレコードチェッカー

CNAME (Canonical Name) レコードは、ドメインレベルのエイリアス (別名) として機能します。ホスト名をIPアドレスに直接解決するのではなく、ターゲットが別のドメイン名であることをDNSリゾルバに指示します。リゾルバがCNAMEに遭遇すると、検索シーケンス全体を再開し、最終的に末端のAまたはAAAAレコードに解決されるまで新しい正規ドメインを照会します。これは、サードパーティのSaaSプラットフォーム、コンテンツ配信ネットワーク (CDN)、またはVercelやHerokuのような静的IPの割り当てが保証されず、インフラストラクチャが頻繁に変更されるPaaS環境を統合する開発者によって多用されています。

Apexドメインの制限 (RFC 1034)

RFC 1034で定義されているDNSアーキテクチャにおける最も厳格なルールの1つに、CNAMEレコードは他のどのレコードタイプとも同じノードで共存できないというものがあります。ドメインのルートApex (例: example.com) は機能するために数学的にSOA (Start of Authority) とNS (Name Server) レコードを保持する必要があるため、標準のCNAMEをルートに配置することは不可能です。これを試みるとゾーンが破損し、メール (MX) やルーティングに致命的な障害を引き起こします。この制限を回避するために、最新のマネージドDNSプロバイダー (Cloudflare、AWS Route 53、DNSimpleなど) は独自の「CNAME Flattening」または「ALIAS」疑似レコードを開発しました。これらのシステムはサーバー側で内部的にCNAMEターゲットを解決し、合成されたAレコードを直接クライアントに提供することで、厳密なRFC準拠を維持します。

サブドメインテイクオーバー (Subdomain Takeovers) と Dangling Records

CNAMEレコードは、サブドメインテイクオーバーとして知られる深刻なセキュリティベクターをもたらします。これは、管理者がサブドメイン (例: docs.example.com) をGitHub PagesやZendeskエンドポイントなどのサードパーティサービスに向けるCNAMEを作成した場合に発生します。後で企業がZendeskアカウントを削除したにもかかわらず、DNSゾーンからCNAMEレコードを削除し忘れた場合、そのエイリアスは「Dangling (宙ぶらりん状態)」になります。悪意のある攻撃者がサードパーティプロバイダーでその放棄されたエンドポイントを登録すると、信頼されたサブドメインを即座に完全に制御できるようになり、フィッシング攻撃やCookieの盗難が可能になります。CNAMEチェーンの定期的な監査は必須のセキュリティプラクティスです。

解決ペナルティと無限ループ

エイリアスを連鎖させる (例: エイリアスAをエイリアスBに向け、エイリアスBをエイリアスCに向ける) と、パフォーマンスに大きなペナルティが生じます。ホップするたびにクライアントは追加のDNSルックアップを実行する必要があり、Time to First Byte (TTFB) に測定可能なミリ秒単位の遅延が加わります。さらに、不適切な設定は簡単に無限ルーティングループを引き起こし、リゾルバが検索を中止してNXDOMAINエラーを返す原因となります。エイリアス構造をグローバルに検証することで、効率的で直接的なルーティングが保証されます。