Cloudflare の DNS over HTTPS エンドポイントは、DNS データの問い合わせに JSON 形式もサポートしています。Internet Engineering Task Force(IETF)では DNS over HTTPS の JSON スキーマは合意されていません。そのため Cloudflare は、Google の DNS over HTTPS リゾルバーと同じスキーマに合わせています。
JSON 形式のクエリは GET リクエストで送ります。GET でリクエストする場合、DNS クエリは URL にエンコードします。クライアントが JSON 応答を受け取れることを示すため、MIME タイプ application/dns-json の HTTP Accept リクエストヘッダーを付けます。
| フィールド | 必須 | 説明 | デフォルト |
|---|---|---|---|
name |
はい | クエリ名。 | - |
type |
いいえ | クエリタイプ(数値またはテキスト ↗)。 | A |
do |
いいえ | DO ビット。クライアントが DNSSEC データを要求するかどうか(空、または 0、false、1、true のいずれか)。 |
false |
cd |
いいえ | CD ビット。検証を無効化するかどうか(空、または 0、false、1、true のいずれか)。 |
false |
リクエストと応答の例:
curl --header "accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=example.com&type=AAAA"{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [
{
"name": "example.com.",
"type": 28
}
],
"Answer": [
{
"name": "example.com.",
"type": 28,
"TTL": 1726,
"data": "2606:2800:220:1:248:1893:25c8:1946"
}
]
}無効なリクエストの場合は、400 Bad Request エラーが返されます。
curl --header "accept: application/dns-json" "https://cloudflare-dns.com/dns-query?name=example.com&cd=2"{
"error": "Invalid CD flag `2`. Expected to be empty or one of `0`, `false`, `1`, or `true`."
}各応答フィールドの詳細は、次の表を参照してください。
| フィールド | 説明 |
|---|---|
Status |
DNS クエリの応答コード。コードの定義は次を参照してください: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6 ↗。 |
TC |
TC フィールドが true の場合、truncated ビットがセットされています。これは、DNS 応答が 1 つの UDP または TCP パケットのサイズを超えたときに発生します。Cloudflare の DNS over HTTPS では、最大応答サイズをサポートしているため、TC フィールドはほぼ常に false です。 |
RD |
true の場合、Recursive Desired ビットがセットされています。Cloudflare の DNS over HTTPS では常に true です。 |
RA |
true の場合、Recursion Available ビットがセットされています。Cloudflare の DNS over HTTPS では常に true です。 |
AD |
true の場合、応答内のすべてのレコードが DNSSEC で検証されています。 |
CD |
true の場合、クライアントが DNSSEC 検証の無効化を要求しています。この場合、Cloudflare は DNSSEC 関連のレコードを取得しますが、レコードの検証は行いません。 |
Question: name |
要求されたレコード名。 |
Question: type |
要求された DNS レコードのタイプ。定義は次を参照してください: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗。 |
Answer: name |
レコードの所有者。 |
Answer: type |
DNS レコードのタイプ。定義は次を参照してください: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗。 |
Answer: TTL |
応答をキャッシュに保持できる秒数。この時間を超えると古いとみなされます。 |
Answer: data |
指定した名前とタイプに対する DNS レコードの値。標準化されたレコードタイプはテキスト、未知のタイプは 16 進数です。 |
Authority: name |
レコードの所有者。 |
Authority: type |
DNS レコードのタイプ。定義は次を参照してください: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗。 |
Authority: TTL |
応答をキャッシュに保持できる秒数。この時間を超えると古いとみなされます。 |
Authority: data |
指定した名前とタイプに対する DNS レコードの値。標準化されたレコードタイプはテキスト、未知のタイプは 16 進数です。 |
Additional: name |
レコードの所有者。 |
Additional: type |
DNS レコードのタイプ。定義は次を参照してください: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-4 ↗。 |
Additional: TTL |
応答をキャッシュに保持できる秒数。この時間を超えると古いとみなされます。 |
Additional: data |
指定した名前とタイプに対する DNS レコードの値。標準化されたレコードタイプはテキスト、未知のタイプは 16 進数です。 |
Comment |
EDE メッセージの一覧。詳細は Extended DNS error codes を参照してください。 |
| フィールド | 説明 |
|---|---|
error |
発生したエラーの説明です。 |