如何在djbdns或djbdns-fefe环境中配置IPv6 MX记录?
我完全理解你不想放弃djbdns或djbdns-fefe的心情,确实这两款工具在IPv6 MX记录的支持上有原生限制,但并非完全没有变通方案,咱们分情况来看:
针对djbdns-fefe的可行方案
djbdns-fefe已经支持直接创建AAAA记录,咱们可以绕过它自动生成MX关联A记录的逻辑,手动拆分步骤来实现IPv6 MX:
手动创建AAAA记录:先给你的邮件服务器域名添加一条AAAA记录,比如你想让
mx.example.com指向IPv6地址2001:db8::1,可以在tinydns的数据文件里添加这样的条目:&mx.example.com::2001:db8::1:86400这里的
86400是TTL值,你可以根据需求调整。手动添加MX记录:接着直接创建指向上述域名的MX记录,不需要依赖工具自动生成A记录的逻辑,条目格式如下:
@example.com:mx.example.com:0:86400这条命令会生成
example.com. IN MX 86400 0 mx.example.com.的MX记录,而mx.example.com的AAAA记录已经由你手动配置好了,这样DNS查询时就能通过MX找到对应的IPv6地址。
针对原生djbdns的限制
原生djbdns既不支持创建AAAA记录,也没有办法让MX记录指向仅含IPv6地址的域名,所以原生环境下确实无法实现IPv6 MX记录,如果必须用原生djbdns,可能只能暂时放弃IPv6 MX的需求,或者考虑给邮件服务器同时配置IPv4地址来兼容。
额外的可选思路
如果你愿意折腾,还可以找找社区推出的djbdns补丁,有些第三方补丁扩展了tinydns的功能,允许tinydns-edit接受IPv6地址用于NS或MX记录,或者直接支持在MX配置中关联AAAA记录。不过这类补丁需要你自行编译修改后的djbdns版本,风险和复杂度会高一些。
备注:内容来源于stack exchange,提问作者HippoMan

