<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.dnswiki.cn/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>DNS-WIKI - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://www.dnswiki.cn/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/Admin"/>
	<updated>2026-11-05T16:14:56Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=RFC_6724_Default_Address_Selection_for_Internet_Protocol_Version_6_(IPv6)&amp;diff=215</id>
		<title>RFC 6724 Default Address Selection for Internet Protocol Version 6 (IPv6)</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=RFC_6724_Default_Address_Selection_for_Internet_Protocol_Version_6_(IPv6)&amp;diff=215"/>
		<updated>2025-03-08T02:26:14Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
RFC 6724是&amp;quot;Default Address Selection for Internet Protocol Version 6 (IPv6)&amp;quot;（IPv6的默认地址选择）的规范文档，它取代了之前的RFC 3484。这个文档主要描述了在IPv6和双栈（IPv4/IPv6）环境中如何选择源地址和目标地址的算法。&lt;br /&gt;
&lt;br /&gt;
## RFC 6724的主要内容&lt;br /&gt;
&lt;br /&gt;
### 1. 目的和范围&lt;br /&gt;
- 定义了主机如何选择默认地址用于通信&lt;br /&gt;
- 适用于IPv6和双栈(IPv4/IPv6)环境&lt;br /&gt;
- 解决了多地址接口和多宿主主机的地址选择问题&lt;br /&gt;
&lt;br /&gt;
### 2. 基本原则&lt;br /&gt;
- 提供了源地址选择和目标地址选择的算法&lt;br /&gt;
- 确保通信的一致性和可预测性&lt;br /&gt;
- 提高IPv6过渡期间的网络性能和兼容性&lt;br /&gt;
&lt;br /&gt;
### 3. 主要规则&lt;br /&gt;
RFC 6724定义了一组规则，按优先级排序：&lt;br /&gt;
&lt;br /&gt;
1. **优先匹配范围**：优先选择与目标地址范围相匹配的源地址&lt;br /&gt;
2. **优先本地地址**：通常情况下，本地地址优先于临时地址&lt;br /&gt;
3. **优先地址类型**：包含策略表，决定不同地址类型的优先级&lt;br /&gt;
4. **优先相同协议**：IPv6优先与IPv6通信，IPv4优先与IPv4通信&lt;br /&gt;
5. **避免弃用地址**：避免使用已被标记为弃用的地址&lt;br /&gt;
6. **优先首选地址**：优先使用已配置为首选的地址&lt;br /&gt;
&lt;br /&gt;
### 4. 策略表&lt;br /&gt;
RFC 6724包含一个默认的策略表，定义了不同类型地址的优先级：&lt;br /&gt;
- IPv4地址通常比较特殊类型的IPv6地址（如6to4、Teredo）有更高优先级&lt;br /&gt;
- 原生IPv6地址优先于其他类型的地址&lt;br /&gt;
- 本地IPv4地址和IPv6地址具有较高优先级&lt;br /&gt;
&lt;br /&gt;
### 5. 实际应用意义&lt;br /&gt;
- 解决了多宿主环境中的地址选择问题&lt;br /&gt;
- 提高了IPv4/IPv6双栈环境的通信效率&lt;br /&gt;
- 为IPv6过渡期提供了稳定的地址选择机制&lt;br /&gt;
- 允许网络管理员通过配置策略表来优化地址选择&lt;br /&gt;
&lt;br /&gt;
### 6. 对之前版本的改进&lt;br /&gt;
相比RFC 3484，RFC 6724主要做了以下改进：&lt;br /&gt;
- 更新了对当前IPv6部署环境的支持&lt;br /&gt;
- 改进了临时地址的处理方式&lt;br /&gt;
- 调整了策略表优先级以更好地处理当前网络环境&lt;br /&gt;
- 添加了一个额外的地址选择组件，用于IPTV等应用场景&lt;br /&gt;
&lt;br /&gt;
这个RFC文档对于理解现代网络环境中地址选择机制非常重要，特别是在IPv6部署和IPv4/IPv6共存的过渡期中。它确保了通信的一致性和可预测性，同时也提供了一个可配置的框架，允许网络管理员根据具体需求进行调整。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=RFC_6724_Default_Address_Selection_for_Internet_Protocol_Version_6_(IPv6)&amp;diff=214</id>
		<title>RFC 6724 Default Address Selection for Internet Protocol Version 6 (IPv6)</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=RFC_6724_Default_Address_Selection_for_Internet_Protocol_Version_6_(IPv6)&amp;diff=214"/>
		<updated>2025-03-08T01:52:32Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建空白页面&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=IPv6&amp;diff=213</id>
		<title>IPv6</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=IPv6&amp;diff=213"/>
		<updated>2025-03-08T01:51:46Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“RFC 6724 Default Address Selection for Internet Protocol Version 6 (IPv6)”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[RFC 6724 Default Address Selection for Internet Protocol Version 6 (IPv6)]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=212</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=212"/>
		<updated>2025-03-08T01:50:17Z</updated>

		<summary type="html">&lt;p&gt;Admin：​/* LINUX相关 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[DNS技术]] ==&lt;br /&gt;
* [[DNS是什么？]]&lt;br /&gt;
&lt;br /&gt;
* [[DNS-RFC]]&lt;br /&gt;
* [[顶级域名（TLD）]]&lt;br /&gt;
* [[NAT64与DNS64基本原理概述]]&lt;br /&gt;
* [[DNSSEC]]&lt;br /&gt;
* [[EDNS]]&lt;br /&gt;
* [[名词解释]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DNS软件 ==&lt;br /&gt;
&lt;br /&gt;
* [[BIND]]&lt;br /&gt;
* PowerDNS&lt;br /&gt;
* Unbond&lt;br /&gt;
* 其他&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DNS安全 ==&lt;br /&gt;
&lt;br /&gt;
* [[DNSSEC]]&lt;br /&gt;
* [[DNS-CVEs]]&lt;br /&gt;
&lt;br /&gt;
* [[网络安全/系统安全/业务安全]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[DNS资讯]] ==&lt;br /&gt;
[[新闻-News]]&lt;br /&gt;
&lt;br /&gt;
[[常用公共DNS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[LINUX]]相关 ==&lt;br /&gt;
shell&lt;br /&gt;
&lt;br /&gt;
* [[超细节！十年码农讲述eBPF和XDP技术！]]&lt;br /&gt;
&lt;br /&gt;
* [[XDP技术 — Linux网络处理的高速公路]]&lt;br /&gt;
&lt;br /&gt;
* [[IPv6]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 其他技术 ==&lt;br /&gt;
cdn&lt;br /&gt;
&lt;br /&gt;
sdn&lt;br /&gt;
&lt;br /&gt;
[[OSI七层模型、TCP/IP四层模型]]&lt;br /&gt;
&lt;br /&gt;
[[安全，加密，TLS]]&lt;br /&gt;
&lt;br /&gt;
== [[帮助信息]] ==&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki 设置配置]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki 使用帮助]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;已安装MediaWiki。&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
请查阅[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 用户指导]以获取使用本wiki软件的信息。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=SSL/TLS%E6%8F%A1%E6%89%8B%E5%8E%9F%E7%90%86%26%E5%8A%A0%E5%AF%86%E5%A5%97%E4%BB%B6%E7%AE%80%E8%BF%B0&amp;diff=211</id>
		<title>SSL/TLS握手原理&amp;加密套件简述</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=SSL/TLS%E6%8F%A1%E6%89%8B%E5%8E%9F%E7%90%86%26%E5%8A%A0%E5%AF%86%E5%A5%97%E4%BB%B6%E7%AE%80%E8%BF%B0&amp;diff=211"/>
		<updated>2024-08-14T08:01:19Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''概述'''&lt;br /&gt;
&lt;br /&gt;
SSL/TLS握手时，客户端与服务端协商加密套件是很重要的一个步骤，协商出加密套件后才能继续完成后续的握手和加密通信。而现在SSL/TLS协议通信的实现，基本都是通过OpenSSL开源库，本文章就主要介绍下加密套件的含义以及如何在OpenSSL中指定加密套件。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;br /&amp;gt;加密套件介绍'''&lt;br /&gt;
&lt;br /&gt;
SSL/TLS协议的加密套件是定义了在一次连接中所使用的各种加密算法的组合。它包括以下几个主要部分&lt;br /&gt;
&lt;br /&gt;
* 密钥交换算法：用于协商会话密钥，如RSA、DH、ECDH等。&lt;br /&gt;
* 对称加密算法：用于实际数据传输的加解密，例如AES、3DES等。&lt;br /&gt;
* 消息认证码(MAC)或伪随机函数(PRF)：用于验证数据完整性及防止篡改，如SHA256等。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''如何指定加密套件'''&lt;br /&gt;
&lt;br /&gt;
使用OpenSSL或者Nginx实现SSL/TLS协议时，都需要指定加密套件。&lt;br /&gt;
&lt;br /&gt;
一般如下指定就可以，表示指定加密套件为任意算法，但身份认证算法和加密算法不能为空。这样客户端和服务端就会自动协商一个加密套件进行通信。&lt;br /&gt;
&lt;br /&gt;
  	ssl_ciphers ALL:!aNULL;  #Nginx配置加密套件&lt;br /&gt;
&lt;br /&gt;
  	SSL_CTX_set_cipher_list(ServerCTX, &amp;quot;ALL:!aNULL&amp;quot;);  #openssl接口配置加密套件&lt;br /&gt;
&lt;br /&gt;
但如果想自己指定加密套件，就可以使用以下列表中的一种。&lt;br /&gt;
&lt;br /&gt;
序号	加密套件(完整名称)	加密套件(openssl接口指定名称)	版本	密钥协商算法	身份验证算法	加密算法	MAC&lt;br /&gt;
&lt;br /&gt;
1	TLS_AES_256_GCM_SHA384	TLS_AES_256_GCM_SHA384	TLSv1.3	any	any	AESGCM(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
2	TLS_CHACHA20_POLY1305_SHA256	TLS_CHACHA20_POLY1305_SHA256	TLSv1.3	any	any	CHACHA20/POLY1305(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
3	TLS_AES_128_GCM_SHA256	TLS_AES_128_GCM_SHA256	TLSv1.3	any	any	AESGCM(128)	AEAD&lt;br /&gt;
&lt;br /&gt;
4	TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384	ECDHE-ECDSA-AES256-GCM-SHA384	TLSv1.2	ECDH	ECDSA	AESGCM(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
5	TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384	ECDHE-RSA-AES256-GCM-SHA384	TLSv1.2	ECDH	RSA	AESGCM(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
6	TLS_DHE_RSA_WITH_AES_256_GCM_SHA384	DHE-RSA-AES256-GCM-SHA384	TLSv1.2	DH	RSA	AESGCM(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
7	TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256	ECDHE-ECDSA-CHACHA20-POLY1305	TLSv1.2	ECDH	ECDSA	CHACHA20/POLY1305(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
8	TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256	ECDHE-RSA-CHACHA20-POLY1305	TLSv1.2	ECDH	RSA	CHACHA20/POLY1305(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
9	TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256	DHE-RSA-CHACHA20-POLY1305	TLSv1.2	DH	RSA	CHACHA20/POLY1305(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
10	TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256	ECDHE-ECDSA-AES128-GCM-SHA256	TLSv1.2	ECDH	ECDSA	AESGCM(128)	AEAD&lt;br /&gt;
&lt;br /&gt;
11	TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256	ECDHE-RSA-AES128-GCM-SHA256	TLSv1.2	ECDH	RSA	AESGCM(128)	AEAD&lt;br /&gt;
&lt;br /&gt;
12	TLS_DHE_RSA_WITH_AES_128_GCM_SHA256	DHE-RSA-AES128-GCM-SHA256	TLSv1.2	DH	RSA	AESGCM(128)	AEAD&lt;br /&gt;
&lt;br /&gt;
13	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384	ECDHE-ECDSA-AES256-SHA384	TLSv1.2	ECDH	ECDSA	AES(256)	SHA384&lt;br /&gt;
&lt;br /&gt;
14	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384	ECDHE-RSA-AES256-SHA384	TLSv1.2	ECDH	RSA	AES(256)	SHA384&lt;br /&gt;
&lt;br /&gt;
15	TLS_DHE_RSA_WITH_AES_256_CBC_SHA256	DHE-RSA-AES256-SHA256	TLSv1.2	DH	RSA	AES(256)	SHA256&lt;br /&gt;
&lt;br /&gt;
16	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256	ECDHE-ECDSA-AES128-SHA256	TLSv1.2	ECDH	ECDSA	AES(128)	SHA256&lt;br /&gt;
&lt;br /&gt;
17	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256	ECDHE-RSA-AES128-SHA256	TLSv1.2	ECDH	RSA	AES(128)	SHA256&lt;br /&gt;
&lt;br /&gt;
18	TLS_DHE_RSA_WITH_AES_128_CBC_SHA256	DHE-RSA-AES128-SHA256	TLSv1.2	DH	RSA	AES(128)	SHA256&lt;br /&gt;
&lt;br /&gt;
19	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA	ECDHE-ECDSA-AES256-SHA	TLSv1	ECDH	ECDSA	AES(256)	SHA1&lt;br /&gt;
&lt;br /&gt;
20	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA	ECDHE-RSA-AES256-SHA	TLSv1	ECDH	RSA	AES(256)	SHA1&lt;br /&gt;
&lt;br /&gt;
21	TLS_DHE_RSA_WITH_AES_256_CBC_SHA	DHE-RSA-AES256-SHA	SSLv3	DH	RSA	AES(256)	SHA1&lt;br /&gt;
&lt;br /&gt;
22	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA	ECDHE-ECDSA-AES128-SHA	TLSv1	ECDH	ECDSA	AES(128)	SHA1&lt;br /&gt;
&lt;br /&gt;
23	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA	ECDHE-RSA-AES128-SHA	TLSv1	ECDH	RSA	AES(128)	SHA1&lt;br /&gt;
&lt;br /&gt;
24	TLS_DHE_RSA_WITH_AES_128_CBC_SHA	DHE-RSA-AES128-SHA	SSLv3	DH	RSA	AES(128)	SHA1&lt;br /&gt;
&lt;br /&gt;
25	RSA_PSK_WITH_AES_256_GCM_SHA384	RSA-PSK-AES256-GCM-SHA384	TLSv1.2	RSAPSK	RSA	AESGCM(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
26	DHE_PSK_WITH_AES_256_GCM_SHA384	DHE-PSK-AES256-GCM-SHA384	TLSv1.2	DHEPSK	PSK	AESGCM(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
27	TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256	RSA-PSK-CHACHA20-POLY1305	TLSv1.2	RSAPSK	RSA	CHACHA20/POLY1305(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
28	TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256	DHE-PSK-CHACHA20-POLY1305	TLSv1.2	DHEPSK	PSK	CHACHA20/POLY1305(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
29	TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256	ECDHE-PSK-CHACHA20-POLY1305	TLSv1.2	ECDHEPSK	PSK	CHACHA20/POLY1305(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
30	TLS_RSA_WITH_AES_256_GCM_SHA384	AES256-GCM-SHA384	TLSv1.2	RSA	RSA	AESGCM(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
31	PSK_WITH_AES_256_GCM_SHA384	PSK-AES256-GCM-SHA384	TLSv1.2	PSK	PSK	AESGCM(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
32	TLS_PSK_WITH_CHACHA20_POLY1305_SHA256	PSK-CHACHA20-POLY1305	TLSv1.2	PSK	PSK	CHACHA20/POLY1305(256)	AEAD&lt;br /&gt;
&lt;br /&gt;
33	RSA_PSK_WITH_AES_128_GCM_SHA256	RSA-PSK-AES128-GCM-SHA256	TLSv1.2	RSAPSK	RSA	AESGCM(128)	AEAD&lt;br /&gt;
&lt;br /&gt;
34	DHE_PSK_WITH_AES_128_GCM_SHA256	DHE-PSK-AES128-GCM-SHA256	TLSv1.2	DHEPSK	PSK	AESGCM(128)	AEAD&lt;br /&gt;
&lt;br /&gt;
35	TLS_RSA_WITH_AES_128_GCM_SHA256	AES128-GCM-SHA256	TLSv1.2	RSA	RSA	AESGCM(128)	AEAD&lt;br /&gt;
&lt;br /&gt;
36	PSK_WITH_AES_128_GCM_SHA256	PSK-AES128-GCM-SHA256	TLSv1.2	PSK	PSK	AESGCM(128)	AEAD&lt;br /&gt;
&lt;br /&gt;
37	TLS_RSA_WITH_AES_256_CBC_SHA256	AES256-SHA256	TLSv1.2	RSA	RSA	AES(256)	SHA256&lt;br /&gt;
&lt;br /&gt;
38	TLS_RSA_WITH_AES_128_CBC_SHA256	AES128-SHA256	TLSv1.2	RSA	RSA	AES(128)	SHA256&lt;br /&gt;
&lt;br /&gt;
39	ECDHE_PSK_WITH_AES_256_CBC_SHA384	ECDHE-PSK-AES256-CBC-SHA384	TLSv1	ECDHEPSK	PSK	AES(256)	SHA384&lt;br /&gt;
&lt;br /&gt;
40	ECDHE_PSK_WITH_AES_256_CBC_SHA	ECDHE-PSK-AES256-CBC-SHA	TLSv1	ECDHEPSK	PSK	AES(256)	SHA1&lt;br /&gt;
&lt;br /&gt;
41	RSA_PSK_WITH_AES_256_CBC_SHA384	RSA-PSK-AES256-CBC-SHA384	TLSv1	RSAPSK	RSA	AES(256)	SHA384&lt;br /&gt;
&lt;br /&gt;
42	DHE_PSK_WITH_AES_256_CBC_SHA384	DHE-PSK-AES256-CBC-SHA384	TLSv1	DHEPSK	PSK	AES(256)	SHA384&lt;br /&gt;
&lt;br /&gt;
43	RSA_PSK_WITH_AES_256_CBC_SHA	RSA-PSK-AES256-CBC-SHA	SSLv3	RSAPSK	RSA	AES(256)	SHA1&lt;br /&gt;
&lt;br /&gt;
44	DHE_PSK_WITH_AES_256_CBC_SHA	DHE-PSK-AES256-CBC-SHA	SSLv3	DHEPSK	PSK	AES(256)	SHA1&lt;br /&gt;
&lt;br /&gt;
45	TLS_RSA_WITH_AES_256_CBC_SHA	AES256-SHA	SSLv3	RSA	RSA	AES(256)	SHA1&lt;br /&gt;
&lt;br /&gt;
46	PSK_WITH_AES_256_CBC_SHA384	PSK-AES256-CBC-SHA384	TLSv1	PSK	PSK	AES(256)	SHA384&lt;br /&gt;
&lt;br /&gt;
47	PSK_WITH_AES_256_CBC_SHA	PSK-AES256-CBC-SHA	SSLv3	PSK	PSK	AES(256)	SHA1&lt;br /&gt;
&lt;br /&gt;
48	ECDHE_PSK_WITH_AES_128_CBC_SHA256	ECDHE-PSK-AES128-CBC-SHA256	TLSv1	ECDHEPSK	PSK	AES(128)	SHA256&lt;br /&gt;
&lt;br /&gt;
49	ECDHE_PSK_WITH_AES_128_CBC_SHA	ECDHE-PSK-AES128-CBC-SHA	TLSv1	ECDHEPSK	PSK	AES(128)	SHA1&lt;br /&gt;
&lt;br /&gt;
50	RSA_PSK_WITH_AES_128_CBC_SHA256	RSA-PSK-AES128-CBC-SHA256	TLSv1	RSAPSK	RSA	AES(128)	SHA256&lt;br /&gt;
&lt;br /&gt;
51	DHE_PSK_WITH_AES_128_CBC_SHA256	DHE-PSK-AES128-CBC-SHA256	TLSv1	DHEPSK	PSK	AES(128)	SHA256&lt;br /&gt;
&lt;br /&gt;
52	RSA_PSK_WITH_AES_128_CBC_SHA	RSA-PSK-AES128-CBC-SHA	SSLv3	RSAPSK	RSA	AES(128)	SHA1&lt;br /&gt;
&lt;br /&gt;
53	DHE_PSK_WITH_AES_128_CBC_SHA	DHE-PSK-AES128-CBC-SHA	SSLv3	DHEPSK	PSK	AES(128)	SHA1&lt;br /&gt;
&lt;br /&gt;
54	TLS_RSA_WITH_AES_128_CBC_SHA	AES128-SHA	SSLv3	RSA	RSA	AES(128)	SHA1&lt;br /&gt;
&lt;br /&gt;
55	PSK_WITH_AES_128_CBC_SHA256	PSK-AES128-CBC-SHA256	TLSv1	PSK	PSK	AES(128)	SHA256&lt;br /&gt;
&lt;br /&gt;
56	PSK_WITH_AES_128_CBC_SHA	PSK-AES128-CBC-SHA	SSLv3	PSK	PSK	AES(128)	SHA1&lt;br /&gt;
&lt;br /&gt;
当然也不能任意指定，指定时要看客户端是否支持。比如&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''什么是加密套件？'''&lt;br /&gt;
&lt;br /&gt;
　　加密套件是用于在SSL / TLS握手期间协商安全设置的算法的组合。在ClientHello和ServerHello消息交换之后，客户端发送优先级列表的密码支持套件。然后，服务器使用从列表中选择的密码套件进行响应。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TLS算法组合：'''&lt;br /&gt;
&lt;br /&gt;
在TLS中，5类算法组合在一起，称为一个CipherSuite：&lt;br /&gt;
&lt;br /&gt;
认证算法&lt;br /&gt;
&lt;br /&gt;
加密算法&lt;br /&gt;
&lt;br /&gt;
消息认证码算法 简称MAC&lt;br /&gt;
&lt;br /&gt;
密钥交换算法&lt;br /&gt;
&lt;br /&gt;
密钥衍生算法&lt;br /&gt;
&lt;br /&gt;
比较常见的算法组合是 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 和  TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256， 都是ECDHE 做密钥交换，使用RSA做认证，SHA256做PRF算法。&lt;br /&gt;
&lt;br /&gt;
一个使用AES128-CBC做加密算法，用HMAC做MAC。&lt;br /&gt;
&lt;br /&gt;
一个使用AES128-GCM做加密算法，MAC由于GCM作为一种AEAD模式并不需要。&lt;br /&gt;
&lt;br /&gt;
这里是一个加密套件的例子：&lt;br /&gt;
&lt;br /&gt;
TLS _ECDHE_ RSA _ WITH_AES_128_GCM _ SHA256&lt;br /&gt;
&lt;br /&gt;
　　TLS是协议。从ECDHE开始，在握手期间，密钥将通过临时ECDHE进行交换。RSA是认证算法。AES_128_GCM是批量加密算法。SHA-256是散列算法。&lt;br /&gt;
&lt;br /&gt;
　　大多数浏览器和服务器都有各自支持的密码套件列表，两者将在握手过程中进行优先顺序比较，以确定使用的安全设置。&lt;br /&gt;
&lt;br /&gt;
　　最后作为TLS 1.3最终版本，这一切都会改变。虽然以前SSL / TLS通过TLS 1.2版本是使用上诉描述的加密套件模板，但1.3版本的加密套件将会有所改变，因为它们仅用于协商加密和HMAC算法。&lt;br /&gt;
&lt;br /&gt;
　　因为1.3加密套件的结构与之前的版本不同，所以它们与旧的TLS版本不能进行互换。&lt;br /&gt;
&lt;br /&gt;
　　密码是算法，用于加密和解密。它们可以是对称的或不对称的，这取决于它们支持的加密类型。&lt;br /&gt;
&lt;br /&gt;
　　加密套件是用于在SSL / TLS握手期间协商安全设置的密码的命名组合。在握手期间，客户端和服务器交换密码套件的优先级列表，并决定两者最佳支持的套件。&lt;br /&gt;
&lt;br /&gt;
　　在TLS 1.3中，加密套件的结构将改变。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SSL协议的握手过程'''&lt;br /&gt;
&lt;br /&gt;
第一步，爱丽丝给出协议版本号、一个客户端生成的随机数（Client random），以及客户端支持的加密方法。&lt;br /&gt;
&lt;br /&gt;
第二步，鲍勃确认双方使用的加密方法，并给出数字证书、以及一个服务器生成的随机数（Server random）。&lt;br /&gt;
&lt;br /&gt;
第三步，爱丽丝确认数字证书(对证书信息进行md5或者hash后的编号==用证书机构的公钥对加密的证书编号解密后的证书编号)有效，然后生成一个新的随机数（Premaster secret），并使用数字证书中的公钥(鲍勃的公钥)，加密这个随机数，发给鲍勃。&lt;br /&gt;
&lt;br /&gt;
第四步，鲍勃使用自己的私钥，获取爱丽丝发来的随机数（即Premaster secret）。&lt;br /&gt;
&lt;br /&gt;
第五步，爱丽丝和鲍勃根据约定的加密方法，使用前面的三个随机数，生成&amp;quot;对话密钥&amp;quot;（session key），用来加密接下来的整个对话过程。&lt;br /&gt;
&lt;br /&gt;
https要使客户端与服务器端的通信过程得到安全保证，必须使用对称加密算法并且每个客户端的算法都不一样，需要一个协商过程，但是协商对称加密算法的过程，需要使用非对称加密算法来保证安全，直接使用非对称加密的过程本身也不安全，会有中间人篡改公钥的可能性，所以客户端与服务器不直接使用公钥，而是使用数字证书签发机构颁发的证书来保证非对称加密过程本身的安全。这样通过这些机制协商出一个对称加密算法，就此双方使用该算法进行加密解密。从而解决了客户端与服务器端之间的通信安全问题。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=SSL/TLS%E6%8F%A1%E6%89%8B%E5%8E%9F%E7%90%86%26%E5%8A%A0%E5%AF%86%E5%A5%97%E4%BB%B6%E7%AE%80%E8%BF%B0&amp;diff=210</id>
		<title>SSL/TLS握手原理&amp;加密套件简述</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=SSL/TLS%E6%8F%A1%E6%89%8B%E5%8E%9F%E7%90%86%26%E5%8A%A0%E5%AF%86%E5%A5%97%E4%BB%B6%E7%AE%80%E8%BF%B0&amp;diff=210"/>
		<updated>2024-08-14T07:57:13Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“概述  SSL/TLS握手时，客户端与服务端协商加密套件是很重要的一个步骤，协商出加密套件后才能继续完成后续的握手和加密通信。而现在SSL/TLS协议通信的实现，基本都是通过OpenSSL开源库，本文章就主要介绍下加密套件的含义以及如何在OpenSSL中指定加密套件。   加密套件介绍  SSL/TLS协议的加密套件是定义了在一次连接中所使用的各种加密算法的组合。…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;概述&lt;br /&gt;
&lt;br /&gt;
SSL/TLS握手时，客户端与服务端协商加密套件是很重要的一个步骤，协商出加密套件后才能继续完成后续的握手和加密通信。而现在SSL/TLS协议通信的实现，基本都是通过OpenSSL开源库，本文章就主要介绍下加密套件的含义以及如何在OpenSSL中指定加密套件。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
加密套件介绍&lt;br /&gt;
&lt;br /&gt;
SSL/TLS协议的加密套件是定义了在一次连接中所使用的各种加密算法的组合。它包括以下几个主要部分&lt;br /&gt;
&lt;br /&gt;
密钥交换算法：用于协商会话密钥，如RSA、DH、ECDH等。&lt;br /&gt;
&lt;br /&gt;
对称加密算法：用于实际数据传输的加解密，例如AES、3DES等。&lt;br /&gt;
&lt;br /&gt;
消息认证码(MAC)或伪随机函数(PRF)：用于验证数据完整性及防止篡改，如SHA256等。&lt;br /&gt;
&lt;br /&gt;
如何指定加密套件&lt;br /&gt;
&lt;br /&gt;
使用OpenSSL或者Nginx实现SSL/TLS协议时，都需要指定加密套件。&lt;br /&gt;
&lt;br /&gt;
一般如下指定就可以，表示指定加密套件为任意算法，但身份认证算法和加密算法不能为空。这样客户端和服务端就会自动协商一个加密套件进行通信。&lt;br /&gt;
&lt;br /&gt;
  	ssl_ciphers ALL:!aNULL;  #Nginx配置加密套件&lt;br /&gt;
&lt;br /&gt;
  	SSL_CTX_set_cipher_list(ServerCTX, &amp;quot;ALL:!aNULL&amp;quot;);  #openssl接口配置加密套件&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''什么是加密套件？'''&lt;br /&gt;
&lt;br /&gt;
　　加密套件是用于在SSL / TLS握手期间协商安全设置的算法的组合。在ClientHello和ServerHello消息交换之后，客户端发送优先级列表的密码支持套件。然后，服务器使用从列表中选择的密码套件进行响应。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''TLS算法组合：'''&lt;br /&gt;
&lt;br /&gt;
在TLS中，5类算法组合在一起，称为一个CipherSuite：&lt;br /&gt;
&lt;br /&gt;
认证算法&lt;br /&gt;
&lt;br /&gt;
加密算法&lt;br /&gt;
&lt;br /&gt;
消息认证码算法 简称MAC&lt;br /&gt;
&lt;br /&gt;
密钥交换算法&lt;br /&gt;
&lt;br /&gt;
密钥衍生算法&lt;br /&gt;
&lt;br /&gt;
比较常见的算法组合是 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 和  TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256， 都是ECDHE 做密钥交换，使用RSA做认证，SHA256做PRF算法。&lt;br /&gt;
&lt;br /&gt;
一个使用AES128-CBC做加密算法，用HMAC做MAC。&lt;br /&gt;
&lt;br /&gt;
一个使用AES128-GCM做加密算法，MAC由于GCM作为一种AEAD模式并不需要。&lt;br /&gt;
&lt;br /&gt;
这里是一个加密套件的例子：&lt;br /&gt;
&lt;br /&gt;
TLS _ECDHE_ RSA _ WITH_AES_128_GCM _ SHA256&lt;br /&gt;
&lt;br /&gt;
　　TLS是协议。从ECDHE开始，在握手期间，密钥将通过临时ECDHE进行交换。RSA是认证算法。AES_128_GCM是批量加密算法。SHA-256是散列算法。&lt;br /&gt;
&lt;br /&gt;
　　大多数浏览器和服务器都有各自支持的密码套件列表，两者将在握手过程中进行优先顺序比较，以确定使用的安全设置。&lt;br /&gt;
&lt;br /&gt;
　　最后作为TLS 1.3最终版本，这一切都会改变。虽然以前SSL / TLS通过TLS 1.2版本是使用上诉描述的加密套件模板，但1.3版本的加密套件将会有所改变，因为它们仅用于协商加密和HMAC算法。&lt;br /&gt;
&lt;br /&gt;
　　因为1.3加密套件的结构与之前的版本不同，所以它们与旧的TLS版本不能进行互换。&lt;br /&gt;
&lt;br /&gt;
　　密码是算法，用于加密和解密。它们可以是对称的或不对称的，这取决于它们支持的加密类型。&lt;br /&gt;
&lt;br /&gt;
　　加密套件是用于在SSL / TLS握手期间协商安全设置的密码的命名组合。在握手期间，客户端和服务器交换密码套件的优先级列表，并决定两者最佳支持的套件。&lt;br /&gt;
&lt;br /&gt;
　　在TLS 1.3中，加密套件的结构将改变。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SSL协议的握手过程'''&lt;br /&gt;
&lt;br /&gt;
第一步，爱丽丝给出协议版本号、一个客户端生成的随机数（Client random），以及客户端支持的加密方法。&lt;br /&gt;
&lt;br /&gt;
第二步，鲍勃确认双方使用的加密方法，并给出数字证书、以及一个服务器生成的随机数（Server random）。&lt;br /&gt;
&lt;br /&gt;
第三步，爱丽丝确认数字证书(对证书信息进行md5或者hash后的编号==用证书机构的公钥对加密的证书编号解密后的证书编号)有效，然后生成一个新的随机数（Premaster secret），并使用数字证书中的公钥(鲍勃的公钥)，加密这个随机数，发给鲍勃。&lt;br /&gt;
&lt;br /&gt;
第四步，鲍勃使用自己的私钥，获取爱丽丝发来的随机数（即Premaster secret）。&lt;br /&gt;
&lt;br /&gt;
第五步，爱丽丝和鲍勃根据约定的加密方法，使用前面的三个随机数，生成&amp;quot;对话密钥&amp;quot;（session key），用来加密接下来的整个对话过程。&lt;br /&gt;
&lt;br /&gt;
https要使客户端与服务器端的通信过程得到安全保证，必须使用对称加密算法并且每个客户端的算法都不一样，需要一个协商过程，但是协商对称加密算法的过程，需要使用非对称加密算法来保证安全，直接使用非对称加密的过程本身也不安全，会有中间人篡改公钥的可能性，所以客户端与服务器不直接使用公钥，而是使用数字证书签发机构颁发的证书来保证非对称加密过程本身的安全。这样通过这些机制协商出一个对称加密算法，就此双方使用该算法进行加密解密。从而解决了客户端与服务器端之间的通信安全问题。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E5%AE%89%E5%85%A8%EF%BC%8C%E5%8A%A0%E5%AF%86%EF%BC%8CTLS&amp;diff=209</id>
		<title>安全，加密，TLS</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E5%AE%89%E5%85%A8%EF%BC%8C%E5%8A%A0%E5%AF%86%EF%BC%8CTLS&amp;diff=209"/>
		<updated>2024-08-14T07:54:25Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“SSL/TLS握手原理&amp;amp;加密套件简述”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[SSL/TLS握手原理&amp;amp;加密套件简述]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=208</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=208"/>
		<updated>2024-08-14T07:53:43Z</updated>

		<summary type="html">&lt;p&gt;Admin：​/* 其他技术 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[DNS技术]] ==&lt;br /&gt;
* [[DNS是什么？]]&lt;br /&gt;
&lt;br /&gt;
* [[DNS-RFC]]&lt;br /&gt;
* [[顶级域名（TLD）]]&lt;br /&gt;
* [[NAT64与DNS64基本原理概述]]&lt;br /&gt;
* [[DNSSEC]]&lt;br /&gt;
* [[EDNS]]&lt;br /&gt;
* [[名词解释]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DNS软件 ==&lt;br /&gt;
&lt;br /&gt;
* [[BIND]]&lt;br /&gt;
* PowerDNS&lt;br /&gt;
* Unbond&lt;br /&gt;
* 其他&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DNS安全 ==&lt;br /&gt;
&lt;br /&gt;
* [[DNSSEC]]&lt;br /&gt;
* [[DNS-CVEs]]&lt;br /&gt;
&lt;br /&gt;
* [[网络安全/系统安全/业务安全]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[DNS资讯]] ==&lt;br /&gt;
[[新闻-News]]&lt;br /&gt;
&lt;br /&gt;
[[常用公共DNS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[LINUX]]相关 ==&lt;br /&gt;
shell&lt;br /&gt;
&lt;br /&gt;
[[超细节！十年码农讲述eBPF和XDP技术！]]&lt;br /&gt;
&lt;br /&gt;
[[XDP技术 — Linux网络处理的高速公路]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 其他技术 ==&lt;br /&gt;
cdn&lt;br /&gt;
&lt;br /&gt;
sdn&lt;br /&gt;
&lt;br /&gt;
[[OSI七层模型、TCP/IP四层模型]]&lt;br /&gt;
&lt;br /&gt;
[[安全，加密，TLS]]&lt;br /&gt;
&lt;br /&gt;
== [[帮助信息]] ==&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki 设置配置]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki 使用帮助]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;已安装MediaWiki。&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
请查阅[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 用户指导]以获取使用本wiki软件的信息。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DoH,_DoT,_DoQ_%E7%9A%84%E5%8C%BA%E5%88%AB&amp;diff=207</id>
		<title>DoH, DoT, DoQ 的区别</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DoH,_DoT,_DoQ_%E7%9A%84%E5%8C%BA%E5%88%AB&amp;diff=207"/>
		<updated>2024-08-14T07:51:47Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== DNS 基础概念 ==&lt;br /&gt;
DNS (Domain Name System) 是互联网的电话簿。它负责将用户可读的网站名称（如 &amp;lt;code&amp;gt;www.example.com&amp;lt;/code&amp;gt;）转换为机器可以理解的IP地址（如 &amp;lt;code&amp;gt;192.0.2.1&amp;lt;/code&amp;gt;）。DNS查询和响应在传统的DNS协议中是明文传输的，这意味着它们可能受到中间人攻击，如监听、拦截和篡改。&lt;br /&gt;
&lt;br /&gt;
随着网络安全意识的提升，现代的DNS查询正逐渐向加密过渡，以增强用户隐私和数据安全。下面是几种加密DNS的技术：&lt;br /&gt;
&lt;br /&gt;
'''DoH (DNS over HTTPS)：'''&lt;br /&gt;
&lt;br /&gt;
DoH是一种通过HTTPS协议传输DNS查询的方法。它利用了HTTPS协议天然的加密特性来保障数据传输的隐私性和安全性。DoH的引入使DNS查询与普通的WEB流量混合，从而更难被封锁或监控。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DoT (DNS over TLS)：'''&lt;br /&gt;
&lt;br /&gt;
DoT利用传输层安全性协议（TLS）来加密DNS查询，确保数据在传输过程中不被监听或篡改。DoT通常在853端口上运行，并提供了一种端到端加密的解决方案。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''DoQ (DNS over QUIC)：'''&lt;br /&gt;
&lt;br /&gt;
DoQ是一种新兴的技术，它结合了DNS查询和QUIC协议的优势。QUIC是一个基于UDP的多路复用传输协议，它减少了连接建立时间，并提供了更好的性能和加密支持。DoQ旨在进一步提升DNS查询的效率和隐私性。&lt;br /&gt;
&lt;br /&gt;
== 优缺点 ==&lt;br /&gt;
&lt;br /&gt;
* DNS&lt;br /&gt;
** 优点：原生支持，广泛部署，无需额外配置。&lt;br /&gt;
** 缺点：明文传输，容易受到篡改和监听。&lt;br /&gt;
* DoH&lt;br /&gt;
** 优点：与HTTPS流量不可区分，难以被审查，易于绕过某些网络限制。&lt;br /&gt;
** 缺点：可能与现有的网络基础设施（如中间件、缓存）存在兼容性问题。&lt;br /&gt;
* DoT&lt;br /&gt;
** 优点：设计简洁，易于实现，提供端到端加密。&lt;br /&gt;
** 缺点：可被ISP或网络防火墙识别并阻止，因为使用了专用端口。&lt;br /&gt;
* DoQ&lt;br /&gt;
** 优点：减少连接延迟，提高传输效率，支持并发请求。&lt;br /&gt;
** 缺点：目前支持度不广，需要进一步测试和部署。&lt;br /&gt;
&lt;br /&gt;
== 公共DNS服务提供商 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Public DNS&lt;br /&gt;
!DNS IPv4&lt;br /&gt;
!DNS IPv6&lt;br /&gt;
!DoH&lt;br /&gt;
!DoT&lt;br /&gt;
!DoQ&lt;br /&gt;
|-&lt;br /&gt;
|Google Public DNS&lt;br /&gt;
|8.8.8.8 和 8.8.4.4&lt;br /&gt;
|2001:4860:4860::8888 和 2001:4860:4860::8844&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://dns.google/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tls://dns.google&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cloudflare DNS&lt;br /&gt;
|1.1.1.1 和 1.0.0.1&lt;br /&gt;
|2606:4700:4700::1111 和 2606:4700:4700::1001&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://cloudflare-dns.com/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tls://1dot1dot1dot1.cloudflare-dns.com&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Quad9&lt;br /&gt;
|9.9.9.9 和 149.112.112.112&lt;br /&gt;
|2620:fe::fe 和 2620:fe::fe:9&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://dns.quad9.net/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tls://dns.quad9.net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AdGuard DNS&lt;br /&gt;
|94.140.14.14 和 94.140.15.15&lt;br /&gt;
|2a10:50c0::ad1&lt;br /&gt;
和 2a10:50c0::ad2&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://dns.adguard-dns.com/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tls://dns.adguard-dns.com&lt;br /&gt;
|quic://dns.adguard-dns.com&lt;br /&gt;
|-&lt;br /&gt;
|Cisico OpenDNS&lt;br /&gt;
|208.67.222.222 和 208.67.220.220&lt;br /&gt;
|2620:119:35::35 和 2620:119:53::53&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://doh.opendns.com/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ali DNS&lt;br /&gt;
|223.5.5.5 和 223.6.6.6&lt;br /&gt;
|2400:3200::1 和 2400:3200:baba::1&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://dns.alidns.com/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tłs://dns.alidns.com&lt;br /&gt;
|quic://dns.alidns.com&lt;br /&gt;
|-&lt;br /&gt;
|DNSPod DNS&lt;br /&gt;
|119.29.29.29&lt;br /&gt;
|2402:4e00:: 和 2402:4e00:1::&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://doh.pub/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tłs://dot.pub&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TrafficRoute DNS&lt;br /&gt;
|180.184.1.1 和 180.184.2.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DoH,_DoT,_DoQ_%E7%9A%84%E5%8C%BA%E5%88%AB&amp;diff=206</id>
		<title>DoH, DoT, DoQ 的区别</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DoH,_DoT,_DoQ_%E7%9A%84%E5%8C%BA%E5%88%AB&amp;diff=206"/>
		<updated>2024-08-14T07:50:25Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“ = 理解DNS、DoH、DoT和DoQ：比较加密DNS协议 = 24 年 4 月 19 日 星期五  692 字  4 分钟  Network  DNS , DoH , DoT , DoQ  这篇文章最后修改于 24 年 4 月 19 日 星期五，部分内容可能已经不适用，如有疑问可联系作者。  == DNS 基础概念 == DNS (Domain Name System) 是互联网的电话簿。它负责将用户可读的网站名称（如 &amp;lt;code&amp;gt;www.example.com&amp;lt;/code&amp;gt;）转换为机器可以理解的IP地址（如 &amp;lt;…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= 理解DNS、DoH、DoT和DoQ：比较加密DNS协议 =&lt;br /&gt;
24 年 4 月 19 日 星期五&lt;br /&gt;
&lt;br /&gt;
692 字&lt;br /&gt;
&lt;br /&gt;
4 分钟&lt;br /&gt;
&lt;br /&gt;
Network&lt;br /&gt;
&lt;br /&gt;
DNS , DoH , DoT , DoQ&lt;br /&gt;
&lt;br /&gt;
这篇文章最后修改于 24 年 4 月 19 日 星期五，部分内容可能已经不适用，如有疑问可联系作者。&lt;br /&gt;
&lt;br /&gt;
== DNS 基础概念 ==&lt;br /&gt;
DNS (Domain Name System) 是互联网的电话簿。它负责将用户可读的网站名称（如 &amp;lt;code&amp;gt;www.example.com&amp;lt;/code&amp;gt;）转换为机器可以理解的IP地址（如 &amp;lt;code&amp;gt;192.0.2.1&amp;lt;/code&amp;gt;）。DNS查询和响应在传统的DNS协议中是明文传输的，这意味着它们可能受到中间人攻击，如监听、拦截和篡改。&lt;br /&gt;
&lt;br /&gt;
随着网络安全意识的提升，现代的DNS查询正逐渐向加密过渡，以增强用户隐私和数据安全。下面是几种加密DNS的技术：&lt;br /&gt;
&lt;br /&gt;
DoH (DNS over HTTPS)：DoH是一种通过HTTPS协议传输DNS查询的方法。它利用了HTTPS协议天然的加密特性来保障数据传输的隐私性和安全性。DoH的引入使DNS查询与普通的WEB流量混合，从而更难被封锁或监控。&lt;br /&gt;
&lt;br /&gt;
DoT (DNS over TLS)：DoT利用传输层安全性协议（TLS）来加密DNS查询，确保数据在传输过程中不被监听或篡改。DoT通常在853端口上运行，并提供了一种端到端加密的解决方案。&lt;br /&gt;
&lt;br /&gt;
DoQ (DNS over QUIC)：DoQ是一种新兴的技术，它结合了DNS查询和QUIC协议的优势。QUIC是一个基于UDP的多路复用传输协议，它减少了连接建立时间，并提供了更好的性能和加密支持。DoQ旨在进一步提升DNS查询的效率和隐私性。&lt;br /&gt;
&lt;br /&gt;
== 优缺点 ==&lt;br /&gt;
&lt;br /&gt;
* DNS&lt;br /&gt;
** 优点：原生支持，广泛部署，无需额外配置。&lt;br /&gt;
** 缺点：明文传输，容易受到篡改和监听。&lt;br /&gt;
* DoH&lt;br /&gt;
** 优点：与HTTPS流量不可区分，难以被审查，易于绕过某些网络限制。&lt;br /&gt;
** 缺点：可能与现有的网络基础设施（如中间件、缓存）存在兼容性问题。&lt;br /&gt;
* DoT&lt;br /&gt;
** 优点：设计简洁，易于实现，提供端到端加密。&lt;br /&gt;
** 缺点：可被ISP或网络防火墙识别并阻止，因为使用了专用端口。&lt;br /&gt;
* DoQ&lt;br /&gt;
** 优点：减少连接延迟，提高传输效率，支持并发请求。&lt;br /&gt;
** 缺点：目前支持度不广，需要进一步测试和部署。&lt;br /&gt;
&lt;br /&gt;
== 公共DNS服务提供商 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Public DNS&lt;br /&gt;
!DNS IPv4&lt;br /&gt;
!DNS IPv6&lt;br /&gt;
!DoH&lt;br /&gt;
!DoT&lt;br /&gt;
!DoQ&lt;br /&gt;
|-&lt;br /&gt;
|Google Public DNS&lt;br /&gt;
|8.8.8.8 和 8.8.4.4&lt;br /&gt;
|2001:4860:4860::8888 和 2001:4860:4860::8844&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://dns.google/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tls://dns.google&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Cloudflare DNS&lt;br /&gt;
|1.1.1.1 和 1.0.0.1&lt;br /&gt;
|2606:4700:4700::1111 和 2606:4700:4700::1001&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://cloudflare-dns.com/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tls://1dot1dot1dot1.cloudflare-dns.com&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Quad9&lt;br /&gt;
|9.9.9.9 和 149.112.112.112&lt;br /&gt;
|2620:fe::fe 和 2620:fe::fe:9&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://dns.quad9.net/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tls://dns.quad9.net&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|AdGuard DNS&lt;br /&gt;
|94.140.14.14 和 94.140.15.15&lt;br /&gt;
|2a10:50c0::ad1&lt;br /&gt;
和 2a10:50c0::ad2&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://dns.adguard-dns.com/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tls://dns.adguard-dns.com&lt;br /&gt;
|quic://dns.adguard-dns.com&lt;br /&gt;
|-&lt;br /&gt;
|Cisico OpenDNS&lt;br /&gt;
|208.67.222.222 和 208.67.220.220&lt;br /&gt;
|2620:119:35::35 和 2620:119:53::53&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://doh.opendns.com/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ali DNS&lt;br /&gt;
|223.5.5.5 和 223.6.6.6&lt;br /&gt;
|2400:3200::1 和 2400:3200:baba::1&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://dns.alidns.com/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tłs://dns.alidns.com&lt;br /&gt;
|quic://dns.alidns.com&lt;br /&gt;
|-&lt;br /&gt;
|DNSPod DNS&lt;br /&gt;
|119.29.29.29&lt;br /&gt;
|2402:4e00:: 和 2402:4e00:1::&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;https://doh.pub/dns-query&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|tłs://dot.pub&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TrafficRoute DNS&lt;br /&gt;
|180.184.1.1 和 180.184.2.2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
需要注意，这些信息可能会随着时间而变化。此外，为了更好地保障服务的可靠性和响应速度，一些服务提供商可能会提供基于地理位置的不同IP地址。在此表格中列出的信息可能会随着服务提供商政策的变更而更新，因此建议用户在配置DNS服务时，参考最新的官方文档。&lt;br /&gt;
&lt;br /&gt;
目录&lt;br /&gt;
&lt;br /&gt;
* DNS 基础概念&lt;br /&gt;
* 优缺点&lt;br /&gt;
* 公共DNS服务提供商&lt;br /&gt;
&lt;br /&gt;
----进度 100%&lt;br /&gt;
&lt;br /&gt;
文章标题：理解DNS、DoH、DoT和DoQ：比较加密DNS协议&lt;br /&gt;
&lt;br /&gt;
文章作者：Cedar&lt;br /&gt;
&lt;br /&gt;
文章链接：&amp;lt;nowiki&amp;gt;https://some.fylsen.com/posts/understanding-dns-doh-dot-doq-encrypted-protocols-guide&amp;lt;/nowiki&amp;gt; [复制]&lt;br /&gt;
&lt;br /&gt;
最后修改时间：2024 年 04 月 19 日 08:00&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS%E6%8A%80%E6%9C%AF&amp;diff=205</id>
		<title>DNS技术</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS%E6%8A%80%E6%9C%AF&amp;diff=205"/>
		<updated>2024-08-14T07:50:12Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[NAT64与DNS64基本原理概述]]&lt;br /&gt;
&lt;br /&gt;
[[递归服务器回复“refused”]]&lt;br /&gt;
&lt;br /&gt;
[[DoH, DoT, DoQ 的区别]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS%E6%8A%80%E6%9C%AF&amp;diff=204</id>
		<title>DNS技术</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS%E6%8A%80%E6%9C%AF&amp;diff=204"/>
		<updated>2024-08-14T07:49:54Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[NAT64与DNS64基本原理概述]]&lt;br /&gt;
&lt;br /&gt;
[[递归服务器回复“refused”]]&lt;br /&gt;
&lt;br /&gt;
DoH, DoT, DoQ 的区别&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS%E8%B5%84%E8%AE%AF&amp;diff=203</id>
		<title>DNS资讯</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS%E8%B5%84%E8%AE%AF&amp;diff=203"/>
		<updated>2024-08-13T11:15:33Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“== DNS资讯 == 新闻-News  常用公共DNS”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[DNS资讯]] ==&lt;br /&gt;
[[新闻-News]]&lt;br /&gt;
&lt;br /&gt;
[[常用公共DNS]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E9%80%92%E5%BD%92%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9B%9E%E5%A4%8D%E2%80%9Crefused%E2%80%9D&amp;diff=202</id>
		<title>递归服务器回复“refused”</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E9%80%92%E5%BD%92%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9B%9E%E5%A4%8D%E2%80%9Crefused%E2%80%9D&amp;diff=202"/>
		<updated>2024-07-03T06:34:49Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''递归服务器回复“refused”！'''&lt;br /&gt;
&lt;br /&gt;
一般情况来说 refused  表示的是服务器对客户端的一种拒绝，这种事单方面的针对客户端，是不会因为迭代过程影响的.&lt;br /&gt;
&lt;br /&gt;
就是说，即使迭代过程中被各种refused，那也只是表示我这个递归服务器单方面被权威服务器拒绝掉了，我们递归服务器是不应该把这个 refused 透传给 客户端的，因为我们递归服务器被权威给refused，这种最终 我们递归服务器没办法帮助客户端完成解析，我们递归服务器会回复给客户端 servfail，表示的是无法解析。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''再说，递归服务器 什么时候回复 refused给客户端，一般有以下几种情况，主要还是一种 针对客户端的拒绝策略：'''&lt;br /&gt;
&lt;br /&gt;
1. 未命中任何视图&lt;br /&gt;
&lt;br /&gt;
2. 视图中 ACL 准入 不允许&lt;br /&gt;
&lt;br /&gt;
3. 区域/缓存查询 ACL 准入 不允许&lt;br /&gt;
&lt;br /&gt;
4. 放窥探&lt;br /&gt;
&lt;br /&gt;
5. 隧道检测&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E9%80%92%E5%BD%92%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9B%9E%E5%A4%8D%E2%80%9Crefused%E2%80%9D&amp;diff=201</id>
		<title>递归服务器回复“refused”</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E9%80%92%E5%BD%92%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9B%9E%E5%A4%8D%E2%80%9Crefused%E2%80%9D&amp;diff=201"/>
		<updated>2024-07-03T06:33:56Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“递归服务器回复“refused”！  一般情况来说 refused  表示的是服务器对客户端的一种拒绝，这种事单方面的针对客户端，是不会因为迭代过程影响的，就是说，即使迭代过程中被各种refused，那也只是表示我这个递归服务器单方面被权威服务器拒绝掉了，我们递归服务器是不应该把这个 refused 透传给 客户端的，因为我们递归服务器被权威给refused，这种…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;递归服务器回复“refused”！&lt;br /&gt;
&lt;br /&gt;
一般情况来说 refused  表示的是服务器对客户端的一种拒绝，这种事单方面的针对客户端，是不会因为迭代过程影响的，就是说，即使迭代过程中被各种refused，那也只是表示我这个递归服务器单方面被权威服务器拒绝掉了，我们递归服务器是不应该把这个 refused 透传给 客户端的，因为我们递归服务器被权威给refused，这种最终 我们递归服务器没办法帮助客户端完成解析，我们递归服务器会回复给客户端 servfail，表示的是无法解析。&lt;br /&gt;
&lt;br /&gt;
再说，递归服务器 什么时候回复 refused给客户端，一般有以下几种情况，主要还是一种 针对客户端的拒绝策略：&lt;br /&gt;
&lt;br /&gt;
1. 未命中任何视图&lt;br /&gt;
&lt;br /&gt;
2. 视图中 ACL 准入 不允许&lt;br /&gt;
&lt;br /&gt;
3. 区域/缓存查询 ACL 准入 不允许&lt;br /&gt;
&lt;br /&gt;
4. 放窥探&lt;br /&gt;
&lt;br /&gt;
5. 隧道检测&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS%E6%8A%80%E6%9C%AF&amp;diff=200</id>
		<title>DNS技术</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS%E6%8A%80%E6%9C%AF&amp;diff=200"/>
		<updated>2024-07-03T06:33:47Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[NAT64与DNS64基本原理概述]]&lt;br /&gt;
&lt;br /&gt;
[[递归服务器回复“refused”]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS%E6%8A%80%E6%9C%AF&amp;diff=199</id>
		<title>DNS技术</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS%E6%8A%80%E6%9C%AF&amp;diff=199"/>
		<updated>2024-07-03T06:33:36Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[NAT64与DNS64基本原理概述]]&lt;br /&gt;
[[递归服务器回复“refused”]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=198</id>
		<title>联系我 - Connect Me</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=198"/>
		<updated>2024-06-14T03:12:31Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;有关内容涉及违法，违规等任何问题，请联系我：&lt;br /&gt;
&lt;br /&gt;
'''QQ：778137'''&lt;br /&gt;
&lt;br /&gt;
'''WX：778137  （同QQ）'''&lt;br /&gt;
&lt;br /&gt;
'''Email：778137@qq.com'''&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=197</id>
		<title>联系我 - Connect Me</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=197"/>
		<updated>2024-06-14T03:12:13Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;有关内容涉及违法，违规等任何问题，请联系我：&lt;br /&gt;
&lt;br /&gt;
QQ：778137&lt;br /&gt;
&lt;br /&gt;
WX：778137  （同QQ）&lt;br /&gt;
&lt;br /&gt;
Email：778137@qq.com&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=196</id>
		<title>联系我 - Connect Me</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=196"/>
		<updated>2024-06-14T03:11:59Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;有关内容涉及违法，违规等任何问题，请联系我：&lt;br /&gt;
&lt;br /&gt;
QQ：778137&lt;br /&gt;
WX：778137  （同QQ）&lt;br /&gt;
Email：778137@qq.com&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=195</id>
		<title>联系我 - Connect Me</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=195"/>
		<updated>2024-06-14T03:11:42Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;有关内容涉及违法，违规等任何问题，请联系我：&lt;br /&gt;
&lt;br /&gt;
**QQ：778137&lt;br /&gt;
**WX：778137  （同QQ）&lt;br /&gt;
**Email：778137@qq.com&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=MediaWiki:Sidebar&amp;diff=194</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=MediaWiki:Sidebar&amp;diff=194"/>
		<updated>2024-06-02T14:04:29Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Wiki语法帮助|Wiki语法帮助&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
&lt;br /&gt;
* DNS技术| DNS技术&lt;br /&gt;
* DNS软件| DNS软件&lt;br /&gt;
&lt;br /&gt;
*  自定义一级导航1&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航1&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航2&lt;br /&gt;
*  自定义一级导航2&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航1&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航2&lt;br /&gt;
*  联系我 - Connect Me&lt;br /&gt;
** 联系我 - Connect Me | QQ：778137 &lt;br /&gt;
** 联系我 - Connect Me |Email：778137@qq.com&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=193</id>
		<title>联系我 - Connect Me</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=193"/>
		<updated>2024-06-02T14:03:46Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;有关内容涉及违法，违规等任何问题，请联系我：&lt;br /&gt;
**QQ：778137&lt;br /&gt;
**WX：778137  （同QQ）&lt;br /&gt;
**Email：778137@qq.com&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=192</id>
		<title>联系我 - Connect Me</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E8%81%94%E7%B3%BB%E6%88%91_-_Connect_Me&amp;diff=192"/>
		<updated>2024-06-02T14:03:29Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“有关内容涉及违法，违规等任何问题，请联系我：  **QQ：778137 **WX：778137  （同QQ） **Email：778137@qq.com”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;有关内容涉及违法，违规等任何问题，请联系我：&lt;br /&gt;
&lt;br /&gt;
**QQ：778137&lt;br /&gt;
**WX：778137  （同QQ）&lt;br /&gt;
**Email：778137@qq.com&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=MediaWiki:Sidebar&amp;diff=191</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=MediaWiki:Sidebar&amp;diff=191"/>
		<updated>2024-06-02T14:01:47Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Wiki语法帮助|Wiki语法帮助&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
&lt;br /&gt;
* DNS技术| DNS技术&lt;br /&gt;
* DNS软件| DNS软件&lt;br /&gt;
&lt;br /&gt;
*  自定义一级导航1&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航1&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航2&lt;br /&gt;
*  自定义一级导航2&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航1&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航2&lt;br /&gt;
*  联系我 - Connect Me&lt;br /&gt;
** 联系我 - Connect Me | QQ：778137 Email：778137@qq.com&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=MediaWiki:Sidebar&amp;diff=190</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=MediaWiki:Sidebar&amp;diff=190"/>
		<updated>2024-06-02T14:00:54Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** Wiki语法帮助|Wiki语法帮助&lt;br /&gt;
** helppage|help-mediawiki&lt;br /&gt;
&lt;br /&gt;
* DNS技术| DNS技术&lt;br /&gt;
* DNS软件| DNS软件&lt;br /&gt;
&lt;br /&gt;
*  自定义一级导航1&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航1&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航2&lt;br /&gt;
*  自定义一级导航2&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航1&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航2&lt;br /&gt;
*  联系我 - Connect me&lt;br /&gt;
** Email：778137@qq.com | QQ：778137&lt;br /&gt;
** http://www.dnswiki.org/ |自定义二级级导航2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=189</id>
		<title>DNS flag day 2020</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=189"/>
		<updated>2024-05-22T04:19:25Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Contents =&lt;br /&gt;
&lt;br /&gt;
* What’s next?&lt;br /&gt;
* DNS Flag Day 2020&lt;br /&gt;
** Action: Authoritative DNS Operators&lt;br /&gt;
** Action: DNS Resolver Operators&lt;br /&gt;
** Action: DNS software vendors&lt;br /&gt;
** How to test?&lt;br /&gt;
* Who’s behind DNS Flag Day?&lt;br /&gt;
* Get in touch&lt;br /&gt;
* Supporters&lt;br /&gt;
* FAQ&lt;br /&gt;
* Previous DNS Flag Days&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What’s next? =&lt;br /&gt;
The next DNS Flag Day is scheduled for 2020-10-01. It focuses on the operational and security problems in DNS caused by Internet Protocol packet fragmentation.&lt;br /&gt;
&lt;br /&gt;
On this page you can find comprehensive description of the problem, technical changes planned for 2020-10-01, and ways to test your systems before the set date.&lt;br /&gt;
&lt;br /&gt;
You can also subscribe to the dns-announce mailing list or follow @dnsflagday on Twitter to receive a notification about significant changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DNS Flag Day 2020 =&lt;br /&gt;
The DNS community has been discussing persistent interoperability and performance issues with the DNS system on industry mailing lists and at conferences such as DNS-OARC 30 panel discussion (video, slides).&lt;br /&gt;
&lt;br /&gt;
The proposed plan for DNS Flag Day 2020 was announced in October 2019 at RIPE78 by Petr Špaček, CZ.NIC and Ondřej Surý, ISC (video, slides). This year, we are focusing on problems with IP fragmentation of DNS packets.&lt;br /&gt;
&lt;br /&gt;
IP fragmentation is unreliable on the Internet today, and can cause transmission failures when large DNS messages are sent via UDP. Even when fragmentation does work, it may not be secure; it is theoretically possible to spoof ''parts'' of a fragmented DNS message, without easy detection at the receiving end.&lt;br /&gt;
&lt;br /&gt;
* Bonica R. et al, “IP Fragmentation Considered Fragile”, Work in Progress, July 2018&lt;br /&gt;
* Huston G., “IPv6, Large UDP Packets and the DNS”, August 2017&lt;br /&gt;
* Fujiwara K., “Measures against cache poisoning attacks using IP fragmentation in DNS”, May 2019&lt;br /&gt;
* Fujiwara K. et al, “Avoid IP fragmentation in DNS”, September 2019&lt;br /&gt;
&lt;br /&gt;
Recently, there was an paper and presentation Defragmenting DNS - Determining the optimal maximum UDP response size for DNS by Axel Koolhaas, and Tjeerd Slokker in collaboration with NLnet Labs that explored the real world data using the RIPE Atlas probes and the researchers suggested different values for IPv4 and IPv6 and in different scenarios. This is practical for the server operators that know their environment, and the defaults in the DNS software should reflect the minimum safe size which is '''1232'''.&lt;br /&gt;
&lt;br /&gt;
These issues can be addressed by a) configuring servers to limit DNS messages sent over UDP to a size that will not trigger fragmentation on typical network links, and b) ensuring that DNS servers can switch from UDP to TCP when a DNS response is too big to fit in this limited buffer size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Message Size Considerations ==&lt;br /&gt;
The optimum DNS message size to avoid IP fragmentation while minimizaing the use of TCP will depend on the Maximum Transmission Unit (MTU) of the physical network links connecting two network endpoints. Unfortunately, there is not yet a standard mechanism for DNS server implementors to access this information. Until such a standard exists, we recommend that the EDNS buffer size should, by ''default'', be set to a value small enough to avoid fragmentation on the majority of network links in use today.&lt;br /&gt;
&lt;br /&gt;
An EDNS buffer size of 1232 bytes will avoid fragmentation on nearly all current networks. This is based on an MTU of 1280, which is required by the IPv6 specification, minus 48 bytes for the IPv6 and UDP headers and the aforementioned research.&lt;br /&gt;
&lt;br /&gt;
Note that this recomendation is for a ''default'' value, to be used when better information is not available. Operators may still configure larger values if their networks support larger data frames and they are certain there is no risk of IP fragmentation. DNS server vendors may use higher (or lower) packet sizes if better information about the MTU is available from the kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: Authoritative DNS Operators ==&lt;br /&gt;
If you are an authoritative DNS server operator, what you should do to help with these issues is ensure that your DNS servers can answer DNS queries over TCP (port 53). ''Check your firewall(s) as well,'' as some of them block TCP/53.&lt;br /&gt;
&lt;br /&gt;
You should also configure your servers to negotiate an EDNS buffer size that will not cause fragmentation. The value recommended here is 1232 bytes.&lt;br /&gt;
&lt;br /&gt;
''Authoritative DNS servers '''MUST NOT''' send answers larger than the requested EDNS buffer size!''&lt;br /&gt;
&lt;br /&gt;
You can now check your servers by entering your domain name below and pressing “Test!”. This tester uses ISC’s EDNS Compliance Tester and will check that its &amp;lt;code&amp;gt;edns512tcp&amp;lt;/code&amp;gt; test is successful, among other tests for general standards compliance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: DNS Resolver Operators ==&lt;br /&gt;
Requrirements on the resolver side are more or less the same as for authoritative: ensure that your servers can answer DNS queries over TCP (port 53), and configure an EDNS buffer size of 1232 bytes to avoid fragmentation. Remember to check your firewall(s) for problems with DNS over TCP!&lt;br /&gt;
&lt;br /&gt;
Most importantly: ''Resolvers '''MUST''' resend queries over TCP if they receive a truncated UDP response (with TC=1 set)!''&lt;br /&gt;
&lt;br /&gt;
'''NEW!''' This checker will test your browser, system and ISP’s resolver by loading an image on a specific URL that can only be looked up if there is support for TCP at the last resolver querying the authority. For more information, go to Check My DNS which this checker uses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: DNS Software Vendors ==&lt;br /&gt;
It is important for DNS software vendors to '''comply with DNS standards''', and to use a default EDNS buffer size (1232 bytes) that will not cause fragmentation on typical network links.&lt;br /&gt;
&lt;br /&gt;
Relevant standards include &amp;lt;nowiki&amp;gt;RFC 7766&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.3. and &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.4..&lt;br /&gt;
&lt;br /&gt;
The motivation for this effort is described in IETF draft intarea-frag-fragile section 6.1 and IETF draft iab-protocol-maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to test? ==&lt;br /&gt;
If you’re the owner of a domain or the operator of an authoritative DNS server, you can use our web-based testing tool to check your domains; you can find it above under Action: Authoritative DNS Operators.&lt;br /&gt;
&lt;br /&gt;
Our web-based testing tool for clients and DNS resolver operators can be found above under Action: DNS Resolver Operators.&lt;br /&gt;
&lt;br /&gt;
You can also test by using the following CLI commands:&lt;br /&gt;
 &amp;lt;code&amp;gt;$ dig +tcp @auth_IP yourdomain.example.&lt;br /&gt;
 $ dig +tcp @resolver_IP yourdomain.example.&lt;br /&gt;
 $ dig @resolver_IP test.knot-resolver.cz. TXT&amp;lt;/code&amp;gt;&lt;br /&gt;
All DNS queries must be successful, and commands should return the same results both with and without the &amp;lt;code&amp;gt;+tcp&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
If you are a service provider, you can test your authoritative and recursive DNS services by configuring the default EDNS buffer size:&lt;br /&gt;
&lt;br /&gt;
BIND&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
&lt;br /&gt;
  edns-udp-size 1232;&lt;br /&gt;
&lt;br /&gt;
  max-udp-size 1232;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knot DNS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  max-udp-payload: 1232&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knot Resolver&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
net.bufsize(1232)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS Authoritative&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
PowerDNS Recursor&lt;br /&gt;
&lt;br /&gt;
edns-outgoing-bufsize=1232&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
Unbound&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  edns-buffer-size: 1232&lt;br /&gt;
&lt;br /&gt;
NSD&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  ipv4-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
  ipv6-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
The configuration above will have no visible effect if everything works correctly. Some queries will fail to resolve if the TCP transport is not available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Who’s behind DNS Flag Day? =&lt;br /&gt;
The DNS Flag Day effort is community driven by DNS software and service providers, and supported by The DNS Operations, Analysis, and Research Center (DNS-OARC) which most in the community are members of.&lt;br /&gt;
&lt;br /&gt;
If you have technical questions about DNS Flag Day, you can join the DNS-operations mailing list and ask them there.&lt;br /&gt;
&lt;br /&gt;
= Get in touch =&lt;br /&gt;
For press &amp;amp; media inquiries please use media (at) dns-oarc.net and please put “DNS Flag Day” in the email subject line.&lt;br /&gt;
&lt;br /&gt;
* Web: &amp;lt;nowiki&amp;gt;https://dnsflagday.net/&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Twitter: &amp;lt;nowiki&amp;gt;https://twitter.com/dnsflagday&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Announcements: &amp;lt;nowiki&amp;gt;https://lists.dns-oarc.net/mailman/listinfo/dns-announce&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Discussion: &amp;lt;nowiki&amp;gt;https://lists.dns-oarc.net/mailman/listinfo/dns-operations&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=188</id>
		<title>DNS flag day 2020</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=188"/>
		<updated>2024-05-22T04:18:42Z</updated>

		<summary type="html">&lt;p&gt;Admin：​/* How to test? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Contents =&lt;br /&gt;
&lt;br /&gt;
* What’s next?&lt;br /&gt;
* DNS Flag Day 2020&lt;br /&gt;
** Action: Authoritative DNS Operators&lt;br /&gt;
** Action: DNS Resolver Operators&lt;br /&gt;
** Action: DNS software vendors&lt;br /&gt;
** How to test?&lt;br /&gt;
* Who’s behind DNS Flag Day?&lt;br /&gt;
* Get in touch&lt;br /&gt;
* Supporters&lt;br /&gt;
* FAQ&lt;br /&gt;
* Previous DNS Flag Days&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What’s next? =&lt;br /&gt;
The next DNS Flag Day is scheduled for 2020-10-01. It focuses on the operational and security problems in DNS caused by Internet Protocol packet fragmentation.&lt;br /&gt;
&lt;br /&gt;
On this page you can find comprehensive description of the problem, technical changes planned for 2020-10-01, and ways to test your systems before the set date.&lt;br /&gt;
&lt;br /&gt;
You can also subscribe to the dns-announce mailing list or follow @dnsflagday on Twitter to receive a notification about significant changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DNS Flag Day 2020 =&lt;br /&gt;
The DNS community has been discussing persistent interoperability and performance issues with the DNS system on industry mailing lists and at conferences such as DNS-OARC 30 panel discussion (video, slides).&lt;br /&gt;
&lt;br /&gt;
The proposed plan for DNS Flag Day 2020 was announced in October 2019 at RIPE78 by Petr Špaček, CZ.NIC and Ondřej Surý, ISC (video, slides). This year, we are focusing on problems with IP fragmentation of DNS packets.&lt;br /&gt;
&lt;br /&gt;
IP fragmentation is unreliable on the Internet today, and can cause transmission failures when large DNS messages are sent via UDP. Even when fragmentation does work, it may not be secure; it is theoretically possible to spoof ''parts'' of a fragmented DNS message, without easy detection at the receiving end.&lt;br /&gt;
&lt;br /&gt;
* Bonica R. et al, “IP Fragmentation Considered Fragile”, Work in Progress, July 2018&lt;br /&gt;
* Huston G., “IPv6, Large UDP Packets and the DNS”, August 2017&lt;br /&gt;
* Fujiwara K., “Measures against cache poisoning attacks using IP fragmentation in DNS”, May 2019&lt;br /&gt;
* Fujiwara K. et al, “Avoid IP fragmentation in DNS”, September 2019&lt;br /&gt;
&lt;br /&gt;
Recently, there was an paper and presentation Defragmenting DNS - Determining the optimal maximum UDP response size for DNS by Axel Koolhaas, and Tjeerd Slokker in collaboration with NLnet Labs that explored the real world data using the RIPE Atlas probes and the researchers suggested different values for IPv4 and IPv6 and in different scenarios. This is practical for the server operators that know their environment, and the defaults in the DNS software should reflect the minimum safe size which is '''1232'''.&lt;br /&gt;
&lt;br /&gt;
These issues can be addressed by a) configuring servers to limit DNS messages sent over UDP to a size that will not trigger fragmentation on typical network links, and b) ensuring that DNS servers can switch from UDP to TCP when a DNS response is too big to fit in this limited buffer size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Message Size Considerations ==&lt;br /&gt;
The optimum DNS message size to avoid IP fragmentation while minimizaing the use of TCP will depend on the Maximum Transmission Unit (MTU) of the physical network links connecting two network endpoints. Unfortunately, there is not yet a standard mechanism for DNS server implementors to access this information. Until such a standard exists, we recommend that the EDNS buffer size should, by ''default'', be set to a value small enough to avoid fragmentation on the majority of network links in use today.&lt;br /&gt;
&lt;br /&gt;
An EDNS buffer size of 1232 bytes will avoid fragmentation on nearly all current networks. This is based on an MTU of 1280, which is required by the IPv6 specification, minus 48 bytes for the IPv6 and UDP headers and the aforementioned research.&lt;br /&gt;
&lt;br /&gt;
Note that this recomendation is for a ''default'' value, to be used when better information is not available. Operators may still configure larger values if their networks support larger data frames and they are certain there is no risk of IP fragmentation. DNS server vendors may use higher (or lower) packet sizes if better information about the MTU is available from the kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: Authoritative DNS Operators ==&lt;br /&gt;
If you are an authoritative DNS server operator, what you should do to help with these issues is ensure that your DNS servers can answer DNS queries over TCP (port 53). ''Check your firewall(s) as well,'' as some of them block TCP/53.&lt;br /&gt;
&lt;br /&gt;
You should also configure your servers to negotiate an EDNS buffer size that will not cause fragmentation. The value recommended here is 1232 bytes.&lt;br /&gt;
&lt;br /&gt;
''Authoritative DNS servers '''MUST NOT''' send answers larger than the requested EDNS buffer size!''&lt;br /&gt;
&lt;br /&gt;
You can now check your servers by entering your domain name below and pressing “Test!”. This tester uses ISC’s EDNS Compliance Tester and will check that its &amp;lt;code&amp;gt;edns512tcp&amp;lt;/code&amp;gt; test is successful, among other tests for general standards compliance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: DNS Resolver Operators ==&lt;br /&gt;
Requrirements on the resolver side are more or less the same as for authoritative: ensure that your servers can answer DNS queries over TCP (port 53), and configure an EDNS buffer size of 1232 bytes to avoid fragmentation. Remember to check your firewall(s) for problems with DNS over TCP!&lt;br /&gt;
&lt;br /&gt;
Most importantly: ''Resolvers '''MUST''' resend queries over TCP if they receive a truncated UDP response (with TC=1 set)!''&lt;br /&gt;
&lt;br /&gt;
'''NEW!''' This checker will test your browser, system and ISP’s resolver by loading an image on a specific URL that can only be looked up if there is support for TCP at the last resolver querying the authority. For more information, go to Check My DNS which this checker uses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: DNS Software Vendors ==&lt;br /&gt;
It is important for DNS software vendors to '''comply with DNS standards''', and to use a default EDNS buffer size (1232 bytes) that will not cause fragmentation on typical network links.&lt;br /&gt;
&lt;br /&gt;
Relevant standards include &amp;lt;nowiki&amp;gt;RFC 7766&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.3. and &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.4..&lt;br /&gt;
&lt;br /&gt;
The motivation for this effort is described in IETF draft intarea-frag-fragile section 6.1 and IETF draft iab-protocol-maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to test? ==&lt;br /&gt;
If you’re the owner of a domain or the operator of an authoritative DNS server, you can use our web-based testing tool to check your domains; you can find it above under Action: Authoritative DNS Operators.&lt;br /&gt;
&lt;br /&gt;
Our web-based testing tool for clients and DNS resolver operators can be found above under Action: DNS Resolver Operators.&lt;br /&gt;
&lt;br /&gt;
You can also test by using the following CLI commands:&lt;br /&gt;
 &amp;lt;code&amp;gt;$ dig +tcp @auth_IP yourdomain.example.&lt;br /&gt;
 $ dig +tcp @resolver_IP yourdomain.example.&lt;br /&gt;
 $ dig @resolver_IP test.knot-resolver.cz. TXT&amp;lt;/code&amp;gt;&lt;br /&gt;
All DNS queries must be successful, and commands should return the same results both with and without the &amp;lt;code&amp;gt;+tcp&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
If you are a service provider, you can test your authoritative and recursive DNS services by configuring the default EDNS buffer size:&lt;br /&gt;
&lt;br /&gt;
BIND&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
&lt;br /&gt;
  edns-udp-size 1232;&lt;br /&gt;
&lt;br /&gt;
  max-udp-size 1232;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knot DNS&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  max-udp-payload: 1232&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knot Resolver&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
net.bufsize(1232)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PowerDNS Authoritative&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
PowerDNS Recursor&lt;br /&gt;
&lt;br /&gt;
edns-outgoing-bufsize=1232&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
Unbound&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  edns-buffer-size: 1232&lt;br /&gt;
&lt;br /&gt;
NSD&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  ipv4-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
  ipv6-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
The configuration above will have no visible effect if everything works correctly. Some queries will fail to resolve if the TCP transport is not available.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=187</id>
		<title>DNS flag day 2020</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=187"/>
		<updated>2024-05-22T04:18:16Z</updated>

		<summary type="html">&lt;p&gt;Admin：​/* How to test? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Contents =&lt;br /&gt;
&lt;br /&gt;
* What’s next?&lt;br /&gt;
* DNS Flag Day 2020&lt;br /&gt;
** Action: Authoritative DNS Operators&lt;br /&gt;
** Action: DNS Resolver Operators&lt;br /&gt;
** Action: DNS software vendors&lt;br /&gt;
** How to test?&lt;br /&gt;
* Who’s behind DNS Flag Day?&lt;br /&gt;
* Get in touch&lt;br /&gt;
* Supporters&lt;br /&gt;
* FAQ&lt;br /&gt;
* Previous DNS Flag Days&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What’s next? =&lt;br /&gt;
The next DNS Flag Day is scheduled for 2020-10-01. It focuses on the operational and security problems in DNS caused by Internet Protocol packet fragmentation.&lt;br /&gt;
&lt;br /&gt;
On this page you can find comprehensive description of the problem, technical changes planned for 2020-10-01, and ways to test your systems before the set date.&lt;br /&gt;
&lt;br /&gt;
You can also subscribe to the dns-announce mailing list or follow @dnsflagday on Twitter to receive a notification about significant changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DNS Flag Day 2020 =&lt;br /&gt;
The DNS community has been discussing persistent interoperability and performance issues with the DNS system on industry mailing lists and at conferences such as DNS-OARC 30 panel discussion (video, slides).&lt;br /&gt;
&lt;br /&gt;
The proposed plan for DNS Flag Day 2020 was announced in October 2019 at RIPE78 by Petr Špaček, CZ.NIC and Ondřej Surý, ISC (video, slides). This year, we are focusing on problems with IP fragmentation of DNS packets.&lt;br /&gt;
&lt;br /&gt;
IP fragmentation is unreliable on the Internet today, and can cause transmission failures when large DNS messages are sent via UDP. Even when fragmentation does work, it may not be secure; it is theoretically possible to spoof ''parts'' of a fragmented DNS message, without easy detection at the receiving end.&lt;br /&gt;
&lt;br /&gt;
* Bonica R. et al, “IP Fragmentation Considered Fragile”, Work in Progress, July 2018&lt;br /&gt;
* Huston G., “IPv6, Large UDP Packets and the DNS”, August 2017&lt;br /&gt;
* Fujiwara K., “Measures against cache poisoning attacks using IP fragmentation in DNS”, May 2019&lt;br /&gt;
* Fujiwara K. et al, “Avoid IP fragmentation in DNS”, September 2019&lt;br /&gt;
&lt;br /&gt;
Recently, there was an paper and presentation Defragmenting DNS - Determining the optimal maximum UDP response size for DNS by Axel Koolhaas, and Tjeerd Slokker in collaboration with NLnet Labs that explored the real world data using the RIPE Atlas probes and the researchers suggested different values for IPv4 and IPv6 and in different scenarios. This is practical for the server operators that know their environment, and the defaults in the DNS software should reflect the minimum safe size which is '''1232'''.&lt;br /&gt;
&lt;br /&gt;
These issues can be addressed by a) configuring servers to limit DNS messages sent over UDP to a size that will not trigger fragmentation on typical network links, and b) ensuring that DNS servers can switch from UDP to TCP when a DNS response is too big to fit in this limited buffer size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Message Size Considerations ==&lt;br /&gt;
The optimum DNS message size to avoid IP fragmentation while minimizaing the use of TCP will depend on the Maximum Transmission Unit (MTU) of the physical network links connecting two network endpoints. Unfortunately, there is not yet a standard mechanism for DNS server implementors to access this information. Until such a standard exists, we recommend that the EDNS buffer size should, by ''default'', be set to a value small enough to avoid fragmentation on the majority of network links in use today.&lt;br /&gt;
&lt;br /&gt;
An EDNS buffer size of 1232 bytes will avoid fragmentation on nearly all current networks. This is based on an MTU of 1280, which is required by the IPv6 specification, minus 48 bytes for the IPv6 and UDP headers and the aforementioned research.&lt;br /&gt;
&lt;br /&gt;
Note that this recomendation is for a ''default'' value, to be used when better information is not available. Operators may still configure larger values if their networks support larger data frames and they are certain there is no risk of IP fragmentation. DNS server vendors may use higher (or lower) packet sizes if better information about the MTU is available from the kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: Authoritative DNS Operators ==&lt;br /&gt;
If you are an authoritative DNS server operator, what you should do to help with these issues is ensure that your DNS servers can answer DNS queries over TCP (port 53). ''Check your firewall(s) as well,'' as some of them block TCP/53.&lt;br /&gt;
&lt;br /&gt;
You should also configure your servers to negotiate an EDNS buffer size that will not cause fragmentation. The value recommended here is 1232 bytes.&lt;br /&gt;
&lt;br /&gt;
''Authoritative DNS servers '''MUST NOT''' send answers larger than the requested EDNS buffer size!''&lt;br /&gt;
&lt;br /&gt;
You can now check your servers by entering your domain name below and pressing “Test!”. This tester uses ISC’s EDNS Compliance Tester and will check that its &amp;lt;code&amp;gt;edns512tcp&amp;lt;/code&amp;gt; test is successful, among other tests for general standards compliance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: DNS Resolver Operators ==&lt;br /&gt;
Requrirements on the resolver side are more or less the same as for authoritative: ensure that your servers can answer DNS queries over TCP (port 53), and configure an EDNS buffer size of 1232 bytes to avoid fragmentation. Remember to check your firewall(s) for problems with DNS over TCP!&lt;br /&gt;
&lt;br /&gt;
Most importantly: ''Resolvers '''MUST''' resend queries over TCP if they receive a truncated UDP response (with TC=1 set)!''&lt;br /&gt;
&lt;br /&gt;
'''NEW!''' This checker will test your browser, system and ISP’s resolver by loading an image on a specific URL that can only be looked up if there is support for TCP at the last resolver querying the authority. For more information, go to Check My DNS which this checker uses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: DNS Software Vendors ==&lt;br /&gt;
It is important for DNS software vendors to '''comply with DNS standards''', and to use a default EDNS buffer size (1232 bytes) that will not cause fragmentation on typical network links.&lt;br /&gt;
&lt;br /&gt;
Relevant standards include &amp;lt;nowiki&amp;gt;RFC 7766&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.3. and &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.4..&lt;br /&gt;
&lt;br /&gt;
The motivation for this effort is described in IETF draft intarea-frag-fragile section 6.1 and IETF draft iab-protocol-maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to test? ==&lt;br /&gt;
If you’re the owner of a domain or the operator of an authoritative DNS server, you can use our web-based testing tool to check your domains; you can find it above under Action: Authoritative DNS Operators.&lt;br /&gt;
&lt;br /&gt;
Our web-based testing tool for clients and DNS resolver operators can be found above under Action: DNS Resolver Operators.&lt;br /&gt;
&lt;br /&gt;
You can also test by using the following CLI commands:&lt;br /&gt;
 &amp;lt;code&amp;gt;$ dig +tcp @auth_IP yourdomain.example.&lt;br /&gt;
 $ dig +tcp @resolver_IP yourdomain.example.&lt;br /&gt;
 $ dig @resolver_IP test.knot-resolver.cz. TXT&amp;lt;/code&amp;gt;&lt;br /&gt;
All DNS queries must be successful, and commands should return the same results both with and without the &amp;lt;code&amp;gt;+tcp&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
If you are a service provider, you can test your authoritative and recursive DNS services by configuring the default EDNS buffer size:&lt;br /&gt;
&lt;br /&gt;
BIND&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
options {&lt;br /&gt;
  edns-udp-size 1232;&lt;br /&gt;
  max-udp-size 1232;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knot DNS&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  max-udp-payload: 1232&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Knot Resolver&lt;br /&gt;
&lt;br /&gt;
net.bufsize(1232)&lt;br /&gt;
&lt;br /&gt;
PowerDNS Authoritative&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
PowerDNS Recursor&lt;br /&gt;
&lt;br /&gt;
edns-outgoing-bufsize=1232&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
Unbound&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  edns-buffer-size: 1232&lt;br /&gt;
&lt;br /&gt;
NSD&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  ipv4-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
  ipv6-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
The configuration above will have no visible effect if everything works correctly. Some queries will fail to resolve if the TCP transport is not available.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=186</id>
		<title>DNS flag day 2020</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=186"/>
		<updated>2024-05-22T04:17:33Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Contents =&lt;br /&gt;
&lt;br /&gt;
* What’s next?&lt;br /&gt;
* DNS Flag Day 2020&lt;br /&gt;
** Action: Authoritative DNS Operators&lt;br /&gt;
** Action: DNS Resolver Operators&lt;br /&gt;
** Action: DNS software vendors&lt;br /&gt;
** How to test?&lt;br /&gt;
* Who’s behind DNS Flag Day?&lt;br /&gt;
* Get in touch&lt;br /&gt;
* Supporters&lt;br /&gt;
* FAQ&lt;br /&gt;
* Previous DNS Flag Days&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= What’s next? =&lt;br /&gt;
The next DNS Flag Day is scheduled for 2020-10-01. It focuses on the operational and security problems in DNS caused by Internet Protocol packet fragmentation.&lt;br /&gt;
&lt;br /&gt;
On this page you can find comprehensive description of the problem, technical changes planned for 2020-10-01, and ways to test your systems before the set date.&lt;br /&gt;
&lt;br /&gt;
You can also subscribe to the dns-announce mailing list or follow @dnsflagday on Twitter to receive a notification about significant changes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DNS Flag Day 2020 =&lt;br /&gt;
The DNS community has been discussing persistent interoperability and performance issues with the DNS system on industry mailing lists and at conferences such as DNS-OARC 30 panel discussion (video, slides).&lt;br /&gt;
&lt;br /&gt;
The proposed plan for DNS Flag Day 2020 was announced in October 2019 at RIPE78 by Petr Špaček, CZ.NIC and Ondřej Surý, ISC (video, slides). This year, we are focusing on problems with IP fragmentation of DNS packets.&lt;br /&gt;
&lt;br /&gt;
IP fragmentation is unreliable on the Internet today, and can cause transmission failures when large DNS messages are sent via UDP. Even when fragmentation does work, it may not be secure; it is theoretically possible to spoof ''parts'' of a fragmented DNS message, without easy detection at the receiving end.&lt;br /&gt;
&lt;br /&gt;
* Bonica R. et al, “IP Fragmentation Considered Fragile”, Work in Progress, July 2018&lt;br /&gt;
* Huston G., “IPv6, Large UDP Packets and the DNS”, August 2017&lt;br /&gt;
* Fujiwara K., “Measures against cache poisoning attacks using IP fragmentation in DNS”, May 2019&lt;br /&gt;
* Fujiwara K. et al, “Avoid IP fragmentation in DNS”, September 2019&lt;br /&gt;
&lt;br /&gt;
Recently, there was an paper and presentation Defragmenting DNS - Determining the optimal maximum UDP response size for DNS by Axel Koolhaas, and Tjeerd Slokker in collaboration with NLnet Labs that explored the real world data using the RIPE Atlas probes and the researchers suggested different values for IPv4 and IPv6 and in different scenarios. This is practical for the server operators that know their environment, and the defaults in the DNS software should reflect the minimum safe size which is '''1232'''.&lt;br /&gt;
&lt;br /&gt;
These issues can be addressed by a) configuring servers to limit DNS messages sent over UDP to a size that will not trigger fragmentation on typical network links, and b) ensuring that DNS servers can switch from UDP to TCP when a DNS response is too big to fit in this limited buffer size.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Message Size Considerations ==&lt;br /&gt;
The optimum DNS message size to avoid IP fragmentation while minimizaing the use of TCP will depend on the Maximum Transmission Unit (MTU) of the physical network links connecting two network endpoints. Unfortunately, there is not yet a standard mechanism for DNS server implementors to access this information. Until such a standard exists, we recommend that the EDNS buffer size should, by ''default'', be set to a value small enough to avoid fragmentation on the majority of network links in use today.&lt;br /&gt;
&lt;br /&gt;
An EDNS buffer size of 1232 bytes will avoid fragmentation on nearly all current networks. This is based on an MTU of 1280, which is required by the IPv6 specification, minus 48 bytes for the IPv6 and UDP headers and the aforementioned research.&lt;br /&gt;
&lt;br /&gt;
Note that this recomendation is for a ''default'' value, to be used when better information is not available. Operators may still configure larger values if their networks support larger data frames and they are certain there is no risk of IP fragmentation. DNS server vendors may use higher (or lower) packet sizes if better information about the MTU is available from the kernel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: Authoritative DNS Operators ==&lt;br /&gt;
If you are an authoritative DNS server operator, what you should do to help with these issues is ensure that your DNS servers can answer DNS queries over TCP (port 53). ''Check your firewall(s) as well,'' as some of them block TCP/53.&lt;br /&gt;
&lt;br /&gt;
You should also configure your servers to negotiate an EDNS buffer size that will not cause fragmentation. The value recommended here is 1232 bytes.&lt;br /&gt;
&lt;br /&gt;
''Authoritative DNS servers '''MUST NOT''' send answers larger than the requested EDNS buffer size!''&lt;br /&gt;
&lt;br /&gt;
You can now check your servers by entering your domain name below and pressing “Test!”. This tester uses ISC’s EDNS Compliance Tester and will check that its &amp;lt;code&amp;gt;edns512tcp&amp;lt;/code&amp;gt; test is successful, among other tests for general standards compliance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: DNS Resolver Operators ==&lt;br /&gt;
Requrirements on the resolver side are more or less the same as for authoritative: ensure that your servers can answer DNS queries over TCP (port 53), and configure an EDNS buffer size of 1232 bytes to avoid fragmentation. Remember to check your firewall(s) for problems with DNS over TCP!&lt;br /&gt;
&lt;br /&gt;
Most importantly: ''Resolvers '''MUST''' resend queries over TCP if they receive a truncated UDP response (with TC=1 set)!''&lt;br /&gt;
&lt;br /&gt;
'''NEW!''' This checker will test your browser, system and ISP’s resolver by loading an image on a specific URL that can only be looked up if there is support for TCP at the last resolver querying the authority. For more information, go to Check My DNS which this checker uses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: DNS Software Vendors ==&lt;br /&gt;
It is important for DNS software vendors to '''comply with DNS standards''', and to use a default EDNS buffer size (1232 bytes) that will not cause fragmentation on typical network links.&lt;br /&gt;
&lt;br /&gt;
Relevant standards include &amp;lt;nowiki&amp;gt;RFC 7766&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.3. and &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.4..&lt;br /&gt;
&lt;br /&gt;
The motivation for this effort is described in IETF draft intarea-frag-fragile section 6.1 and IETF draft iab-protocol-maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to test? ==&lt;br /&gt;
If you’re the owner of a domain or the operator of an authoritative DNS server, you can use our web-based testing tool to check your domains; you can find it above under Action: Authoritative DNS Operators.&lt;br /&gt;
&lt;br /&gt;
Our web-based testing tool for clients and DNS resolver operators can be found above under Action: DNS Resolver Operators.&lt;br /&gt;
&lt;br /&gt;
You can also test by using the following CLI commands:&lt;br /&gt;
 &amp;lt;code&amp;gt;$ dig +tcp @auth_IP yourdomain.example.&lt;br /&gt;
 $ dig +tcp @resolver_IP yourdomain.example.&lt;br /&gt;
 $ dig @resolver_IP test.knot-resolver.cz. TXT&amp;lt;/code&amp;gt;&lt;br /&gt;
All DNS queries must be successful, and commands should return the same results both with and without the &amp;lt;code&amp;gt;+tcp&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
If you are a service provider, you can test your authoritative and recursive DNS services by configuring the default EDNS buffer size:&lt;br /&gt;
&lt;br /&gt;
BIND&lt;br /&gt;
&lt;br /&gt;
options {&lt;br /&gt;
&lt;br /&gt;
  edns-udp-size 1232;&lt;br /&gt;
&lt;br /&gt;
  max-udp-size 1232;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Knot DNS&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  max-udp-payload: 1232&lt;br /&gt;
&lt;br /&gt;
Knot Resolver&lt;br /&gt;
&lt;br /&gt;
net.bufsize(1232)&lt;br /&gt;
&lt;br /&gt;
PowerDNS Authoritative&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
PowerDNS Recursor&lt;br /&gt;
&lt;br /&gt;
edns-outgoing-bufsize=1232&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
Unbound&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  edns-buffer-size: 1232&lt;br /&gt;
&lt;br /&gt;
NSD&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  ipv4-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
  ipv6-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
The configuration above will have no visible effect if everything works correctly. Some queries will fail to resolve if the TCP transport is not available.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=OSI%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B%E3%80%81TCP/IP%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B&amp;diff=185</id>
		<title>OSI七层模型、TCP/IP四层模型</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=OSI%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B%E3%80%81TCP/IP%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B&amp;diff=185"/>
		<updated>2024-05-22T03:54:56Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== '''OSI七层模型''' ===&lt;br /&gt;
七层模型，亦称OSI（Open System Interconnection）。参考模型是国际标准化组织（ISO）制定的一个用于计算机或通信系统间互联的标准体系，一般称为OSI参考模型或七层模型。&lt;br /&gt;
&lt;br /&gt;
它是一个七层的、抽象的模型体，不仅包括一系列抽象的术语或概念，也包括具体的协议。&lt;br /&gt;
&lt;br /&gt;
[[文件:Image-osi七层模型、tcp-ip四层模型.png|居中|缩略图]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''OSI七层模型-分层'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. 应用层&lt;br /&gt;
&lt;br /&gt;
网络服务与最终用户的一个接口&lt;br /&gt;
&lt;br /&gt;
各种应用程序协议&lt;br /&gt;
&lt;br /&gt;
协议有：HTTP(超文本传输协议) FTP（文本传输协议） TFTP（简单文件传输协议） SMTP（简单邮件传输协议） SNMP（简单网络管理协议） DNS（域名系统） TELNET（远程终端协议） HTTPS（超文本传输安全协议） POP3（邮局协议版本3 ） DHCP（动态主机配置协议）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. 表示层&lt;br /&gt;
&lt;br /&gt;
数据的表示、安全、压缩。（在五层模型里面已经合并到了应用层）&lt;br /&gt;
&lt;br /&gt;
信息的语法语义以及他们的关联，如加密解密、转换翻译、压缩解压&lt;br /&gt;
&lt;br /&gt;
格式有，JPEG、ASCll、EBCDIC、加密格式等 [2]&lt;br /&gt;
&lt;br /&gt;
如LPP（轻量级表示协议）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. 会话层&lt;br /&gt;
&lt;br /&gt;
建立、管理、终止会话。（在五层模型里面已经合并到了应用层）&lt;br /&gt;
&lt;br /&gt;
不同机器上的用户之间建立及管理会话&lt;br /&gt;
&lt;br /&gt;
对应主机进程，指本地主机与远程主机正在进行的会话&lt;br /&gt;
&lt;br /&gt;
安全协议：SSL（安全套接字层协议）、TLS（安全传输层协议）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. 传输层&lt;br /&gt;
&lt;br /&gt;
定义传输数据的协议端口号，以及流控和差错校验。&lt;br /&gt;
&lt;br /&gt;
接受上一层数据，在必要的时候把数据进行切割，并将这些数据交给网络层，并保证这些数据段有效到达对端&lt;br /&gt;
&lt;br /&gt;
协议有：TCP UDP，数据包一旦离开网卡即进入网络传输层&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. 网络层&lt;br /&gt;
&lt;br /&gt;
进行逻辑地址寻址，实现不同网络之间的路径选择。&lt;br /&gt;
&lt;br /&gt;
控制子网的运行，如逻辑编址、分组传输、路由选择&lt;br /&gt;
&lt;br /&gt;
协议有：ICMP（互联网控制信息协议） IGMP（组管理协议） IP（IPV4 IPV6）（互联网协议）&lt;br /&gt;
&lt;br /&gt;
安全协议、路由协议（vrrp虚拟路由冗余）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 数据链路层&lt;br /&gt;
&lt;br /&gt;
建立逻辑连接、进行硬件地址寻址、差错校验 [3] 等功能。（由底层网络定义协议）&lt;br /&gt;
&lt;br /&gt;
将比特组合成字节进而组合成帧，用MAC地址访问介质，错误发现但不能纠正。&lt;br /&gt;
&lt;br /&gt;
物理寻址、同时将原始比特流转变为逻辑传输线路&lt;br /&gt;
&lt;br /&gt;
地址解析协议：ARP、PARP（反向地址转换协议）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. 物理层&lt;br /&gt;
&lt;br /&gt;
建立、维护、断开物理连接。（由底层网络定义协议）&lt;br /&gt;
&lt;br /&gt;
机械、电子、定时接口通信信道上的原始比特流传输&lt;br /&gt;
&lt;br /&gt;
TCP/IP 层级模型结构，应用层之间的协议通过逐级调用传输层（Transport layer）、网络层（Network Layer）和物理数据链路层（Physical Data Link）而可以实现应用层的应用程序通信互联。&lt;br /&gt;
&lt;br /&gt;
应用层需要关心应用程序的逻辑细节，而不是数据在网络中的传输活动。应用层其下三层则处理真正的通信细节。在 Internet 整个发展过程中的所有思想和着重点都以一种称为 RFC（Request For Comments）的文档格式存在。针对每一种特定的 TCP/IP 应用，有相应的 RFC&lt;br /&gt;
&lt;br /&gt;
一些典型的 TCP/IP 应用有 FTP、Telnet、SMTP、SNTP、REXEC、TFTP、LPD、SNMP、NFS、INETD 等。RFC 使一些基本相同的 TCP/IP 应用程序实现了标准化，从而使得不同厂家开发的应用程序可以互相通信&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TCP/IP四层模型 ===&lt;br /&gt;
TCP/IP（Transmission Control Protocol/Internet Protocol，传输控制协议/网际协议）是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议，而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇， 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性，所以被称为TCP/IP协议&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP/IP是在网络的使用中的最基本的通信协议。&lt;br /&gt;
&lt;br /&gt;
TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。&lt;br /&gt;
&lt;br /&gt;
TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。&lt;br /&gt;
&lt;br /&gt;
TCP/IP传输协议是严格来说是一个四层的体系结构，应用层、传输层、网络层和数据链路层都包含其中。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Image-OSI七层模型-TCP-IP四层模型.png|居中|缩略图]]&lt;br /&gt;
&lt;br /&gt;
=== TCP/IP协议中的四个层次 ===&lt;br /&gt;
应用层：应用层是TCP/IP协议的第一层，是直接为应用进程提供服务的。&lt;br /&gt;
&lt;br /&gt;
（1）对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议，邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议&lt;br /&gt;
&lt;br /&gt;
（2）应用层还能加密、解密、格式化数据&lt;br /&gt;
&lt;br /&gt;
（3）应用层可以建立或解除与其他节点的联系，这样可以充分节省网络资源&lt;br /&gt;
&lt;br /&gt;
运输层：作为TCP/IP协议的第二层，运输层在整个TCP/IP协议中起到了中流砥柱的作用。且在运输层中，TCP和UDP也同样起到了中流砥柱的作用&lt;br /&gt;
&lt;br /&gt;
网络层：网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能&lt;br /&gt;
&lt;br /&gt;
网络接口层：在TCP/IP协议中，网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以，网络接口层既是传输数据的物理媒介，也可以为网络层提供一条准确无误的线路&lt;br /&gt;
&lt;br /&gt;
特点&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP/IP协议能够迅速发展起来并成为事实上的标准，是它恰好适应了世界范围内数据通信的需要。它有以下特点：&lt;br /&gt;
&lt;br /&gt;
（1）协议标准是完全开放的，可以供用户免费使用，并且独立于特定的计算机硬件与操作系统。&lt;br /&gt;
&lt;br /&gt;
（2）独立于网络硬件系统，可以运行在广域网，更适合于互联网。&lt;br /&gt;
&lt;br /&gt;
（3）网络地址统一分配，网络中每一设备和终端都具有一个唯一地址。&lt;br /&gt;
&lt;br /&gt;
（4）高层协议标准化，可以提供多种多样可靠网络服务&lt;br /&gt;
&lt;br /&gt;
=== 通信过程及相关协议 ===&lt;br /&gt;
在网络通信的过程中，将发出数据的主机称为源主机，接收数据的主机称为目的主机。&lt;br /&gt;
&lt;br /&gt;
当源主机发出数据时，数据在源主机中从上层向下层传送。&lt;br /&gt;
&lt;br /&gt;
源主机中的应用进程先将数据交给应用层，应用层加上必要的控制信息就成了报文流，向下传给传输层。&lt;br /&gt;
&lt;br /&gt;
传输层将收到的数据单元加上本层的控制信息，形成报文段、数据报，再交给网际层。&lt;br /&gt;
&lt;br /&gt;
网际层加上本层的控制信息，形成IP数据报，传给网络接口层。&lt;br /&gt;
&lt;br /&gt;
网络接口层将网际层交下来的IP数据报组装成帧，并以比特流的形式传给网络硬件（即物理层），数据就离开源主机。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
原文链接：&amp;lt;nowiki&amp;gt;https://blog.csdn.net/wwy0324/article/details/109310658&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=OSI%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B%E3%80%81TCP/IP%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B&amp;diff=184</id>
		<title>OSI七层模型、TCP/IP四层模型</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=OSI%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B%E3%80%81TCP/IP%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B&amp;diff=184"/>
		<updated>2024-05-22T03:32:24Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“=== '''OSI七层模型''' === 七层模型，亦称OSI（Open System Interconnection）。参考模型是国际标准化组织（ISO）制定的一个用于计算机或通信系统间互联的标准体系，一般称为OSI参考模型或七层模型。  它是一个七层的、抽象的模型体，不仅包括一系列抽象的术语或概念，也包括具体的协议。  缩略图    '''OSI七…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== '''OSI七层模型''' ===&lt;br /&gt;
七层模型，亦称OSI（Open System Interconnection）。参考模型是国际标准化组织（ISO）制定的一个用于计算机或通信系统间互联的标准体系，一般称为OSI参考模型或七层模型。&lt;br /&gt;
&lt;br /&gt;
它是一个七层的、抽象的模型体，不仅包括一系列抽象的术语或概念，也包括具体的协议。&lt;br /&gt;
&lt;br /&gt;
[[文件:Image-osi七层模型、tcp-ip四层模型.png|居中|缩略图]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''OSI七层模型-分层'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. 应用层&lt;br /&gt;
&lt;br /&gt;
网络服务与最终用户的一个接口&lt;br /&gt;
&lt;br /&gt;
各种应用程序协议&lt;br /&gt;
&lt;br /&gt;
协议有：HTTP(超文本传输协议) FTP（文本传输协议） TFTP（简单文件传输协议） SMTP（简单邮件传输协议） SNMP（简单网络管理协议） DNS（域名系统） TELNET（远程终端协议） HTTPS（超文本传输安全协议） POP3（邮局协议版本3 ） DHCP（动态主机配置协议）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. 表示层&lt;br /&gt;
&lt;br /&gt;
数据的表示、安全、压缩。（在五层模型里面已经合并到了应用层）&lt;br /&gt;
&lt;br /&gt;
信息的语法语义以及他们的关联，如加密解密、转换翻译、压缩解压&lt;br /&gt;
&lt;br /&gt;
格式有，JPEG、ASCll、EBCDIC、加密格式等 [2]&lt;br /&gt;
&lt;br /&gt;
如LPP（轻量级表示协议）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. 会话层&lt;br /&gt;
&lt;br /&gt;
建立、管理、终止会话。（在五层模型里面已经合并到了应用层）&lt;br /&gt;
&lt;br /&gt;
不同机器上的用户之间建立及管理会话&lt;br /&gt;
&lt;br /&gt;
对应主机进程，指本地主机与远程主机正在进行的会话&lt;br /&gt;
&lt;br /&gt;
安全协议：SSL（安全套接字层协议）、TLS（安全传输层协议）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. 传输层&lt;br /&gt;
&lt;br /&gt;
定义传输数据的协议端口号，以及流控和差错校验。&lt;br /&gt;
&lt;br /&gt;
接受上一层数据，在必要的时候把数据进行切割，并将这些数据交给网络层，并保证这些数据段有效到达对端&lt;br /&gt;
&lt;br /&gt;
协议有：TCP UDP，数据包一旦离开网卡即进入网络传输层&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. 网络层&lt;br /&gt;
&lt;br /&gt;
进行逻辑地址寻址，实现不同网络之间的路径选择。&lt;br /&gt;
&lt;br /&gt;
控制子网的运行，如逻辑编址、分组传输、路由选择&lt;br /&gt;
&lt;br /&gt;
协议有：ICMP（互联网控制信息协议） IGMP（组管理协议） IP（IPV4 IPV6）（互联网协议）&lt;br /&gt;
&lt;br /&gt;
安全协议、路由协议（vrrp虚拟路由冗余）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 数据链路层&lt;br /&gt;
&lt;br /&gt;
建立逻辑连接、进行硬件地址寻址、差错校验 [3] 等功能。（由底层网络定义协议）&lt;br /&gt;
&lt;br /&gt;
将比特组合成字节进而组合成帧，用MAC地址访问介质，错误发现但不能纠正。&lt;br /&gt;
&lt;br /&gt;
物理寻址、同时将原始比特流转变为逻辑传输线路&lt;br /&gt;
&lt;br /&gt;
地址解析协议：ARP、PARP（反向地址转换协议）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. 物理层&lt;br /&gt;
&lt;br /&gt;
建立、维护、断开物理连接。（由底层网络定义协议）&lt;br /&gt;
&lt;br /&gt;
机械、电子、定时接口通信信道上的原始比特流传输&lt;br /&gt;
&lt;br /&gt;
TCP/IP 层级模型结构，应用层之间的协议通过逐级调用传输层（Transport layer）、网络层（Network Layer）和物理数据链路层（Physical Data Link）而可以实现应用层的应用程序通信互联。&lt;br /&gt;
&lt;br /&gt;
应用层需要关心应用程序的逻辑细节，而不是数据在网络中的传输活动。应用层其下三层则处理真正的通信细节。在 Internet 整个发展过程中的所有思想和着重点都以一种称为 RFC（Request For Comments）的文档格式存在。针对每一种特定的 TCP/IP 应用，有相应的 RFC&lt;br /&gt;
&lt;br /&gt;
一些典型的 TCP/IP 应用有 FTP、Telnet、SMTP、SNTP、REXEC、TFTP、LPD、SNMP、NFS、INETD 等。RFC 使一些基本相同的 TCP/IP 应用程序实现了标准化，从而使得不同厂家开发的应用程序可以互相通信&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== TCP/IP四层模型 ===&lt;br /&gt;
TCP/IP（Transmission Control Protocol/Internet Protocol，传输控制协议/网际协议）是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议，而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇， 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性，所以被称为TCP/IP协议&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP/IP是在网络的使用中的最基本的通信协议。&lt;br /&gt;
&lt;br /&gt;
TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。&lt;br /&gt;
&lt;br /&gt;
TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。&lt;br /&gt;
&lt;br /&gt;
TCP/IP传输协议是严格来说是一个四层的体系结构，应用层、传输层、网络层和数据链路层都包含其中。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[文件:Image-OSI七层模型-TCP-IP四层模型.png|居中|缩略图]]&lt;br /&gt;
&lt;br /&gt;
=== TCP/IP协议中的四个层次 ===&lt;br /&gt;
应用层：应用层是TCP/IP协议的第一层，是直接为应用进程提供服务的。&lt;br /&gt;
&lt;br /&gt;
（1）对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议，邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议&lt;br /&gt;
&lt;br /&gt;
（2）应用层还能加密、解密、格式化数据&lt;br /&gt;
&lt;br /&gt;
（3）应用层可以建立或解除与其他节点的联系，这样可以充分节省网络资源&lt;br /&gt;
&lt;br /&gt;
运输层：作为TCP/IP协议的第二层，运输层在整个TCP/IP协议中起到了中流砥柱的作用。且在运输层中，TCP和UDP也同样起到了中流砥柱的作用&lt;br /&gt;
&lt;br /&gt;
网络层：网络层在TCP/IP协议中的位于第三层。在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP地址的寻找等功能&lt;br /&gt;
&lt;br /&gt;
网络接口层：在TCP/IP协议中，网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层所以，网络接口层既是传输数据的物理媒介，也可以为网络层提供一条准确无误的线路&lt;br /&gt;
&lt;br /&gt;
特点&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP/IP协议能够迅速发展起来并成为事实上的标准，是它恰好适应了世界范围内数据通信的需要。它有以下特点：&lt;br /&gt;
&lt;br /&gt;
（1）协议标准是完全开放的，可以供用户免费使用，并且独立于特定的计算机硬件与操作系统。&lt;br /&gt;
&lt;br /&gt;
（2）独立于网络硬件系统，可以运行在广域网，更适合于互联网。&lt;br /&gt;
&lt;br /&gt;
（3）网络地址统一分配，网络中每一设备和终端都具有一个唯一地址。&lt;br /&gt;
&lt;br /&gt;
（4）高层协议标准化，可以提供多种多样可靠网络服务&lt;br /&gt;
&lt;br /&gt;
=== 通信过程及相关协议 ===&lt;br /&gt;
在网络通信的过程中，将发出数据的主机称为源主机，接收数据的主机称为目的主机。&lt;br /&gt;
&lt;br /&gt;
当源主机发出数据时，数据在源主机中从上层向下层传送。&lt;br /&gt;
&lt;br /&gt;
源主机中的应用进程先将数据交给应用层，应用层加上必要的控制信息就成了报文流，向下传给传输层。&lt;br /&gt;
&lt;br /&gt;
传输层将收到的数据单元加上本层的控制信息，形成报文段、数据报，再交给网际层。&lt;br /&gt;
&lt;br /&gt;
网际层加上本层的控制信息，形成IP数据报，传给网络接口层。&lt;br /&gt;
&lt;br /&gt;
网络接口层将网际层交下来的IP数据报组装成帧，并以比特流的形式传给网络硬件（即物理层），数据就离开源主机。&lt;br /&gt;
&lt;br /&gt;
————————————————&lt;br /&gt;
&lt;br /&gt;
                            版权声明：本文为博主原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接和本声明。&lt;br /&gt;
&lt;br /&gt;
                        &lt;br /&gt;
&lt;br /&gt;
原文链接：&amp;lt;nowiki&amp;gt;https://blog.csdn.net/wwy0324/article/details/109310658&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E6%96%87%E4%BB%B6:Image-OSI%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B-TCP-IP%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B.png&amp;diff=183</id>
		<title>文件:Image-OSI七层模型-TCP-IP四层模型.png</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E6%96%87%E4%BB%B6:Image-OSI%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B-TCP-IP%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B.png&amp;diff=183"/>
		<updated>2024-05-22T03:31:43Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image-OSI七层模型-TCP-IP四层模型&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E6%96%87%E4%BB%B6:Image-osi%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B%E3%80%81tcp-ip%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B.png&amp;diff=182</id>
		<title>文件:Image-osi七层模型、tcp-ip四层模型.png</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E6%96%87%E4%BB%B6:Image-osi%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B%E3%80%81tcp-ip%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B.png&amp;diff=182"/>
		<updated>2024-05-22T03:29:20Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Image-osi七层模型、tcp/ip四层模型&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=181</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=181"/>
		<updated>2024-05-22T03:28:05Z</updated>

		<summary type="html">&lt;p&gt;Admin：​/* 其他技术 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== [[DNS技术]] ==&lt;br /&gt;
* [[DNS是什么？]]&lt;br /&gt;
&lt;br /&gt;
* [[DNS-RFC]]&lt;br /&gt;
* [[顶级域名（TLD）]]&lt;br /&gt;
* [[NAT64与DNS64基本原理概述]]&lt;br /&gt;
* [[DNSSEC]]&lt;br /&gt;
* [[EDNS]]&lt;br /&gt;
* [[名词解释]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DNS软件 ==&lt;br /&gt;
&lt;br /&gt;
* [[BIND]]&lt;br /&gt;
* PowerDNS&lt;br /&gt;
* Unbond&lt;br /&gt;
* 其他&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== DNS安全 ==&lt;br /&gt;
&lt;br /&gt;
* [[DNSSEC]]&lt;br /&gt;
* [[DNS-CVEs]]&lt;br /&gt;
&lt;br /&gt;
* [[网络安全/系统安全/业务安全]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[DNS资讯]] ==&lt;br /&gt;
[[新闻-News]]&lt;br /&gt;
&lt;br /&gt;
[[常用公共DNS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[LINUX]]相关 ==&lt;br /&gt;
shell&lt;br /&gt;
&lt;br /&gt;
[[超细节！十年码农讲述eBPF和XDP技术！]]&lt;br /&gt;
&lt;br /&gt;
[[XDP技术 — Linux网络处理的高速公路]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 其他技术 ==&lt;br /&gt;
cdn&lt;br /&gt;
&lt;br /&gt;
sdn&lt;br /&gt;
&lt;br /&gt;
[[OSI七层模型、TCP/IP四层模型]]&lt;br /&gt;
== [[帮助信息]] ==&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki 设置配置]]&lt;br /&gt;
&lt;br /&gt;
[[MediaWiki 使用帮助]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;已安装MediaWiki。&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
请查阅[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents 用户指导]以获取使用本wiki软件的信息。&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=180</id>
		<title>DNS flag day 2020</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=DNS_flag_day_2020&amp;diff=180"/>
		<updated>2024-05-22T03:14:12Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“DNS Software Vendors  It is important for DNS software vendors to comply with DNS standards, and to use a default EDNS buffer size (1232 bytes) that will not cause fragmentation on typical network links.  Relevant standards include &amp;lt;nowiki&amp;gt;RFC 7766&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.3. and &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.4..  The motivation for this effort is described in IETF draft intarea-frag-fragile section 6.1 and IETF draft iab-protocol…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DNS Software Vendors&lt;br /&gt;
&lt;br /&gt;
It is important for DNS software vendors to comply with DNS standards, and to use a default EDNS buffer size (1232 bytes) that will not cause fragmentation on typical network links.&lt;br /&gt;
&lt;br /&gt;
Relevant standards include &amp;lt;nowiki&amp;gt;RFC 7766&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.3. and &amp;lt;nowiki&amp;gt;RFC 6891&amp;lt;/nowiki&amp;gt; section 6.2.4..&lt;br /&gt;
&lt;br /&gt;
The motivation for this effort is described in IETF draft intarea-frag-fragile section 6.1 and IETF draft iab-protocol-maintenance.&lt;br /&gt;
&lt;br /&gt;
How to test?&lt;br /&gt;
&lt;br /&gt;
If you’re the owner of a domain or the operator of an authoritative DNS server, you can use our web-based testing tool to check your domains; you can find it above under Action: Authoritative DNS Operators.&lt;br /&gt;
&lt;br /&gt;
Our web-based testing tool for clients and DNS resolver operators can be found above under Action: DNS Resolver Operators.&lt;br /&gt;
&lt;br /&gt;
You can also test by using the following CLI commands:&lt;br /&gt;
&lt;br /&gt;
$ dig +tcp @auth_IP yourdomain.example.&lt;br /&gt;
&lt;br /&gt;
$ dig +tcp @resolver_IP yourdomain.example.&lt;br /&gt;
&lt;br /&gt;
$ dig @resolver_IP test.knot-resolver.cz. TXT&lt;br /&gt;
&lt;br /&gt;
All DNS queries must be successful, and commands should return the same results both with and without the +tcp option.&lt;br /&gt;
&lt;br /&gt;
If you are a service provider, you can test your authoritative and recursive DNS services by configuring the default EDNS buffer size:&lt;br /&gt;
&lt;br /&gt;
BIND&lt;br /&gt;
&lt;br /&gt;
options {&lt;br /&gt;
&lt;br /&gt;
  edns-udp-size 1232;&lt;br /&gt;
&lt;br /&gt;
  max-udp-size 1232;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Knot DNS&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  max-udp-payload: 1232&lt;br /&gt;
&lt;br /&gt;
Knot Resolver&lt;br /&gt;
&lt;br /&gt;
net.bufsize(1232)&lt;br /&gt;
&lt;br /&gt;
PowerDNS Authoritative&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
PowerDNS Recursor&lt;br /&gt;
&lt;br /&gt;
edns-outgoing-bufsize=1232&lt;br /&gt;
&lt;br /&gt;
udp-truncation-threshold=1232&lt;br /&gt;
&lt;br /&gt;
Unbound&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  edns-buffer-size: 1232&lt;br /&gt;
&lt;br /&gt;
NSD&lt;br /&gt;
&lt;br /&gt;
server:&lt;br /&gt;
&lt;br /&gt;
  ipv4-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
  ipv6-edns-size: 1232&lt;br /&gt;
&lt;br /&gt;
The configuration above will have no visible effect if everything works correctly. Some queries will fail to resolve if the TCP transport is not available.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E6%96%B0%E9%97%BB-News&amp;diff=179</id>
		<title>新闻-News</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E6%96%B0%E9%97%BB-News&amp;diff=179"/>
		<updated>2024-05-22T03:14:02Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DNS flag day 2020]]&lt;br /&gt;
&lt;br /&gt;
DNS Software Vendors&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=%E6%96%B0%E9%97%BB-News&amp;diff=178</id>
		<title>新闻-News</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=%E6%96%B0%E9%97%BB-News&amp;diff=178"/>
		<updated>2024-05-22T03:12:31Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“DNS flag day 2020”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[DNS flag day 2020]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND&amp;diff=177</id>
		<title>BIND</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND&amp;diff=177"/>
		<updated>2024-05-08T04:14:02Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[BIND 9 Release Note]]&lt;br /&gt;
&lt;br /&gt;
[[BIND 9 Administrator Reference Manual]]&lt;br /&gt;
&lt;br /&gt;
[[BIND 9 ARM Manual Page v9.18.26]]&lt;br /&gt;
&lt;br /&gt;
[[BIND 配置文件解析]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND_9_ARM_Manual_Page_v9.18.26-Named.conf_-_configuration_file_for_named&amp;diff=176</id>
		<title>BIND 9 ARM Manual Page v9.18.26-Named.conf - configuration file for named</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND_9_ARM_Manual_Page_v9.18.26-Named.conf_-_configuration_file_for_named&amp;diff=176"/>
		<updated>2024-05-08T03:56:42Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“ == named.conf - configuration file for named ==  === Synopsis === '''named.conf'''  === Description === &amp;lt;code&amp;gt;named.conf&amp;lt;/code&amp;gt; is the configuration file for &amp;lt;code&amp;gt;named&amp;lt;/code&amp;gt;.  For complete documentation about the configuration statements, please refer to the Configuration Reference section in the BIND 9 Administrator Reference Manual.  Statements are enclosed in braces and terminated with a semi-colon. Clauses in the statements are also semi-colon…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== named.conf - configuration file for named ==&lt;br /&gt;
&lt;br /&gt;
=== Synopsis ===&lt;br /&gt;
'''named.conf'''&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
&amp;lt;code&amp;gt;named.conf&amp;lt;/code&amp;gt; is the configuration file for &amp;lt;code&amp;gt;named&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For complete documentation about the configuration statements, please refer to the Configuration Reference section in the BIND 9 Administrator Reference Manual.&lt;br /&gt;
&lt;br /&gt;
Statements are enclosed in braces and terminated with a semi-colon. Clauses in the statements are also semi-colon terminated. The usual comment styles are supported:&lt;br /&gt;
&lt;br /&gt;
C style: /* */&lt;br /&gt;
&lt;br /&gt;
C++ style: // to end of line&lt;br /&gt;
&lt;br /&gt;
Unix style: # to end of line&lt;br /&gt;
 acl &amp;lt;string&amp;gt; { &amp;lt;address_match_element&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 controls {&lt;br /&gt;
 	inet ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; | * ) [ port ( &amp;lt;integer&amp;gt; | * ) ] allow { &amp;lt;address_match_element&amp;gt;; ... } [ keys { &amp;lt;string&amp;gt;; ... } ] [ read-only &amp;lt;boolean&amp;gt; ]; // may occur multiple times&lt;br /&gt;
 	unix &amp;lt;quoted_string&amp;gt; perm &amp;lt;integer&amp;gt; owner &amp;lt;integer&amp;gt; group &amp;lt;integer&amp;gt; [ keys { &amp;lt;string&amp;gt;; ... } ] [ read-only &amp;lt;boolean&amp;gt; ]; // may occur multiple times&lt;br /&gt;
 }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 dlz &amp;lt;string&amp;gt; {&lt;br /&gt;
 	database &amp;lt;string&amp;gt;;&lt;br /&gt;
 	search &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 dnssec-policy &amp;lt;string&amp;gt; {&lt;br /&gt;
 	dnskey-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	keys { ( csk | ksk | zsk ) [ ( key-directory ) ] lifetime &amp;lt;duration_or_unlimited&amp;gt; algorithm &amp;lt;string&amp;gt; [ &amp;lt;integer&amp;gt; ]; ... };&lt;br /&gt;
 	max-zone-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	nsec3param [ iterations &amp;lt;integer&amp;gt; ] [ optout &amp;lt;boolean&amp;gt; ] [ salt-length &amp;lt;integer&amp;gt; ];&lt;br /&gt;
 	parent-ds-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	parent-propagation-delay &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	parent-registration-delay &amp;lt;duration&amp;gt;; // obsolete&lt;br /&gt;
 	publish-safety &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	purge-keys &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	retire-safety &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	signatures-refresh &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	signatures-validity &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	signatures-validity-dnskey &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	zone-propagation-delay &amp;lt;duration&amp;gt;;&lt;br /&gt;
 }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 dyndb &amp;lt;string&amp;gt; &amp;lt;quoted_string&amp;gt; { &amp;lt;unspecified-text&amp;gt; }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 http &amp;lt;string&amp;gt; {&lt;br /&gt;
 	endpoints { &amp;lt;quoted_string&amp;gt;; ... };&lt;br /&gt;
 	listener-clients &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	streams-per-connection &amp;lt;integer&amp;gt;;&lt;br /&gt;
 }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 key &amp;lt;string&amp;gt; {&lt;br /&gt;
 	algorithm &amp;lt;string&amp;gt;;&lt;br /&gt;
 	secret &amp;lt;string&amp;gt;;&lt;br /&gt;
 }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 logging {&lt;br /&gt;
 	category &amp;lt;string&amp;gt; { &amp;lt;string&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 	channel &amp;lt;string&amp;gt; {&lt;br /&gt;
 		buffered &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		file &amp;lt;quoted_string&amp;gt; [ versions ( unlimited | &amp;lt;integer&amp;gt; ) ] [ size &amp;lt;size&amp;gt; ] [ suffix ( increment | timestamp ) ];&lt;br /&gt;
 		null;&lt;br /&gt;
 		print-category &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		print-severity &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		print-time ( iso8601 | iso8601-utc | local | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 		severity &amp;lt;log_severity&amp;gt;;&lt;br /&gt;
 		stderr;&lt;br /&gt;
 		syslog [ &amp;lt;syslog_facility&amp;gt; ];&lt;br /&gt;
 	}; // may occur multiple times&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 managed-keys { &amp;lt;string&amp;gt; ( static-key | initial-key | static-ds | initial-ds ) &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;quoted_string&amp;gt;; ... }; // may occur multiple times, deprecated&lt;br /&gt;
 &lt;br /&gt;
 options {&lt;br /&gt;
 	allow-new-zones &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	allow-notify { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-cache { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-cache-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-recursion { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-recursion-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-transfer [ port &amp;lt;integer&amp;gt; ] [ transport &amp;lt;string&amp;gt; ] { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-update { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-update-forwarding { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	also-notify [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	alt-transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	alt-transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	answer-cookie &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	attach-cache &amp;lt;string&amp;gt;;&lt;br /&gt;
 	auth-nxdomain &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	auto-dnssec ( allow | maintain | off ); // deprecated&lt;br /&gt;
 	automatic-interface-scan &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	avoid-v4-udp-ports { &amp;lt;portrange&amp;gt;; ... }; // deprecated&lt;br /&gt;
 	avoid-v6-udp-ports { &amp;lt;portrange&amp;gt;; ... }; // deprecated&lt;br /&gt;
 	bindkeys-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	blackhole { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	catalog-zones { zone &amp;lt;string&amp;gt; [ default-primaries [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... } ] [ zone-directory &amp;lt;quoted_string&amp;gt; ] [ in-memory &amp;lt;boolean&amp;gt; ] [ min-update-interval &amp;lt;duration&amp;gt; ]; ... };&lt;br /&gt;
 	check-dup-records ( fail | warn | ignore );&lt;br /&gt;
 	check-integrity &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	check-mx ( fail | warn | ignore );&lt;br /&gt;
 	check-mx-cname ( fail | warn | ignore );&lt;br /&gt;
 	check-names ( primary | master | secondary | slave | response ) ( fail | warn | ignore ); // may occur multiple times&lt;br /&gt;
 	check-sibling &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	check-spf ( warn | ignore );&lt;br /&gt;
 	check-srv-cname ( fail | warn | ignore );&lt;br /&gt;
 	check-wildcard &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	clients-per-query &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	cookie-algorithm ( aes | siphash24 );&lt;br /&gt;
 	cookie-secret &amp;lt;string&amp;gt;; // may occur multiple times&lt;br /&gt;
 	coresize ( default | unlimited | &amp;lt;sizeval&amp;gt; ); // deprecated&lt;br /&gt;
 	datasize ( default | unlimited | &amp;lt;sizeval&amp;gt; ); // deprecated&lt;br /&gt;
 	deny-answer-addresses { &amp;lt;address_match_element&amp;gt;; ... } [ except-from { &amp;lt;string&amp;gt;; ... } ];&lt;br /&gt;
 	deny-answer-aliases { &amp;lt;string&amp;gt;; ... } [ except-from { &amp;lt;string&amp;gt;; ... } ];&lt;br /&gt;
 	dialup ( notify | notify-passive | passive | refresh | &amp;lt;boolean&amp;gt; ); // deprecated&lt;br /&gt;
 	directory &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	disable-algorithms &amp;lt;string&amp;gt; { &amp;lt;string&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 	disable-ds-digests &amp;lt;string&amp;gt; { &amp;lt;string&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 	disable-empty-zone &amp;lt;string&amp;gt;; // may occur multiple times&lt;br /&gt;
 	dns64 &amp;lt;netprefix&amp;gt; {&lt;br /&gt;
 		break-dnssec &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		clients { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 		exclude { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 		mapped { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 		recursive-only &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		suffix &amp;lt;ipv6_address&amp;gt;;&lt;br /&gt;
 	}; // may occur multiple times&lt;br /&gt;
 	dns64-contact &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dns64-server &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dnskey-sig-validity &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	dnsrps-enable &amp;lt;boolean&amp;gt;; // not configured&lt;br /&gt;
 	dnsrps-options { &amp;lt;unspecified-text&amp;gt; }; // not configured&lt;br /&gt;
 	dnssec-accept-expired &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	dnssec-dnskey-kskonly &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	dnssec-loadkeys-interval &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	dnssec-must-be-secure &amp;lt;string&amp;gt; &amp;lt;boolean&amp;gt;; // may occur multiple times, deprecated&lt;br /&gt;
 	dnssec-policy &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dnssec-secure-to-insecure &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	dnssec-update-mode ( maintain | no-resign );&lt;br /&gt;
 	dnssec-validation ( yes | no | auto );&lt;br /&gt;
 	dnstap { ( all | auth | client | forwarder | resolver | update ) [ ( query | response ) ]; ... }; // not configured&lt;br /&gt;
 	dnstap-identity ( &amp;lt;quoted_string&amp;gt; | none | hostname ); // not configured&lt;br /&gt;
 	dnstap-output ( file | unix ) &amp;lt;quoted_string&amp;gt; [ size ( unlimited | &amp;lt;size&amp;gt; ) ] [ versions ( unlimited | &amp;lt;integer&amp;gt; ) ] [ suffix ( increment | timestamp ) ]; // not configured&lt;br /&gt;
 	dnstap-version ( &amp;lt;quoted_string&amp;gt; | none ); // not configured&lt;br /&gt;
 	dscp &amp;lt;integer&amp;gt;; // obsolete&lt;br /&gt;
 	dual-stack-servers [ port &amp;lt;integer&amp;gt; ] { ( &amp;lt;quoted_string&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ); ... };&lt;br /&gt;
 	dump-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	edns-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	empty-contact &amp;lt;string&amp;gt;;&lt;br /&gt;
 	empty-server &amp;lt;string&amp;gt;;&lt;br /&gt;
 	empty-zones-enable &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	fetch-quota-params &amp;lt;integer&amp;gt; &amp;lt;fixedpoint&amp;gt; &amp;lt;fixedpoint&amp;gt; &amp;lt;fixedpoint&amp;gt;;&lt;br /&gt;
 	fetches-per-server &amp;lt;integer&amp;gt; [ ( drop | fail ) ];&lt;br /&gt;
 	fetches-per-zone &amp;lt;integer&amp;gt; [ ( drop | fail ) ];&lt;br /&gt;
 	files ( default | unlimited | &amp;lt;sizeval&amp;gt; ); // deprecated&lt;br /&gt;
 	flush-zones-on-shutdown &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	forward ( first | only );&lt;br /&gt;
 	forwarders [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; ) [ port &amp;lt;integer&amp;gt; ]; ... };&lt;br /&gt;
 	fstrm-set-buffer-hint &amp;lt;integer&amp;gt;; // not configured&lt;br /&gt;
 	fstrm-set-flush-timeout &amp;lt;integer&amp;gt;; // not configured&lt;br /&gt;
 	fstrm-set-input-queue-size &amp;lt;integer&amp;gt;; // not configured&lt;br /&gt;
 	fstrm-set-output-notify-threshold &amp;lt;integer&amp;gt;; // not configured&lt;br /&gt;
 	fstrm-set-output-queue-model ( mpsc | spsc ); // not configured&lt;br /&gt;
 	fstrm-set-output-queue-size &amp;lt;integer&amp;gt;; // not configured&lt;br /&gt;
 	fstrm-set-reopen-interval &amp;lt;duration&amp;gt;; // not configured&lt;br /&gt;
 	geoip-directory ( &amp;lt;quoted_string&amp;gt; | none );&lt;br /&gt;
 	glue-cache &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	heartbeat-interval &amp;lt;integer&amp;gt;; // deprecated&lt;br /&gt;
 	hostname ( &amp;lt;quoted_string&amp;gt; | none );&lt;br /&gt;
 	http-listener-clients &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	http-port &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	http-streams-per-connection &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	https-port &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	interface-interval &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	ipv4only-contact &amp;lt;string&amp;gt;;&lt;br /&gt;
 	ipv4only-enable &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	ipv4only-server &amp;lt;string&amp;gt;;&lt;br /&gt;
 	ixfr-from-differences ( primary | master | secondary | slave | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 	keep-response-order { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	key-directory &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	lame-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	listen-on [ port &amp;lt;integer&amp;gt; ] [ tls &amp;lt;string&amp;gt; ] [ http &amp;lt;string&amp;gt; ] { &amp;lt;address_match_element&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 	listen-on-v6 [ port &amp;lt;integer&amp;gt; ] [ tls &amp;lt;string&amp;gt; ] [ http &amp;lt;string&amp;gt; ] { &amp;lt;address_match_element&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 	lmdb-mapsize &amp;lt;sizeval&amp;gt;;&lt;br /&gt;
 	lock-file ( &amp;lt;quoted_string&amp;gt; | none );&lt;br /&gt;
 	managed-keys-directory &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	masterfile-format ( raw | text );&lt;br /&gt;
 	masterfile-style ( full | relative );&lt;br /&gt;
 	match-mapped-addresses &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	max-cache-size ( default | unlimited | &amp;lt;sizeval&amp;gt; | &amp;lt;percentage&amp;gt; );&lt;br /&gt;
 	max-cache-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	max-clients-per-query &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-ixfr-ratio ( unlimited | &amp;lt;percentage&amp;gt; );&lt;br /&gt;
 	max-journal-size ( default | unlimited | &amp;lt;sizeval&amp;gt; );&lt;br /&gt;
 	max-ncache-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	max-records &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-recursion-depth &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-recursion-queries &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-rsa-exponent-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-stale-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-in &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-in &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-zone-ttl ( unlimited | &amp;lt;duration&amp;gt; );&lt;br /&gt;
 	memstatistics &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	memstatistics-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	message-compression &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	min-cache-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	min-ncache-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	min-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	min-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	minimal-any &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	minimal-responses ( no-auth | no-auth-recursive | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 	multi-master &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	new-zones-directory &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	no-case-compress { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	nocookie-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	notify ( explicit | master-only | primary-only | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 	notify-delay &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	notify-rate &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	notify-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-to-soa &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	nsec3-test-zone &amp;lt;boolean&amp;gt;; // test only&lt;br /&gt;
 	nta-lifetime &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	nta-recheck &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	nxdomain-redirect &amp;lt;string&amp;gt;;&lt;br /&gt;
 	parental-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	parental-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	pid-file ( &amp;lt;quoted_string&amp;gt; | none );&lt;br /&gt;
 	port &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	preferred-glue &amp;lt;string&amp;gt;;&lt;br /&gt;
 	prefetch &amp;lt;integer&amp;gt; [ &amp;lt;integer&amp;gt; ];&lt;br /&gt;
 	provide-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	qname-minimization ( strict | relaxed | disabled | off );&lt;br /&gt;
 	query-source [ address ] ( &amp;lt;ipv4_address&amp;gt; | * );&lt;br /&gt;
 	query-source-v6 [ address ] ( &amp;lt;ipv6_address&amp;gt; | * );&lt;br /&gt;
 	querylog &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	random-device ( &amp;lt;quoted_string&amp;gt; | none ); // obsolete&lt;br /&gt;
 	rate-limit {&lt;br /&gt;
 		all-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		errors-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		exempt-clients { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 		ipv4-prefix-length &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		ipv6-prefix-length &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		log-only &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		max-table-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		min-table-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		nodata-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		nxdomains-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		qps-scale &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		referrals-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		responses-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		slip &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		window &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	};&lt;br /&gt;
 	recursing-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	recursion &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	recursive-clients &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	request-expire &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	request-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	request-nsid &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	require-server-cookie &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	reserved-sockets &amp;lt;integer&amp;gt;; // deprecated&lt;br /&gt;
 	resolver-nonbackoff-tries &amp;lt;integer&amp;gt;; // deprecated&lt;br /&gt;
 	resolver-query-timeout &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	resolver-retry-interval &amp;lt;integer&amp;gt;; // deprecated&lt;br /&gt;
 	response-padding { &amp;lt;address_match_element&amp;gt;; ... } block-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	response-policy { zone &amp;lt;string&amp;gt; [ add-soa &amp;lt;boolean&amp;gt; ] [ log &amp;lt;boolean&amp;gt; ] [ max-policy-ttl &amp;lt;duration&amp;gt; ] [ min-update-interval &amp;lt;duration&amp;gt; ] [ policy ( cname | disabled | drop | given | no-op | nodata | nxdomain | passthru | tcp-only &amp;lt;quoted_string&amp;gt; ) ] [ recursive-only &amp;lt;boolean&amp;gt; ] [ nsip-enable &amp;lt;boolean&amp;gt; ] [ nsdname-enable &amp;lt;boolean&amp;gt; ]; ... } [ add-soa &amp;lt;boolean&amp;gt; ] [ break-dnssec &amp;lt;boolean&amp;gt; ] [ max-policy-ttl &amp;lt;duration&amp;gt; ] [ min-update-interval &amp;lt;duration&amp;gt; ] [ min-ns-dots &amp;lt;integer&amp;gt; ] [ nsip-wait-recurse &amp;lt;boolean&amp;gt; ] [ nsdname-wait-recurse &amp;lt;boolean&amp;gt; ] [ qname-wait-recurse &amp;lt;boolean&amp;gt; ] [ recursive-only &amp;lt;boolean&amp;gt; ] [ nsip-enable &amp;lt;boolean&amp;gt; ] [ nsdname-enable &amp;lt;boolean&amp;gt; ] [ dnsrps-enable &amp;lt;boolean&amp;gt; ] [ dnsrps-options { &amp;lt;unspecified-text&amp;gt; } ];&lt;br /&gt;
 	reuseport &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	root-delegation-only [ exclude { &amp;lt;string&amp;gt;; ... } ]; // deprecated&lt;br /&gt;
 	root-key-sentinel &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	rrset-order { [ class &amp;lt;string&amp;gt; ] [ type &amp;lt;string&amp;gt; ] [ name &amp;lt;quoted_string&amp;gt; ] &amp;lt;string&amp;gt; &amp;lt;string&amp;gt;; ... };&lt;br /&gt;
 	secroots-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	send-cookie &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	serial-query-rate &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	serial-update-method ( date | increment | unixtime );&lt;br /&gt;
 	server-id ( &amp;lt;quoted_string&amp;gt; | none | hostname );&lt;br /&gt;
 	servfail-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	session-keyalg &amp;lt;string&amp;gt;;&lt;br /&gt;
 	session-keyfile ( &amp;lt;quoted_string&amp;gt; | none );&lt;br /&gt;
 	session-keyname &amp;lt;string&amp;gt;;&lt;br /&gt;
 	sig-signing-nodes &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-signing-signatures &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-signing-type &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-validity-interval &amp;lt;integer&amp;gt; [ &amp;lt;integer&amp;gt; ];&lt;br /&gt;
 	sortlist { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	stacksize ( default | unlimited | &amp;lt;sizeval&amp;gt; ); // deprecated&lt;br /&gt;
 	stale-answer-client-timeout ( disabled | off | &amp;lt;integer&amp;gt; );&lt;br /&gt;
 	stale-answer-enable &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	stale-answer-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	stale-cache-enable &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	stale-refresh-time &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	startup-notify-rate &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	statistics-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	suppress-initial-notify &amp;lt;boolean&amp;gt;; // obsolete&lt;br /&gt;
 	synth-from-dnssec &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	tcp-advertised-timeout &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	tcp-clients &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	tcp-idle-timeout &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	tcp-initial-timeout &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	tcp-keepalive-timeout &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	tcp-listen-queue &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	tcp-receive-buffer &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	tcp-send-buffer &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	tkey-dhkey &amp;lt;quoted_string&amp;gt; &amp;lt;integer&amp;gt;; // deprecated&lt;br /&gt;
 	tkey-domain &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	tkey-gssapi-credential &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	tkey-gssapi-keytab &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	tls-port &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	transfer-format ( many-answers | one-answer );&lt;br /&gt;
 	transfer-message-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	transfers-in &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	transfers-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	transfers-per-ns &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	trust-anchor-telemetry &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	try-tcp-refresh &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	udp-receive-buffer &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	udp-send-buffer &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	update-check-ksk &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	update-quota &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	use-alt-transfer-source &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	use-v4-udp-ports { &amp;lt;portrange&amp;gt;; ... }; // deprecated&lt;br /&gt;
 	use-v6-udp-ports { &amp;lt;portrange&amp;gt;; ... }; // deprecated&lt;br /&gt;
 	v6-bias &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	validate-except { &amp;lt;string&amp;gt;; ... };&lt;br /&gt;
 	version ( &amp;lt;quoted_string&amp;gt; | none );&lt;br /&gt;
 	zero-no-soa-ttl &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	zero-no-soa-ttl-cache &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	zone-statistics ( full | terse | none | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 parental-agents &amp;lt;string&amp;gt; [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 plugin ( query ) &amp;lt;string&amp;gt; [ { &amp;lt;unspecified-text&amp;gt; } ]; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 primaries &amp;lt;string&amp;gt; [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 server &amp;lt;netprefix&amp;gt; {&lt;br /&gt;
 	bogus &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	edns &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	edns-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	edns-version &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	keys &amp;lt;server_key&amp;gt;;&lt;br /&gt;
 	max-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	notify-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	padding &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	provide-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	query-source [ address ] ( &amp;lt;ipv4_address&amp;gt; | * );&lt;br /&gt;
 	query-source-v6 [ address ] ( &amp;lt;ipv6_address&amp;gt; | * );&lt;br /&gt;
 	request-expire &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	request-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	request-nsid &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	send-cookie &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	tcp-keepalive &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	tcp-only &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	transfer-format ( many-answers | one-answer );&lt;br /&gt;
 	transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	transfers &amp;lt;integer&amp;gt;;&lt;br /&gt;
 }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 statistics-channels {&lt;br /&gt;
 	inet ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; | * ) [ port ( &amp;lt;integer&amp;gt; | * ) ] [ allow { &amp;lt;address_match_element&amp;gt;; ... } ]; // may occur multiple times&lt;br /&gt;
 }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 tls &amp;lt;string&amp;gt; {&lt;br /&gt;
 	ca-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	cert-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	ciphers &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dhparam-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	key-file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	prefer-server-ciphers &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	protocols { &amp;lt;string&amp;gt;; ... };&lt;br /&gt;
 	remote-hostname &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	session-tickets &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 trust-anchors { &amp;lt;string&amp;gt; ( static-key | initial-key | static-ds | initial-ds ) &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;quoted_string&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 &lt;br /&gt;
 trusted-keys { &amp;lt;string&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;quoted_string&amp;gt;; ... }; // may occur multiple times, deprecated&lt;br /&gt;
 &lt;br /&gt;
 view &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	allow-new-zones &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	allow-notify { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-cache { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-cache-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-recursion { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-recursion-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-transfer [ port &amp;lt;integer&amp;gt; ] [ transport &amp;lt;string&amp;gt; ] { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-update { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-update-forwarding { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	also-notify [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	alt-transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	alt-transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	attach-cache &amp;lt;string&amp;gt;;&lt;br /&gt;
 	auth-nxdomain &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	auto-dnssec ( allow | maintain | off ); // deprecated&lt;br /&gt;
 	catalog-zones { zone &amp;lt;string&amp;gt; [ default-primaries [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... } ] [ zone-directory &amp;lt;quoted_string&amp;gt; ] [ in-memory &amp;lt;boolean&amp;gt; ] [ min-update-interval &amp;lt;duration&amp;gt; ]; ... };&lt;br /&gt;
 	check-dup-records ( fail | warn | ignore );&lt;br /&gt;
 	check-integrity &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	check-mx ( fail | warn | ignore );&lt;br /&gt;
 	check-mx-cname ( fail | warn | ignore );&lt;br /&gt;
 	check-names ( primary | master | secondary | slave | response ) ( fail | warn | ignore ); // may occur multiple times&lt;br /&gt;
 	check-sibling &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	check-spf ( warn | ignore );&lt;br /&gt;
 	check-srv-cname ( fail | warn | ignore );&lt;br /&gt;
 	check-wildcard &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	clients-per-query &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	deny-answer-addresses { &amp;lt;address_match_element&amp;gt;; ... } [ except-from { &amp;lt;string&amp;gt;; ... } ];&lt;br /&gt;
 	deny-answer-aliases { &amp;lt;string&amp;gt;; ... } [ except-from { &amp;lt;string&amp;gt;; ... } ];&lt;br /&gt;
 	dialup ( notify | notify-passive | passive | refresh | &amp;lt;boolean&amp;gt; ); // deprecated&lt;br /&gt;
 	disable-algorithms &amp;lt;string&amp;gt; { &amp;lt;string&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 	disable-ds-digests &amp;lt;string&amp;gt; { &amp;lt;string&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 	disable-empty-zone &amp;lt;string&amp;gt;; // may occur multiple times&lt;br /&gt;
 	dlz &amp;lt;string&amp;gt; {&lt;br /&gt;
 		database &amp;lt;string&amp;gt;;&lt;br /&gt;
 		search &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	}; // may occur multiple times&lt;br /&gt;
 	dns64 &amp;lt;netprefix&amp;gt; {&lt;br /&gt;
 		break-dnssec &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		clients { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 		exclude { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 		mapped { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 		recursive-only &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		suffix &amp;lt;ipv6_address&amp;gt;;&lt;br /&gt;
 	}; // may occur multiple times&lt;br /&gt;
 	dns64-contact &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dns64-server &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dnskey-sig-validity &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	dnsrps-enable &amp;lt;boolean&amp;gt;; // not configured&lt;br /&gt;
 	dnsrps-options { &amp;lt;unspecified-text&amp;gt; }; // not configured&lt;br /&gt;
 	dnssec-accept-expired &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	dnssec-dnskey-kskonly &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	dnssec-loadkeys-interval &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	dnssec-must-be-secure &amp;lt;string&amp;gt; &amp;lt;boolean&amp;gt;; // may occur multiple times, deprecated&lt;br /&gt;
 	dnssec-policy &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dnssec-secure-to-insecure &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	dnssec-update-mode ( maintain | no-resign );&lt;br /&gt;
 	dnssec-validation ( yes | no | auto );&lt;br /&gt;
 	dnstap { ( all | auth | client | forwarder | resolver | update ) [ ( query | response ) ]; ... }; // not configured&lt;br /&gt;
 	dual-stack-servers [ port &amp;lt;integer&amp;gt; ] { ( &amp;lt;quoted_string&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ); ... };&lt;br /&gt;
 	dyndb &amp;lt;string&amp;gt; &amp;lt;quoted_string&amp;gt; { &amp;lt;unspecified-text&amp;gt; }; // may occur multiple times&lt;br /&gt;
 	edns-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	empty-contact &amp;lt;string&amp;gt;;&lt;br /&gt;
 	empty-server &amp;lt;string&amp;gt;;&lt;br /&gt;
 	empty-zones-enable &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	fetch-quota-params &amp;lt;integer&amp;gt; &amp;lt;fixedpoint&amp;gt; &amp;lt;fixedpoint&amp;gt; &amp;lt;fixedpoint&amp;gt;;&lt;br /&gt;
 	fetches-per-server &amp;lt;integer&amp;gt; [ ( drop | fail ) ];&lt;br /&gt;
 	fetches-per-zone &amp;lt;integer&amp;gt; [ ( drop | fail ) ];&lt;br /&gt;
 	forward ( first | only );&lt;br /&gt;
 	forwarders [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; ) [ port &amp;lt;integer&amp;gt; ]; ... };&lt;br /&gt;
 	glue-cache &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	ipv4only-contact &amp;lt;string&amp;gt;;&lt;br /&gt;
 	ipv4only-enable &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	ipv4only-server &amp;lt;string&amp;gt;;&lt;br /&gt;
 	ixfr-from-differences ( primary | master | secondary | slave | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 	key &amp;lt;string&amp;gt; {&lt;br /&gt;
 		algorithm &amp;lt;string&amp;gt;;&lt;br /&gt;
 		secret &amp;lt;string&amp;gt;;&lt;br /&gt;
 	}; // may occur multiple times&lt;br /&gt;
 	key-directory &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	lame-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	lmdb-mapsize &amp;lt;sizeval&amp;gt;;&lt;br /&gt;
 	managed-keys { &amp;lt;string&amp;gt; ( static-key | initial-key | static-ds | initial-ds ) &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;quoted_string&amp;gt;; ... }; // may occur multiple times, deprecated&lt;br /&gt;
 	masterfile-format ( raw | text );&lt;br /&gt;
 	masterfile-style ( full | relative );&lt;br /&gt;
 	match-clients { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	match-destinations { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	match-recursive-only &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	max-cache-size ( default | unlimited | &amp;lt;sizeval&amp;gt; | &amp;lt;percentage&amp;gt; );&lt;br /&gt;
 	max-cache-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	max-clients-per-query &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-ixfr-ratio ( unlimited | &amp;lt;percentage&amp;gt; );&lt;br /&gt;
 	max-journal-size ( default | unlimited | &amp;lt;sizeval&amp;gt; );&lt;br /&gt;
 	max-ncache-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	max-records &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-recursion-depth &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-recursion-queries &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-stale-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-in &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-in &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-zone-ttl ( unlimited | &amp;lt;duration&amp;gt; );&lt;br /&gt;
 	message-compression &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	min-cache-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	min-ncache-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	min-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	min-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	minimal-any &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	minimal-responses ( no-auth | no-auth-recursive | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 	multi-master &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	new-zones-directory &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	no-case-compress { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	nocookie-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	notify ( explicit | master-only | primary-only | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 	notify-delay &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	notify-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-to-soa &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	nsec3-test-zone &amp;lt;boolean&amp;gt;; // test only&lt;br /&gt;
 	nta-lifetime &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	nta-recheck &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	nxdomain-redirect &amp;lt;string&amp;gt;;&lt;br /&gt;
 	parental-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	parental-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	plugin ( query ) &amp;lt;string&amp;gt; [ { &amp;lt;unspecified-text&amp;gt; } ]; // may occur multiple times&lt;br /&gt;
 	preferred-glue &amp;lt;string&amp;gt;;&lt;br /&gt;
 	prefetch &amp;lt;integer&amp;gt; [ &amp;lt;integer&amp;gt; ];&lt;br /&gt;
 	provide-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	qname-minimization ( strict | relaxed | disabled | off );&lt;br /&gt;
 	query-source [ address ] ( &amp;lt;ipv4_address&amp;gt; | * );&lt;br /&gt;
 	query-source-v6 [ address ] ( &amp;lt;ipv6_address&amp;gt; | * );&lt;br /&gt;
 	rate-limit {&lt;br /&gt;
 		all-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		errors-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		exempt-clients { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 		ipv4-prefix-length &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		ipv6-prefix-length &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		log-only &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		max-table-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		min-table-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		nodata-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		nxdomains-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		qps-scale &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		referrals-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		responses-per-second &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		slip &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		window &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	};&lt;br /&gt;
 	recursion &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	request-expire &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	request-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	request-nsid &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	require-server-cookie &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	resolver-nonbackoff-tries &amp;lt;integer&amp;gt;; // deprecated&lt;br /&gt;
 	resolver-query-timeout &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	resolver-retry-interval &amp;lt;integer&amp;gt;; // deprecated&lt;br /&gt;
 	response-padding { &amp;lt;address_match_element&amp;gt;; ... } block-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	response-policy { zone &amp;lt;string&amp;gt; [ add-soa &amp;lt;boolean&amp;gt; ] [ log &amp;lt;boolean&amp;gt; ] [ max-policy-ttl &amp;lt;duration&amp;gt; ] [ min-update-interval &amp;lt;duration&amp;gt; ] [ policy ( cname | disabled | drop | given | no-op | nodata | nxdomain | passthru | tcp-only &amp;lt;quoted_string&amp;gt; ) ] [ recursive-only &amp;lt;boolean&amp;gt; ] [ nsip-enable &amp;lt;boolean&amp;gt; ] [ nsdname-enable &amp;lt;boolean&amp;gt; ]; ... } [ add-soa &amp;lt;boolean&amp;gt; ] [ break-dnssec &amp;lt;boolean&amp;gt; ] [ max-policy-ttl &amp;lt;duration&amp;gt; ] [ min-update-interval &amp;lt;duration&amp;gt; ] [ min-ns-dots &amp;lt;integer&amp;gt; ] [ nsip-wait-recurse &amp;lt;boolean&amp;gt; ] [ nsdname-wait-recurse &amp;lt;boolean&amp;gt; ] [ qname-wait-recurse &amp;lt;boolean&amp;gt; ] [ recursive-only &amp;lt;boolean&amp;gt; ] [ nsip-enable &amp;lt;boolean&amp;gt; ] [ nsdname-enable &amp;lt;boolean&amp;gt; ] [ dnsrps-enable &amp;lt;boolean&amp;gt; ] [ dnsrps-options { &amp;lt;unspecified-text&amp;gt; } ];&lt;br /&gt;
 	root-delegation-only [ exclude { &amp;lt;string&amp;gt;; ... } ]; // deprecated&lt;br /&gt;
 	root-key-sentinel &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	rrset-order { [ class &amp;lt;string&amp;gt; ] [ type &amp;lt;string&amp;gt; ] [ name &amp;lt;quoted_string&amp;gt; ] &amp;lt;string&amp;gt; &amp;lt;string&amp;gt;; ... };&lt;br /&gt;
 	send-cookie &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	serial-update-method ( date | increment | unixtime );&lt;br /&gt;
 	server &amp;lt;netprefix&amp;gt; {&lt;br /&gt;
 		bogus &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		edns &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		edns-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		edns-version &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		keys &amp;lt;server_key&amp;gt;;&lt;br /&gt;
 		max-udp-size &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		notify-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 		notify-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 		padding &amp;lt;integer&amp;gt;;&lt;br /&gt;
 		provide-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		query-source [ address ] ( &amp;lt;ipv4_address&amp;gt; | * );&lt;br /&gt;
 		query-source-v6 [ address ] ( &amp;lt;ipv6_address&amp;gt; | * );&lt;br /&gt;
 		request-expire &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		request-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		request-nsid &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		send-cookie &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		tcp-keepalive &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		tcp-only &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 		transfer-format ( many-answers | one-answer );&lt;br /&gt;
 		transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 		transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 		transfers &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	}; // may occur multiple times&lt;br /&gt;
 	servfail-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	sig-signing-nodes &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-signing-signatures &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-signing-type &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-validity-interval &amp;lt;integer&amp;gt; [ &amp;lt;integer&amp;gt; ];&lt;br /&gt;
 	sortlist { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	stale-answer-client-timeout ( disabled | off | &amp;lt;integer&amp;gt; );&lt;br /&gt;
 	stale-answer-enable &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	stale-answer-ttl &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	stale-cache-enable &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	stale-refresh-time &amp;lt;duration&amp;gt;;&lt;br /&gt;
 	suppress-initial-notify &amp;lt;boolean&amp;gt;; // obsolete&lt;br /&gt;
 	synth-from-dnssec &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	transfer-format ( many-answers | one-answer );&lt;br /&gt;
 	transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	trust-anchor-telemetry &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	trust-anchors { &amp;lt;string&amp;gt; ( static-key | initial-key | static-ds | initial-ds ) &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;quoted_string&amp;gt;; ... }; // may occur multiple times&lt;br /&gt;
 	trusted-keys { &amp;lt;string&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;integer&amp;gt; &amp;lt;quoted_string&amp;gt;; ... }; // may occur multiple times, deprecated&lt;br /&gt;
 	try-tcp-refresh &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	update-check-ksk &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	use-alt-transfer-source &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	v6-bias &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	validate-except { &amp;lt;string&amp;gt;; ... };&lt;br /&gt;
 	zero-no-soa-ttl &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	zero-no-soa-ttl-cache &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	zone-statistics ( full | terse | none | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 }; // may occur multiple times&lt;br /&gt;
Any of these zone statements can also be set inside the view statement.&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	type primary;&lt;br /&gt;
 	allow-query { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-transfer [ port &amp;lt;integer&amp;gt; ] [ transport &amp;lt;string&amp;gt; ] { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-update { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	also-notify [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	alt-transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	alt-transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	auto-dnssec ( allow | maintain | off ); // deprecated&lt;br /&gt;
 	check-dup-records ( fail | warn | ignore );&lt;br /&gt;
 	check-integrity &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	check-mx ( fail | warn | ignore );&lt;br /&gt;
 	check-mx-cname ( fail | warn | ignore );&lt;br /&gt;
 	check-names ( fail | warn | ignore );&lt;br /&gt;
 	check-sibling &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	check-spf ( warn | ignore );&lt;br /&gt;
 	check-srv-cname ( fail | warn | ignore );&lt;br /&gt;
 	check-wildcard &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	database &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dialup ( notify | notify-passive | passive | refresh | &amp;lt;boolean&amp;gt; ); // deprecated&lt;br /&gt;
 	dlz &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dnskey-sig-validity &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	dnssec-dnskey-kskonly &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	dnssec-loadkeys-interval &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	dnssec-policy &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dnssec-secure-to-insecure &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	dnssec-update-mode ( maintain | no-resign );&lt;br /&gt;
 	file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	forward ( first | only );&lt;br /&gt;
 	forwarders [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; ) [ port &amp;lt;integer&amp;gt; ]; ... };&lt;br /&gt;
 	inline-signing &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	ixfr-from-differences &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	journal &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	key-directory &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	masterfile-format ( raw | text );&lt;br /&gt;
 	masterfile-style ( full | relative );&lt;br /&gt;
 	max-ixfr-ratio ( unlimited | &amp;lt;percentage&amp;gt; );&lt;br /&gt;
 	max-journal-size ( default | unlimited | &amp;lt;sizeval&amp;gt; );&lt;br /&gt;
 	max-records &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-zone-ttl ( unlimited | &amp;lt;duration&amp;gt; );&lt;br /&gt;
 	notify ( explicit | master-only | primary-only | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 	notify-delay &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	notify-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-to-soa &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	nsec3-test-zone &amp;lt;boolean&amp;gt;; // test only&lt;br /&gt;
 	parental-agents [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	parental-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	parental-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	serial-update-method ( date | increment | unixtime );&lt;br /&gt;
 	sig-signing-nodes &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-signing-signatures &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-signing-type &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-validity-interval &amp;lt;integer&amp;gt; [ &amp;lt;integer&amp;gt; ];&lt;br /&gt;
 	update-check-ksk &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	update-policy ( local | { ( deny | grant ) &amp;lt;string&amp;gt; ( 6to4-self | external | krb5-self | krb5-selfsub | krb5-subdomain | krb5-subdomain-self-rhs | ms-self | ms-selfsub | ms-subdomain | ms-subdomain-self-rhs | name | self | selfsub | selfwild | subdomain | tcp-self | wildcard | zonesub ) [ &amp;lt;string&amp;gt; ] &amp;lt;rrtypelist&amp;gt;; ... } );&lt;br /&gt;
 	zero-no-soa-ttl &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	zone-statistics ( full | terse | none | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	type secondary;&lt;br /&gt;
 	allow-notify { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-transfer [ port &amp;lt;integer&amp;gt; ] [ transport &amp;lt;string&amp;gt; ] { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-update-forwarding { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	also-notify [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	alt-transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	alt-transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	auto-dnssec ( allow | maintain | off ); // deprecated&lt;br /&gt;
 	check-names ( fail | warn | ignore );&lt;br /&gt;
 	database &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dialup ( notify | notify-passive | passive | refresh | &amp;lt;boolean&amp;gt; ); // deprecated&lt;br /&gt;
 	dlz &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dnskey-sig-validity &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	dnssec-dnskey-kskonly &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	dnssec-loadkeys-interval &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	dnssec-policy &amp;lt;string&amp;gt;;&lt;br /&gt;
 	dnssec-update-mode ( maintain | no-resign );&lt;br /&gt;
 	file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	forward ( first | only );&lt;br /&gt;
 	forwarders [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; ) [ port &amp;lt;integer&amp;gt; ]; ... };&lt;br /&gt;
 	inline-signing &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	ixfr-from-differences &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	journal &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	key-directory &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	masterfile-format ( raw | text );&lt;br /&gt;
 	masterfile-style ( full | relative );&lt;br /&gt;
 	max-ixfr-ratio ( unlimited | &amp;lt;percentage&amp;gt; );&lt;br /&gt;
 	max-journal-size ( default | unlimited | &amp;lt;sizeval&amp;gt; );&lt;br /&gt;
 	max-records &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-'''in''' &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-'''in''' &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	min-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	min-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	multi-master &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	notify ( explicit | master-only | primary-only | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 	notify-delay &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	notify-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-to-soa &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	nsec3-test-zone &amp;lt;boolean&amp;gt;; // test only&lt;br /&gt;
 	parental-agents [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	parental-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	parental-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	primaries [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	request-expire &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	request-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	sig-signing-nodes &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-signing-signatures &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-signing-type &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	sig-validity-interval &amp;lt;integer&amp;gt; [ &amp;lt;integer&amp;gt; ];&lt;br /&gt;
 	transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	'''try'''-tcp-refresh &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	update-check-ksk &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	use-alt-transfer-source &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	zero-no-soa-ttl &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	zone-statistics ( full | terse | none | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	type mirror;&lt;br /&gt;
 	allow-notify { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-transfer [ port &amp;lt;integer&amp;gt; ] [ transport &amp;lt;string&amp;gt; ] { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-update-forwarding { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	also-notify [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	alt-transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	alt-transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ; // deprecated&lt;br /&gt;
 	check-names ( fail | warn | ignore );&lt;br /&gt;
 	database &amp;lt;string&amp;gt;;&lt;br /&gt;
 	file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	ixfr-from-differences &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	journal &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	masterfile-format ( raw | text );&lt;br /&gt;
 	masterfile-style ( full | relative );&lt;br /&gt;
 	max-ixfr-ratio ( unlimited | &amp;lt;percentage&amp;gt; );&lt;br /&gt;
 	max-journal-size ( default | unlimited | &amp;lt;sizeval&amp;gt; );&lt;br /&gt;
 	max-records &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-'''in''' &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-'''in''' &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-out &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	min-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	min-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	multi-master &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	notify ( explicit | master-only | primary-only | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 	notify-delay &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	notify-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	notify-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	primaries [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	request-expire &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	request-ixfr &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	'''try'''-tcp-refresh &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	use-alt-transfer-source &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	zero-no-soa-ttl &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	zone-statistics ( full | terse | none | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	type forward;&lt;br /&gt;
 	delegation-only &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	forward ( first | only );&lt;br /&gt;
 	forwarders [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; ) [ port &amp;lt;integer&amp;gt; ]; ... };&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	type hint;&lt;br /&gt;
 	check-names ( fail | warn | ignore );&lt;br /&gt;
 	delegation-only &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	type redirect;&lt;br /&gt;
 	allow-query { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	dlz &amp;lt;string&amp;gt;;&lt;br /&gt;
 	file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	masterfile-format ( raw | text );&lt;br /&gt;
 	masterfile-style ( full | relative );&lt;br /&gt;
 	max-records &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-zone-ttl ( unlimited | &amp;lt;duration&amp;gt; );&lt;br /&gt;
 	primaries [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	zone-statistics ( full | terse | none | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	type static-stub;&lt;br /&gt;
 	allow-query { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	forward ( first | only );&lt;br /&gt;
 	forwarders [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; ) [ port &amp;lt;integer&amp;gt; ]; ... };&lt;br /&gt;
 	max-records &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	server-addresses { ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; ); ... };&lt;br /&gt;
 	server-names { &amp;lt;string&amp;gt;; ... };&lt;br /&gt;
 	zone-statistics ( full | terse | none | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	type stub;&lt;br /&gt;
 	allow-query { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	allow-query-on { &amp;lt;address_match_element&amp;gt;; ... };&lt;br /&gt;
 	check-names ( fail | warn | ignore );&lt;br /&gt;
 	database &amp;lt;string&amp;gt;;&lt;br /&gt;
 	delegation-only &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	dialup ( notify | notify-passive | passive | refresh | &amp;lt;boolean&amp;gt; ); // deprecated&lt;br /&gt;
 	file &amp;lt;quoted_string&amp;gt;;&lt;br /&gt;
 	forward ( first | only );&lt;br /&gt;
 	forwarders [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;ipv4_address&amp;gt; | &amp;lt;ipv6_address&amp;gt; ) [ port &amp;lt;integer&amp;gt; ]; ... };&lt;br /&gt;
 	masterfile-format ( raw | text );&lt;br /&gt;
 	masterfile-style ( full | relative );&lt;br /&gt;
 	max-records &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-idle-'''in''' &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	max-transfer-time-'''in''' &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	min-refresh-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	min-retry-time &amp;lt;integer&amp;gt;;&lt;br /&gt;
 	multi-master &amp;lt;boolean&amp;gt;;&lt;br /&gt;
 	primaries [ port &amp;lt;integer&amp;gt; ]  { ( &amp;lt;remote-servers&amp;gt; | &amp;lt;ipv4_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] | &amp;lt;ipv6_address&amp;gt; [ port &amp;lt;integer&amp;gt; ] ) [ key &amp;lt;string&amp;gt; ] [ tls &amp;lt;string&amp;gt; ]; ... };&lt;br /&gt;
 	transfer-source ( &amp;lt;ipv4_address&amp;gt; | * ) ;&lt;br /&gt;
 	transfer-source-v6 ( &amp;lt;ipv6_address&amp;gt; | * ) ;&lt;br /&gt;
 	use-alt-transfer-source &amp;lt;boolean&amp;gt;; // deprecated&lt;br /&gt;
 	zone-statistics ( full | terse | none | &amp;lt;boolean&amp;gt; );&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	type delegation-only;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
 zone &amp;lt;string&amp;gt; [ &amp;lt;class&amp;gt; ] {&lt;br /&gt;
 	'''in'''-view &amp;lt;string&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&amp;lt;code&amp;gt;/usr/local/etc/named.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
&amp;lt;code&amp;gt;named(8)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;named-checkconf(8)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rndc(8)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rndc-confgen(8)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tsig-keygen(8)&amp;lt;/code&amp;gt;, BIND 9 Administrator Reference Manual.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND_9_ARM_Manual_Page_v9.18.26&amp;diff=175</id>
		<title>BIND 9 ARM Manual Page v9.18.26</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND_9_ARM_Manual_Page_v9.18.26&amp;diff=175"/>
		<updated>2024-05-08T03:56:01Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“* arpaname - translate IP addresses to the corresponding ARPA names * ddns-confgen - TSIG key generation tool * delv - DNS lookup and validation utility * dig - DNS lookup utility * dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY * dnssec-dsfromkey - DNSSEC DS RR generation tool * dnssec-importkey - import DNSKEY records from external systems so they can be managed * dnssec-keyfromlabel - DNSSEC key generation tool * dnssec-keygen: DNSSEC k…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* arpaname - translate IP addresses to the corresponding ARPA names&lt;br /&gt;
* ddns-confgen - TSIG key generation tool&lt;br /&gt;
* delv - DNS lookup and validation utility&lt;br /&gt;
* dig - DNS lookup utility&lt;br /&gt;
* dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY&lt;br /&gt;
* dnssec-dsfromkey - DNSSEC DS RR generation tool&lt;br /&gt;
* dnssec-importkey - import DNSKEY records from external systems so they can be managed&lt;br /&gt;
* dnssec-keyfromlabel - DNSSEC key generation tool&lt;br /&gt;
* dnssec-keygen: DNSSEC key generation tool&lt;br /&gt;
* dnssec-revoke - set the REVOKED bit on a DNSSEC key&lt;br /&gt;
* dnssec-settime: set the key timing metadata for a DNSSEC key&lt;br /&gt;
* dnssec-signzone - DNSSEC zone signing tool&lt;br /&gt;
* dnssec-verify - DNSSEC zone verification tool&lt;br /&gt;
* dnstap-read - print dnstap data in human-readable form&lt;br /&gt;
* filter-aaaa.so - filter AAAA in DNS responses when A is present&lt;br /&gt;
* host - DNS lookup utility&lt;br /&gt;
* mdig - DNS pipelined lookup utility&lt;br /&gt;
* named-checkconf - named configuration file syntax checking tool&lt;br /&gt;
* named-checkzone - zone file validation tool&lt;br /&gt;
* named-compilezone - zone file converting tool&lt;br /&gt;
* named-journalprint - print zone journal in human-readable form&lt;br /&gt;
* named-nzd2nzf - convert an NZD database to NZF text format&lt;br /&gt;
* named-rrchecker - syntax checker for individual DNS resource records&lt;br /&gt;
* [[BIND 9 ARM Manual Page v9.18.26-Named.conf - configuration file for named|named.conf - configuration file for '''named''']]&lt;br /&gt;
* [[BIND 9 ARM Manual Page v9.18.26-Named - Internet domain name server|named - Internet domain name server]]&lt;br /&gt;
* nsec3hash - generate NSEC3 hash&lt;br /&gt;
* nslookup - query Internet name servers interactively&lt;br /&gt;
* nsupdate - dynamic DNS update utility&lt;br /&gt;
* rndc-confgen - rndc key generation tool&lt;br /&gt;
* rndc.conf - rndc configuration file&lt;br /&gt;
* rndc - name server control utility&lt;br /&gt;
* tsig-keygen - TSIG key generation tool&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND&amp;diff=174</id>
		<title>BIND</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND&amp;diff=174"/>
		<updated>2024-05-08T03:53:10Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[BIND 9 Release Note]]&lt;br /&gt;
&lt;br /&gt;
[[BIND 9 Administrator Reference Manual]]&lt;br /&gt;
&lt;br /&gt;
[[BIND 9 ARM Manual Page v9.18.26]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=173</id>
		<title>BIND v9 ARM Manual Page v9.18.26</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=173"/>
		<updated>2024-05-08T03:52:16Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[BIND v9 ARM Manual Page v9.18.26-Arpaname - translate IP addresses to the corresponding ARPA names|arpaname - translate IP addresses to the corresponding ARPA names]]&lt;br /&gt;
* [[ddns-confgen - TSIG key generation tool]]&lt;br /&gt;
* [[delv - DNS lookup and validation utility]]&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26-Dig - DNS lookup utility|dig - DNS lookup utility]]&lt;br /&gt;
* [[dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY]]&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26-Dnssec-dsfromkey - DNSSEC DS RR generation tool|dnssec-dsfromkey - DNSSEC DS RR generation tool]]&lt;br /&gt;
* dnssec-importkey - import DNSKEY records from external systems so they can be managed&lt;br /&gt;
* dnssec-keyfromlabel - DNSSEC key generation tool&lt;br /&gt;
* dnssec-keygen: DNSSEC key generation tool&lt;br /&gt;
* dnssec-revoke - set the REVOKED bit on a DNSSEC key&lt;br /&gt;
* dnssec-settime: set the key timing metadata for a DNSSEC key&lt;br /&gt;
* dnssec-signzone - DNSSEC zone signing tool&lt;br /&gt;
* dnssec-verify - DNSSEC zone verification tool&lt;br /&gt;
* dnstap-read - print dnstap data in human-readable form&lt;br /&gt;
* filter-aaaa.so - filter AAAA in DNS responses when A is present&lt;br /&gt;
* host - DNS lookup utility&lt;br /&gt;
* mdig - DNS pipelined lookup utility&lt;br /&gt;
* named-checkconf - named configuration file syntax checking tool&lt;br /&gt;
* named-checkzone - zone file validation tool&lt;br /&gt;
* named-compilezone - zone file converting tool&lt;br /&gt;
* named-journalprint - print zone journal in human-readable form&lt;br /&gt;
* named-nzd2nzf - convert an NZD database to NZF text format&lt;br /&gt;
* named-rrchecker - syntax checker for individual DNS resource records&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26 - Named.conf - configuration file for named|named.conf - configuration file for '''named''']]&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26-Named - Internet domain name server|named - Internet domain name server]]&lt;br /&gt;
* nsec3hash - generate NSEC3 hash&lt;br /&gt;
* nslookup - query Internet name servers interactively&lt;br /&gt;
* nsupdate - dynamic DNS update utility&lt;br /&gt;
* rndc-confgen - rndc key generation tool&lt;br /&gt;
* rndc.conf - rndc configuration file&lt;br /&gt;
* rndc - name server control utility&lt;br /&gt;
* tsig-keygen - TSIG key generation tool&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26-Named_-_Internet_domain_name_server&amp;diff=172</id>
		<title>BIND v9 ARM Manual Page v9.18.26-Named - Internet domain name server</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26-Named_-_Internet_domain_name_server&amp;diff=172"/>
		<updated>2024-05-08T03:51:14Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“ == named - Internet domain name server ==  === Synopsis === '''named''' [ ['''-4'''] | ['''-6'''] ] ['''-c''' config-file] ['''-C'''] ['''-d''' debug-level] ['''-D''' string] ['''-E''' engine-name] ['''-f'''] ['''-g'''] ['''-L''' logfile] ['''-M''' option] ['''-m''' flag] ['''-n''' #cpus] ['''-p''' port] ['''-s'''] ['''-t''' directory] ['''-U''' #listeners] ['''-u''' user] ['''-v'''] ['''-V'''] ['''-X''' lock-file]  === Description === '''named''' is…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== named - Internet domain name server ==&lt;br /&gt;
&lt;br /&gt;
=== Synopsis ===&lt;br /&gt;
'''named''' [ ['''-4'''] | ['''-6'''] ] ['''-c''' config-file] ['''-C'''] ['''-d''' debug-level] ['''-D''' string] ['''-E''' engine-name] ['''-f'''] ['''-g'''] ['''-L''' logfile] ['''-M''' option] ['''-m''' flag] ['''-n''' #cpus] ['''-p''' port] ['''-s'''] ['''-t''' directory] ['''-U''' #listeners] ['''-u''' user] ['''-v'''] ['''-V'''] ['''-X''' lock-file]&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
'''named''' is a Domain Name System (DNS) server, part of the BIND 9 distribution from ISC. For more information on the DNS, see '''&amp;lt;nowiki&amp;gt;RFC 1033&amp;lt;/nowiki&amp;gt;''', '''&amp;lt;nowiki&amp;gt;RFC 1034&amp;lt;/nowiki&amp;gt;''', and '''&amp;lt;nowiki&amp;gt;RFC 1035&amp;lt;/nowiki&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
When invoked without arguments, '''named''' reads the default configuration file &amp;lt;code&amp;gt;/usr/local/etc/named.conf&amp;lt;/code&amp;gt;, reads any initial data, and listens for queries.&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
; -4&lt;br /&gt;
: This option tells '''named''' to use only IPv4, even if the host machine is capable of IPv6. &amp;lt;code&amp;gt;-4&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-6&amp;lt;/code&amp;gt; are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
; -6&lt;br /&gt;
: This option tells '''named''' to use only IPv6, even if the host machine is capable of IPv4. &amp;lt;code&amp;gt;-4&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-6&amp;lt;/code&amp;gt; are mutually exclusive.&lt;br /&gt;
&lt;br /&gt;
; -c config-file&lt;br /&gt;
: This option tells '''named''' to use &amp;lt;code&amp;gt;config-file&amp;lt;/code&amp;gt; as its configuration file instead of the default, &amp;lt;code&amp;gt;/usr/local/etc/named.conf&amp;lt;/code&amp;gt;. To ensure that the configuration file can be reloaded after the server has changed its working directory due to to a possible &amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt; option in the configuration file, &amp;lt;code&amp;gt;config-file&amp;lt;/code&amp;gt; should be an absolute pathname.&lt;br /&gt;
&lt;br /&gt;
; -C&lt;br /&gt;
: This option prints out the default built-in configuration and exits.  NOTE: This is for debugging purposes only and is not an accurate representation of the actual configuration used by &amp;lt;code&amp;gt;named&amp;lt;/code&amp;gt; at runtime.&lt;br /&gt;
&lt;br /&gt;
; -d debug-level&lt;br /&gt;
: This option sets the daemon’s debug level to &amp;lt;code&amp;gt;debug-level&amp;lt;/code&amp;gt;. Debugging traces from '''named''' become more verbose as the debug level increases.&lt;br /&gt;
&lt;br /&gt;
; -D string&lt;br /&gt;
: This option specifies a string that is used to identify a instance of '''named''' in a process listing. The contents of &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; are not examined.&lt;br /&gt;
&lt;br /&gt;
; -E engine-name&lt;br /&gt;
: When applicable, this option specifies the hardware to use for cryptographic operations, such as a secure key store used for signing.  When BIND 9 is built with OpenSSL, this needs to be set to the OpenSSL engine identifier that drives the cryptographic accelerator or hardware service module (usually &amp;lt;code&amp;gt;pkcs11&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
; -f&lt;br /&gt;
: This option runs the server in the foreground (i.e., do not daemonize).&lt;br /&gt;
&lt;br /&gt;
; -g&lt;br /&gt;
: This option runs the server in the foreground and forces all logging to &amp;lt;code&amp;gt;stderr&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; -L logfile&lt;br /&gt;
: This option sets the log to the file &amp;lt;code&amp;gt;logfile&amp;lt;/code&amp;gt; by default, instead of the system log.&lt;br /&gt;
&lt;br /&gt;
; -M option&lt;br /&gt;
: This option sets the default (comma-separated) memory context options. The possible flags are:&lt;br /&gt;
:* &amp;lt;code&amp;gt;fill&amp;lt;/code&amp;gt;: fill blocks of memory with tag values when they are allocated or freed, to assist debugging of memory problems; this is the implicit default if '''named''' has been compiled with &amp;lt;code&amp;gt;--enable-developer&amp;lt;/code&amp;gt;.&lt;br /&gt;
:* &amp;lt;code&amp;gt;nofill&amp;lt;/code&amp;gt;: disable the behavior enabled by &amp;lt;code&amp;gt;fill&amp;lt;/code&amp;gt;; this is the implicit default unless '''named''' has been compiled with &amp;lt;code&amp;gt;--enable-developer&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; -m flag&lt;br /&gt;
: This option turns on memory usage debugging flags. Possible flags are &amp;lt;code&amp;gt;usage&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;trace&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;record&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;mctx&amp;lt;/code&amp;gt;. These correspond to the &amp;lt;code&amp;gt;ISC_MEM_DEBUGXXXX&amp;lt;/code&amp;gt; flags described in &amp;lt;code&amp;gt;&amp;lt;isc/mem.h&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; -n #cpus&lt;br /&gt;
: This option creates &amp;lt;code&amp;gt;#cpus&amp;lt;/code&amp;gt; worker threads to take advantage of multiple CPUs. If not specified, '''named''' tries to determine the number of CPUs present and creates one thread per CPU. If it is unable to determine the number of CPUs, a single worker thread is created.&lt;br /&gt;
&lt;br /&gt;
; -p value&lt;br /&gt;
: This option specifies the port(s) on which the server will listen for queries. If &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; is of the form &amp;lt;code&amp;gt;&amp;lt;portnum&amp;gt;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;dns=&amp;lt;portnum&amp;gt;&amp;lt;/code&amp;gt;, the server will listen for DNS queries on &amp;lt;code&amp;gt;portnum&amp;lt;/code&amp;gt;; if not not specified, the default is port 53. If &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; is of the form &amp;lt;code&amp;gt;tls=&amp;lt;portnum&amp;gt;&amp;lt;/code&amp;gt;, the server will listen for TLS queries on &amp;lt;code&amp;gt;portnum&amp;lt;/code&amp;gt;; the default is 853. If &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; is of the form &amp;lt;code&amp;gt;https=&amp;lt;portnum&amp;gt;&amp;lt;/code&amp;gt;, the server will listen for HTTPS queries on &amp;lt;code&amp;gt;portnum&amp;lt;/code&amp;gt;; the default is 443. If &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; is of the form &amp;lt;code&amp;gt;http=&amp;lt;portnum&amp;gt;&amp;lt;/code&amp;gt;, the server will listen for HTTP queries on &amp;lt;code&amp;gt;portnum&amp;lt;/code&amp;gt;; the default is 80.&lt;br /&gt;
&lt;br /&gt;
; -s&lt;br /&gt;
: This option writes memory usage statistics to &amp;lt;code&amp;gt;stdout&amp;lt;/code&amp;gt; on exit.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
This option is mainly of interest to BIND 9 developers and may be removed or changed in a future release.&lt;br /&gt;
&lt;br /&gt;
; -S #max-socks&lt;br /&gt;
: This option is deprecated and no longer has any function.&lt;br /&gt;
&lt;br /&gt;
Warning&lt;br /&gt;
&lt;br /&gt;
This option should be unnecessary for the vast majority of users. The use of this option could even be harmful, because the specified value may exceed the limitation of the underlying system API. It is therefore set only when the default configuration causes exhaustion of file descriptors and the operational environment is known to support the specified number of sockets. Note also that the actual maximum number is normally slightly fewer than the specified value, because '''named''' reserves some file descriptors for its internal use.&lt;br /&gt;
&lt;br /&gt;
; -t directory&lt;br /&gt;
: This option tells '''named''' to chroot to &amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt; after processing the command-line arguments, but before reading the configuration file.&lt;br /&gt;
&lt;br /&gt;
Warning&lt;br /&gt;
&lt;br /&gt;
This option should be used in conjunction with the &amp;lt;code&amp;gt;-u&amp;lt;/code&amp;gt; option, as chrooting a process running as root doesn’t enhance security on most systems; the way &amp;lt;code&amp;gt;chroot&amp;lt;/code&amp;gt; is defined allows a process with root privileges to escape a chroot jail.&lt;br /&gt;
&lt;br /&gt;
; -U #listeners&lt;br /&gt;
: This option tells '''named''' the number of &amp;lt;code&amp;gt;#listeners&amp;lt;/code&amp;gt; worker threads to listen on, for incoming UDP packets on each address. If not specified, '''named''' calculates a default value based on the number of detected CPUs: 1 for 1 CPU, and the number of detected CPUs minus one for machines with more than 1 CPU. This cannot be increased to a value higher than the number of CPUs. If &amp;lt;code&amp;gt;-n&amp;lt;/code&amp;gt; has been set to a higher value than the number of detected CPUs, then &amp;lt;code&amp;gt;-U&amp;lt;/code&amp;gt; may be increased as high as that value, but no higher.&lt;br /&gt;
&lt;br /&gt;
; -u user&lt;br /&gt;
: This option sets the setuid to &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; after completing privileged operations, such as creating sockets that listen on privileged ports.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
On Linux, '''named''' uses the kernel’s capability mechanism to drop all root privileges except the ability to &amp;lt;code&amp;gt;bind&amp;lt;/code&amp;gt; to a privileged port and set process resource limits. Unfortunately, this means that the &amp;lt;code&amp;gt;-u&amp;lt;/code&amp;gt; option only works when '''named''' is run on kernel 2.2.18 or later, or kernel 2.3.99-pre3 or later, since previous kernels did not allow privileges to be retained after &amp;lt;code&amp;gt;setuid&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; -v&lt;br /&gt;
: This option reports the version number and exits.&lt;br /&gt;
&lt;br /&gt;
; -V&lt;br /&gt;
: This option reports the version number, build options, supported cryptographics algorithms, and exits.&lt;br /&gt;
&lt;br /&gt;
; -X lock-file&lt;br /&gt;
: This option acquires a lock on the specified file at runtime; this helps to prevent duplicate '''named''' instances from running simultaneously. Use of this option overrides the &amp;lt;code&amp;gt;lock-file&amp;lt;/code&amp;gt; option in &amp;lt;code&amp;gt;named.conf&amp;lt;/code&amp;gt;. If set to &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt;, the lock file check is disabled.&lt;br /&gt;
&lt;br /&gt;
=== Signals ===&lt;br /&gt;
In routine operation, signals should not be used to control the nameserver; &amp;lt;code&amp;gt;rndc&amp;lt;/code&amp;gt; should be used instead.&lt;br /&gt;
&lt;br /&gt;
; SIGHUP&lt;br /&gt;
: This signal forces a reload of the server.&lt;br /&gt;
; SIGINT, SIGTERM&lt;br /&gt;
: These signals shut down the server.&lt;br /&gt;
&lt;br /&gt;
The result of sending any other signals to the server is undefined.&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The '''named''' configuration file is too complex to describe in detail here. A complete description is provided in the BIND 9 Administrator Reference Manual.&lt;br /&gt;
&lt;br /&gt;
'''named''' inherits the &amp;lt;code&amp;gt;umask&amp;lt;/code&amp;gt; (file creation mode mask) from the parent process. If files created by '''named''', such as journal files, need to have custom permissions, the &amp;lt;code&amp;gt;umask&amp;lt;/code&amp;gt; should be set explicitly in the script used to start the '''named''' process.&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;/usr/local/etc/named.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
: The default configuration file.&lt;br /&gt;
; &amp;lt;code&amp;gt;/usr/local/var/run/named.pid&amp;lt;/code&amp;gt;&lt;br /&gt;
: The default process-id file.&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
'''&amp;lt;nowiki&amp;gt;RFC 1033&amp;lt;/nowiki&amp;gt;''', '''&amp;lt;nowiki&amp;gt;RFC 1034&amp;lt;/nowiki&amp;gt;''', '''&amp;lt;nowiki&amp;gt;RFC 1035&amp;lt;/nowiki&amp;gt;''', &amp;lt;code&amp;gt;named-checkconf(8)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;named-checkzone(8)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;rndc(8)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;named.conf(5)&amp;lt;/code&amp;gt;, BIND 9 Administrator Reference Manual.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=171</id>
		<title>BIND v9 ARM Manual Page v9.18.26</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=171"/>
		<updated>2024-05-08T03:50:37Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[BIND v9 ARM Manual Page v9.18.26-Arpaname - translate IP addresses to the corresponding ARPA names|arpaname - translate IP addresses to the corresponding ARPA names]]&lt;br /&gt;
* [[ddns-confgen - TSIG key generation tool]]&lt;br /&gt;
* [[delv - DNS lookup and validation utility]]&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26-Dig - DNS lookup utility|dig - DNS lookup utility]]&lt;br /&gt;
* [[dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY]]&lt;br /&gt;
* dnssec-dsfromkey - DNSSEC DS RR generation tool&lt;br /&gt;
* dnssec-importkey - import DNSKEY records from external systems so they can be managed&lt;br /&gt;
* dnssec-keyfromlabel - DNSSEC key generation tool&lt;br /&gt;
* dnssec-keygen: DNSSEC key generation tool&lt;br /&gt;
* dnssec-revoke - set the REVOKED bit on a DNSSEC key&lt;br /&gt;
* dnssec-settime: set the key timing metadata for a DNSSEC key&lt;br /&gt;
* dnssec-signzone - DNSSEC zone signing tool&lt;br /&gt;
* dnssec-verify - DNSSEC zone verification tool&lt;br /&gt;
* dnstap-read - print dnstap data in human-readable form&lt;br /&gt;
* filter-aaaa.so - filter AAAA in DNS responses when A is present&lt;br /&gt;
* host - DNS lookup utility&lt;br /&gt;
* mdig - DNS pipelined lookup utility&lt;br /&gt;
* named-checkconf - named configuration file syntax checking tool&lt;br /&gt;
* named-checkzone - zone file validation tool&lt;br /&gt;
* named-compilezone - zone file converting tool&lt;br /&gt;
* named-journalprint - print zone journal in human-readable form&lt;br /&gt;
* named-nzd2nzf - convert an NZD database to NZF text format&lt;br /&gt;
* named-rrchecker - syntax checker for individual DNS resource records&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26 - Named.conf - configuration file for named|named.conf - configuration file for '''named''']]&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26-Named - Internet domain name server|named - Internet domain name server]]&lt;br /&gt;
* nsec3hash - generate NSEC3 hash&lt;br /&gt;
* nslookup - query Internet name servers interactively&lt;br /&gt;
* nsupdate - dynamic DNS update utility&lt;br /&gt;
* rndc-confgen - rndc key generation tool&lt;br /&gt;
* rndc.conf - rndc configuration file&lt;br /&gt;
* rndc - name server control utility&lt;br /&gt;
* tsig-keygen - TSIG key generation tool&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=170</id>
		<title>BIND v9 ARM Manual Page v9.18.26</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=170"/>
		<updated>2024-05-08T03:50:09Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[arpaname - translate IP addresses to the corresponding ARPA names]]&lt;br /&gt;
* [[ddns-confgen - TSIG key generation tool]]&lt;br /&gt;
* [[delv - DNS lookup and validation utility]]&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26-Dig - DNS lookup utility|dig - DNS lookup utility]]&lt;br /&gt;
* [[dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY]]&lt;br /&gt;
* dnssec-dsfromkey - DNSSEC DS RR generation tool&lt;br /&gt;
* dnssec-importkey - import DNSKEY records from external systems so they can be managed&lt;br /&gt;
* dnssec-keyfromlabel - DNSSEC key generation tool&lt;br /&gt;
* dnssec-keygen: DNSSEC key generation tool&lt;br /&gt;
* dnssec-revoke - set the REVOKED bit on a DNSSEC key&lt;br /&gt;
* dnssec-settime: set the key timing metadata for a DNSSEC key&lt;br /&gt;
* dnssec-signzone - DNSSEC zone signing tool&lt;br /&gt;
* dnssec-verify - DNSSEC zone verification tool&lt;br /&gt;
* dnstap-read - print dnstap data in human-readable form&lt;br /&gt;
* filter-aaaa.so - filter AAAA in DNS responses when A is present&lt;br /&gt;
* host - DNS lookup utility&lt;br /&gt;
* mdig - DNS pipelined lookup utility&lt;br /&gt;
* named-checkconf - named configuration file syntax checking tool&lt;br /&gt;
* named-checkzone - zone file validation tool&lt;br /&gt;
* named-compilezone - zone file converting tool&lt;br /&gt;
* named-journalprint - print zone journal in human-readable form&lt;br /&gt;
* named-nzd2nzf - convert an NZD database to NZF text format&lt;br /&gt;
* named-rrchecker - syntax checker for individual DNS resource records&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26 - Named.conf - configuration file for named|named.conf - configuration file for '''named''']]&lt;br /&gt;
* named - Internet domain name server&lt;br /&gt;
* nsec3hash - generate NSEC3 hash&lt;br /&gt;
* nslookup - query Internet name servers interactively&lt;br /&gt;
* nsupdate - dynamic DNS update utility&lt;br /&gt;
* rndc-confgen - rndc key generation tool&lt;br /&gt;
* rndc.conf - rndc configuration file&lt;br /&gt;
* rndc - name server control utility&lt;br /&gt;
* tsig-keygen - TSIG key generation tool&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=168</id>
		<title>BIND v9 ARM Manual Page v9.18.26</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=168"/>
		<updated>2024-05-08T03:46:23Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[arpaname - translate IP addresses to the corresponding ARPA names]]&lt;br /&gt;
* [[ddns-confgen - TSIG key generation tool]]&lt;br /&gt;
* [[delv - DNS lookup and validation utility]]&lt;br /&gt;
* [[dig - DNS lookup utility]]&lt;br /&gt;
* [[dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY]]&lt;br /&gt;
* dnssec-dsfromkey - DNSSEC DS RR generation tool&lt;br /&gt;
* dnssec-importkey - import DNSKEY records from external systems so they can be managed&lt;br /&gt;
* dnssec-keyfromlabel - DNSSEC key generation tool&lt;br /&gt;
* dnssec-keygen: DNSSEC key generation tool&lt;br /&gt;
* dnssec-revoke - set the REVOKED bit on a DNSSEC key&lt;br /&gt;
* dnssec-settime: set the key timing metadata for a DNSSEC key&lt;br /&gt;
* dnssec-signzone - DNSSEC zone signing tool&lt;br /&gt;
* dnssec-verify - DNSSEC zone verification tool&lt;br /&gt;
* dnstap-read - print dnstap data in human-readable form&lt;br /&gt;
* filter-aaaa.so - filter AAAA in DNS responses when A is present&lt;br /&gt;
* host - DNS lookup utility&lt;br /&gt;
* mdig - DNS pipelined lookup utility&lt;br /&gt;
* named-checkconf - named configuration file syntax checking tool&lt;br /&gt;
* named-checkzone - zone file validation tool&lt;br /&gt;
* named-compilezone - zone file converting tool&lt;br /&gt;
* named-journalprint - print zone journal in human-readable form&lt;br /&gt;
* named-nzd2nzf - convert an NZD database to NZF text format&lt;br /&gt;
* named-rrchecker - syntax checker for individual DNS resource records&lt;br /&gt;
* [[BIND v9 ARM Manual Page v9.18.26 - Named.conf - configuration file for named|named.conf - configuration file for '''named''']]&lt;br /&gt;
* named - Internet domain name server&lt;br /&gt;
* nsec3hash - generate NSEC3 hash&lt;br /&gt;
* nslookup - query Internet name servers interactively&lt;br /&gt;
* nsupdate - dynamic DNS update utility&lt;br /&gt;
* rndc-confgen - rndc key generation tool&lt;br /&gt;
* rndc.conf - rndc configuration file&lt;br /&gt;
* rndc - name server control utility&lt;br /&gt;
* tsig-keygen - TSIG key generation tool&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=Dig_-_DNS_lookup_utility&amp;diff=167</id>
		<title>Dig - DNS lookup utility</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=Dig_-_DNS_lookup_utility&amp;diff=167"/>
		<updated>2024-05-08T03:45:15Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“ == dig - DNS lookup utility ==  === Synopsis === '''dig''' [@server] ['''-b''' address] ['''-c''' class] ['''-f''' filename] ['''-k''' filename] ['''-m'''] ['''-p''' port#] ['''-q''' name] ['''-t''' type] ['''-v'''] ['''-x''' addr] ['''-y''' [hmac:]name:key] [ ['''-4'''] | ['''-6'''] ] [name] [type] [class] [queryopt…]  '''dig''' ['''-h''']  '''dig''' [global-queryopt…] [query…]  === Description === '''dig''' is a flexible tool for interrogating…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== dig - DNS lookup utility ==&lt;br /&gt;
&lt;br /&gt;
=== Synopsis ===&lt;br /&gt;
'''dig''' [@server] ['''-b''' address] ['''-c''' class] ['''-f''' filename] ['''-k''' filename] ['''-m'''] ['''-p''' port#] ['''-q''' name] ['''-t''' type] ['''-v'''] ['''-x''' addr] ['''-y''' [hmac:]name:key] [ ['''-4'''] | ['''-6'''] ] [name] [type] [class] [queryopt…]&lt;br /&gt;
&lt;br /&gt;
'''dig''' ['''-h''']&lt;br /&gt;
&lt;br /&gt;
'''dig''' [global-queryopt…] [query…]&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
'''dig''' is a flexible tool for interrogating DNS name servers. It performs DNS lookups and displays the answers that are returned from the name server(s) that were queried. Most DNS administrators use '''dig''' to troubleshoot DNS problems because of its flexibility, ease of use, and clarity of output. Other lookup tools tend to have less functionality than '''dig'''.&lt;br /&gt;
&lt;br /&gt;
Although '''dig''' is normally used with command-line arguments, it also has a batch mode of operation for reading lookup requests from a file. A brief summary of its command-line arguments and options is printed when the &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt; option is given. The BIND 9 implementation of '''dig''' allows multiple lookups to be issued from the command line.&lt;br /&gt;
&lt;br /&gt;
Unless it is told to query a specific name server, '''dig''' tries each of the servers listed in &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. If no usable server addresses are found, '''dig''' sends the query to the local host.&lt;br /&gt;
&lt;br /&gt;
When no command-line arguments or options are given, '''dig''' performs an NS query for “.” (the root).&lt;br /&gt;
&lt;br /&gt;
It is possible to set per-user defaults for '''dig''' via &amp;lt;code&amp;gt;${HOME}/.digrc&amp;lt;/code&amp;gt;. This file is read and any options in it are applied before the command-line arguments. The &amp;lt;code&amp;gt;-r&amp;lt;/code&amp;gt; option disables this feature, for scripts that need predictable behavior.&lt;br /&gt;
&lt;br /&gt;
The IN and CH class names overlap with the IN and CH top-level domain names. Either use the &amp;lt;code&amp;gt;-t&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt; options to specify the type and class, use the &amp;lt;code&amp;gt;-q&amp;lt;/code&amp;gt; to specify the domain name, or use “IN.” and “CH.” when looking up these top-level domains.&lt;br /&gt;
&lt;br /&gt;
=== Simple Usage ===&lt;br /&gt;
A typical invocation of '''dig''' looks like:&lt;br /&gt;
 dig @server name type&lt;br /&gt;
where:&lt;br /&gt;
&lt;br /&gt;
; server&lt;br /&gt;
: is the name or IP address of the name server to query. This can be an IPv4 address in dotted-decimal notation or an IPv6 address in colon-delimited notation. When the supplied &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt; argument is a hostname, '''dig''' resolves that name before querying that name server.  If no &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt; argument is provided, '''dig''' consults &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;; if an address is found there, it queries the name server at that address. If either of the &amp;lt;code&amp;gt;-4&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;-6&amp;lt;/code&amp;gt; options are in use, then only addresses for the corresponding transport are tried. If no usable addresses are found, '''dig''' sends the query to the local host. The reply from the name server that responds is displayed.&lt;br /&gt;
&lt;br /&gt;
; name&lt;br /&gt;
: is the name of the resource record that is to be looked up.&lt;br /&gt;
&lt;br /&gt;
; type&lt;br /&gt;
: indicates what type of query is required - ANY, A, MX, SIG, etc. &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; can be any valid query type. If no &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; argument is supplied, '''dig''' performs a lookup for an A record.&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
; -4&lt;br /&gt;
: This option indicates that only IPv4 should be used.&lt;br /&gt;
&lt;br /&gt;
; -6&lt;br /&gt;
: This option indicates that only IPv6 should be used.&lt;br /&gt;
&lt;br /&gt;
; -b address[#port]&lt;br /&gt;
: This option sets the source IP address of the query. The &amp;lt;code&amp;gt;address&amp;lt;/code&amp;gt; must be a valid address on one of the host’s network interfaces, or “0.0.0.0” or “::”. An optional port may be specified by appending &amp;lt;code&amp;gt;#port&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; -c class&lt;br /&gt;
: This option sets the query class. The default &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; is IN; other classes are HS for Hesiod records or CH for Chaosnet records.&lt;br /&gt;
&lt;br /&gt;
; -f file&lt;br /&gt;
: This option sets batch mode, in which '''dig''' reads a list of lookup requests to process from the given &amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;. Each line in the file should be organized in the same way it would be presented as a query to '''dig''' using the command-line interface.&lt;br /&gt;
&lt;br /&gt;
; -h&lt;br /&gt;
: Print a usage summary.&lt;br /&gt;
&lt;br /&gt;
; -k keyfile&lt;br /&gt;
: This option tells '''dig''' to sign queries using TSIG or SIG(0) using a key read from the given file. Key files can be generated using &amp;lt;code&amp;gt;tsig-keygen&amp;lt;/code&amp;gt;. When using TSIG authentication with '''dig''', the name server that is queried needs to know the key and algorithm that is being used. In BIND, this is done by providing appropriate &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;server&amp;lt;/code&amp;gt; statements in &amp;lt;code&amp;gt;named.conf&amp;lt;/code&amp;gt; for TSIG and by looking up the KEY record in zone data for SIG(0).&lt;br /&gt;
&lt;br /&gt;
; -m&lt;br /&gt;
: This option enables memory usage debugging.&lt;br /&gt;
&lt;br /&gt;
; -p port&lt;br /&gt;
: This option sends the query to a non-standard port on the server, instead of the default port 53. This option is used to test a name server that has been configured to listen for queries on a non-standard port number.&lt;br /&gt;
&lt;br /&gt;
; -q name&lt;br /&gt;
: This option specifies the domain name to query. This is useful to distinguish the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; from other arguments.&lt;br /&gt;
&lt;br /&gt;
; -r&lt;br /&gt;
: This option indicates that options from &amp;lt;code&amp;gt;${HOME}/.digrc&amp;lt;/code&amp;gt; should not be read. This is useful for scripts that need predictable behavior.&lt;br /&gt;
&lt;br /&gt;
; -t type&lt;br /&gt;
: This option indicates the resource record type to query, which can be any valid query type. If it is a resource record type supported in BIND 9, it can be given by the type mnemonic (such as &amp;lt;code&amp;gt;NS&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;AAAA&amp;lt;/code&amp;gt;). The default query type is &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt;, unless the &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt; option is supplied to indicate a reverse lookup. A zone transfer can be requested by specifying a type of AXFR. When an incremental zone transfer (IXFR) is required, set the &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ixfr=N&amp;lt;/code&amp;gt;. The incremental zone transfer contains all changes made to the zone since the serial number in the zone’s SOA record was &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;.  All resource record types can be expressed as &amp;lt;code&amp;gt;TYPEnn&amp;lt;/code&amp;gt;, where &amp;lt;code&amp;gt;nn&amp;lt;/code&amp;gt; is the number of the type. If the resource record type is not supported in BIND 9, the result is displayed as described in '''&amp;lt;nowiki&amp;gt;RFC 3597&amp;lt;/nowiki&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
; -u&lt;br /&gt;
: This option indicates that print query times should be provided in microseconds instead of milliseconds.&lt;br /&gt;
&lt;br /&gt;
; -v&lt;br /&gt;
: This option prints the version number and exits.&lt;br /&gt;
&lt;br /&gt;
; -x addr&lt;br /&gt;
: This option sets simplified reverse lookups, for mapping addresses to names. The &amp;lt;code&amp;gt;addr&amp;lt;/code&amp;gt; is an IPv4 address in dotted-decimal notation, or a colon-delimited IPv6 address. When the &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt; option is used, there is no need to provide the &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; arguments. '''dig''' automatically performs a lookup for a name like &amp;lt;code&amp;gt;94.2.0.192.in-addr.arpa&amp;lt;/code&amp;gt; and sets the query type and class to PTR and IN respectively. IPv6 addresses are looked up using nibble format under the IP6.ARPA domain.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;nowiki&amp;gt;-y [hmac:]keyname:secret&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
: This option signs queries using TSIG with the given authentication key. &amp;lt;code&amp;gt;keyname&amp;lt;/code&amp;gt; is the name of the key, and &amp;lt;code&amp;gt;secret&amp;lt;/code&amp;gt; is the base64-encoded shared secret. &amp;lt;code&amp;gt;hmac&amp;lt;/code&amp;gt; is the name of the key algorithm; valid choices are &amp;lt;code&amp;gt;hmac-md5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hmac-sha1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hmac-sha224&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hmac-sha256&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hmac-sha384&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;hmac-sha512&amp;lt;/code&amp;gt;. If &amp;lt;code&amp;gt;hmac&amp;lt;/code&amp;gt; is not specified, the default is &amp;lt;code&amp;gt;hmac-md5&amp;lt;/code&amp;gt;; if MD5 was disabled, the default is &amp;lt;code&amp;gt;hmac-sha256&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Only the &amp;lt;code&amp;gt;-k&amp;lt;/code&amp;gt; option should be used, rather than the &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt; option, because with &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt; the shared secret is supplied as a command-line argument in clear text. This may be visible in the output from &amp;lt;code&amp;gt;ps1&amp;lt;/code&amp;gt; or in a history file maintained by the user’s shell.&lt;br /&gt;
&lt;br /&gt;
=== Query Options ===&lt;br /&gt;
'''dig''' provides a number of query options which affect the way in which lookups are made and the results displayed. Some of these set or reset flag bits in the query header, some determine which sections of the answer get printed, and others determine the timeout and retry strategies.&lt;br /&gt;
&lt;br /&gt;
Each query option is identified by a keyword preceded by a plus sign (&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;). Some keywords set or reset an option; these may be preceded by the string &amp;lt;code&amp;gt;no&amp;lt;/code&amp;gt; to negate the meaning of that keyword. Other keywords assign values to options, like the timeout interval. They have the form &amp;lt;code&amp;gt;+keyword=value&amp;lt;/code&amp;gt;. Keywords may be abbreviated, provided the abbreviation is unambiguous; for example, &amp;lt;code&amp;gt;+cd&amp;lt;/code&amp;gt; is equivalent to &amp;lt;code&amp;gt;+cdflag&amp;lt;/code&amp;gt;. The query options are:&lt;br /&gt;
&lt;br /&gt;
; +aaflag, +noaaflag&lt;br /&gt;
: This option is a synonym for &amp;lt;code&amp;gt;+aaonly&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;+noaaonly&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +aaonly, +noaaonly&lt;br /&gt;
: This option sets the &amp;lt;code&amp;gt;aa&amp;lt;/code&amp;gt; flag in the query.&lt;br /&gt;
&lt;br /&gt;
; +additional, +noadditional&lt;br /&gt;
: This option displays [or does not display] the additional section of a reply. The default is to display it.&lt;br /&gt;
&lt;br /&gt;
; +adflag, +noadflag&lt;br /&gt;
: This option sets [or does not set] the AD (authentic data) bit in the query. This requests the server to return whether all of the answer and authority sections have been validated as secure, according to the security policy of the server. &amp;lt;code&amp;gt;AD=1&amp;lt;/code&amp;gt; indicates that all records have been validated as secure and the answer is not from a OPT-OUT range. &amp;lt;code&amp;gt;AD=0&amp;lt;/code&amp;gt; indicates that some part of the answer was insecure or not validated. This bit is set by default.&lt;br /&gt;
&lt;br /&gt;
; +all, +noall&lt;br /&gt;
: This option sets or clears all display flags.&lt;br /&gt;
&lt;br /&gt;
; +answer, +noanswer&lt;br /&gt;
: This option displays [or does not display] the answer section of a reply. The default is to display it.&lt;br /&gt;
&lt;br /&gt;
; +authority, +noauthority&lt;br /&gt;
: This option displays [or does not display] the authority section of a reply. The default is to display it.&lt;br /&gt;
&lt;br /&gt;
; +badcookie, +nobadcookie&lt;br /&gt;
: This option retries the lookup with a new server cookie if a BADCOOKIE response is received.&lt;br /&gt;
&lt;br /&gt;
; +besteffort, +nobesteffort&lt;br /&gt;
: This option attempts to display the contents of messages which are malformed. The default is to not display malformed answers.&lt;br /&gt;
&lt;br /&gt;
; +bufsize[=B]&lt;br /&gt;
: This option sets the UDP message buffer size advertised using EDNS0 to &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt; bytes. The maximum and minimum sizes of this buffer are 65535 and 0, respectively. &amp;lt;code&amp;gt;+bufsize&amp;lt;/code&amp;gt; restores the default buffer size.&lt;br /&gt;
&lt;br /&gt;
; +cd, +cdflag, +nocdflag&lt;br /&gt;
: This option sets [or does not set] the CD (checking disabled) bit in the query. This requests the server to not perform DNSSEC validation of responses.&lt;br /&gt;
&lt;br /&gt;
; +class, +noclass&lt;br /&gt;
: This option displays [or does not display] the CLASS when printing the record.&lt;br /&gt;
&lt;br /&gt;
; +cmd, +nocmd&lt;br /&gt;
: This option toggles the printing of the initial comment in the output, identifying the version of '''dig''' and the query options that have been applied. This option always has a global effect; it cannot be set globally and then overridden on a per-lookup basis. The default is to print this comment.&lt;br /&gt;
&lt;br /&gt;
; +comments, +nocomments&lt;br /&gt;
: This option toggles the display of some comment lines in the output, with information about the packet header and OPT pseudosection, and the names of the response section. The default is to print these comments.  Other types of comments in the output are not affected by this option, but can be controlled using other command-line switches. These include &amp;lt;code&amp;gt;+cmd&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;+question&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;+stats&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;+rrcomments&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +cookie=####, +nocookie&lt;br /&gt;
: This option sends [or does not send] a COOKIE EDNS option, with an optional value. Replaying a COOKIE from a previous response allows the server to identify a previous client. The default is &amp;lt;code&amp;gt;+cookie&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;+cookie&amp;lt;/code&amp;gt; is also set when &amp;lt;code&amp;gt;+trace&amp;lt;/code&amp;gt; is set to better emulate the default queries from a nameserver.&lt;br /&gt;
&lt;br /&gt;
; +crypto, +nocrypto&lt;br /&gt;
: This option toggles the display of cryptographic fields in DNSSEC records. The contents of these fields are unnecessary for debugging most DNSSEC validation failures and removing them makes it easier to see the common failures. The default is to display the fields. When omitted, they are replaced by the string &amp;lt;code&amp;gt;[omitted]&amp;lt;/code&amp;gt; or, in the DNSKEY case, the key ID is displayed as the replacement, e.g. &amp;lt;code&amp;gt;[ key id = value ]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +defname, +nodefname&lt;br /&gt;
: This option, which is deprecated, is treated as a synonym for &amp;lt;code&amp;gt;+search&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;+nosearch&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +dns64prefix, +nodns64prefix&lt;br /&gt;
: Lookup IPV4ONLY.ARPA AAAA and print any DNS64 prefixes found.&lt;br /&gt;
&lt;br /&gt;
; +dnssec, +do, +nodnssec, +nodo&lt;br /&gt;
: This option requests that DNSSEC records be sent by setting the DNSSEC OK (DO) bit in the OPT record in the additional section of the query.&lt;br /&gt;
&lt;br /&gt;
; +domain=somename&lt;br /&gt;
: This option sets the search list to contain the single domain &amp;lt;code&amp;gt;somename&amp;lt;/code&amp;gt;, as if specified in a &amp;lt;code&amp;gt;domain&amp;lt;/code&amp;gt; directive in &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;, and enables search list processing as if the &amp;lt;code&amp;gt;+search&amp;lt;/code&amp;gt; option were given.&lt;br /&gt;
&lt;br /&gt;
; +dscp=value&lt;br /&gt;
: This option formerly set the DSCP value used when sending a query. It is now obsolete, and has no effect.&lt;br /&gt;
&lt;br /&gt;
; +edns[=#], +noedns&lt;br /&gt;
: This option specifies the EDNS version to query with. Valid values are 0 to 255. Setting the EDNS version causes an EDNS query to be sent. &amp;lt;code&amp;gt;+noedns&amp;lt;/code&amp;gt; clears the remembered EDNS version. EDNS is set to 0 by default.&lt;br /&gt;
&lt;br /&gt;
; +ednsflags[=#], +noednsflags&lt;br /&gt;
: This option sets the must-be-zero EDNS flags bits (Z bits) to the specified value. Decimal, hex, and octal encodings are accepted. Setting a named flag (e.g., DO) is silently ignored. By default, no Z bits are set.&lt;br /&gt;
&lt;br /&gt;
; +ednsnegotiation, +noednsnegotiation&lt;br /&gt;
: This option enables/disables EDNS version negotiation. By default, EDNS version negotiation is enabled.&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;nowiki&amp;gt;+ednsopt[=code[:value]], +noednsopt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
: This option specifies the EDNS option with code point &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; and an optional payload of &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; as a hexadecimal string. &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt; can be either an EDNS option name (for example, &amp;lt;code&amp;gt;NSID&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ECS&amp;lt;/code&amp;gt;) or an arbitrary numeric value. &amp;lt;code&amp;gt;+noednsopt&amp;lt;/code&amp;gt; clears the EDNS options to be sent.&lt;br /&gt;
&lt;br /&gt;
; +expire, +noexpire&lt;br /&gt;
: This option sends an EDNS Expire option.&lt;br /&gt;
&lt;br /&gt;
; +fail, +nofail&lt;br /&gt;
: This option indicates that &amp;lt;code&amp;gt;named&amp;lt;/code&amp;gt; should try [or not try] the next server if a SERVFAIL is received. The default is to not try the next server, which is the reverse of normal stub resolver behavior.&lt;br /&gt;
&lt;br /&gt;
; +fuzztime[=value], +nofuzztime&lt;br /&gt;
: This option allows the signing time to be specified when generating signed messages. If a value is specified it is the seconds since 00:00:00 January 1, 1970 UTC ignoring leap seconds. If no value is specified 1646972129 (Fri 11 Mar 2022 04:15:29 UTC) is used. The default is &amp;lt;code&amp;gt;+nofuzztime&amp;lt;/code&amp;gt; and the current time is used.&lt;br /&gt;
&lt;br /&gt;
; +header-only, +noheader-only&lt;br /&gt;
: This option sends a query with a DNS header without a question section. The default is to add a question section. The query type and query name are ignored when this is set.&lt;br /&gt;
&lt;br /&gt;
; +https[=value], +nohttps&lt;br /&gt;
: This option indicates whether to use DNS over HTTPS (DoH) when querying name servers. When this option is in use, the port number defaults to 443. The HTTP POST request mode is used when sending the query.  If &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; is specified, it will be used as the HTTP endpoint in the query URI; the default is &amp;lt;code&amp;gt;/dns-query&amp;lt;/code&amp;gt;. So, for example, &amp;lt;code&amp;gt;dig @example.com +https&amp;lt;/code&amp;gt; will use the URI &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/dns-query&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +https-get[=value], +nohttps-get&lt;br /&gt;
: Similar to &amp;lt;code&amp;gt;+https&amp;lt;/code&amp;gt;, except that the HTTP GET request mode is used when sending the query.&lt;br /&gt;
&lt;br /&gt;
; +https-post[=value], +nohttps-post&lt;br /&gt;
: Same as &amp;lt;code&amp;gt;+https&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +http-plain[=value], +nohttp-plain&lt;br /&gt;
: Similar to &amp;lt;code&amp;gt;+https&amp;lt;/code&amp;gt;, except that HTTP queries will be sent over a non-encrypted channel. When this option is in use, the port number defaults to 80 and the HTTP request mode is POST.&lt;br /&gt;
&lt;br /&gt;
; +http-plain-get[=value], +nohttp-plain-get&lt;br /&gt;
: Similar to &amp;lt;code&amp;gt;+http-plain&amp;lt;/code&amp;gt;, except that the HTTP request mode is GET.&lt;br /&gt;
&lt;br /&gt;
; +http-plain-post[=value], +nohttp-plain-post&lt;br /&gt;
: Same as &amp;lt;code&amp;gt;+http-plain&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +identify, +noidentify&lt;br /&gt;
: This option shows [or does not show] the IP address and port number that supplied the answer, when the &amp;lt;code&amp;gt;+short&amp;lt;/code&amp;gt; option is enabled. If short form answers are requested, the default is not to show the source address and port number of the server that provided the answer.&lt;br /&gt;
&lt;br /&gt;
; +idnin, +noidnin&lt;br /&gt;
: This option processes [or does not process] IDN domain names on input. This requires &amp;lt;code&amp;gt;IDN SUPPORT&amp;lt;/code&amp;gt; to have been enabled at compile time.  The default is to process IDN input when standard output is a tty. The IDN processing on input is disabled when '''dig''' output is redirected to files, pipes, and other non-tty file descriptors.&lt;br /&gt;
&lt;br /&gt;
; +idnout, +noidnout&lt;br /&gt;
: This option converts [or does not convert] puny code on output. This requires &amp;lt;code&amp;gt;IDN SUPPORT&amp;lt;/code&amp;gt; to have been enabled at compile time.  The default is to process puny code on output when standard output is a tty. The puny code processing on output is disabled when '''dig''' output is redirected to files, pipes, and other non-tty file descriptors.&lt;br /&gt;
&lt;br /&gt;
; +ignore, +noignore&lt;br /&gt;
: This option ignores [or does not ignore] truncation in UDP responses instead of retrying with TCP. By default, TCP retries are performed.&lt;br /&gt;
&lt;br /&gt;
; +keepalive, +nokeepalive&lt;br /&gt;
: This option sends [or does not send] an EDNS Keepalive option.&lt;br /&gt;
&lt;br /&gt;
; +keepopen, +nokeepopen&lt;br /&gt;
: This option keeps [or does not keep] the TCP socket open between queries, and reuses it rather than creating a new TCP socket for each lookup. The default is &amp;lt;code&amp;gt;+nokeepopen&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +multiline, +nomultiline&lt;br /&gt;
: This option prints [or does not print] records, like the SOA records, in a verbose multi-line format with human-readable comments. The default is to print each record on a single line to facilitate machine parsing of the '''dig''' output.&lt;br /&gt;
&lt;br /&gt;
; +ndots=D&lt;br /&gt;
: This option sets the number of dots (&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;) that must appear in &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; for it to be considered absolute. The default value is that defined using the &amp;lt;code&amp;gt;ndots&amp;lt;/code&amp;gt; statement in &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;, or 1 if no &amp;lt;code&amp;gt;ndots&amp;lt;/code&amp;gt; statement is present. Names with fewer dots are interpreted as relative names, and are searched for in the domains listed in the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;domain&amp;lt;/code&amp;gt; directive in &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt; if &amp;lt;code&amp;gt;+search&amp;lt;/code&amp;gt; is set.&lt;br /&gt;
&lt;br /&gt;
; +nsid, +nonsid&lt;br /&gt;
: When enabled, this option includes an EDNS name server ID request when sending a query.&lt;br /&gt;
&lt;br /&gt;
; +nssearch, +nonssearch&lt;br /&gt;
: When this option is set, '''dig''' attempts to find the authoritative name servers for the zone containing the name being looked up, and display the SOA record that each name server has for the zone. Addresses of servers that did not respond are also printed.&lt;br /&gt;
&lt;br /&gt;
; +onesoa, +noonesoa&lt;br /&gt;
: When enabled, this option prints only one (starting) SOA record when performing an AXFR. The default is to print both the starting and ending SOA records.&lt;br /&gt;
&lt;br /&gt;
; +opcode=value, +noopcode&lt;br /&gt;
: When enabled, this option sets (restores) the DNS message opcode to the specified value. The default value is QUERY (0).&lt;br /&gt;
&lt;br /&gt;
; +padding=value&lt;br /&gt;
: This option pads the size of the query packet using the EDNS Padding option to blocks of &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; bytes. For example, &amp;lt;code&amp;gt;+padding=32&amp;lt;/code&amp;gt; causes a 48-byte query to be padded to 64 bytes. The default block size is 0, which disables padding; the maximum is 512. Values are ordinarily expected to be powers of two, such as 128; however, this is not mandatory. Responses to padded queries may also be padded, but only if the query uses TCP or DNS COOKIE.&lt;br /&gt;
&lt;br /&gt;
; +qid=value&lt;br /&gt;
: This option specifies the query ID to use when sending queries.&lt;br /&gt;
&lt;br /&gt;
; +qr, +noqr&lt;br /&gt;
: This option toggles the display of the query message as it is sent. By default, the query is not printed.&lt;br /&gt;
&lt;br /&gt;
; +question, +noquestion&lt;br /&gt;
: This option toggles the display of the question section of a query when an answer is returned. The default is to print the question section as a comment.&lt;br /&gt;
&lt;br /&gt;
; +raflag, +noraflag&lt;br /&gt;
: This option sets [or does not set] the RA (Recursion Available) bit in the query. The default is &amp;lt;code&amp;gt;+noraflag&amp;lt;/code&amp;gt;. This bit is ignored by the server for QUERY.&lt;br /&gt;
&lt;br /&gt;
; +rdflag, +nordflag&lt;br /&gt;
: This option is a synonym for &amp;lt;code&amp;gt;+recurse&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;+norecurse&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +recurse, +norecurse&lt;br /&gt;
: This option toggles the setting of the RD (recursion desired) bit in the query. This bit is set by default, which means '''dig''' normally sends recursive queries. Recursion is automatically disabled when the &amp;lt;code&amp;gt;+nssearch&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;+trace&amp;lt;/code&amp;gt; query option is used.&lt;br /&gt;
&lt;br /&gt;
; +retry=T&lt;br /&gt;
: This option sets the number of times to retry UDP and TCP queries to server to &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; instead of the default, 2. Unlike &amp;lt;code&amp;gt;+tries&amp;lt;/code&amp;gt;, this does not include the initial query.&lt;br /&gt;
&lt;br /&gt;
; +rrcomments, +norrcomments&lt;br /&gt;
: This option toggles the display of per-record comments in the output (for example, human-readable key information about DNSKEY records). The default is not to print record comments unless multiline mode is active.&lt;br /&gt;
&lt;br /&gt;
; +search, +nosearch&lt;br /&gt;
: This option uses [or does not use] the search list defined by the searchlist or domain directive in &amp;lt;code&amp;gt;resolv.conf&amp;lt;/code&amp;gt;, if any. The search list is not used by default.  &amp;lt;code&amp;gt;ndots&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;resolv.conf&amp;lt;/code&amp;gt; (default 1), which may be overridden by &amp;lt;code&amp;gt;+ndots&amp;lt;/code&amp;gt;, determines whether the name is treated as relative and hence whether a search is eventually performed.&lt;br /&gt;
&lt;br /&gt;
; +short, +noshort&lt;br /&gt;
: This option toggles whether a terse answer is provided. The default is to print the answer in a verbose form. This option always has a global effect; it cannot be set globally and then overridden on a per-lookup basis.&lt;br /&gt;
&lt;br /&gt;
; +showbadcookie, +noshowbadcookie&lt;br /&gt;
: This option toggles whether to show the message containing the BADCOOKIE rcode before retrying the request or not. The default is to not show the messages.&lt;br /&gt;
&lt;br /&gt;
; +showsearch, +noshowsearch&lt;br /&gt;
: This option performs [or does not perform] a search showing intermediate results.&lt;br /&gt;
&lt;br /&gt;
; +sigchase, +nosigchase&lt;br /&gt;
: This feature is now obsolete and has been removed; use &amp;lt;code&amp;gt;delv&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
; +split=W&lt;br /&gt;
: This option splits long hex- or base64-formatted fields in resource records into chunks of &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt; characters (where &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt; is rounded up to the nearest multiple of 4). &amp;lt;code&amp;gt;+nosplit&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;+split=0&amp;lt;/code&amp;gt; causes fields not to be split at all. The default is 56 characters, or 44 characters when multiline mode is active.&lt;br /&gt;
&lt;br /&gt;
; +stats, +nostats&lt;br /&gt;
: This option toggles the printing of statistics: when the query was made, the size of the reply, etc. The default behavior is to print the query statistics as a comment after each lookup.&lt;br /&gt;
&lt;br /&gt;
; +subnet=addr[/prefix-length], +nosubnet&lt;br /&gt;
: This option sends [or does not send] an EDNS CLIENT-SUBNET option with the specified IP address or network prefix.  &amp;lt;code&amp;gt;dig +subnet=0.0.0.0/0&amp;lt;/code&amp;gt;, or simply &amp;lt;code&amp;gt;dig +subnet=0&amp;lt;/code&amp;gt; for short, sends an EDNS CLIENT-SUBNET option with an empty address and a source prefix-length of zero, which signals a resolver that the client’s address information must ''not'' be used when resolving this query.&lt;br /&gt;
&lt;br /&gt;
; +tcflag, +notcflag&lt;br /&gt;
: This option sets [or does not set] the TC (TrunCation) bit in the query. The default is &amp;lt;code&amp;gt;+notcflag&amp;lt;/code&amp;gt;. This bit is ignored by the server for QUERY.&lt;br /&gt;
&lt;br /&gt;
; +tcp, +notcp&lt;br /&gt;
: This option indicates whether to use TCP when querying name servers. The default behavior is to use UDP unless a type &amp;lt;code&amp;gt;any&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ixfr=N&amp;lt;/code&amp;gt; query is requested, in which case the default is TCP. AXFR queries always use TCP. To prevent retry over TCP when TC=1 is returned from a UDP query, use &amp;lt;code&amp;gt;+ignore&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +timeout=T&lt;br /&gt;
: This option sets the timeout for a query to &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; seconds. The default timeout is 5 seconds. An attempt to set &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; to less than 1 is silently set to 1.&lt;br /&gt;
&lt;br /&gt;
; +tls, +notls&lt;br /&gt;
: This option indicates whether to use DNS over TLS (DoT) when querying name servers. When this option is in use, the port number defaults to 853.&lt;br /&gt;
&lt;br /&gt;
; +tls-ca[=file-name], +notls-ca&lt;br /&gt;
: This option enables remote server TLS certificate validation for DNS transports, relying on TLS. Certificate authorities certificates are loaded from the specified PEM file (&amp;lt;code&amp;gt;file-name&amp;lt;/code&amp;gt;). If the file is not specified, the default certificates from the global certificates store are used.&lt;br /&gt;
&lt;br /&gt;
; +tls-certfile=file-name, +tls-keyfile=file-name, +notls-certfile, +notls-keyfile&lt;br /&gt;
: These options set the state of certificate-based client authentication for DNS transports, relying on TLS. Both certificate chain file and private key file are expected to be in PEM format. Both options must be specified at the same time.&lt;br /&gt;
&lt;br /&gt;
; +tls-hostname=hostname, +notls-hostname&lt;br /&gt;
: This option makes '''dig''' use the provided hostname during remote server TLS certificate verification. Otherwise, the DNS server name is used. This option has no effect if &amp;lt;code&amp;gt;+tls-ca&amp;lt;/code&amp;gt; is not specified.&lt;br /&gt;
&lt;br /&gt;
; +topdown, +notopdown&lt;br /&gt;
: This feature is related to &amp;lt;code&amp;gt;dig +sigchase&amp;lt;/code&amp;gt;, which is obsolete and has been removed. Use &amp;lt;code&amp;gt;delv&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
; +trace, +notrace&lt;br /&gt;
: This option toggles tracing of the delegation path from the root name servers for the name being looked up. Tracing is disabled by default. When tracing is enabled, '''dig''' makes iterative queries to resolve the name being looked up. It follows referrals from the root servers, showing the answer from each server that was used to resolve the lookup.  If &amp;lt;code&amp;gt;@server&amp;lt;/code&amp;gt; is also specified, it affects only the initial query for the root zone name servers.  &amp;lt;code&amp;gt;+dnssec&amp;lt;/code&amp;gt; is also set when &amp;lt;code&amp;gt;+trace&amp;lt;/code&amp;gt; is set, to better emulate the default queries from a name server.&lt;br /&gt;
&lt;br /&gt;
; +tries=T&lt;br /&gt;
: This option sets the number of times to try UDP and TCP queries to server to &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; instead of the default, 3. If &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt; is less than or equal to zero, the number of tries is silently rounded up to 1.&lt;br /&gt;
&lt;br /&gt;
; +trusted-key=####&lt;br /&gt;
: This option formerly specified trusted keys for use with &amp;lt;code&amp;gt;dig +sigchase&amp;lt;/code&amp;gt;. This feature is now obsolete and has been removed; use &amp;lt;code&amp;gt;delv&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
; +ttlid, +nottlid&lt;br /&gt;
: This option displays [or does not display] the TTL when printing the record.&lt;br /&gt;
&lt;br /&gt;
; +ttlunits, +nottlunits&lt;br /&gt;
: This option displays [or does not display] the TTL in friendly human-readable time units of &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, representing seconds, minutes, hours, days, and weeks. This implies &amp;lt;code&amp;gt;+ttlid&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; +unknownformat, +nounknownformat&lt;br /&gt;
: This option prints all RDATA in unknown RR type presentation format ('''&amp;lt;nowiki&amp;gt;RFC 3597&amp;lt;/nowiki&amp;gt;'''). The default is to print RDATA for known types in the type’s presentation format.&lt;br /&gt;
&lt;br /&gt;
; +vc, +novc&lt;br /&gt;
: This option uses [or does not use] TCP when querying name servers. This alternate syntax to &amp;lt;code&amp;gt;+tcp&amp;lt;/code&amp;gt; is provided for backwards compatibility. The &amp;lt;code&amp;gt;vc&amp;lt;/code&amp;gt; stands for “virtual circuit.”&lt;br /&gt;
&lt;br /&gt;
; +yaml, +noyaml&lt;br /&gt;
: When enabled, this option prints the responses (and, if &amp;lt;code&amp;gt;+qr&amp;lt;/code&amp;gt; is in use, also the outgoing queries) in a detailed YAML format.&lt;br /&gt;
&lt;br /&gt;
; +zflag, +nozflag&lt;br /&gt;
: This option sets [or does not set] the last unassigned DNS header flag in a DNS query. This flag is off by default.&lt;br /&gt;
&lt;br /&gt;
=== Multiple Queries ===&lt;br /&gt;
The BIND 9 implementation of '''dig''' supports specifying multiple queries on the command line (in addition to supporting the &amp;lt;code&amp;gt;-f&amp;lt;/code&amp;gt; batch file option). Each of those queries can be supplied with its own set of flags, options, and query options.&lt;br /&gt;
&lt;br /&gt;
In this case, each &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; argument represents an individual query in the command-line syntax described above. Each consists of any of the standard options and flags, the name to be looked up, an optional query type and class, and any query options that should be applied to that query.&lt;br /&gt;
&lt;br /&gt;
A global set of query options, which should be applied to all queries, can also be supplied. These global query options must precede the first tuple of name, class, type, options, flags, and query options supplied on the command line. Any global query options (except &amp;lt;code&amp;gt;+cmd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;+short&amp;lt;/code&amp;gt; options) can be overridden by a query-specific set of query options. For example:&lt;br /&gt;
 dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr&lt;br /&gt;
shows how '''dig''' can be used from the command line to make three lookups: an ANY query for &amp;lt;code&amp;gt;www.isc.org&amp;lt;/code&amp;gt;, a reverse lookup of 127.0.0.1, and a query for the NS records of &amp;lt;code&amp;gt;isc.org&amp;lt;/code&amp;gt;. A global query option of &amp;lt;code&amp;gt;+qr&amp;lt;/code&amp;gt; is applied, so that '''dig''' shows the initial query it made for each lookup. The final query has a local query option of &amp;lt;code&amp;gt;+noqr&amp;lt;/code&amp;gt; which means that '''dig''' does not print the initial query when it looks up the NS records for &amp;lt;code&amp;gt;isc.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== IDN Support ===&lt;br /&gt;
If '''dig''' has been built with IDN (internationalized domain name) support, it can accept and display non-ASCII domain names. '''dig''' appropriately converts character encoding of a domain name before sending a request to a DNS server or displaying a reply from the server. To turn off IDN support, use the parameters &amp;lt;code&amp;gt;+idnin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;+idnout&amp;lt;/code&amp;gt;, or define the &amp;lt;code&amp;gt;IDN_DISABLE&amp;lt;/code&amp;gt; environment variable.&lt;br /&gt;
&lt;br /&gt;
=== Return Codes ===&lt;br /&gt;
'''dig''' return codes are:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
: DNS response received, including NXDOMAIN status&lt;br /&gt;
; &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
: Usage error&lt;br /&gt;
; &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
: Couldn’t open batch file&lt;br /&gt;
; &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
: No reply from server&lt;br /&gt;
; &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
: Internal error&lt;br /&gt;
&lt;br /&gt;
=== Files ===&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;${HOME}/.digrc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
&amp;lt;code&amp;gt;delv(1)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;host(1)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;named(8)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dnssec-keygen(8)&amp;lt;/code&amp;gt;, '''&amp;lt;nowiki&amp;gt;RFC 1035&amp;lt;/nowiki&amp;gt;'''.&lt;br /&gt;
&lt;br /&gt;
=== Bugs ===&lt;br /&gt;
There are probably too many query options.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=166</id>
		<title>BIND v9 ARM Manual Page v9.18.26</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND_v9_ARM_Manual_Page_v9.18.26&amp;diff=166"/>
		<updated>2024-05-08T03:42:41Z</updated>

		<summary type="html">&lt;p&gt;Admin：​创建页面，内容为“* arpaname - translate IP addresses to the corresponding ARPA names * ddns-confgen - TSIG key generation tool * delv - DNS lookup and validation utility * dig - DNS lookup utility * dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY * dnssec-dsfromkey - DNSSEC DS RR generation tool * dnssec-importkey - import DNSKEY records from external systems so they can be managed * dnssec-keyfromlabel - DNSSEC key generation tool * dns…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[arpaname - translate IP addresses to the corresponding ARPA names]]&lt;br /&gt;
* [[ddns-confgen - TSIG key generation tool]]&lt;br /&gt;
* [[delv - DNS lookup and validation utility]]&lt;br /&gt;
* [[dig - DNS lookup utility]]&lt;br /&gt;
* [[dnssec-cds - change DS records for a child zone based on CDS/CDNSKEY]]&lt;br /&gt;
* dnssec-dsfromkey - DNSSEC DS RR generation tool&lt;br /&gt;
* dnssec-importkey - import DNSKEY records from external systems so they can be managed&lt;br /&gt;
* dnssec-keyfromlabel - DNSSEC key generation tool&lt;br /&gt;
* dnssec-keygen: DNSSEC key generation tool&lt;br /&gt;
* dnssec-revoke - set the REVOKED bit on a DNSSEC key&lt;br /&gt;
* dnssec-settime: set the key timing metadata for a DNSSEC key&lt;br /&gt;
* dnssec-signzone - DNSSEC zone signing tool&lt;br /&gt;
* dnssec-verify - DNSSEC zone verification tool&lt;br /&gt;
* dnstap-read - print dnstap data in human-readable form&lt;br /&gt;
* filter-aaaa.so - filter AAAA in DNS responses when A is present&lt;br /&gt;
* host - DNS lookup utility&lt;br /&gt;
* mdig - DNS pipelined lookup utility&lt;br /&gt;
* named-checkconf - named configuration file syntax checking tool&lt;br /&gt;
* named-checkzone - zone file validation tool&lt;br /&gt;
* named-compilezone - zone file converting tool&lt;br /&gt;
* named-journalprint - print zone journal in human-readable form&lt;br /&gt;
* named-nzd2nzf - convert an NZD database to NZF text format&lt;br /&gt;
* named-rrchecker - syntax checker for individual DNS resource records&lt;br /&gt;
* named.conf - configuration file for '''named'''&lt;br /&gt;
* named - Internet domain name server&lt;br /&gt;
* nsec3hash - generate NSEC3 hash&lt;br /&gt;
* nslookup - query Internet name servers interactively&lt;br /&gt;
* nsupdate - dynamic DNS update utility&lt;br /&gt;
* rndc-confgen - rndc key generation tool&lt;br /&gt;
* rndc.conf - rndc configuration file&lt;br /&gt;
* rndc - name server control utility&lt;br /&gt;
* tsig-keygen - TSIG key generation tool&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.dnswiki.cn/index.php?title=BIND&amp;diff=165</id>
		<title>BIND</title>
		<link rel="alternate" type="text/html" href="https://www.dnswiki.cn/index.php?title=BIND&amp;diff=165"/>
		<updated>2024-05-08T02:42:46Z</updated>

		<summary type="html">&lt;p&gt;Admin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[BIND 9 Release Note]]&lt;br /&gt;
&lt;br /&gt;
[[BIND 9 Administrator Reference Manual]]&lt;br /&gt;
&lt;br /&gt;
[[BIND v9 ARM Manual Page v9.18.26]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>