このトピックでは、ルールベースのカスタム DNS 名前解決を設定する方法について説明します。
前提条件
カスタム DNS 名前解決に使用するドメイン名を追加済みであること。詳細については、「1. ドメイン名の追加」をご参照ください。
操作手順
EMAS コンソールにログインします。
左側のナビゲーションウィンドウで、[名前解決管理] > [カスタム名前解決] を選択します。
[カスタム名前解決の追加] をクリックし、[ポリシータイプ] を [ルールベースのポリシー] に設定します。

次のパラメーターを設定します。
基本情報
パラメーター
説明
ドメイン名
www.aliyun.com など、カスタム DNS 名前解決を設定するドメイン名。
説明ドロップダウンリストのドメイン名は、[ドメイン名管理] で追加したドメイン名から取得されます。使用したいドメイン名がドロップダウンリストにない場合は、[ドメイン名管理] で追加してから、カスタム DNS レコードを追加してください。
*.aliyun.com のようなワイルドカードドメイン名のサブドメイン (例: a.aliyun.com) にカスタム DNS レコードを追加するには、まず a.aliyun.com をドメイン名リストに追加してから、カスタム DNS レコードを追加する必要があります。
目的のドメイン名がドロップダウンリストに表示されない場合は、次の理由が考えられます。
ドメイン名がドメイン名リストにありません。[ドメイン名管理] でドメイン名を追加してください。
ドメイン名がワイルドカードドメイン名のサブドメインです。サブドメインをドメイン名リストに追加してください。
ドメイン名にカスタム DNS レコードがすでに存在します。カスタム DNS レコードリストでドメイン名を管理してください。
回線
キャリアと地域に基づいて回線を設定します。
キャリア:China Telecom などのキャリアを指定できます。
[キャリア] を [デフォルト] に設定すると、回線はすべてのキャリアをカバーします。
地域:北京や河北などの省を指定できます。この機能は中国本土でのみ利用可能です。
省を [デフォルト] に設定すると、回線はすべての省をカバーします。
説明同一ドメイン名の同一リージョン内のユーザーの場合、回線の優先順位は、キャリア > 地域 > デフォルトとなります。たとえば、優先順位は、China Telecom-北京 > China Telecom-デフォルト > デフォルト-北京 > デフォルト-デフォルトとなります。
たとえば、同じドメイン名に対して、回線が China Telecom-北京と China Telecom-デフォルトに設定された 2 つのルールベースのポリシーが存在する場合、北京の China Telecom ユーザーは China Telecom-北京回線のルールベースのポリシーを使用します。
カスタム DNS 名前解決ルール
ルールベースのポリシーには、最大 10 個のカスタム DNS 名前解決ルールを含めることができます。
パラメーター
説明
ルール名
ルールの名前。SDK バージョンによるスケジューリングなど、ルールの目的を説明する名前を付けます。
ルールの並べ替え
ルールの順序を調整できます。ルールは上から順にマッチングされます。順序によって、どのルールが最初にヒットするかが決まります。順序を調整すると、新しい順序でルールがマッチングされます。
SDNS パラメーター設定
クライアントからの名前解決リクエストに含まれる SDNS パラメーターをマッチングして、ルールにヒットするかどうかを判断します。マッチングが見つかった場合、ルール内の DNS レコード値が返されます。マッチングロジックの詳細については、「ルールベースのポリシーのマッチングロジック」をご参照ください。
パラメーター名:SDNS パラメーターの名前。名前は 2~64 文字である必要があります。
パラメーター値:SDNS パラメーターの値。値は 1~64 文字である必要があります。
説明1 つのルールには最大 10 個の SDNS パラメーターを含めることができます。
名前解決 API に SDNS パラメーターを追加できます。詳細については、「クライアントからカスタム名前解決パラメーターを渡す 」をご参照ください。
DNS レコード値
カスタム DNS 名前解決の戻り値のコレクション。各レコード値は、レコードセット内の DNS レコードを表します。このパラメーターは必須です。
レコードタイプ:返される DNS レコード値のタイプ。A レコードと AAAA レコードがサポートされています。
レコード値:返されるレコード値。
複数のレコード値を追加できます。重み付けが無効になっている場合、追加されたレコード値はマージされて一緒に返されます。
重みに基づいてスケジューリングすることもできます。これを行うには、重みによるスケジューリングを有効にします。重み付けを有効にすると、各レコード値に重みを設定できます。重みは 1 から 100 の範囲で設定できます。負荷分散アルゴリズムは、重みに基づいて適切なレコード値を返します。
説明1 つのルールには最大 10 個のレコード値を含めることができます。
TTL
必須。カスタム DNS レコードの有効期間。有効期間が短いほど、HTTPDNS SDK の DNS レコードキャッシュの有効期限が早く切れます。これにより、HTTPDNS SDK が新しい DNS レコードをリクエストする頻度が高くなります。
ポリシーの検証
ルールベースのポリシーを追加するページで、次の図に示すようにルールを検証できます。

ポリシー検証ウィンドウで、関連するパラメーターを入力して、ポリシーが期待どおりに機能することを確認します。

ルールベースのポリシーのマッチングロジック
次の図は、ルールベースのポリシーの名前解決フローを示しています。リクエスト内のパラメーターは、特定のルールをマッチングするために使用されます。ルールは上から順にマッチングされます。ルールにヒットした場合、マッチングプロセスは停止し、そのルールの結果が返されます。どのルールにもヒットしない場合、権威サーバーからの結果が返されます。
単一ルール内のパラメーターのマッチングロジックは次のとおりです。
リクエストパラメーターがルールに設定されたパラメーターと完全に一致する場合にマッチングが発生します。完全一致とは、リクエストパラメーターに、ルールに設定されたすべてのパラメーターが含まれている必要があることを意味します。
ルールにパラメーターが設定されていない場合、そのルールはマッチングしたと見なされます。
ルール内の複数のパラメーターは、論理 AND 関係にあります。
次の例では、マッチングロジックについて説明します。
カスタム DNS 名前解決のドメイン名が www.example.com であると仮定します。
例 1
ルール A のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | Android |
ルール B のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | iOS |
ルール C のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | Android |
bizType | car |
リクエストパラメーター:
パラメーター名 | パラメーター値 |
osType | iOS |
マッチング結果:
例 1 では、リクエストパラメーターはルール B と完全に一致します。HTTPDNS サーバーはルール B のレコード値を返します。
例 2
ルール A のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | iOS |
bizType | app |
ルール B のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | iOS |
ルール C のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | Android |
bizType | car |
パラメーター:
パラメーター名 | パラメーター値 |
osType | iOS |
マッチング結果:
例 2 では、ルール内のパラメーターは論理 AND で評価されるため、リクエストパラメーターはルール B にマッチングします。HTTPDNS サーバーはルール B のレコード値を返します。
例 3
ルール A のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | iOS |
bizType | car |
ルール B のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | iOS |
bizType | car |
region | hangzhou |
ルール C のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | Android |
bizType | car |
region | shanghai |
リクエストパラメーター:
パラメーター名 | パラメーター値 |
osType | iOS |
bizType | car |
region | hangzhou |
マッチング結果:
例 3 では、完全一致と初回一致優先の原則に基づき、リクエストパラメーターはルール A にマッチングします。HTTPDNS サーバーはルール A のレコード値を返します。
例 4
ルール A のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | Android |
bizType | car |
ルール B のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | iOS |
bizType | car |
region | hangzhou |
ルール C のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | Android |
bizType | car |
region | shanghai |
リクエストパラメーター:
パラメーター名 | パラメーター値 |
osType | iOS |
マッチング結果:
例 4 では、完全一致と初回一致優先の原則に基づき、リクエストパラメーターはどのルールにもヒットしません。HTTPDNS サーバーは権威サーバーからのクエリ結果を返します。
例 5
ルール A のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | Android |
bizType | car |
ルール B にはパラメーターが設定されていません。
ルール C のパラメーター設定:
パラメーター名 | パラメーター値 |
osType | Android |
bizType | car |
region | shanghai |
リクエストパラメーター:
パラメーター名 | パラメーター値 |
osType | iOS |
マッチング結果:
例 5 では、完全一致と初回一致優先の原則に基づき、リクエストパラメーターはルール B にマッチングします。HTTPDNS サーバーはルール B のレコード値を返します。
次のステップ
ルールベースのカスタム DNS 名前解決を設定した後、「全体的なワークフロー」を参照して、後続のステップを完了してください。