From 115d55c287b7e1fd0d5a4a8c6097acfa4c53e584 Mon Sep 17 00:00:00 2001
From: xqzr <34030394+xqzr@users.noreply.github.com>
Date: Thu, 21 Oct 2021 18:20:06 +0800
Subject: [PATCH] Update dns.md

https://github.com/XTLS/Xray-core/releases/tag/v1.5.0
---
 docs/config/dns.md | 46 +++++++++++++++++++++++++++++++++-------------
 1 file changed, 33 insertions(+), 13 deletions(-)

diff --git a/docs/config/dns.md b/docs/config/dns.md
index b8700e8..d7bdef0 100644
--- a/docs/config/dns.md
+++ b/docs/config/dns.md
@@ -21,18 +21,6 @@ Xray 内置的 DNS 模块,主要有两大用途:
 只支持最基本的 IP 查询(A 和 AAAA 记录)。其他查询不会进入内置 DNS 服务器。
 :::
 
-## DNS 处理流程
-
-DNS 服务器配置模块可以配置多个 DNS 服务器, 并且指定优先匹配列表.
-
-1. 查询的域名与某个 DNS 服务器指定的域名列表匹配时,Xray 会优先使用这个 DNS 服务器进行查询。
-2. 无匹配时, 按从上往下的顺序进行查询,并且会跳过 1 步骤中使用的最后一个服务器。
-3. 只返回匹配 expectIPs 的 IP 列表。
-
-DNS 服务器的处理流程示意图如下:
-
-![](./dns_flow.png?classes=border,shadow)
-
 ## DnsObject
 
 `DnsObject` 对应配置文件的 `dns` 项。
@@ -50,11 +38,16 @@ DNS 服务器的处理流程示意图如下:
         "address": "1.2.3.4",
         "port": 5353,
         "domains": ["domain:xray.com"],
-        "expectIPs": ["geoip:cn"]
+        "expectIPs": ["geoip:cn"],
+        "skipFallback": false
       },
       "localhost"
     ],
     "clientIp": "1.2.3.4",
+    "queryStrategy": "UseIP",
+    "disableCache": false,
+    "disableFallback": false,
+    "disableFallbackIfMatch": false,
     "tag": "dns_inbound"
   }
 }
@@ -105,6 +98,29 @@ DNS 服务器的处理流程示意图如下:
 
 用于 DNS 查询时通知服务器以指定 IP 位置。不能是私有地址。
 
+::: tip TIP 1
+需要 DNS 服务器支持 EDNS Client Subnet。
+:::
+
+::: tip TIP 2
+可以在 [DnsObject](#dnsobject) 为所有 DNS 服务器指定 clientIp, 也可在每个 DNS 服务器配置的 [ServerObject](#serverobject) 为此 DNS 服务器指定 clientIp (优先级高于 [DnsObject](#dnsobject) 的配置)。
+
+> `queryStrategy`: "UseIP" | "UseIPv4" | "UseIPv6"
+
+`UseIPv4` 只查询 A 记录;`UseIPv6` 只查询 AAAA 记录。默认值为 `UseIP`,即查询 A 和 AAAA 记录。
+
+> `disableCache`: true | false
+
+`true` 禁用 DNS 缓存,默认为 `false`,即不禁用。
+
+> `disableFallback`: true | false
+
+`true` 禁用 DNS 的 fallback 查询,默认为 `false`,即不禁用。
+
+> `disableFallbackIfMatch`: true | false
+
+`true` 当 DNS 服务器的优先匹配域名列表命中时,禁用 fallback 查询,默认为 `false`,即不禁用。
+
 > `tag`: string
 
 由内置 DNS 发出的查询流量,除 `localhost` 和 `DOHL_` 模式外,都可以用此标识在路由使用 `inboundTag` 进行匹配。
@@ -149,3 +165,7 @@ DNS 服务器端口,如 `53`。此项缺省时默认为 `53`。当使用 DOH 
 当配置此项时,Xray DNS 会对返回的 IP 的进行校验,只返回包含 expectIPs 列表中的地址。
 
 如果未配置此项,会原样返回 IP 地址。
+
+> `skipFallback`: true | false
+
+`true`,在进行 DNS fallback 查询时将跳过此服务器, 默认为 `false`,即不跳过。