Tijd voor ENTRADA 2.0

Compleet vernieuwd ENTRADA-platform met cloud support

De afgelopen jaren hebben we veel gebruik gemaakt van ENTRADA, ons DNS big-data platform. Daarnaast zijn er verschillende andere Europese ccTLD registries die gebruik maken van ENTRADA. In al deze tijd veranderde ENTRADA niet veel. We voegden een aantal kleine features toe en loste wat bugs op. Wel hebben we in deze tijd veel geleerd, wat werkt goed en kan eventueel beter? In de tussenliggende jaren zijn er ook allerlei technologische ontwikkelingen geweest waar we misschien gebruik van willen gaan maken. Daarom hebben we de afgelopen tijd gewerkt aan een grote update, ENTRADA 2.0. In deze blogpost vertel ik je er meer over.

Achtergrond

Bij SIDN Labs doen we veel onderzoek met als doel om de veiligheid en stabiliteit van het internet te verhogen, denk hierbij aan onderzoek naar phishing, nepwebwinkels en botnets. Bij veel van deze onderzoeken gebruiken we DNS-data. Deze data bevat de DNS-verzoeken en antwoorden die door onze authoritatieve nameservers verwerkt worden. DNS-data slaan we op op de .nl-nameservers, in het pcap-formaat. Dit is een standaardformaat voor de opslag van netwerkdata. Deze pcap-bestanden zijn daarna te openen in een analysetool, waarmee we de data kunnen onderzoeken. Dit werkt prima zolang de hoeveelheid data beperkt blijft. Wij verwerken echter grote hoeveelheden pcap-data en daarom hebben we een oplossing nodig waarmee we op grotere schaal kunnen analyseren. In 2014 ontwikkelde we daarom ENTRADA, wat staat voor ENhanced Top-level domain Resilience through Advanced Data Analysis. ENTRADA is een tool waarmee we pcap-data omzetten in het Parquet-formaat, een kolom georiënteerd formaat. Parquet-bestanden kunnen door verschillende SQL-engines worden gelezen. Om de grote hoeveelheden data te kunnen analyseren hebben we toen gekozen voor Hadoop in combinatie met Impala. Met deze 2 systemen kunnen we de verzamelde DNS-data efficiënt analyseren. Een nadeel van Hadoop is wel dat het veel kennis van de Hadoop-technologie is vereist om een cluster te bouwen en te beheren. De ENTRADA-database bevat op dit moment meer dan 1 biljoen regels en het Hadoop-cluster bestaat uit 9 data-nodes met een gezamenlijke opslagcapaciteit van 240TB. De hardware wordt steeds ouder en daarom werd het tijd na te gaan denken over een mogelijke upgrade. Of misschien willen we wel een andere oplossing.

De cloud?

Een mogelijk alternatief voor een eigen Hadoop-cluster is gebruik maken van clouddiensten. Dit heeft als voordeel dat we dan geen eigen hardware hoeven te kopen en ook geen tijd meer kwijt zijn aan het beheertaken. We kunnen ons dan focussen op onze kerntaak, onderzoek. Athena is een serverless query service van Amazon Web Services (AWS). Met Athena is het mogelijk om grote hoeveelheden Parquet-data te analyseren zonder dat je zelf (virtuele) servers hoeft te hebben. De data wordt opgeslagen op S3, een opslagdienst van AWS. Athena kan de Parquet-bestanden op S3 lezen en op deze manier kunnen we de data van de afgelopen jaren blijven gebruiken zonder deze te hoeven converteren naar een ander formaat. Op dit moment gebruiken we bij SIDN Labs nog steeds ENTRADA in combinatie met Hadoop. Het bieden van ondersteuning voor een serverless SQL-service zoals AWS Athena heeft veel voordelen, waarvan de 2 belangrijkste zijn dat je in het geval van een serverless deployment geen kennis hoeft te hebben van Hadoop en niet hoeft te investeren in hardware. Dat maakt het voor potentiële nieuwe gebruikers veel eenvoudiger om met ENTRADA te beginnen.

ENTRADA 2.0

De belangrijkste nieuwe features van ENTRADA 2.0 zijn:

  1. Nieuwe architectuur gebaseerd op Spring boot

  2. Simpele installatie met Docker

  3. Support voor AWS S3 en Athena

  4. Netwerk monitor met round-trip time (RTT) analyse

De voorgaande ENTRADA-versies waren voor een groot deel gebaseerd op Java en bevatten daarnaast nog een aantal shell-scripts om de dataprocessing workflow af te handelen. ENTRADA 2.0 bestaat uit 100% Java-code gebaseerd op het Spring boot framework. Installatie van ENTRADA kon nog best een uitdaging zijn voor nieuwe gebruikers. Om dit te verbeteren maken we voor ENTRADA 2.0 gebruik van Docker. Dit maakt dat een nieuwe gebruiker ENTRADA heel eenvoudig kan installeren. De belangrijkste toevoeging is de ondersteuning voor AWS S3 en Athena. ENTRADA kan pcap-data lokaal of via Hadoop HDFS of AWS S3 inlezen. De resulterende Parquet-bestanden kunnen worden opgeslagen op Hadoop HDFS of AWS S3. Met deze flexibiliteit is het voor bestaande gebruikers ook eenvoudig om te schakelen tussen het gebruik van een eigen Hadoop-cluster of de AWS Cloud. Ten slotte hebben we een interessante nieuwe feature toegevoegd, een zogenaamde netwerkmonitor met round-trip time analyse. Hiermee kun je de kwaliteit van de verbinding tussen DNS-resolvers en authoritatieve nameservers monitoren. Hiervoor maken we gebruik van de tijd die het kost om een TCP-verbinding op te zetten, de zogenaamde TCP-handshake (zie figuur 1). We meten de tijd tussen het versturen van de SYN-ACK door de server en de ontvangst van de daaropvolgende ACK van de client. Deze tijd geeft een indicatie van de kwaliteit van de verbinding tussen de resolver en nameserver. Figuur 2 laat een voorbeeld van de RTT-monitor zien. Je ziet hoeveel milliseconden (mediaan) het duurt om een TCP-verbinding op te zetten. DNS-beheerders kunnen een RTT-monitor zoals deze gebruiken als onderdeel van de monitoring van de dienstverlening.

Figuur 1 - TCP handshake
Figuur 2 - Screenshot van de RTT-monitor

Goed om te weten

Het prijsmodel van AWS Athena is zo ontworpen dat de gebruiker betaalt voor de hoeveelheid data die geanalyseerd wordt bij het uitvoeren van SQL-query’s. Dit kan eventueel een probleem zijn als er sprake is van een grote dataset en deze ook actief gebruikt wordt. Het aantal verwachtte SQL-query’s en de hoeveelheid data die wordt gescand door deze query’s moet worden ingeschat. Op basis van deze data kan een berekening worden gemaakt om te bepalen of het gebruik van AWS voordeliger is dan het opzetten van een eigen Hadoop-cluster.

Aan de slag met ENTRADA

Het is eenvoudig om met ENTRADA 2.0 aan de slag te gaan. Op de ENTRADA GitHub-pagina vind je alle informatie je nodig hebt. Mocht er toch nog wat missen, onduidelijk zijn of heb je suggesties voor nieuwe functionaliteit, dan horen we dit graag.