DNSBL 回傳碼說明:127.0.0.2、127.255.255.x 與 NXDOMAIN
DNSBL 查詢若回傳 127.0.0.0/8 範圍內的位址,代表該 IP 或網域已被列入;若回應為 NXDOMAIN,則代表未被列入。除此之外,確切的數字因清單而異,部分 127.x 的回應是錯誤碼而不是列入,而 SERVFAIL 或逾時則完全無法說明列入狀態。
本文說明 RFC 5782 所記載的慣例,以及 Spamhaus、SpamCop 與 UCEPROTECT 在其官方頁面上公布的回傳碼。內容依據這些官方頁面在 2026 年 11 月時的資訊。各清單的資料與政策會變動,依據查詢結果採取行動前,請先查閱營運者的說明文件。如果需要先了解封鎖清單的運作方式,請從什麼是 DNSBL(RBL)開始閱讀。
基本概念:RFC 5782 對回傳碼的說明
RFC 5782 發布於 2010 年 2 月,說明 DNS 黑名單與白名單的查詢方式及其回應的形式。它是資訊性(Informational)文件,而不是標準化路線(Standards Track)的規格:它記錄的是常見做法,而具體的值如何分配,則交由各清單營運者決定。
查詢名稱的組成方式
對於 IPv4,請將各位元組的順序反轉,再加上清單的區域名稱。若要針對 bl.example.com 檢查 192.0.2.99:
dig +short 99.2.0.192.bl.example.com A
dig +short 99.2.0.192.bl.example.com TXT對於 IPv6,位址會寫成 32 個十六進位 nibble 並反轉順序,後面接上區域名稱。網域型清單則只是在網域名稱後面接上區域名稱;RFC 指出,以名稱為對象的清單遠比以 IP 為對象的清單少見。
A 記錄:是否被列入
- 已列入:清單會回傳 A 記錄。RFC 指出,為了避免產生不必要的網路流量,所有 A 記錄的值應位於 127.0.0.0/8 範圍內,而且依照慣例為 127.0.0.2。
- 未列入:該位址不得有任何記錄。以 DNS 的用語來說,回應為 NXDOMAIN,也就是該名稱不存在。
- A 記錄的值不得當作 IP 位址使用。127.0.0.2 是一個旗標,而不是可以連線的伺服器。
TXT 記錄:原因與網址
根據 RFC,DNSBL 應發布說明項目被列入原因的 TXT 記錄,而這段原因經常會附上提供更多資訊的網址。用戶端軟體必須檢查 A 記錄,也可以檢查 TXT 記錄。TXT 的文字經常被用於 SMTP 錯誤訊息中,因此退信訊息裡可能會包含取自該記錄的查詢或移除網址。
為什麼各清單回傳的數字不同:子清單與位元遮罩
127.0.0.2 以外的值,通常代表該區域整合了多份子清單。RFC 5782 描述了三種表示方式:子網域、多筆 A 記錄,以及以位元編碼的值。
- 多筆 A 記錄:每份子清單都有自己的值,位址出現在幾份子清單上,清單就會回傳幾筆 A 記錄。
- 位元遮罩:每份子清單分配一個位元,回應是所有命中子清單之位元的邏輯 OR。在 RFC 的範例中,同時列在 127.0.0.2 與 127.0.0.4 子清單上的位址,會回傳 127.0.0.6。
關鍵在於,RFC 本身就指出並沒有廣泛使用的慣例,規定子清單名稱與值的對應方式。同一個數字在不同清單上可能代表不同的意義。請務必將回傳碼與產生該回傳碼的區域一起解讀,並對照該清單自己的說明文件。RFC 也指出,用戶端軟體應能對回傳值套用位元遮罩與數值範圍的判斷。
Spamhaus ZEN 是多重回應方式的好例子。其說明文件指出,一次查詢通常會在同一個 DNS 回應中產生多個不同的回應,IP 被列在哪些資料集上,就各有一個回應,而每個資料集的回傳碼都不同。同時看到兩三個代碼是正常的。
主要封鎖清單的回傳碼
下表整理了各營運者在官方頁面上公布的回傳碼。
| 清單(區域) | 回傳碼 | 意義(依營運者說明) |
|---|---|---|
| Spamhaus ZEN(zen.spamhaus.org) | 127.0.0.2 | SBL |
| Spamhaus ZEN | 127.0.0.3 | CSS |
| Spamhaus ZEN | 127.0.0.4 | XBL(CBL 資料) |
| Spamhaus ZEN | 127.0.0.9 | DROP,與 127.0.0.2 一起回傳 |
| Spamhaus ZEN | 127.0.0.10 / 127.0.0.11 | PBL(ISP 維護 / Spamhaus 維護) |
| Spamhaus DBL(dbl.spamhaus.org) | 127.0.1.2、127.0.1.4 至 127.0.1.6 | 低信譽網域:垃圾郵件、網路釣魚、惡意程式、殭屍網路 C&C |
| Spamhaus DBL | 127.0.1.102 至 127.0.1.106 | 遭濫用的正當網域(127.0.1.103:被用於垃圾郵件的遭濫用轉址器網域) |
| Spamhaus DBL | 127.0.1.255 | 以 IP 位址查詢 DBL,這是不被允許的 |
| SpamCop(bl.spamcop.net) | 127.0.0.2 | 已列入 |
| UCEPROTECT(dnsbl-1, dnsbl-2, dnsbl-3.uceprotect.net) | DNS 使用說明頁面未載明 | Level 1、2、3 各有一個區域 |
- Spamhaus:ZEN 整合了 SBL、CSS、XBL 與 PBL,只涵蓋 IP 位址;網域則以 DBL 檢查。DBL 使用 127.0.1.0/24,Zero Reputation Domains 清單使用 127.0.2.0/24。由於 DBL 對 IP 查詢一律回應 127.0.1.255,因此無法用來檢查 IP。各份 Spamhaus 清單的意義與申請移除的方式,請參閱Spamhaus 移除指南。
- SpamCop:官方 FAQ 指出,127.0.0.2 是表示 IP 已被列入的回應。它也建議讓使用者能存取被過濾的郵件,例如加上標記或移到另一個資料夾,而不是直接拒收。移除方式請參閱SpamCop 解除指南。
- UCEPROTECT:DNS 使用說明頁面列出了三個區域名稱,但並未說明回傳值。頁面指出,DNS 方式實際上只適用於中小型郵件伺服器,並建議每天請求超過 100,000 次的系統改用 rsync。各等級的說明請參閱UCEPROTECT Level 2 與 3 指南。
- Barracuda:本文不涵蓋其回傳值。請查閱 Barracuda Central 自己的頁面。
127.255.255.x 與公用解析器:並非列入的回應
Spamhaus 將 127.255.255.0/24 保留給錯誤碼使用。任何區域都可能回傳這些代碼,而官方 FAQ 表示,不得將其解讀為所查詢的對象已被列入。
| 回傳碼 | 意義 |
|---|---|
| 127.255.255.252 | DNSBL 名稱拼寫錯誤 |
| 127.255.255.254 | 透過公用或開放式解析器查詢 |
| 127.255.255.255 | 查詢次數過多 |
為什麼公用解析器的結果不可靠
Spamhaus 的 FAQ 指出,透過大型公用解析器查詢時,多數情況下會得到未列入(NXDOMAIN)的回應。換句話說,已被列入的 IP 可能看起來是乾淨的。同一份 FAQ 也指出,相反的問題(清單看起來像是封鎖了整個網際網路)最常見的原因,就是使用了 Amazon、Quad9、Google、Cloudflare 或其他公用解析器。
有些解析器還會改寫 NXDOMAIN 回應,對不存在的名稱回傳某個 IP 位址。郵件伺服器可能會將其誤認為列入。FAQ 建議設定郵件伺服器忽略所有不在 127.0.0.0/8 範圍內的回應、自行架設解析器,或聯絡您的 ISP 或 DNS 服務供應商。若要確認您實際使用的是哪個解析器,FAQ 提供了以下檢查方式:
dig txt whoami.fastly.net如果您在自己的郵件伺服器上執行 DNSBL 過濾,也請確認它不會在看到 127.255.255.x 回應時就拒收郵件。Spamhaus 將這種情況描述為設定錯誤。
NXDOMAIN、SERVFAIL 與逾時的差異
每個 DNS 回應都帶有 RFC 1035 所定義的回應碼(RCODE)。解讀 DNSBL 結果時,請將 RCODE 與 A 記錄的值分開來看。
| 回應 | 在 DNS 中的意義 | 對 DNSBL 的解讀方式 |
|---|---|---|
| 127.0.0.0/8 範圍內的 A 記錄(127.255.255.x 除外) | 沒有錯誤(NOERROR) | 已列入;請對照該清單的說明文件確認其值 |
| NXDOMAIN(Name Error) | 所查詢的名稱不存在 | 未列入,前提是查詢是透過合適的解析器進行 |
| 127.255.255.x | 看似正常、實際上表示錯誤的回應 | 不明;請修正解析器或查詢方式 |
| SERVFAIL(Server failure) | 名稱伺服器無法處理該查詢 | 不明 |
| 逾時 | 沒有收到任何回應 | 不明 |
RFC 5782 並未說明用戶端應如何處理發生故障或沒有回應的清單。將 SERVFAIL 或逾時解讀為「已列入」或「未列入」都是錯誤的。請稍後再試,或改從其他途徑查詢。
利用測試項目確認清單是否正常運作
RFC 5782 要求 IPv4 清單必須包含 127.0.0.2 的項目,且不得包含 127.0.0.1 的項目。IPv6 清單使用 ::FFFF:7F00:2(已列入)與 ::FFFF:7F00:1(未列入),網域清單則使用保留名稱 TEST(已列入)與 INVALID(未列入)。
dig +short 2.0.0.127.zen.spamhaus.org A
dig +short 1.0.0.127.zen.spamhaus.org A如果第一個查詢回傳列入代碼(127.255.255.x 以外的 127.x 值),而第二個查詢沒有任何回應,就代表對該清單的查詢運作正常。如果第一個查詢回傳 127.255.255.x,則代表您的查詢途徑遭到拒絕。RFC 指出,用戶端應定期檢查測試項目,且不應使用測試項目不正確的清單。它也提到,停止營運清單的營運者有時會刪除所有項目,或設定將所有位址都列入的萬用字元記錄。如果連 127.0.0.1 也回傳已列入,請懷疑是清單或您的查詢途徑有問題,而不是您自己的 IP。
解讀自己查詢結果的實用步驟
- 選對 IP 或網域。請使用退信訊息中的 IP,或郵件標頭 Received 行中的寄件伺服器 IP。
- 一次檢查多份清單。本站的黑名單檢查工具可以一次查詢所有主要清單。
- 將每個代碼與其區域一起解讀。127.0.0.0/8 範圍內的列入代碼(127.255.255.x 除外)代表已列入;請查明該值在該清單上的意義。127.255.255.x 的回應、SERVFAIL 或逾時,代表狀態仍然不明。
- 查看 TXT 記錄與營運者的查詢頁面。許多清單會回傳原因或網址。請以營運者自己的查詢頁面作為權威結果。
- 先排除原因,再依照該清單的移除程序處理。是否解除、何時解除,由各營運者決定。如果原因仍在,列入通常會再次出現。
郵件遭退信時的完整排查流程,請參閱郵件因黑名單遭封鎖的說明。如果您需要協助解讀結果或追查原因,可以向我們洽詢解除事宜。
常見問題
查詢結果回傳 127.0.0.2,我是被列在哪份清單上?
您被列在所查詢區域的那份清單上。127.0.0.2 是許多清單使用的慣例值,因此光看數字無法判斷是哪份清單。在 Spamhaus ZEN 上,它代表 SBL;在 SpamCop 上,它單純代表已列入。請搭配區域名稱與該清單的說明文件解讀。
我收到 127.255.255.254,代表我被列入黑名單了嗎?
不是。在 Spamhaus 的區域中,這是表示查詢透過公用或開放式解析器送出的錯誤碼,並不代表該 IP 已被列入。請在 Spamhaus 自己的查詢頁面再次確認,或改用不經過公用解析器的方式查詢。
為什麼不同工具對是否被列入的判斷不一致?
常見的原因是查詢時使用的解析器。透過公用解析器查詢時,已被列入的 IP 可能看起來是乾淨的,或者您可能會收到錯誤碼。有些工具也可能將 SERVFAIL 或逾時顯示為未列入。有疑慮時,請使用清單營運者的官方查詢頁面。
我的列入項目沒有 TXT 記錄,是哪裡出了問題嗎?
不一定。RFC 5782 指出 DNSBL 應發布說明原因的 TXT 記錄,但這並非強制要求,而且用戶端是否檢查 TXT 記錄也是選擇性的。決定是否列入的是 A 記錄。
參考的官方頁面
本文內容已於發布時對照下列官方頁面確認。各項政策與運作方式可能未經通知即變更,涉及重要決定前,請先查閱官方頁面。
- RFC 5782: DNS Blacklists and Whitelists
- RFC 1035: Domain Names - Implementation and Specification (RCODE)
- Spamhaus FAQ: DNSBL Usage (return codes and public resolvers)
- Spamhaus: ZEN Blocklist
- Spamhaus: Domain Blocklist (DBL)
- SpamCop FAQ: How do I configure my mailserver to reject mail based on the blocklist?
- UCEPROTECT: Using DNS Lookups
相關文章
DNSBL 是什麼?說明 DNS 黑名單與 RBL 的運作方式:反轉 IP 查詢、A 與 TXT 記錄、IPv6、IP 型與網域型清單、白名單,以及 IP 被列入的原因。
被 Spamhaus 列入了嗎?了解您被列入的是哪個清單(ZEN、PBL、XBL、CSS、SBL、DBL)、回傳代碼的意義,以及各清單正確的移除方式。
如何監控寄件 IP 與網域是否被列入 DNS 黑名單:dig 與 cron 腳本、搭配 Webhook 的批次 API,以及避免誤報的通知設計。