RDAP란 무엇인가

RDAP(Registration Data Access Protocol)는 레지스트리에 “이 이름은 누가 갖고 있고 지금 어떤 상태인가”를 프로그램이 읽을 수 있는 형태로 묻는 방법입니다. WHOIS를 대체하려고 만든 IETF 표준입니다(2015년 RFC 7480~7484로 시작해 이후 개정됨).

핵심은 요청 하나로 설명됩니다.

curl -s https://rdap.verisign.com/com/v1/domain/example.com | jq .

평범한 HTTPS GET이고, 응답은 이름이 붙은 필드로 된 JSON입니다. status, events(등록·만료·최근 변경), nameservers, entities(등록대행자, 연락처)입니다. 같은 프로토콜로 /ip/192.0.2.1, /autnum/64496 같은 경로를 쓰면 지역 인터넷 레지스트리(RIR)의 IP 대역과 AS 번호도 조회할 수 있습니다.

WHOIS는 같은 일을 훨씬 오래된 방식으로 합니다. TCP 43번 포트를 열고 이름을 보내면, 서버가 정한 형식의 자유 텍스트가 돌아옵니다.

실제 RDAP 응답의 모양

자주 보는 부분만 뽑아 봅니다.

curl -s https://rdap.verisign.com/com/v1/domain/example.com \
  | jq '{status, events: [.events[] | {(.eventAction): .eventDate}], ns: [.nameservers[].ldhName]}'

결과는 이런 모양입니다(값은 예시).

{
  "status": [
    "client delete prohibited",
    "client transfer prohibited",
    "client update prohibited"
  ],
  "events": [
    { "registration": "2009-03-14T10:22:05Z" },
    { "expiration": "2027-03-14T10:22:05Z" },
    { "last changed": "2026-02-20T08:01:44Z" },
    { "last update of RDAP database": "2026-10-07T03:15:12Z" }
  ],
  "ns": [ "NS1.DNSHOST.EXAMPLE", "NS2.DNSHOST.EXAMPLE" ]
}

같은 정보를 WHOIS로 보면 이렇습니다.

$ whois example.com
   Domain Name: EXAMPLE.COM
   Registrar: Example Registrar, Inc.
   Updated Date: 2026-02-20T08:01:44Z
   Creation Date: 2009-03-14T10:22:05Z
   Registry Expiry Date: 2027-03-14T10:22:05Z
   Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited
   Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
   Name Server: NS1.DNSHOST.EXAMPLE

상태 이름을 보세요. WHOIS는 EPP 코드(clientTransferProhibited)를 그대로 찍고, RDAP는 소문자에 띄어쓰기를 한 표준 형태(client transfer prohibited)를 씁니다. 뜻은 같습니다. 각 상태가 소유자에게 무슨 의미인지는 clientHold·pendingDelete·도메인 만료에 정리했습니다.

RDAP 조회는 이 요청을 대신 보내고, jq 없이 상태·날짜·등록대행자·네임서버를 정리해 보여 줍니다.

클라이언트는 어느 서버에 물어야 하는지 어떻게 아나

WHOIS는 이 문제를 끝내 깔끔하게 풀지 못했습니다. 어떤 TLD를 어느 WHOIS 서버가 맡는지 알아내는 표준이 없어서, 클라이언트는 목록을 코드에 박아 두고 텍스트 안의 안내(“Registrar WHOIS Server: …”)를 따라갑니다. 둘 중 하나가 바뀌면 깨집니다.

RDAP는 IANA가 운영하는 부트스트랩 레지스트리로 이를 해결했습니다. TLD마다 RDAP 기본 URL을 적어 둔 JSON 파일입니다. IPv4, IPv6, AS 번호용 파일도 따로 있습니다.

curl -s https://data.iana.org/rdap/dns.json \
  | jq -r '.services[] | select(.[0] | index("dev")) | .[1][]'
https://pubapi.registry.google/rdap/

클라이언트는 이 파일에서 TLD의 기본 URL을 찾아 domain/<이름>을 붙입니다. 파일에 TLD가 없으면 그 레지스트리는 RDAP를 제공하지 않는 것이고, 그 이름에 대해서는 RDAP로 더 할 수 있는 게 없습니다. rdap.org 같은 공개 리다이렉터는 부트스트랩 조회를 대신 해 주고 올바른 서버로 HTTP 리다이렉트를 돌려주므로, 한 번씩 조회할 때 편합니다.

실무에서의 차이

WHOISRDAP
전송TCP 43번 포트, 평문HTTPS
출력자유 텍스트, 서버마다 형식이 다름표준 필드 이름을 쓰는 JSON
서버 찾기코드에 박은 목록, 텍스트 속 안내IANA 부트스트랩 파일
오류자유 텍스트(“No match for…”), 제각각HTTP 상태 코드: 404 없음, 429 요청 제한
상태 값EPP 코드, ICANN 링크가 붙기도 함표준 RDAP 상태 문자열
비ASCII 이름일관성 없음UTF-8, ldhName과 unicodeName 모두
접근 제어없음인증 후 권한 있는 사용자에게 더 많이 줄 수 있음
레지스트리·등록대행자 연결텍스트 안내관련 RDAP 레코드를 가리키는 links 객체

사람이 기록 하나를 읽을 때는 겉모양 차이일 뿐입니다. 만료 감시, 도메인 자산 목록, 악용 신고 분류처럼 자동화하는 일에서는 레지스트리마다 파서를 따로 짜느냐, 파서 하나로 끝내느냐의 차이입니다.

사람에게도 차이가 나는 경우가 하나 있습니다. .com 같은 thin 레지스트리는 핵심 기록만 갖고, 나머지는 등록대행자가 갖습니다. 레지스트리의 RDAP 응답에는 대개 등록대행자 RDAP 서버로 가는 링크가 들어 있고, 그쪽에 등록대행자의 악용 신고 연락처와 더 자세한 정보가 있을 수 있습니다.

gTLD에서 WHOIS가 퇴장하는 이유

일반 최상위 도메인(.com, .net, .org, .shop 등)의 규칙은 ICANN이 레지스트리·등록대행자와 맺는 계약에서 나옵니다. ICANN은 2019년부터 RDAP 운영을 의무화했고, 2025년 1월부터는 WHOIS 운영을 더 이상 요구하지 않습니다. 이제 gTLD 등록 정보의 공식 출처는 RDAP입니다.

실제로는 아직 많은 WHOIS 서버가 살아 있고, 명령줄의 whois도 대부분의 .com 이름에 동작합니다. 하지만 남은 시간이 정해져 있고, 출력 형식을 유지할 의무도 없습니다. 새로 만드는 도구는 RDAP 위에 만드세요.

국가 도메인(.de, .uk, .kr, .jp 등)은 이 계약의 적용을 받지 않습니다. 레지스트리마다 스스로 정합니다.

RDAP가 없는 곳

일부 큰 ccTLD 레지스트리는 IANA 부트스트랩에 RDAP 서비스를 등록하지 않았습니다. 이 글을 쓰는 시점에 DechoNet에서 자주 보는 예가 .de와 .jp입니다. 리다이렉터를 거쳐 조회하면 리다이렉트할 서버가 없어서 404가 돌아옵니다. WHOIS는 여전히 동작하므로 whois나 레지스트리 자체 조회 페이지를 쓰세요.

.kr은 따로 봐야 합니다. 한국 레지스트리인 KISA는 등록 정보를 WHOIS 서비스로 제공하고, DechoNet의 RDAP 조회는 .kr 이름에 그 서비스를 씁니다. 도구 화면은 똑같아 보이지만, 날짜와 상태는 RDAP가 아니라 KISA WHOIS에서 온 것입니다.

RDAP 조회가 실패했다면 다음 중 무엇인지 아는 게 도움이 됩니다.

  • 레지스트리 자체 서버가 404: 레지스트리에 그 이름의 기록이 없습니다. 등록되지 않았거나 이미 삭제됐습니다.
  • 리다이렉터가 404, 또는 부트스트랩에 항목이 없음: 그 TLD에 RDAP 서비스가 없습니다. WHOIS를 쓰세요.
  • 403이나 429: 차단됐거나 요청 제한에 걸렸습니다. User-Agent가 없는 요청이나 특정 클라우드 대역의 요청을 거부하는 레지스트리도 있습니다. 나중에 또는 다른 네트워크에서 다시 시도하세요.

개인정보: 소유자가 ‘REDACTED’인 이유

2018년 EU GDPR 시행 이후 레지스트리와 등록대행자는 공개 조회에서 등록인의 개인정보를 내주지 않습니다. WHOIS와 RDAP 모두 같으므로 프로토콜을 바꿔도 더 보이지 않습니다. 보통 등록대행자, 날짜, 상태, 네임서버는 보이고, 등록인의 이름·주소·전화·이메일은 가려지거나 개인정보 대행 서비스 정보나 문의 양식으로 바뀌어 있습니다. 단체 이름은 남아 있는 경우도 있습니다.

RDAP는 설계부터 단계별 접근을 염두에 뒀습니다. 서버가 요청자를 인증하고 더 많은 필드를 돌려줄 수 있습니다. 프로토콜상 가능하다는 뜻이고, 실제로 더 받을 수 있는지는 레지스트리나 등록대행자의 정책과 정당한 사유에 달렸습니다. 상표 분쟁이나 악용 사건처럼 실제 등록인이 필요하다면, 등록대행자의 악용 신고나 정보 공개 절차를 통해 요청하는 것이 경로입니다. 어떤 절차가 적용되는지는 등록대행자에게 물어보세요.

IP 주소와 AS 번호: ARIN, RIPE 등

다섯 개 지역 인터넷 레지스트리(AFRINIC, APNIC, ARIN, LACNIC, RIPE NCC) 모두 IP 대역과 AS 번호용 RDAP를 운영합니다. 한국 IP 대역은 APNIC 지역에 속하고, 국내에서는 KISA가 APNIC 아래에서 IP 주소를 관리합니다. ARIN 지역 주소라면 이렇게 조회합니다.

curl -s https://rdap.arin.net/registry/ip/8.8.8.8 | jq '{handle, name, startAddress, endAddress}'

WHOIS로는 whois -h whois.arin.net 8.8.8.8이고, 이것도 여전히 동작합니다. RDAP의 장점은 도메인과 같습니다. 다섯 레지스트리가 같은 JSON 모양을 쓰고, 부트스트랩 파일이 어느 대역을 어느 레지스트리가 맡는지 알려 줍니다. 어떤 주소를 누가 어느 네트워크에서 광고하는지 빠르게 보려면 등록 기록보다 ASN 조회와 역방향 DNS가 대개 더 쓸모 있습니다.

RDAP 데이터를 잘못 읽지 않으려면

자주 걸리는 지점이 몇 가지 있습니다.

  • 레지스트리의 만료일이 실제보다 앞서갈 수 있습니다. 많은 gTLD 레지스트리에서는 도메인이 만료되는 순간 레지스트리 단에서 자동 갱신이 일어나 만료일이 1년 뒤로 밀립니다. 소유자가 등록대행자에게 돈을 내지 않았어도 그렇습니다. 등록대행자는 유예 기간 중에 여전히 삭제할 수 있습니다. 갱신된 것처럼 보이는데 사이트가 꺼졌다면 날짜만 보지 말고 상태 값과 네임서버를 보세요.
  • RDAP의 네임서버는 DNS가 실제로 내주는 값의 증거가 아닙니다. RDAP는 레지스트리에 등록된 위임 정보를 보여 줍니다. DNS 조회로 TLD 서버와 도메인 자체 서버가 내주는 값과 비교하세요. 다르다면 네임서버 불일치를 보세요.
  • **“last update of RDAP database”**는 레지스트리가 RDAP 데이터를 갱신한 시각이지, 도메인이 바뀐 시각이 아닙니다. 도메인 자체의 변경은 last changed 이벤트입니다.
  • 상태 값은 잠금과 상태를 말하지, 건강 여부를 말하지 않습니다. client transfer prohibited는 정상적이고 바람직한 잠금입니다. client hold와 pending delete는 도메인이 서비스에서 빠졌거나 곧 빠진다는 뜻입니다.

무엇을 쓸 것인가

스크립트, 모니터링, 두 번 이상 돌릴 모든 작업에는 RDAP를 쓰세요. 구조화돼 있고, 어디에 물어야 하는지 알려 주며, gTLD에서는 공식 출처입니다.

RDAP가 없는 TLD에는 WHOIS나 레지스트리 자체 조회 페이지를 쓰고, 텍스트 파싱은 감수해야 합니다.

아무 도메인이나 손으로 빠르게 볼 때는 RDAP 조회가 TLD마다 맞는 출처(RDAP가 있으면 RDAP, .kr은 KISA WHOIS)를 골라 날짜와 함께 상태 코드를 보여 줍니다. 실제 문제는 대개 상태 코드에서 먼저 드러납니다.

내 도메인에서 바로 확인

무료, 가입 불필요. 이 가이드가 다루는 항목을 바로 검사하고 조치 방법을 알려드립니다.