すべてのプロダクト
Search
ドキュメントセンター

HTTPDNS:セッション追跡を使用して解決の問題をトラブルシューティングする

最終更新日:Feb 19, 2025

次のシナリオで問題をトラブルシューティングするために、セッション追跡を使用できます。

  • HTTPDNS によって返された IP アドレスが期待どおりではなく、ビジネスの品質に影響を与えています。

重要

  • IP アドレスが HTTPDNS によって返されていることを確認してください。 HTTPDNS から IP アドレスを取得したログと、HTTPDNS にアクセスするために使用されたコードを提供する必要があります。

  • 技術的な制限により、Alibaba Cloud は 3 日以内に生成された IP アドレスのトラブルシューティングをサポートしています。

  • セッション追跡を使用するには、HTTPDNS SDK の getSessionId メソッドを呼び出して、セッション ID を取得する必要があります。 メソッドを呼び出すには、SDK のバージョンが要件を満たしていることを確認してください。 Android 用 SDK はバージョン 1.2.3 以降、iOS 用 SDK はバージョン 1.6.20 以降である必要があります。

背景情報

インテリジェント DNS 解決が実行されると、DNS サーバーは Web サイト訪問者のソースに基づいて IP アドレスを返します。 サービス品質を向上させるために、Global Server Load Balancing(GSLB)は、異なるソースからの訪問者のスケジューリング構成を頻繁に変更することがあります。 たとえば、Content Delivery Network(CDN)サービスのスケジューリング構成は数時間ごとに変更される場合があります。 クライアントが正しくないスケジューリング結果(IP アドレス)を取得した場合、ユーザーは応答の遅延やタイムアウト リクエストが発生し、サービスが利用できなくなることさえあります。

解決の問題をトラブルシューティングするには、ソース IP アドレス、解決時間、ドメイン名、およびドメイン名から変換された IP アドレスのリストを提供する必要があります。 スケジューリングレコードを見つけるには、すべての情報が必要です。 ただし、次の問題が発生する可能性があります。

  • クライアントは正確なソース IP アドレスを提供できません。

  • ソース IP アドレスが提供されている場合でも、IP アドレスは多くの場合共有されており、解決の問題のトラブルシューティングには使用できません。

  • ネットワーク環境では、キャリアは訪問者の宛先 IP アドレスに基づいて異なるソース IP アドレスを提供する場合があります。

  • ソース IP アドレスは、アプリケーションのライフサイクル中に変更される場合があります。

  • ソース IP アドレスの変更理由を特定できません。

一意のセッション ID を使用する

sessionId パラメーターは、アプリケーションの起動時に生成され、その値はアプリケーションのライフサイクル全体で変更されません。 アプリケーション ライフサイクルでの HTTPDNS リクエストには、同じ sessionId パラメーター値が含まれています。 サーバーはこのパラメーターを記録し、インデックスを生成します。 このトラブルシューティング ソリューションは、アプリケーション サイクルを使用して解決レコードを区別します。これは、デバイス ID を使用してアプリケーション例外に関する報告されたログを区別するのと似ています。 ソース IP アドレスと解決結果をマッピングするソリューションと比較して、sessionId を使用してアプリケーション ライフサイクルを識別することは、アプリケーションにとってより正確で適切なトラブルシューティング方法です。

このソリューションでは、sessionId パラメーターの値を使用して、クライアントの正確なソース IP アドレスを取得します。 また、sessionId パラメーターの値を使用して、アプリケーション ライフサイクルにおけるすべての HTTPDNS リクエストを追跡することもできます。 ソース IP アドレスのすべての変更を発見し、net パラメーターの値の変化を観察することで変更理由を取得できます。

たとえば、クライアントが広東のキャリアによって発行された SIM カードを使用して 4G ネットワークにアクセスする場合、クライアントに割り当てられたソース IP アドレスも広東省に属している可能性があります。 HTTPDNS は、広東省に属するソース IP アドレスに基づいて、クライアントに IP アドレスを返します。 ただし、クライアントが広東省以外の現在の場所の有線ネットワークまたは Wi-Fi に接続すると、現在の場所に属する新しいソース IP アドレスが割り当てられます。 その結果、最新のソース IP アドレスが既存の解決結果と一致しなくなり、サービス品質に影響します。 このソース IP アドレスの変更は、従来のオンプレミス DNS サーバーまたは HTTPDNS サーバーが使用されている場合に発生する可能性があります。

セッション追跡を使用する

アプリケーションの最新バージョンへの更新には、多くの手順が含まれ、長期間かかる場合があります。 HTTPDNS サービスにアクセスするときは、解決結果と対応するセッション ID を記録することをお勧めします。 解決の例外が発生した場合は、これらのレコードを参照して問題をトラブルシューティングできます。

  • SDK を使用して HTTPDNS にアクセスする:アプリケーションの起動時に、セッション ID が生成されます。 SDK の getSessionId メソッドを呼び出して、生成された ID を取得できます。 getSessionId メソッドを使用するには、SDK のバージョンが要件を満たしていることを確認してください。 Android 用 SDK はバージョン 1.2.3 以降、iOS 用 SDK はバージョン 1.6.20 以降である必要があります。 他の既知の問題を防ぐために、SDK を最新バージョンに更新することをお勧めします。

  • HTTP API を使用して HTTPDNS にアクセスする:HTTPDNS SDK のソースコードを参照して、必要なパラメーターを構成できます。

  • アプリケーションがスケジューリング サービスの品質が不十分であるというログを報告する場合、sessionId パラメーターの値を記録する必要があります。

サービスのリクエストに sessionId パラメーターの値を追加することもできます。 たとえば、HTTPDNS によって返された解決結果を使用して、対応するドメイン名からサービスをリクエストする場合、URL に sessionId パラメーターの値を追加できます。 この方法では、解決結果が使用されるすべてのシナリオを識別できます。

セッション追跡ソリューションでは、SDK を使用して HTTPDNS サーバーに開始された各リクエストに、次のパラメーターが追加されます。 サーバーは情報を記録します。

  • sid=<sessionId:[a-zA-Z0-9]{12}>: アプリケーション ライフサイクルを示します。 このパラメーター値は、SDK の起動時に生成されます。

  • net=<4g|3g|2g|wifi|unknown>: リクエストが開始されたときにオペレーティング システムによって提供されるネットワーク タイプを示します。 セッション ID を提供することで、net パラメーターの値を取得できます。

  • bssid=<wifi_bssid>: Wi-Fi ネットワークのアクセスポイントを示します。 セッション ID を提供することで、bssid パラメーターの値を取得できます。

  • サンプル URL:http://47.74.222.190/902379/dhost=www.aliyun.com&sid=wInhNA3iM0PK&net=wifi&bssid=54e061553e79

トラブルシューティング シナリオ:予期しない解決結果

解決結果が期待どおりではなく、HTTPDNS サービスに例外があると疑われる場合は、次の手順を実行して問題をトラブルシューティングできます。

HTTPDNS 関連のチケットを送信し、次の情報を提供します。

  • sessionId パラメーターの値、解決時間、ドメイン名、実際の解決結果、および予期される解決結果。

  • サービス品質への影響。 たとえば、クライアントが誤ったリージョンのサービスノードにルーティングされています。

  • サービスの可用性。

サービス品質に影響がある場合は、できるだけ早く HTTPDNS またはオンプレミス DNS サーバーを使用して新しい解決結果を取得することをお勧めします。 その後、サービス品質をもう一度確認してください。

Alibaba Cloud は、セッション ID に基づいて次の結果を提供します。

  • 解決結果のソース。

解決結果は、HTTPDNS サーバー、オンプレミス DNS サーバー、または永続キャッシュから返される場合があります。

  • この解決のネットワーク環境とソース IP アドレス。

  • クライアントのロケーション間の移動により、アプリケーション ライフサイクルでソース IP アドレスが変更されたかどうか。