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가 말하는 반환 코드
2010년 2월에 발행된 RFC 5782는 DNS 블랙리스트와 화이트리스트를 조회하는 방법과 응답의 형태를 설명합니다. 이는 Standards Track 규격이 아니라 정보성(Informational) 문서로, 일반적인 관행을 기록한 것이며 값 할당의 세부 사항은 각 리스트 운영자에게 맡겨져 있습니다.
조회 이름을 만드는 방법
IPv4에서는 옥텟 순서를 뒤집고 리스트의 존을 붙입니다. 192.0.2.99를 bl.example.com 리스트에서 확인하는 경우는 다음과 같습니다.
dig +short 99.2.0.192.bl.example.com A
dig +short 99.2.0.192.bl.example.com TXTIPv6에서는 주소를 32개의 십육진 니블로 역순 표기한 뒤 존을 붙입니다. 도메인 기반 리스트는 도메인 이름 뒤에 존 이름을 붙이기만 하면 됩니다. RFC는 이름 기반 리스트가 IP 기반 리스트보다 훨씬 드물다고 언급합니다.
A 레코드: 등재 여부
- 등재됨: 리스트가 A 레코드를 반환합니다. RFC에 따르면 원치 않는 네트워크 트래픽을 막기 위해 모든 A 값은 127.0.0.0/8 범위에 두는 것이 바람직하며, 값은 관례상 127.0.0.2입니다.
- 등재되지 않음: 해당 주소에 대한 레코드가 하나도 없어야 합니다. DNS 용어로는 응답이 NXDOMAIN이며, 이름이 존재하지 않는다는 뜻입니다.
- A 레코드 값은 IP 주소로 사용해서는 안 됩니다. 127.0.0.2는 접속할 서버가 아니라 플래그입니다.
TXT 레코드: 이유와 URL
RFC에 따르면 DNSBL은 항목이 등재된 이유를 설명하는 TXT 레코드를 공개하는 것이 바람직하며, 그 이유에는 자세한 정보가 담긴 URL이 포함되는 경우가 많습니다. 클라이언트 소프트웨어는 A 레코드를 확인해야 하며, TXT 레코드는 확인할 수 있습니다. TXT 텍스트는 SMTP 오류 메시지에 자주 사용되므로, 반송 메시지에 그 텍스트에서 가져온 조회 URL이나 해제 URL이 들어 있을 수 있습니다.
리스트마다 숫자가 다른 이유: 하위 리스트와 비트 마스크
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 | DBL에 IP 주소로 조회함(허용되지 않음) |
| SpamCop (bl.spamcop.net) | 127.0.0.2 | 등재됨 |
| UCEPROTECT (dnsbl-1, dnsbl-2, dnsbl-3.uceprotect.net) | DNS 사용 안내 페이지에 기재 없음 | 레벨 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는 등재된 IP를 나타내는 응답으로 127.0.0.2를 제시합니다. 또한 메일을 곧바로 거부하기보다 태그를 붙이거나 별도 폴더로 옮기는 등, 사용자가 필터링된 메일에 접근할 수 있게 하라고 권장합니다. 해제 방법은 SpamCop 해제 가이드에서 다룹니다.
- UCEPROTECT: DNS 사용 안내 페이지에는 세 개의 존 이름이 나와 있지만 반환 값은 설명되어 있지 않습니다. DNS 방식은 사실상 중소 규모 메일 서버에만 유용하다고 하며, 하루 100,000건이 넘는 요청을 보내는 시스템에는 rsync를 권합니다. 각 레벨은 UCEPROTECT 레벨 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 레코드와 운영자의 조회 페이지를 확인합니다. 많은 리스트가 이유나 URL을 반환합니다. 운영자의 공식 조회 페이지 결과를 기준으로 삼으십시오.
- 원인을 해결한 뒤 해당 리스트의 해제 절차를 따릅니다. 해제 여부와 시점은 각 운영자가 결정합니다. 원인이 남아 있으면 대개 다시 등재됩니다.
메일이 반송될 때의 전체 문제 해결 절차는 블랙리스트로 메일이 차단될 때를 참고하십시오. 결과 해석이나 원인 추적에 도움이 필요하다면 등재 해제에 대해 문의하실 수 있습니다.
블랙리스트 해제 신청 대행, 컨설팅, 자문(JPY 50,000부터)을 맡아 주는 업체를 소개해 드립니다. 해제 여부는 각 리스트 운영자가 결정하므로 해제를 약속할 수는 없습니다.
상담하기이 사이트는 소개한 업체로부터 소개 수수료를 받을 수 있습니다. About
자주 묻는 질문
조회 결과 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·도메인 리스트, 화이트리스트, 등재 이유로 정리합니다.
Spamhaus에 등재되었나요? 어느 리스트(ZEN, PBL, XBL, CSS, SBL, DBL)인지 확인하는 법, 반환 코드의 의미, 리스트별 올바른 해제 절차를 설명합니다.
발신 IP와 도메인을 DNS 블랙리스트로 모니터링하는 방법. dig·cron 스크립트, 웹훅을 지원하는 일괄 조회 API, 오탐 알림을 피하는 설계를 설명합니다.