tinydns 仅回答了几个查询,然后记录 0000 / 0000(无法解析查询)

tinydns 仅回答了几个查询,然后记录 0000 / 0000(无法解析查询)

每次重新启动 tinydns 时都会发生这种情况:

2023-11-08 13:36:48.528525500 starting tinydns
2023-11-08 13:36:48.532457500 ff9ea461:d90c:3be5 + 001c mydomain.ca
2023-11-08 13:36:48.655592500 ff0c2164:7ed2:a831 + 0001 b.ns.otherdomain.com
2023-11-08 13:36:48.763519500 ff0c2164:67b7:479c + 001c a.ns.otherdomain.com
2023-11-08 13:36:50.370836500 ff1514a6:faea:296a + 0001 differentone.ca
2023-11-08 13:36:50.783076500 ff6ace95:97d5:0000 / 0000 .
2023-11-08 13:36:50.840002500 ff6ace98:2c61:0000 / 0000 .
2023-11-08 13:36:50.874248500 ff6ace49:5c57:0000 / 0000 .

并且 0000 / 0000 行将继续用于所有其他查询(几天或几周后才重新启动)。

这可能与将 Ubuntu 20.04 升级到 22.04(即内核 5.4.0 升级到 5.15.0)同时开始。我从 2002 年左右开始在各种服务器上运行 djbdns,在本例中是在 Ubuntu virtualbox VM 上运行。它是从 djb 的 1.05 .tar.gz 构建的,除了臭名昭著的 errno.h 更改外什么都没有。

答案1

有一个解决方案:Qmail 邮件列表存档
我使用了“lenin at hasiru”的 djbdnslimit.patch

按照他的指示:

tar zxvf djbdns-1.05.tar.gz
wget http://hasiru.net/djbdnslimit.patch
patch -p0 <djbdnslimit.patch
cd djbdns-1.05
echo gcc -O2 -include /usr/include/errno.h > conf-cc 

然后我必须做出改变error.h

old: extern int errno;
new: #include <errno.h>

最后:

make setup check

还必须更改我的/service/tinydns/run文件以便softlimit -d600000

tinydns 在回答 6-20 个查询后始终停止回答查询(记录[...] 0000 / 0000 .)。现在它很稳定。

相关内容