DDNS instellen voor thuisnetwerk-toegang van buitenaf

Als lezer van PCM is de kans groot dat je een of meer servertoepassingen in je thuisnetwerk hebt draaien. Deze diensten wil je niet alleen vanuit je eigen netwerk kunnen benaderen, maar ook wanneer je niet thuis bent, via internet. Dat kan met Dynamic DNS. DDNS instellen doe je als volgt.

Stel, je hebt een of andere server draaien op een toestel dat anders toch maar werkloos in de kast staat. Als je alles goed voor elkaar hebt, laat die server zich probleemloos vanuit je eigen netwerk aanroepen via een lokaal ip-adres als 192.168.0.50, 10.0.1.100 of 172.16.2.150. Kortom, een ip-adres binnen een bereik dat gereserveerd is voor intern gebruik achter een nat-router. Dergelijke adressen zijn echter niet routeerbaar, wat inhoudt dat ze van buitenaf niet te bereiken zijn.

Daar is gelukkig wel een oplossing voor. Je gebruikt het wan-ip-adres van je modem(-router), wat je normaliter kunt aflezen in het statusvenster van je router of via een ip-lookupservice. Om ook nog eens bij de juiste machine binnen je netwerk te komen, kun je dan van routerfuncties als portforwarding, port-triggering, upnp (univeral plug and play) of dmz (demilitarized zone) gebruik maken, of je zet een vpn-server in.

Dynamic DNS

We gaan er hier alvast van uit dat je zo’n constructie werkend voor elkaar hebt en dat de gewenste services op afstand bereikbaar zijn via het wan-ip-adres van je modem(-router), eventueel aangevuld met het juiste poortnummer. We focussen ons in dit artikel echter op een ander probleem dat zich (vroeg of laat) kan voordoen. Internetproviders garanderen voor thuisgebruikers vaak geen vast ip-adres. Dat houdt in dat het ip-adres van je modem(-router) zomaar kan wijzigen, bijvoorbeeld na werkzaamheden of na een storing, met als gevolg dat je services niet langer bereikbaar zijn via het oude adres.

Vervelend, maar gelukkig is ook daar een oplossing voor, in de vorm van ddns. Dat staat voor dynamic dns of voluit dynamic domain name system. We leggen eerst kort uit wat dns is en vervolgens welke twist ddns daaraan geeft.

In de vroege dagen van het internet, dat toen nog ARPANET heette, was het mogelijk om machines via hostnamen te bereiken op basis van statische tabellen die die namen koppelde aan ip-adressen. Deze tabellen werden aanvankelijk handmatig up-to-date gehouden in de vorm van een hosts.txt-bestand (/etc/hosts).

Door de explosieve groei van het netwerk was dit systeem niet langer efficiënt en sinds 1984 werd dat vervangen door dns (domain name system), een client-serversysteem waarbij speciale dns-servers oftewel nameservers via een gedistribueerde database de koppeling van domeinnamen en ip-adressen wereldwijd up-to-date houden. Dat systeem werkt natuurlijk alleen maar goed voor machines die, althans voor een langere periode, over een vast ip-adres beschikken. Echter, omdat er ook services zijn die frequent van host wisselen werd ddns in het leven geroepen.

Omdat er ook services zijn die frequent van host wisselen werd ddns in het leven geroepen.

-

Twee soorten

Strikt genomen kun je twee ddns-implementaties onderscheiden. Enerzijds is er een gestandaardiseerde vorm van ddns, zoals beschreven in RFC 2136 (https://tools.ietf.org/html/rfc2136). Het gaat hierbij om een netwerkprotocol dat in de praktijk vooral als een uitbreiding van het dhcp-systeem wordt gebruikt waarbij geautoriseerde domeincontrollers de clientrecords, bijvoorbeeld van bedrijfslaptops, in de dns registreren. Onder meer Windows Active Directory ondersteunt dit protocol.

Anderzijds is er ddns als een niet-gestandaardiseerd webgebaseerd protocol en het is deze implementatie waarop we ons in dit artikel verder focussen. Het komt erop neer dat je het wan-ip-adres van je thuisnetwerk via een zogenoemde ddns-provider koppelt aan een (sub)domeinnaam en die bij dns registreert.

Een clienttool stuurt elke wijziging van je ip-adres meteen door richting ddns-provider, zodat die de dns-update kan doorvoeren. Deze uitwisseling tussen client en provider gebeurt meestal door middel van een eenvoudig http-serviceverzoek, dat zelfs binnen een goed afgeschermde netwerkomgeving op weinig verzet zal botsen.

Je netwerkservices zijn nu bereikbaar via een eigen domeinnaam. Dat is niet alleen handiger om te onthouden, het geeft ook meer vertrouwen naar de bezoekers toe en zo’n koppeling is normaliter nodig om je server desgewenst met een officieel ssl-certificaat te beveiligen.

DDNS-providers en routers

Om van ddns gebruik te kunnen maken, heb je in principe dus allereerst een ddns-provider nodig. We zeggen ‘in principe’, want het is ook wel mogelijk je eigen ddns-service in te richten (zie kader ‘Eigen ddns-service’).

Hoe dan ook, wanneer je googelt naar iets als ‘ddns provider’ stuit je vaak op referenties naar DynDNS (nu Oracle Dyn, dat onder meer ook provider TZO heeft ingepalmd). Dat was namelijk de onbetwistbare marktleider in dit segment, maar toen de gratis formule in 2014 verdween keken veel thuisgebruikers uit naar alternatieven. Om er enkele te noemen: No-IP, Duck DNS, Zonomi en Dynu.

Verder in dit artikel nemen wij Dynu als voorbeeld, omdat het een gevestigde waarde is en omdat er behoorlijk wat opties in het gratis pakket zitten. Is deze provider dan ook voor jou de beste? Niet noodzakelijk: het zou bijvoorbeeld best kunnen dat de ingebouwde clientmodule van je router die provider eenvoudigweg niet ondersteunt zodat je naar een andere update-methode moet uitkijken.

ddns instellen

© PXimport

Heb je eenmaal je zinnen gezet op een bepaalde provider, dan moet je nog beslissen of je voor de gratis dan wel een betaalde optie gaat. We raden je aan de functielijst van de aangeboden diensten door te nemen, maar in veel gevallen bieden alleen betaalde abonnementen voordelen aan als: geen verplichte herbevestiging na een x-aantal dagen, klantenondersteuning via mail of telefoon, meer (sub)domeinnamen, een eigen domeinnaam, hoger aantal dns-verzoeken binnen een bepaalde periode, snellere dns-propagatietijden, url-forwarding, portforwarding, uitgebreide(re) logs, e-mailnotificatie bij een update van het ip-adres, ondersteuning van wildcard cname-dns-records. Een record als *.host.domeinnaam.nl 1800 IN CNAME domeinnaam.nl zal in dit geval automatisch ook omhetevenwat.host.domeinnaam.nl omleiden naar domeinnaam.nl.

Zoals gezegd nemen we hier de gratis formule van Dynu als voorbeeld. Surf hiervoor naar dynu.com en klik op Create a free account. Wij gaan hier voor Option 1: Use Our Domain Name, waarbij je een eigen hostnaam in combinatie met 17 top level domains kunt kiezen. Druk op Add en vul de gevraagde persoonsgegevens in of kies Sign up with Google. Bevestig met Submit. Houd er bij het invullen van het wachtwoord alvast rekening mee dat sommige apparaten (zoals routers, nas’en, dvr’s of ip-camera’s) of ip-updateclients mogelijk geen speciale tekens accepteren.

Even later rolt er een bevestigingsmail bij je binnen en ontvang je enkele interessante links, waaronder één voor een online controlepaneel en één voor het downloaden van de ddns-updateclient. Als alles goed is, is de (sub)domeinnaam inmiddels al actief en kom je via deze naam netjes uit bij je eigen thuisnetwerk. Is dat niet het geval, dan heeft Dynu wellicht niet het juiste publieke ip-adres van je thuisnetwerk te pakken.

Open dan het controlepaneel en klik op DDNS Settings, alwaar je het huidige ip-adres afleest dat je met de eerder vermelde dienst www.watismijnip.nl kunt vergelijken. Klopt dit adres niet, dan kun je dat alsnog aanpassen via het potloodicoon Manage your hostname, waarna je de wijziging bewaart met de Save-knop. Je kunt de werking overigens ook controleren door te surfen naar ping.eu/nslookup en daar je (sub)domeinnaam in te vullen: je huidige ip-adres en het ip-adres van die (sub)domeinnaam horen identiek te zijn.

DDNS instellingen

Bij DDNS Settings vind je trouwens nog andere instellingen terug. We beperken ons hier tot een paar opties. Via Offline Settings kun je zelf een url of een boodschap opgeven die de bezoeker te zien krijgt wanneer je server offline blijkt. Via de knop Go Offline Now kun je het resultaat meteen uittesten (desnoods moet je eerst nog even je browsercache leegmaken). Vergeet daarna niet weer Go Online Now te selecteren.

Via de knop Aliases creëer je extra aliassen (A record voor ipv4 en AAAA record voor ipv6). Het volstaat in principe de Alias Name in te vullen, waarna het record wordt toegevoegd (hoofdredactie resulteert dan bijvoorbeeld in hoofdredactie.pcmnl.theworkpc.com). Veel zin heeft zo’n alias hier echter niet, aangezien standaard de opties Wildcard IPv4 Alias en Wildcard IPv6 Alias zijn ingeschakeld, zodat alle aliassen (prefixen) automatisch naar je (sub)domeinnaam doorverwijzen. Deze optie kun je desgewenst uitschakelen in het venster bij DDNS Settings.

ddns instellen

© PXimport

Ook handig: via de knop Web Redirect kun je zowel URL Forwarding als Port Forwarding instellen. Bij URL Forwarding wordt de ene url automatisch doorgesluisd naar een andere. De eerste url is in principe dan een zelf te kiezen prefix in combinatie met de gekozen (sub)domeinnaam; de tweede url is vrij in te stellen. Port Forwarding doet iets vergelijkbaars, maar hier wordt alleen de standaard http-poort 80 doorgesluisd naar een andere poort. Stel, je hebt twee ip-camera’s hangen, waarbij de tweede op poort 81 bereikbaar is. Dan zou je er bijvoorbeeld voor kunnen zorgen dat cam2.mijndomein.com automatisch wordt omgezet in mijndomein.com:81. Handig, want dan hoeft men dit poortnummer niet te onthouden of zelf in te tikken.

Bij beide forwardingtypes kun je bovendien de optie Mask/cloak Url aanvinken. In dit geval blijft de eerste url zichtbaar in de adresbalk van de browser en niet die van de webpagina waarnaar de bezoeker werd omgeleid. Een paar opties, zoals e-mailnotificaties en configuratieback-ups, zijn voorbehouden voor betalende abonnees, maar met een prijs van tien dollar per jaar vinden we dat best betaalbaar.

Updates

De koppeling is inmiddels een feit, maar je moet natuurlijk nog wel voor een geautomatiseerd updateproces zorgen. Immers, het is niet de bedoeling dat je bij elke ip-wijziging zelf het publieke ip-adres van je netwerk in het controlepaneel gaat aanpassen. Een uitstekende plaats om dat voor elkaar te krijgen is je router, op voorwaarde althans dat die ddns ondersteunt en ook met jouw ddns-provider overweg kan. Het volstaat dan de juiste provider (of update-url) te kiezen en je ID in te vullen, waarna de router elke ip-wijziging meteen aan de provider zal doorspelen. Raadpleeg de handleiding van je router. Let op: hangt je router achter een andere router (nat-achter-nat), dan kan dat nog wel eens problemen opleveren (zie paragraaf ‘Router achter router’).

Er zijn echter alternatieven. Ook sommige andere apparaten die gewoonlijk continu online blijven, voorzien vaak in zo’n ddns-updatefunctie, zoals een ip-camera of een nas. Bij een Synology-nas bijvoorbeeld vind je deze optie gewoonlijk in het Configuratiescherm, in de rubriek Connectiviteit / Externe toegang. Je kunt hier uit een twintigtal providers kiezen, waaronder de ddns-service van Synology zelf, met keuze uit een dozijn domeinnamen.

ddns instellen

© PXimport

Gebruik je om een of andere reden niet de ingebouwde ddns-ondersteuning van je router, firewall, nas of ip-camera, dan is er altijd nog een uitweg in een updateclient-tool, specifiek voor de gekozen provider. Deze tool installeer je het best op een computer die frequent online is. Immers, deze tool wordt geacht een ip-wijziging snel te kunnen detecteren en door te geven.

Provider Dynu voorziet alvast in zo’n tool, voor diverse platformen. Surf naar deze site en selecteer het gewenste platform bij Operating System, Multiple PlatForms of Router/Firewall. In deze laatste categorie tref je onder meer Open Wrt, PF Sense, Raspberry Pi en Synology NAS aan. Dit laatste item kan je verbazen, maar weet dat je Synology-nas wellicht standaard geen ondersteuning biedt voor Dynu. Via een ssh-verbinding met je nas kun je dan /etc.defaults/ddns_provider.conf openen en de voorgestelde wijziging, bijvoorbeeld met de ingebouwde vi-editor, doorvoeren waarna Dynu.com plots wel opduikt in de providerlijst.

We tonen hier kort hoe je de Windows-client van Dynu aan de praat krijgt. Na de eenvoudige installatie start je de client op en vul je het bijhorende Dynu-ID in (Username en Password). Bevestig met Sign In. Als het goed is, doet de updateservice al meteen zijn werk. Wel kun je nog een en ander bijsturen op het tabblad Settings, zoals het Log Level (de Log Files kun je vanaf het tabblad Engine raadplegen), het Poll Interval, de Update Port (standaard 8245), of je ook het ipv6-adress wilt updaten enzovoort. Leg je wijzigingen vast met Save en controleer of de tool wel automatisch met Windows opstart, want dat is de bedoeling.

Meerdere routers

We zeiden het al: een uitstekende locatie voor de ddns-update is je router. Dat kan echter problemen geven als je twee routers na elkaar plaatst.

Heb je een router rechtstreeks aan een modem of aan een modem-router in bridgemodus (met uitgeschakelde nat en dhcp) hangen, dan zal dat normaliter geen problemen opleveren. Echter, niet elke modem-router ondersteunt deze modus en in dit geval zal je eigen router, die je via de wan-poort met de modem-router verbonden hebt, als wan-ip-adres een privaat ip-adres binnen het netwerk van de modem-router krijgen.

Wanneer je dan de ddns-functie op je router activeert is het niet uitgesloten dat die het lokale ip-adres van je router in plaats van het publieke ip-adres van de modem-router aan de ddns-service retourneert. Dat hangt echter af van de implementatie en dus van het model en merk van de router. Uit onze ervaring gaan ASUS en AVM hier de mist in, terwijl routers van bijvoorbeeld Netgear en D-link het wél goed doen. Experimenteren en controleren is dus de boodschap. Of je zet ddns op via een ander apparaat dat daarmee overweg kan, of je zet de bijhorende clientsoftware in. De kans is groot dat het dan probleemloos werkt.

Deel dit artikel
Voeg toe aan favorieten