2. EPP란?

EPP는 레지스트리(Registry)와 레지스트라(Registrar) 간의 통신을 위한 프로토콜입니다. 레지스트라라 함은 도메인에 있어서 주 등록기관인 레지스트리로 부터 도메인 등록에 대한 위임을 받음 협력업체를 말합니다. 레지스트라가 되기 위해서는 레지스트리로 부터 몇 가지 테스트 과정을 거치며 흔히 얘기 하는 OT&E 테스트가 이에 해당합니다. 이를 통과할 경우 레지스트라 는 레지스트리와의 통신 프로토콜을 통해 실시간으로 도메인 등록이 이루어집 니다. 현재 .com .net .org의 경우 베리사인이 레지스트리에 해당하며 전국에 많은 레지스트라가 존재합니다. 국내에도 약 10개의 업체가 베리사인의 레지 스트라로 등록되어 있습니다.

.com .net .org 뿐만 아니라 TLD(Top Level Domain)는 그 수가 매우 많습니다. 각 TLD에 따라 각 기 다른 최상위 등록기관인 레지스트리가 있으며 해당하는 등록 프로토콜 또한 상이한 것이 현실입니다.

EPP의 근본 동기는 이렇게 많은 레지스트리와 레지스트라 사이의 도메인 등록에 있어서 그 표준을 제시하는 데 있습니다. 매번 새로운 레지스트리가 생길때마다 중복적인 프로토콜을 만드는 데 드는 노력을 줄이고자 하는 것입니다. 실제로 최근에 신규로 오픈하는 도메인인 .biz, .info, .pro, .name 등은 모두 EPP를 채택하고 있으며 신규로 레지스트라가 되고자 하는 곳에서는 EPP-RTK를 사용하여 애플리케이션을 만들고 있습니다. 대표적인 TLD인 com, net, org의 최상위 등록기관인 베리사인에서도 EPP를 개발해 오고 있습니다.

2.1. EPP 개요

EPP는 오브젝트와 액션의 2가지 중요한 특징을 가집니다. domains, contacts, hosts (nameservers) 와 같은 오브젝트는 EPP 레지스트리에 저장되는 객체이며 check, create, update, delete 의 액션은 레지스트리와 오브젝트를 변하게 합니다. EPP 레지스트리와 레지스트라는 상호간에 XML 포맷의 메세지를 통해 커뮤티케이션을 합니다.

EPP는 통신 레이어에 독립적이며 EPP 메세지를 다양한 전송 계층(plain TCP, TCP+TLS, SMTP, BEEP) 위에서 사용할 수 있습니다. EPP는 확장가능한 프로토콜 이기 때문에 필요에 따라 오브젝트 타입과 액션을 추가적으로 정의하여 기본 메시지 이외에 부가적인 기능을 확장하여 사용하기 용이합니다.

EPP는 세션을 유지하는 경우와 그렇지 않은 경우를 모두 사용 가능합니다. 세션을 유지하고자 할 때에는 레지스트라는 한 번의 로그인을 거친 후 epp_Session을 통해 해당 세션을 계속 유지하며 적절한 액션을 취할 수 있습니다. 세션을 유지하는 경우는 매 액션마다 인증과정이 거쳐야 할 필요가 없으므로 세션을 유지하지 않는 경우보다 부하가 더 적습니다.

세션을 유지하지 않을 때에는 아래와 같이 로그인 정보를 가지는 creds를 EPP command를 사용할 때 마다 명시해 주어야 합니다.
   <?xml version="1.0" encoding="UTF-8" standalone="no"?> <epp
   xmlns="urn:iana:xml:ns:epp-1.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="urn:iana:xml:ns:epp-1.0 epp-1.0.xsd">
   <command> <creds> <clID>ClientX</clID>
   <pw>foo-BAR2</pw> <newPW>bar-FOO2</newPW>
   <options> <version>1.0</version>
   <lang>en</lang> </options> </creds> <login>
   <svcs> <domain:svc xmlns:domain="urn:iana:xml:ns:domain"
   xsi:schemaLocation="urn:iana:xml:ns:domain domain.xsd"/>
   <contact:svc xmlns:contact="urn:iana:xml:ns:contact"
   xsi:schemaLocation="urn:iana:xml:ns:contact contact.xsd"/>
   <host:svc xmlns:host="urn:iana:xml:ns:host"
   xsi:schemaLocation="urn:iana:xml:ns:host host.xsd"/> </svcs>
   </login> <unspec/> <clTRID>ABC-12345</clTRID>
   </command> </epp>
   

2.2. EPP 오브젝트와 액션

EPP-RTK는 기본적으로 아래와 같은 3개의 오브젝트와 7개의 액션을 제공합니다.
   Objects:
       domain
       host
       contact
   Actions:
       check
       info
       create
       update
       delete
       transfer
       renew
   

필요에 따라 별도의 addon 방식으로 별도의 패키지를 설치하여 새로운 오브젝트와 액션을 사용할 수 있습니다. .name 도메인의 경우는 기본적인 오브젝트 이외에 nameWatch, EmailFwd 등의 새로운 오브젝트를 추가적으로 사용합니다. 다시 말해서, 레지스트리마다 별도의 새로운 기능이 있기 마련이며 이에 맞는 addon이 필요합니다.