Het EPP-protocol toekomstbestendig maken: RESTful EPP
Het standaard protocol voor domeinnaamregistraties geschikt maken voor gebruik in moderne softwaredevelopmentarchitecturen
Kies jouw kleur
Veel bezocht
Veelgestelde vragen
Via de Whois kun je de huidige houder van een domeinnaam opzoeken. Om de persoonsgegevens in te zien moet je vanwege de privacygevoelige informatie eerst de gebruikersvoorwaarden van de Whois accepteren. Gegevens van privé personen kunnen ook afgeschermd zijn vanwege de AVG (Algemene verordening gegevensbescherming).
Op de pagina domeinnaam zoeken lees je meer over wat een domeinnaam is, de werking van de Whois en de privacy van persoonsgegevens.
Je wilt je domeinnaam verhuizen naar een andere registrar. Vraag dan je verhuistoken op bij je huidige registrar. Lees de verhuisstappen op de pagina domeinnaam verhuizen.
Neem contact op met je registrar. Jouw registrar kan de contactgegevens bij je domeinnaam voor je aanpassen. Wij raden je aan het resultaat te controleren via de Whois. Lees meer over het aanpassen van je gegevens bij contactgegevens wijzigen.
Wij weten niet wat de reden van de opheffing is. Neem contact op met je registrar. Het voordeel van de quarantaine is dat je altijd de mogelijkheid hebt om een opheffing die je niet had bedoeld te herstellen.
Voorbeeld: In de voorwaarden van je registrar staat dat je elk jaar je abonnement moet verlengen. Dat gebeurt dan niet automatisch. Zo kan het gebeuren dat je domeinnaam wordt opgeheven zonder dat je er om gevraagd hebt.
Wanneer je een klacht hebt over of een geschil met je registrar dan zijn er verschillende mogelijkheden om tot een oplossing te komen. Hierover lees je meer op pagina klacht over registrar. SIDN heeft geen formele klachtenprocedure voor het behandelen van een klacht over jouw registrar.
Wil je zelf direct domeinnamen kunnen registreren bij SIDN voor je klanten of voor je eigen organisatie? Dan kun je .nl-registrar worden. Lees meer over de voorwaarden en de manier waarop je je kunt inschrijven als registrar via de pagina registrar worden.
Het standaard protocol voor domeinnaamregistraties geschikt maken voor gebruik in moderne softwaredevelopmentarchitecturen
In deze blog bespreken we ons voorstel om EPP te voorzien van een op REST gebaseerde API. Dit maakt EPP eenvoudiger te gebruiken voor registrars en biedt voor domeinregistry’s verhoogde schaalbaarheid en betere performance en security. Ook sluit het stateless karakter van RESTful EPP beter aan bij nieuwe software-engineeringtechnologieën zoals containerisatie en Kubernetes. We werken samen met Europese collega-registry’s om RESTful EPP te standaardiseren in de Internet Engineering Task Force (IETF), een herstart van onze eerste poging uit 2012 (geen typo ;-).
Het Extensible Provisioning Protocol (EPP) is een op XML gebaseerd protocol voor het beheren van domeinnaamobjecten in een registry, bijvoorbeeld om domeinnamen te creëren of te updaten. Het is een door de IETF gestandaardiseerd protocol dat al zo’n 15 jaar bestaat. Het doel van EPP is het aanbieden van een gestandaardiseerde, uniforme interface aan registrars. Dit is belangrijk voor veel registrars, omdat ze domeinnamen van meerdere toplevels aanbieden aan registrants. EPP voorkomt dat een registrar voor elke domeinregistry een aparte client moet ontwikkelen, wat veel complexiteit oplevert en kosten verhoogt.
Als registry voor het .nl-domein volgt SIDN deze standaard sinds 2010. De kern van het EPP-protocol is beschreven in RFC 5730. Daarnaast bestaan er specificaties voor domeinnaam-, host- en contact-objecten.
Steeds meer registry’s maken de overstap naar nieuwe software-engineeringtechnologieën zoals Kubernetes, die ze on-premises gebruiken of op een private of publieke cloud. In een dergelijke omgeving wordt vaak gebruikgemaakt van op REST gebaseerde stateless services. EPP is echter ontworpen ontworpen als een stateful-protocol, omdat het stamt uit een tijd waarin deze softwaretechnologieën en op REST gebaseerde services nog niet zo gewoon waren. Stateful wil zeggen dat het protocol gebruikmaakt van het concept van een ‘sessie’, waarmee de EPP-server informatie over de client bijhoudt, zoals uitgevoerde EPP-commando’s en de status van de connectie.
Het nadeel van een stateful-protocol is dat het daarmee moeilijker is om goed schaalbare systemen te ontwikkelen die snel een groot aantal EPP-berichten kunnen verwerken. Het EPP-systeem van een registry moet er namelijk voor zorgen dat elke EPP-connectie steeds door dezelfde server wordt afgehandeld. Dit omdat alleen die server de state van de betreffende connectie bijhoudt. Hierdoor is het moeilijk om de beschikbare servercapaciteit efficiënt te verdelen over alle EPP-requests. Het komt dan bijvoorbeeld voor dat een server via een enkele EPP-connectie vele duizenden verzoeken per minuut moet ontvangen en verwerken. Hierdoor kan een server overbelast raken, met nadelige gevolgen voor registrars en registrants. Het kan bijvoorbeeld langer duren voordat een request wordt uitgevoerd, een request kan mislukken (time-out) of de server kan instabiel raken en zo de beschikbaarheid van de hele EPP-dienstverlening van de registry reduceren. Het is voor een registry ook moeilijker te bepalen welke serverresources in te zetten voor welk EPP-requesttype, bijvoorbeeld om voor de belangrijkere requesttypen een snellere service te leveren.
Met RESTful EPP (REPP) proberen we de hierboven beschreven problemen op te lossen en een eenvoudig te gebruiken en schaalbare EPP-service. Dit doen we door zoveel mogelijk de bestaande EPP-standaarden te hergebruiken en deze te combineren met een RESTful-architectuurstijl. REPP is zo meer een mix van EPP en REST-functionaliteit en niet alleen een transportlaag die EPP-berichten transparant doorgeeft.
Anders dan EPP is REPP is een stateless-protocol. Dit betekent dat de server geen informatie bijhoudt over de client of de connectie. Iedere REPP-request staat op zichzelf en is onafhankelijk van voorafgaand requests, wat betekent dat requests alle informatie moet bevatten die de server nodig heeft voor het succesvol uitvoeren ervan. Denk bijvoorbeeld client-authenticatie-informatie.
REPP biedt een registry meer load balancing-mogelijkheden om de REPP-requests te verdelen over de beschikbare servercapaciteit. Dit omdat REPP stateless is en het dus anders dan bij EPP niet meer uitmaakt welke server een REPP-request verwerkt. Het wordt ook mogelijk om te differentiëren tussen de verschillende soorten transacties. Bijvoorbeeld door Check- en Info-requests te scheiden van de overige transacties zoals Create en Update (zie figuur 1). Een registry ontvangt vaak enorme aantallen informatieve requests (Check- en Info), veel meer dan voor de create requests waarmee bijvoorbeeld nieuwe domeinnamen worden geregistreerd. Door deze informatieve request op een separate infrastructuur te verwerken, kan een registry de beschikbaarheid en performance voor de overige transacties beter garanderen.
Figuur 1. Load balancing van EPP-transacties met behulp van REPP.
Voor registrars biedt REPP ook voordelen; een integratie met een REST API is eenvoudiger en goedkoper te implementeren, omdat REPP een stateless op HTTP gebaseerde interface biedt. Dit is anders dan een op stateful TCP-sockets gebaseerd protocol zoals EPP, waarbij programmeurs moeten werken met een low-level socket-API. Daarnaast werken we ook aan support voor andere data-formats zoals JSON, wat beter aansluit bij het gebruik in moderne web-API’s.
We werken we bij SIDN Labs met collega-registry’s in de Internet Engineering Task Force (IETF) aan een conceptvoorstel voor een RESTful EPP-specificatie. Ons doel is om dit concept samen met geïnteresseerde registrars en registry’s verder uit te werken en uiteindelijk als nieuwe IETF-standaard te publiceren. Wil jij graag bijdragen? Neem dan contact met ons op, of stuur ons je bijdrage door middel van een GitHub pull request.
Artikel door:
Deel dit artikel