← RFC Reference

RFC 5782:基于DNS的黑名单和白名单

Informational DNS & Mail Routing Published March 2026
ELI5: 想象一个共享电话簿,标记哪些电话号码是已知的电话推销员。当你接到电话时,查一下号码。DNSBL 的工作原理相同——邮件服务器在基于 DNS 的列表中查找发件人的 IP 地址,以决定该邮件是否可能是垃圾邮件或合法邮件,这一切都在毫秒内完成,使用普通 DNS 查询。

为什么存在这个

垃圾邮件过滤需要关于发送IP地址和域名的实时信誉数据。在DNSBLs之前,每个组织都必须维护自己的黑名单。这无法扩展——有数十亿个IP地址和数千个邮件服务器需要相同的信息。

基于DNS的列表通过将信誉数据发布为DNS记录来解决这个问题。任何邮件服务器都可以在SMTP事务期间以近乎零的延迟查询它们,使用它已经依赖的相同DNS基础设施。RFC 5782记录了这些列表的工作原理,涵盖:

工作原理

要查询DNSBL,接收邮件服务器反转发送者IP地址的八位组并附加列表的区域名称,然后执行DNS A记录查找。

IP地址查找

要检查203.0.113.42是否在zen.spamhaus.org上被列出:

查询:   42.113.0.203.zen.spamhaus.org  A
应答:  127.0.0.2

八位组被反转(就像in-addr.arpa PTR记录一样)。127.0.0.0/8范围内的响应表示IP被列出。特定的返回值编码列表原因。NXDOMAIN响应表示IP未被列出。

返回代码含义(Spamhaus示例)

返回代码 Spamhaus列表 含义
127.0.0.2 SBL 直接垃圾邮件源,已验证
127.0.0.3 SBL CSS 由自动化系统识别的垃圾邮件源
127.0.0.4 XBL (CBL) 被入侵的主机(恶意软件、僵尸网络、开放代理)
127.0.0.10 PBL 终端用户IP范围,不应直接发送邮件

TXT记录以获取详情

相应的TXT查找返回人类可读的解释,通常包含一个取消列表的URL:

查询:   42.113.0.203.zen.spamhaus.org  TXT
应答:  "Listed at https://www.spamhaus.org/query/ip/203.0.113.42"

基于域名的查找

某些列表(如Spamhaus DBL或SURBL)列出域名而不是IP。域名直接预置到列表区域:

查询:   baddomain.example.dbl.spamhaus.org  A
应答:  127.0.1.2  (垃圾域名)

关键技术细节

电子邮件中使用的主要DNSBLs

列表 类型 列出内容
Spamhaus ZEN IP黑名单 SBL + XBL + PBL的组合(最广泛使用)
Spamhaus DBL 域名黑名单 在垃圾邮件内容和标题中发现的域名
Barracuda BRBL IP黑名单 向Barracuda蜜罐发送垃圾邮件的IP
SpamCop IP黑名单 由SpamCop用户报告的IP(自动过期)
SURBL URI黑名单 在垃圾邮件消息体中发现的域名
dnswl.org IP白名单 已验证的合法邮件发送者(DNSWL)

查询机制

IPv6支持

IPv6地址被扩展为完整的32个半字节形式,按半字节反转,并附加到区域。例如,2001:db8::1变成:

查询:   1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.zen.spamhaus.org  A

常见错误

可交付性影响

Related RFCs