Table of Contents
DNS とそのネットワークトラフィックルーティングにおける役割の理解
ドメインネームシステム(DNS)は、インターネットの電話帳としてよく記述されていますが、トラフィックルーティングのその役割は、単純な名前からIPの解像度を超えてはるかに行きます。 ユーザーがURLをブラウザに入力すると、DNSのリゾルバは、そのドメインの権限のある名前サーバーを見つけ、関連するIPアドレスを取得し、クライアントにそれを返す必要があります。 このプロセスは、複数のキャッシュレイヤーと再帰的なリゾルバーを横断する - 直接接続が確立され、最終的にはトラフィックがサーバーが到達されるかに影響します。
効率的なDNS構成は、地理、サーバー負荷、ネットワーク遅延、または個々のエンドポイントの健全性に基づいて、最も適切なサーバーへのトラフィックを削減することができます。 DNSレコードが返される方法を制御することにより、ネットワーク管理者は、ユーザーが要求を取るパスに著しく影響を及ぼすことができ、遅延を減らし、負荷のバランスをとり、全体的な信頼性を向上させることができます。 DNS解像度の仕組みを理解する - DNSの回復、キャッシュ、TTL(Time-To-Live)などの再帰的クエリ、DNS管理は、DNSの強力なトラフィックを直接使用するための手順です。
トラフィックルーティングの最適化のための重要なDNS戦略
地理的位置‐ベースDNSルーティング(GeoDNS)
GeoDNS は、ユーザーの IP アドレスを地理領域にマッピングし、その地域のサーバーに関連付けられた IP アドレスを返すことで動作します。グローバル アプリケーションの場合、クロス コンチネンタルのラウンド トリップ タイムを削減し、レイテンシを最小限に抑えます。ほとんどの管理された DNS プロバイダーは、]] AWS ルート 53] および を、ジオロケーション ルーティング ポリシーを生成します。これらの設定は、ジオ 設定されたサーバーが、ジオ DNS を正確に設定する場合には、ジオ 設定する インフラストラクチャ を 設定する必要があります。
DNS による Anycast ルーティング
Anycast は、複数のサーバーが同じ IP アドレスを共有し、BGP パスメトリックに基づいて、最も近い利用可能なサーバーへの直接トラフィックをルータが共有するネットワーク アドレス処理技術です。多くのパブリック DNS のリゾルバ (例、1.1.1.1、8.8.8.8) は、世界中のクライアントに低レイテンシな回答を提供するために、 Anycast を使用します。任意のネットワーク上のあなたの認証DNSサーバーをホスティングすることにより、クエリは、最も近い存在のポイントによって応答され、解像度を減らし、クエリの負荷を分配することを確認します。
レイテンシビリティに基づくDNSルーティング
地理位置は、低レイテンシーと近接するが、現実世界ネットワーク条件は、ピアリングのアレンジ、混雑、またはアシンメトリーのルーティングにより変化する可能性があります。 Latency-basedルーティングは、トラフィックプローブを使用して、ユーザーとサーバーのエンドポイント間の実際の応答時間を測定します。 遅延ベースのポリシーをサポートするDNSのリゾルバ(重み付きレコードセット付きGoogle Cloud DNSなど)は、測定されたレイテンシを低下させるサーバーのIPアドレスが、ジオローテーションの方が、より正確なアプローチよりも正確な範囲を提供します。
DNS の負荷分散
DNS のロードバランシングは、複数のバックエンドサーバ間でトラフィックを分散させます。 一般的なメソッドは、以下が含まれます。
- []Round-Robin DNS – 複数のAまたはAAAAAAレコードを回転順序で返します。 実装が容易である間、サーバーの健全性や負荷のアカウントはいません。
- [] DNS] - 大容量のサーバーがトラフィックの比例した大きなシェアを受信できるように、各レコードに重量を割り当てます。 これは、非対称サーバーのデプロイに便利です。
- []Failover DNS] – サーバの健全性を監視し、応答から不健康なIPを削除します。すべてのプライマリサーバーが失敗した場合は、トラフィックは、下段のTTLで二次プールにリダイレクトされます。
DNS の負荷分散を健康チェック(DNS 管理プラットフォーム経由で多くの場合)と組み合わせることで、クライアント側タイムアウトを待ち合わせるのではなく、サーバーのアウトタイムを秒単位で解決できます。
DNS冗長性とレジリエンスの実装
複数の DNS サーバー
単一のDNSサーバー上にリリーすると、単一の障害点を作成し、高いクエリボリュームでパフォーマンスを劣化させることができます。少なくとも2つの権限名サーバーをデプロイし、異なる地理領域と別々のネットワークプロバイダで理想的にホストされます。各サーバーの別のトップレベルのドメインネームサーバー(NS)レコードを使用します。プライマリおよび二次BINDインスタンスの両方を使用して、そのような内部ネットワークの冗長なリゾルダーは、たとえ1つが失敗しても、解像度は中断することなく継続します。
DNS 障害
DNS のフェイルオーバーは、サーバーが到達不能になり、トラフィックを健康な代替手段に再ルートする時に自動的に検出されます。これは、通常、ヘルスチェックプローブを使用して、認証DNSレベルで実行されます。例えば、設定は、30秒ごとに HTTP エンドポイントをプローブする可能性があります。3 連続チェックが失敗すると、そのサーバーの DNS レコードはクエリ応答から削除されます。Failover は、短い TTL 値(例えば 60 秒)と組み合わせてクライアントとリゾルバがすぐに応答を受信するときに最善を動作します。
DNSトラフィックの確保
DNSSECの実装
DNS セキュリティ拡張(DNSSEC)は、DNS レコードに暗号化署名を追加し、その応答が改ざんされていないことを確認するために、リゾルダが許可します。DNSSEC がなければ、攻撃者は DNS キャッシュを毒し、悪意のあるサーバーにユーザーをリダイレクトすることができます。DNSSEC の実装には、ゾーン署名キー(ZSK)とキー署名キー(KSK)の生成、およびゾーンのファイルを公開することが含まれます。DNSSEC は、API がオーバーヘッドを追加している間、API は、 ドメインの信頼性を高く保つために [F] ガイドと [F] ガイド] を保護します。
DNS-over-TLS および DNS-over-HTTPS の
従来のDNSクエリは、平文で送信され、それらは、eavesdroppingと操作に敏感です。暗号化されたDNSプロトコル—DNS‐over-TLS(DoT)とDNS‐over-HTTPS(DoH)—クライアントとリゾルダ間の通信チャネルを保護します。これらのプロトコルを再帰的に展開すると、クエリプライバシーを保護し、オンパス攻撃のリスクを低減します。多くのパブリックリゾルバーが、デフォルトでDoT/DoHをサポートし、ソフトウェアを自分で解決することができます(ソフトウェアを自分で解決する)。
DNS のパフォーマンスの監視とトラブルシューティング
DNS の解像度の時間の継続的な監視、エラー率、およびクエリのボリュームは、効率的なトラフィックルーティングを維持するために不可欠です。 主なツールは次のとおりです。
- [ (ドメイン情報グラインダー) - 解像度チェーン、応答時間、TTL値の診断を行うためにDNSの詳細なクエリを発行します。
- – レコードの種類と応答アドレスを検証するためのシンプルなツールです。
- []dnsperf] - 読み込まれたDNSの解決者のクエリスループットをベンチマークします。
- [Grafana + Prometheus[ - DNSサーバー(クリーレート、レイテンシー、キャッシュヒット比)からメトリックを可視化します。
NXDOMAIN応答(誤設定や攻撃の多くの場合)で突然のスパイクなどの異常のアラートを設定したり、クエリレイテンシを上昇させたりします。DNSログは定期的にレビューし、サブ最適ルーティングを提案するパターンを特定します。これは、ユーザーが頻繁に正しいジオロケーションにもかかわらず、遠隔サーバーにルーティングされているようなパターンを識別します。
高度なDNS構成
EDNS クライアントのサブネット
EDNS Client Subnet (ECS) は、クライアントの IP アドレスの一部を含む DNS のクエリを拡張します。これにより、認証名サーバーは、共有されたリゾルバ(例、実際のエンドユーザーから遠く離れたISP のリゾルバ)を使用している場合、より正確な地理的ルーティングの決定を下すことを可能にします。DNS ベースのルーティングに依存するコンテンツ配信ネットワーク(CDN)では、ECS は GeoDNS およびレイテンシブルレスポンスの正確さを改善しますが、ECS はクライアントのプライバシーを検証します。ただし、ECS は、ECS の認証者をクライアントが、ECS のプライバシーを検証します。
分割-Horizon DNS
Split‐horizon(またはsplit‐view)DNSは、クエリのソースに応じて、同じドメインの異なるIPアドレスを返します。 これは、外部ユーザーがパブリックIPを受信している間、内部のIP(RFC 1918アドレス経由)に内部トラフィックを誘導するために一般的に使用されます。 トラフィックルーティングを念頭に置いて実装すると、分割-horizon-DNSは、パブリックロードバランサーを介して内部トラフィックを防ぐことができます。 また、最寄りのホストがプライベートサーバーに解決することを保証することにより、ネットワークのセグメンテーションを簡素化します。
DNS プロバイダーの選択
独自の認証DNSインフラストラクチャを実行し、管理されたDNSプロバイダを使用する選択肢は、スケール、予算、および運用の専門知識に依存します。 Cloudflare、AWS Route 53、Google Cloud DNS、Azure DNSなどのマネージドプロバイダーは、組み込みのトラフィック・ルーティングポリシー(GeoDNS、レイテンシベース、重み)、あらゆるキャストの配布、および堅牢なAPIベースの管理を提供します。 DDoSの緩和およびSLA-backedの稼働時間も処理します。
厳格なコンプライアンス要件または高度にカスタマイズされたルーティングロジックを持つ組織のために、BIND、PowerDNS、またはKnot DNS とセルフホスティングすることで、レコードのサービングと内部監視との統合を完全に制御できます。 いずれにしても、プロバイダがDNSSECをサポートし、詳細な分析を提供し、回復時間目標を達成するフェイルオーバーメカニズムを提供します。
コンテンツ
DNSは、ネットワークトラフィックを効率的にかつ安全に指示するための戦略的レバーです。 地理的位置情報ベースのルーティング、あらゆるキャストの配布、遅延 - ウェアの解像度、および適切な負荷バランスを実装することにより、往復回数を減らし、サービス可用性を向上させることができます。 DNSSECと暗号化された輸送によるDNSのセキュリティ確保は、トラフィックルーティングの決定の完全性を保護します。 EDNS Client Subnetや、分割またはDNSのパフォーマンスが向上するかどうか、DNSの定期的な監視と高度な技術が、DNSのパフォーマンスが向上するか、DNSのパフォーマンスが向上するかどうかを実証します。