TinyDNS 格式
TinyDNS 数据文件
tinydns 数据的官方数据格式记录在 https://cr.yp.to/djbdns/tinydns-data.html。 有关特定字段的更多信息,请参阅本文底部的注释。
SOA 记录
`Zfqdn:nameserver:contactinfo:serial:retry:expire:min:ttl:timestamp:lo`
Zmy.example.net:208.210.221.65:abuse.example.net
Question: Zmy.example.net. my.example.net. +2560 soa 208.210.221.65. abuse@example.net. 1206390017 16384 2048 1048576 2560
Zmy.example.net:208.210.221.65:abuse.example.net:2008032201:1000:2000:3000:4000
my.example.net. +2560 soa 208.210.221.65. abuse@example.net. 2008032201 1000 2000 3000 4000
A、NS 记录组合
`&fqdn:ip:x:ttl:timestamp:lo`
创建 A 和 NS 记录。 通常用于委派子域名。 可以与 Z 结合使用以完成与上述组合相同的事情,但使用不同的电子邮件地址。
&my.example.net:208.210.221.65:something
# Question: Zmy.example.net. # NS replies: my.example.net. +259200 ns something.ns.my.example.net. # AR replies: #something.ns.my.example.net. +259200 a 208.210.221.65
&my.example.net:208.210.221.65:ns1.somewhere.com:3600
# Question: Zmy.example.net. # NS replies: my.example.net. +3600 ns ns1.somewhere.com. # AR replies: #ns1.somewhere.com. +3600 a 208.210.221.65
A 和 PTR 记录
`=fqdn:ip:ttl:timestamp:lo`
=alpha.my.example.net:192.168.1.1
Question: Zalpha.my.example.net. alpha.my.example.net. +86400 a 192.168.1.1 # Question: Z1.1.168.192.in-addr.arpa. 1.1.168.192.in-addr.arpa. +86400 ptr alpha.my.example.net
要返回 PTR 记录,您必须定义相应的 SOA 记录
Zmy.example.net:ns1.my.example.net:abuse.example.net &my.example.net:208.210.221.65:ns1.my.example.net Z168.192.in-addr.arpa:ns1.my.example.net:abuse.example.net &168.192.in-addr.arpa:208.210.221.65:ns1.my.example.net
A 记录
`+fqdn:ip:ttl:timestamp:lo`
+alpha.my.example.net:192.168.1.1
Question: Zalpha.my.example.net. alpha.my.example.net. +86400 a 192.168.1.1
MX 记录
`@fqdn:ip:x:dist:ttl:timestamp:lo`
@my.example.net:208.210.221.77:something
Question: @my.example.net. my.example.net. +86400 mx 0 something.mx.my.example.net.
@my.example.net:208.210.221.77:mx1.my.example.net:10
@my.example.net:208.210.221.78:mx2.my.example.net:20
Question: @my.example.net. my.example.net. +86400 mx 10 mx1.my.example.net. my.example.net. +86400 mx 20 mx2.my.example.net. # AR replies: #mx1.my.example.net. +86400 a 208.210.221.77 #mx2.my.example.net. +86400 a 208.210.221.78
CNAME
`Cfqdn:x:ttl:timestamp:lo`
Cmailserver.my.example.net:yourmailserver.somewhere.com
Question: Zmailserver.my.example.net. mailserver.my.example.net. +86400 cname yourmailserver.somewhere.com.
TXT
`'fqdn:s:ttl:timestamp:lo`
'my.example.net:请不要打扰我们,我们知道我们的 DNS 已损坏
Question: Tmy.example.net my.example.net. +86400 txt 'Please do not bug us we know our DNS is broken'
SRV
Sfqdn:ip:x:port:priority:weight:ttl:timestamp
ip、x、ttl 和 timestamp 的标准规则适用。 端口、优先级和权重范围均为 0-65535。 优先级和权重是可选的; 如果未提供,则默认为零。
Sconsole.zoinks.example.com:1.2.3.4:rack102-con1:2001:7:69:300
query: 33 console.zoinks.example.com answer: console.zoinks.example.com 300 SRV 7 69 2001 rack102-con1.example.com
NAPTR
`Nfqdn:order:pref:flags:service:regexp:replacement:ttl:timestamp`
ttl 和 timestamp 的相同标准规则适用。 顺序和偏好(可选)范围为 0-65535,如果未提供,则默认为零。 Flags、service 和 replacement 是字符串。 如果未提供,则 replacement 默认为“.”的 fqdn。
Nsomedomain.org:100:90:s:SIP+D2U::_sip._udp.somedomain.org
query: 35 somedomain.org answer: somedomain.org 78320 NAPTR 100 90 "s" "SIP+D2U" "" _sip._tcp.somedomain.org
Ncid.urn.arpa:100:10:::!^urn\058cid\058.+@([^\.]+\.)(.*)$!\2!i
AAAA
`:fqdn:28:location:ttl`
这些记录用于解析 IPv6 地址。
:alpha.my.example.net:28:\050\001\103\000\302\072\000\077\105\052\064\355\256\064\063\124:86400
query: alpha.my.example.net IN ANY answer: alpha.my.example.net. 86400 IN AAAA 2801:4300:c23a:3f:452a:34ed:ae34:3354
注释
每行以一个字符开头,并以冒号分隔的字段继续。 行尾的空格和制表符将被忽略。 空白行也会被忽略。
timestamp 是可选的 TAI64(十六进制格式)时间戳。 如果给出了时间戳,则 TTL 具有特殊含义
- 如果 TTL 为非零或省略,则时间戳是此记录“生效”的时间
- 如果 TTL 为零,则时间戳是“失效时间”,即不再提供记录的时间。 TinyDNS 将动态调整 TTL,以便 DNS 记录不会缓存超过“失效时间”
lo 是一个可选的位置字段。 如果客户端位于该位置之外,则记录将被忽略。 lo 可以是一个或两个字符。 例如,
%in:192.168 %ex +www.mydomain.com:192.168.1.1:::in +www.mydomain.com:200.20.32.1:::ex
指定 www.mydomain.com 对于 192.168.0.0/16 地址范围内的客户端的地址为 192.168.1.1,对于所有其他客户端的地址为 200.20.32.1。
在带有“x”的行中,如果“x”包含点,则“x”用作服务器名称,而不是“x”.[something].fqdn。 如果 x 在数据文件的其他位置分配了 IP 地址,则应省略 ip。
允许使用 *.fqdn 形式的通配符,并将解析除那些具有自己的记录或更具体的通配符之外的任何地址。
+www.mydomain.com:200.3.1.1 +*.mydomain.com:127.0.0.1
会将用户发送到他的本地计算机以访问 foo.mydomain.com、mx.mydomain.com,实际上是 ANYTHING.mydomain.com,但 www.mydomain.com 除外