次のシナリオで問題をトラブルシューティングするために、セッション追跡を使用できます。
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 アドレスが変更されたかどうか。