Interview door Tweakers-redactie.
DNS anycast is inmiddels bewezen technologie in het wereldwijde domeinnamensysteem (domain name system). Wij werken al enkele jaren samen met internationale partners om het .nl-domein nog robuuster te maken. De wens bestond al langer om een anycast-opstelling in eigen beheer te hebben, maar de complexiteit van hardware in colocatie over de hele wereld was lange tijd een obstakel.
Het wereldwijde domeinnamensysteem (DNS) is voor de gemiddelde internetgebruiker zo vanzelfsprekend dat we er eigenlijk nauwelijks nog bij stilstaan. Zoals smartphones telefoonnummers opslaan zodat we ze niet meer hoeven te onthouden, fungeert DNS al sinds jaar en dag als ‘het telefoonboek van internet’. DNS is een gedelegeerd systeem: je browser weet in principe niet welk IP-adres bij een ingetypt webadres hoort en begint daarom te zoeken in het rootsysteem van DNS. In het geval van een .nl-adres zal dit doorverwijzen naar een server van SIDN (Stichting Internet Domeinregistratie Nederland) die ook een doorverwijzing geeft. Op die manier vind je snel het IP-adres van bijvoorbeeld een website. Op zich logisch, maar onder de motorkap is het een behoorlijk complex verhaal. Stel dat je in Sydney zit op het moment van zoeken. Wanneer de resolver van je provider in Sydney je gewenste gegevens helemaal in Nederland ophaalt, levert dit toch een vertraging op. Een ander, nijpender, probleem is dat name servers per definitie publiekelijk bekend moeten zijn en daardoor kwetsbaar zijn voor aanvallen. We zijn ons bewust van dat risico. “Een DDoS-aanval kan een flinke impact hebben op de kwaliteit van onze dienstverlening”, vertelt Niek Willems, systeembeheerder bij SIDN. “Dat willen we natuurlijk voorkomen, want dat zou kunnen betekenen dat .nl-domeinen tijdelijk slechter bereikbaar zijn.”
DNS is een van de fundamenten van internet
DNS is voor internet dus ongelooflijk belangrijk. Werkt het niet, dan is je internet effectief stuk. Kosten noch moeite worden daarom gespaard om het .nl-domein in de lucht te houden. Zo werden in het verleden zogeheten ‘secondary name servers’ ondergebracht bij collega-registries, en andersom. Deze traditionele aanpak beschermt helaas niet meer afdoende tegen hedendaagse DDoS-aanvallen. Als oplossing is er binnen het DNS al enkele jaren anycast. Het is een techniek die eigenlijk neerkomt op een hack. “Door DNS met dezelfde IP-adressen op verschillende plekken in de wereld te plaatsen (ook in Sydney), verdeelt het wereldwijde verkeer zich over die adressen en verdunt het eventueel DDoS-verkeer, wat het risico op een succesvolle aanval drastisch verlaagt. Het is daardoor een prima manier om ‘resilience’ te krijgen tegen DDoS, en tegelijkertijd een betere performance voor gebruikers.” SIDN Labs, het researchteam van SIDN, onderzoekt in samenwerking met het ICT-team hoe anycast optimaal kan worden ingezet en welke verbetermogelijkheden er zijn. Willems: “Het draaiend houden van een toplevel-domein en experimenteren met nieuwe technologieën komen op deze manier mooi samen.”
BGP-hack voor resilience
Anycast is in essentie een BGP-mechanisme. BGP, het border gateway protocol, zorgt als routeringsprotocol dat alle IP-adressen goed bereikbaar zijn. “Het mooie aan BGP is dat er meerdere routes naar hetzelfde adres kunnen zijn. BGP kiest dan de beste route ernaartoe. Als je het slim aanpakt, kun je op verschillende plekken systemen hebben met hetzelfde IP-adres, zonder dat het protocol zich daarin verslikt. BGP ‘denkt’ dan gewoon dat er meerdere routes naar dezelfde server zijn en zal flexibel herrouteren om telkens de beste route te kiezen tussen bron en bestemming”, zegt Marco Davids, research engineer bij SIDN Labs. “Deze eigenschappen van BGP kun je handig benutten met anycast. Door meerdere servers met hetzelfde IP-adres op verschillende plekken in de wereld te plaatsen, wat feitelijk indruist tegen internetprincipes, gaan er niet langer verschillende routes naar één systeem, maar meerdere routes naar verschillende systemen. Iemand die vanuit Florida, in de VS, een DNS-verzoek doet voor een .nl-domein, komt daardoor niet langer op een name server in Nederland uit, maar bijvoorbeeld op eentje in Miami, waardoor hij sneller antwoord krijgt en daarmee een veel betere ervaring.”
Wereldwijd en lokaal robuust
De technologie bestaat zoals gezegd al jaren. Iemand die bijvoorbeeld vanuit Nederland naar 8.8 8.8 (de Google-resolver), 1.1.1.1 of 9.9.9.9 gaat, komt door anycast in Nederland uit en niet in Los Angeles. Een aantal CDN’s, zoals Cloudflare, zijn ook op deze technologie gebaseerd. Daarnaast houden populaire mediasites die veel verkeer veroorzaken dit relatief lokaal met verschillende technieken, waaronder anycast. We gebruiken anycast op verschillende niveaus. Globaal, dankzij servers in andere geografische regio’s, maar ook lokaal, met name servers voor het .nl-domein op locatie bij Nederlandse providers. Davids: “Mocht een klant van bijvoorbeeld Ziggo of KPN een DDoS uitvoeren op een name server, dan valt deze alleen de lokale server aan. Klanten van andere providers ondervinden daar geen last van. Andersom geldt dat ook. Als er een wereldwijde DDoS is, bijvoorbeeld vanuit Azië en Amerika, komt dat DDoS-verkeer niet uit op de lokale node bij Ziggo.” Voor anycast werken we met verschillende internationale partijen samen. Dat zijn op dit moment de Zweedse internet exchange Netnod – die traditioneel veel met DNS doet en hiervoor ook een van de rootservers draait – en Nic.at in Oostenrijk. Buiten Europa levert CIRA in Canada anycast aan ons als dienst. Al langer was het de wens om meer anycast in eigen beheer te kunnen uitvoeren. Dat was nog niet zo gemakkelijk. Het plaatsen, beheren en onderhouden van fysieke servers op verschillende plekken in de wereld heeft de nodige voeten in aarde. “Het ontbrak ons tot nu toe vooral aan tijd om dit te kunnen doen.”
Testbed
Met een proefopstelling, nu nog genoemd het ‘Anycast 2020 Testbed’, benaderen we het probleem op een andere manier. Het testbed is uitgezet over drie cloudleveranciers en op zeventien plekken zijn in totaal negentien nodes geactiveerd. Waarom juist nu? Davids: “Deze markt heeft zich de laatste jaren flink ontwikkeld. Wij willen onderzoeken of de tijd rijp is om dit soort enorm bedrijfskritische diensten (deels) in ‘de cloud’ te draaien en hoe zich dat verhoudt tot de traditionele manier van werken.” Voor het project zijn de providers Packet, Vultr en Heficed geselecteerd, die een mix van ‘bare metal’ en virtuele servers leveren. “Hierbij hebben wij nadrukkelijk ook gekeken naar de connectiviteit. Zo dekken wij met Heficed bijvoorbeeld onze connectiviteitsbehoefte af voor Zuid-Amerika en Afrika. Het is overigens nog behoorlijk lastig om aanbieders te vinden die hun klanten toestaan via bgp hun eigen ip-adresruimte aan te kondigen. Een aantal grote tech-aanbieders bieden deze mogelijkheid niet.” Cloudleveranciers leveren de connectiviteit, dus we onderzoeken ook de kwaliteit daarvan. In principe zou SIDN de benodigde connectiviteit zelf kunnen regelen, met eigen servers op bijvoorbeeld een internet exchange. “Maar juist de vraag wat het effect is op connectiviteit wanneer je daarvoor afhankelijk bent van een cloudleverancier, is voor ons interessant”, zegt Davids. Voor het project werkt SIDN Labs samen met de operationele collega’s van ICT. “De stabiliteit van het .nl-domein is voor onze operatie belangrijk en deze vorm van samenwerken kan daarbij helpen. De samenwerking voorkomt ook bedrijfsblindheid, omdat in onze operatie mensen werken met verschillende expertisegebieden. Van netwerken tot Unix, kantoorautomatisering en security.”
Virtuele anycast in eigen beheer
Het ‘bijschakelen’ van nodes bleek in het testbed heel eenvoudig, maar hierin schuilt ook een risico. Willems: “In de testfase ben je vrij om dingen te proberen. Het is geen probleem om even handmatig wat software te installeren, maar zo werkt dat in de uiteindelijke situatie natuurlijk niet. Daar moet alles voldoen aan strakke richtlijnen om fouten te voorkomen. Daarom kijken wij voor de transitie naar de operationele fase ook naar het automatiseren van configuratiemanagement, monitoring en back-ups. En dat luistert voor een bedrijfskritische toepassing als .nl heel nauw.” Vooralsnog is het doel om binnen afzienbare tijd met een enkele node van testen naar productie te gaan. “We werken nu nog met vrij lichte apparatuur en kleine zonefiles. Het idee is om een zwaardere server af te nemen en deze in te richten op het door ons vereiste kwaliteitsniveau, dus onder meer met de veel grotere .nl-zonefile. Als dat bevalt, haken we deze server aan op het bestaande .nl-DNS-platform. En als dat goed gaat, is virtuele anycast in eigen beheer vooral een kwestie van opschalen.” Hoe draagt het anycast-project bij aan een nog robuuster .nl-domein? “Als het gaat om robuustheid, is diversiteit belangrijk”, zegt Davids. “Wij draaien bepaalde name servers in ons testbed, maar onze bestaande anycast-leveranciers draaien misschien wel andere name servers, of zijn in staat om bij securityproblemen te schakelen tussen softwarepakketten. Robuustheid komt ook neer op diversificatie. We zullen daarom altijd blijven samenwerken met andere partijen, maar willen daarnaast ook in eigen beheer systemen draaien”. Ons belangrijkste doel is om kwaliteit te leveren. Dat is ook nodig, want de schade aan de Nederlandse economie zou gigantisch zijn wanneer het .nl-domein plat komt te liggen. Dat willen we natuurlijk koste wat kost voorkomen.” De eerste onderzoeksresultaten van het anycast-project zijn veelbelovend, wat positief is voor het Nederlandse deel van internet. En als samenwerking tussen SIDN Labs en ICT is het tenslotte een geslaagd voorbeeld van hoe het experiment en de operatie elkaar kunnen versterken.
Dit kennisartikel is overgenomen van SIDN Labs en verscheen op 1 juli 2020 op Tweakers