我有大量 tinydns 格式的区域文件,我想知道是否有任何类似 lint 的工具来测试此类区域文件的正确性?
我可以用 perl 写一个,测试每一行“+”、“@”、“6”等的格式。但似乎应该存在一些东西。
欢迎任何指点。
更新:我已经编写了一个足以满足我需要的简单脚本:
我正在使用 TinyDNS,并成功使用了以下形式的通配符记录:
+*.<domain>:<ip>
Run Code Online (Sandbox Code Playgroud)
(+ 表示 A 记录。)
我还可以使用:
+development.*.<domain>:<ip>
Run Code Online (Sandbox Code Playgroud)
?
我的目的是让所有子域的开发网站在一个规则中指向我们的开发机器。
我有安装了 bind9 和 tinydns 的 ubuntu 机器,以及 dnscache。我现在正在尝试将 MX 记录添加到 bind9 区域文件。然而似乎没有任何效果。这是 tinydns 的数据文件
.tinyz:127.0.0.2:a:259200
.10.in-addr.arpa:127.0.0.2:a:259200
=tiger.tinyz:10.20.40.90:86400
&bindz.tinyz:10.11.12.13:a:259200
&11.10.in-addr.arpa::a.ns.bindz.tinyz:259200
Run Code Online (Sandbox Code Playgroud)
这是 bind9 的区域文件
$TTL 172800
$ORIGIN bindz.tinyz.
@ IN SOA a.ns.bindz.tinyz. hostmaster.tinyz. (
2009012701 ; Serial
10800 ; Refresh
3600 ; Retry
3600000 ; Expire
86400 ) ; Negative TTL
NS a.ns
a.ns A 10.11.12.13
www A 10.11.100.200
TXT "Administrator: Eve"
; This is a comment, please note the ";" which denotes a comment.
Run Code Online (Sandbox Code Playgroud)
我现在尝试在文件看起来像这样之后添加 mx 记录。
$TTL 172800
$ORIGIN bindz.tinyz. …Run Code Online (Sandbox Code Playgroud) djbdns/tinydns 是否支持大TXT记录,例如在提供长 DKIM 密钥时?
我知道 RFC 4408 第 3.1.3 节和 RFC 1035 第 3.3.14 节:
https://www.rfc-editor.org/rfc/rfc4408#section-3.1.3
https://www.rfc-editor.org/rfc/rfc1035#section-3.3.14
两者都表明TXT可以将一条记录拆分为多个字符串,以允许提供长(> 255 个字符)记录。
我在研究过程中也遇到了这个问题:
https://serverfault.com/questions/255580/how-do-i-enter-a-strong-long-dkim-key-into-dns
我尝试了接受的答案中提到的两种方法,带或不带括号。
但 djbdns 拒绝正确提供这些记录。例如,当使用查询我的域名密钥记录时,nslookup我得到:
mail03._domainkey.zygonia.net text =
""v=DKIM1; k=rsa; p=" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7UNgSlnndT9JY0soSjxLhFFnvAeVN8b6Y3oKctAunNltMjvXfTD37doER8a9xwEOIXkGPgxJ5UPb/KndvHiIo+j8AScoIZCW"
"glFWp4AUoKlQkKP7o7vwFnWypU+DmcJAtyuhZ9X5yzag37cVR"
"YD4icd02yAETLbIpv1mnMUFkTnkdmtSa5gL2cLUueUOValoENwkWTcZR" "+kraTEU/VDPI"
"RgNBu6OJmQdk0sv4qdkwVVvxvquT4C/SimQDoDaQwlFCp2sBryXyaNSRCaAhRxPaKUpKsPmubW0SJF2nQZ3DprJQcaRQLd9Qgxz+V+XaseaXXWPy+6"
"tB6BlPFk5FwIDAQAB""
*** Error: record size incorrect (515 != 419)
*** ns0.example.net can't find mail03._domainkey.zygonia.net: Unspecified error
Run Code Online (Sandbox Code Playgroud)
这是一个 DKIMTXT记录,如下所示:
"v=DKIM1; k=rsa; p=" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7UNgSlnndT9JY0soSjxLhFFnvAeVN8b6Y3oKctAunNltMjvXfTD37doER8a9xwEOIXkGPgxJ5UPb/KndvHiIo+j8AScoIZCW1glFWp4AUoKlQkKP7o7vwFnWypU+DmcJAtyuhZ9X5yzag37cVRGYD4icd02yAETLbIpv1mnMUFkTnkdmtSa5gL2cLUueUOValoENwkWTcZR" "+kraTEU/VDPIrRgNBu6OJmQdk0sv4qdkwVVvxvquT4C/SimQDoDaQwlFCp2sBryXyaNSRCaAhRxPaKUpKsPmubW0SJF2nQZ3DprJQcaRQLd9Qgxz+V+XaseaXXWPy+6rtB6BlPFk5FwIDAQAB"
Run Code Online (Sandbox Code Playgroud)
原始 djbdns 数据记录如下所示:
:mail03._domainkey.zygonia.net:16:\642"v=DKIM1;\040k=rsa;\040p="\040"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7UNgSlnndT9JY0soSjxLhFFnvAeVN8b6Y3oKctAunNltMjvXfTD37doER8a9xwEOIXkGPgxJ5UPb\057KndvHiIo+j8AScoIZCW1glFWp4AUoKlQkKP7o7vwFnWypU+DmcJAtyuhZ9X5yzag37cVRGYD4icd02yAETLbIpv1mnMUFkTnkdmtSa5gL2cLUueUOValoENwkWTcZR"\040"+kraTEU\057VDPIrRgNBu6OJmQdk0sv4qdkwVVvxvquT4C\057SimQDoDaQwlFCp2sBryXyaNSRCaAhRxPaKUpKsPmubW0SJF2nQZ3DprJQcaRQLd9Qgxz+V+XaseaXXWPy+6rtB6BlPFk5FwIDAQAB":600
Run Code Online (Sandbox Code Playgroud)
TXT当涉及到长记录时,djbdns 会失败吗?
花了 6 个小时将 djbdns(tinydns + dnscache)设置为辅助名称服务器。我设法拼凑了一个可行的解决方案,但我很困惑为什么它不能开箱即用。
主要和次要名称服务器都位于 Cisco ASA 后面,外部 IP 会通过 NAT 连接到适当的内部子网,在这种情况下,名称服务器是 DMZ。
主 NS 由 Plesk 类型的 CP 运行,因此 djbdns 配置都是 GUI,并且运行良好。现在,在我发现二级域名服务器托管的敲诈勒索之前,我一直在考虑将这项任务交给 3rd 方。不,谢谢,trop cher 为此免费。无论如何,您自己的时间:让一个文件服务器坐在 colo 机架上什么都不做,让我们开始工作吧。
按照本教程:
http://www.howtoforge.com/clean-djbdns-dns-server-on-centos-dnscache-and-tinydns-a-to-z
我把所有东西都安装好了;但是,没有任何效果,或者至少只针对 localhost 进行了挖掘。我需要 dig@dmz-ip foo.com 来解决。
不知道有什么更好的,我破解了 dnscache 和 tindns env/IP 文件,将它们反转,所以 tinydns 在 localhost 上监听 dmz 和 dnscache。重新启动服务和瞧,能够从远程笔记本电脑挖掘到辅助名称服务器 IP 并解析我们托管的域,太棒了。
所以,我想,好吧,我应该正确地做这件事,把所有东西都吹走,重新安装,并设置 tinydns 来监听 localhost 上的 dmz 和 dnscache(就像我在手动破解 env/IP 文件时所做的那样)。试图挖掘@localhost foo.com, nada; dig@dmz-ip foo.com 也是一样。跆拳道?是的,wtf。在 Noob 模式下,我在 localhost 上尝试了 tindyns,无论是在 dmz 上,还是在 dmz 等上,都没有任何效果。
最后,我在 dmz …