従来の DNS 名前解決を置き換えるために、クライアントアプリケーションに HTTPDNS を統合する方法について説明します。
はじめに
HTTPDNS は、ドメインハイジャック、名前解決の遅延、高い失敗率、不正確なスケジューリングを防ぐために、従来のローカル DNS を置き換えるクライアント側の DNS ソリューションです。統合には次の手順が含まれます。
-
サービスの有効化
-
名前解決リストへのドメイン名の追加
-
開発設定の取得
-
解決済みの IP アドレスの取得
-
ネットワークライブラリへの名前解決結果の適用
-
統合成功の検証
サービススケジューリングにカスタム解析を使用する場合は、カスタム解析ポリシーを設定してください。カスタム解析。
先に進む前に、コンソールでの最初の3つの手順を完了してください。製品ワークフロー。このトピックでは、DNS リゾルバーの動作原理から始めて、クライアント統合プロセス (最後の 3 つの手順) について説明します。
DNS リゾルバー
DNS リゾルバーは、ドメインクエリを受信して IP アドレスを返します。アプリケーションクライアント がネットワークリクエストを送信すると、その ネットワークライブラリ (NSURLSession、OkHttp、または libcurl) は、接続前にドメインを IP アドレスに解決するために DNS リゾルバー を使用します。これには次の2つのタイプがあります。
-
システム DNS リゾルバーとは、POSIX の
getaddrinfo()、Windows のDnsQuery()、または Apple のNetwork.frameworkなどの標準 API を通じて呼び出される OS 提供のコンポーネントです。ローカル設定 (hosts ファイル、DNS キャッシュ、ネットワーク設定) に基づいてクエリを実行し、リクエストを再帰 DNS サーバー (通常は DHCP 経由で ISP から割り当てられるサーバー、または 8.8.8.8 のようなユーザー設定のサーバー) に転送します。 -
カスタム DNS リゾルバー:システムリゾルバーをバイパスし、HTTPDNS などのサービスに直接アクセスして権威 IP アドレスを取得するアプリケーションまたはサードパーティのロジック。一般的な方法には、ネットワークライブラリの DNS インターフェイス (OkHttp の
Dnsインターフェイスや libcurl のresolveメカニズムなど) のオーバーライドや、DNS フッキングのためのプロキシによるトラフィックのインターセプトなどがあります。
HTTPDNS との統合とは、HTTPDNS サービスを利用したカスタム DNS リゾルバーを実装することを意味します。次の図は、クライアントがカスタム DNS リゾルバーまたは DNS-over-HTTPS (DoH) を使用して HTTPDNS の名前解決結果を適用し、リクエストで最適な IP アドレスが使用されるようにする方法を示しています。

統合プロセス
コンソールでサービスを有効化し、ドメイン名を追加した後、次の3つの手順で HTTPDNS を使用したカスタム DNS リゾルバーを実装します。
-
解決済みの IP アドレスの取得:HTTPDNS サーバーにアクセスして、ドメイン名の IP アドレスを取得します。
-
名前解決結果の適用:取得した IP アドレスをネットワークリクエストにインジェクトします。
-
統合成功の検証:ログまたはパケットキャプチャを使用して、前の2つの手順が成功したことを確認します。
解決済みの IP アドレスの取得
SDK、HTTP API、または DoH を通じて HTTPDNS から名前解決結果を取得します。
SDK を使用すると、高可用性とパフォーマンス最適化が組み込まれているため、迅速に統合できます。
-
SDK を使用できない場合、またはきめ細かな制御が必要な場合は、HTTP API 統合ガイドを使用してください。 HTTP API は、暗号化、署名検証、SDNS、および追加のエラーコードをサポートしています。
ほとんどのシナリオでは SDK を推奨します。
名前解決結果の適用
ネットワークリクエスト中に解決済みの IP アドレスを適用します。ライブラリが DNS フックまたはドメインマッピングをサポートしている場合は、結果を直接インジェクトします。それ以外の場合は、直接IP接続、プロトコル置換、またはローカルプロキシを使用します。一般的なライブラリやフレームワークでの適用方法:
-
Android:OkHttp、Webview、Webview ローカルプロキシ、ExoPlayer、HttpURLConnection、gRPC、Alibaba Cloud OSS SDK など
-
iOS:ネイティブネットワークライブラリ、WebView、AFNetworking、Alamofire、Alibaba Cloud OSS SDK など
-
HarmonyOS:Alibaba Cloud OSS SDK、HarmonyOS SDK 統合、 など
その他のライブラリやフレームワーク (Socket.io、HttpClient、Glide、SwiftNIO、Libcurl) については、テクニカルサポートにお問い合わせください。
統合成功の検証
次のいずれかの方法を使用して、統合が成功したかを検証します。
-
ログ検証 (推奨)
-
方法:HTTPDNS から解決済みの IP アドレスをログに記録し、ビジネスリクエストでそれらが正しく使用されていることを検証します。
-
シンプルかつ軽量で、ほとんどのシナリオに適しています。
-
-
ハイジャックシミュレーション:
-
方法:デバイスの Wi-Fi DNS サーバーを無効なアドレスに設定し、HTTPDNS を通じてビジネスリクエストが引き続き成功することを検証します。
-
システム DNS の干渉をブロックすることで、より正確な検証が可能になります。
-
まとめ
HTTPDNS の統合では、「解決済みの IP アドレスの取得」、「ネットワークライブラリへの適用」、「結果の検証」という3つの手順でカスタム DNS リゾルバーを構築します。統合方法に応じたガイドを選択してください。
SDK統合
-
HTTP API統合