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

次のパラメーターを設定します。
基本情報
パラメーター
説明
ドメイン名
カスタム DNS 名前解決を設定するドメイン名 (例:www.aliyun.com)。
説明ドロップダウンリストに表示されるドメイン名は、「ドメイン名管理」で追加済みのドメイン名です。使用したいドメイン名がドロップダウンリストにない場合は、「ドメイン名管理」で追加してから、カスタム 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-華北-北京回線のルールベースのポリシーを使用します。
カスタム解析ルール
1 つのルールベースのポリシーには、最大 10 個のカスタム DNS 名前解決ルールを含めることができます。
パラメーター
説明
ルール名
ルールの名前。SDK バージョンによるスケジューリングなど、ルールの目的を説明する名前を付けます。
ルールの並べ替え
ルールの順序を調整できます。ルールは上から下に順次マッチングされます。順序によって、どのルールが最初にヒットするかが決まります。順序を調整すると、新しい順序でルールがマッチングされます。
SDNS パラメーター設定
クライアントからの名前解決リクエストに含まれる SDNS パラメーターをマッチングして、ルールにヒットするかどうかを判断します。マッチングが見つかった場合、ルール内の DNS レコード値が返されます。マッチングロジックの詳細については、「ルールベースのポリシーのマッチングロジック」をご参照ください。
パラメーター名:SDNS パラメーターの名前。名前の長さは 2~64 文字である必要があります。
パラメーター値:SDNS パラメーターの値。値の長さは 1~64 文字である必要があります。
説明1 つのルールには、最大 10 個の SDNS パラメーターを含めることができます。
名前解決 API に SDNS パラメーターを追加できます。詳細については、「クライアントからのカスタム名前解決パラメーターの受け渡し 」をご参照ください。
DNS レコード値
カスタム DNS 名前解決の戻り値のコレクション。各レコード値は、レコードセット内の 1 つの 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 名前解決を設定した後、「全体的なワークフロー」をご参照の上、後続のステップを完了してください。