Heb je het hoofdstuk over DNS-recordtypen gelezen, dan weet je al dat elk record op een nameserver een specifieke taak heeft. Een A-record koppelt een domeinnaam aan een IP-adres. Een MX-record regelt de e-mailroutering. Een CNAME-record werkt anders dan beide. In plaats van naar een IP-adres of een mailserver te verwijzen, laat het de ene domeinnaam naar een andere domeinnaam wijzen. Dat simpele verschil maakt het een van de nuttigste en meest onbegrepen records in DNS.
Waar staat CNAME voor?
CNAME staat voor canonical name. "Canoniek" betekent hier de officiële of primaire versie. Als je een CNAME-record maakt, zeg je dat de ene hostnaam slechts een alias is van een andere. De doelhostnaam is de canonieke naam en de alias volgt die overal naartoe.
Stel dat je een CNAME-record instelt zodat "www.jouwsite.com" naar "jouwsite.com" wijst. Dan vertel je DNS dat "www.jouwsite.com" een alias is. De canonieke naam is "jouwsite.com". Elke keer dat iemand de www-versie opzoekt, volgt DNS de alias en zet de canonieke naam om.
Hoe werkt een CNAME-record?
Een CNAME-record in simpele woorden werkt als een doorstuuradres. De browser vraagt DNS om het IP-adres van een hostnaam. DNS vindt een CNAME-record op die hostnaam. In plaats van een IP-adres geeft het een andere domeinnaam terug. De browser zoekt dan die tweede domeinnaam op en volgt het A-record om bij de echte server te komen.
Zo gaat het stap voor stap.
- Een bezoeker typt "blog.jouwsite.com" in een browser
- De browser vraagt DNS om "blog.jouwsite.com" om te zetten
- DNS vindt een CNAME-record dat "blog.jouwsite.com" laat verwijzen naar "jouwsite.com"
- DNS zoekt vervolgens het A-record van "jouwsite.com" op
- Het A-record geeft het IP-adres van de server terug
- De browser maakt verbinding met dat IP-adres en laadt de pagina
De extra stap gebeurt achter de schermen en kost slechts milliseconden. De bezoeker ziet er niets van. Het voordeel is dat als je het IP-adres in het A-record van "jouwsite.com" wijzigt, elke CNAME-alias die ernaar verwijst automatisch meegaat. Je werkt één record bij in plaats van veel.
Hoe ziet een CNAME-record eruit?
Een CNAME-record heeft vier delen. Elk heeft een eigen functie.
- Hostnaam (naam) is de alias die je maakt. Dit is de domeinnaam die ergens anders naartoe gaat. Een voorbeeldwaarde is "www" of "blog"
- Type vertelt DNS dat dit een CNAME-record is
- Doel (waarde) is de canonieke domeinnaam waar de alias naar verwijst. Een voorbeeldwaarde is "jouwsite.com"
- TTL (time to live) bepaalt hoe lang DNS-servers dit record in de cache houden voordat ze op updates controleren. Het wordt in seconden gemeten. Een gebruikelijke waarde is 3600, wat een uur is
In een DNS-beheerpaneel toont een gewoon CNAME-record "www" als hostnaam, "CNAME" als type, "jouwsite.com" als doel en "3600" als TTL.
Wanneer gebruik je een CNAME-record?
CNAME-records zijn nuttig als je wilt dat de ene hostnaam de andere volgt. De meest voorkomende situaties zijn de volgende.
www laten verwijzen naar je hoofddomein
Het meest gebruikelijke gebruik van een CNAME-record is "www.jouwsite.com" laten verwijzen naar "jouwsite.com". Het hoofddomein heeft een A-record met het IP-adres van de server. De www-versie heeft een CNAME die naar het hoofddomein wijst. Verandert het server-IP, dan werk je alleen het A-record bij. De www-alias volgt automatisch.
Subdomeinen koppelen aan externe diensten
Veel diensten van derden vragen je een CNAME-record aan te maken om je subdomein aan hun platform te koppelen. Je laat bijvoorbeeld "shop.jouwsite.com" verwijzen naar het serveradres van een externe dienst. Met de CNAME gebruik je je eigen domeinnaam, terwijl de dienst achter de schermen de hosting verzorgt.
Een CDN instellen
Een content delivery network (CDN) versnelt je website door bestanden te leveren vanaf servers dichter bij elke bezoeker. Om een CDN te gebruiken maak je vaak een CNAME-record dat je domein of subdomein naar het adres van de CDN-aanbieder laat wijzen. Zo loopt je verkeer via hun netwerk zonder dat je eigen hostingopzet verandert.
Meerdere subdomeinen efficiënt beheren
Heb je meerdere subdomeinen die allemaal naar dezelfde server moeten, dan kun je ze allemaal als CNAME-alias laten verwijzen naar één domein dat het A-record heeft. Verandert het IP-adres van de server, dan werk je één A-record bij in plaats van elk subdomein apart.
Wat is het verschil tussen een CNAME-record en een A-record?
Het belangrijkste verschil is waar elk record naar verwijst. Een A-record koppelt een domeinnaam rechtstreeks aan een IP-adres. Een CNAME-record koppelt een domeinnaam aan een andere domeinnaam. Het A-record is de eindbestemming. De CNAME is een doorverwijzing naar de eindbestemming.
Dit zijn de belangrijkste verschillen.
- Een A-record bevat een IP-adres. Een CNAME bevat een domeinnaam
- Een A-record kan op elke hostnaam staan, ook op het hoofddomein. Een CNAME kan niet op het hoofddomein staan
- Een A-record wordt in één stap omgezet. Een CNAME voegt een extra lookup-stap toe, omdat DNS de alias moet volgen en dan het A-record van het doel moet omzetten
- Een A-record moet je handmatig bijwerken als het IP-adres verandert. Een CNAME volgt automatisch het IP-adres waar het doel naar wijst
Gebruik een A-record als je het IP-adres kent en het waarschijnlijk niet verandert. Gebruik een CNAME als je wilt dat een hostnaam een andere hostnaam volgt, vooral als het IP-adres erachter door iemand anders wordt beheerd.
Wat zijn de regels en beperkingen van CNAME-records?
CNAME-records hebben specifieke regels in de DNS-specificatie die ze anders maken dan andere recordtypen. Overtreed je die regels, dan krijg je fouten die je website of e-mail offline kunnen halen.
Een CNAME kan niet op het hoofddomein staan
De DNS-specificatie staat geen CNAME-record toe op het hoofddomein (de apex). Het hoofddomein is de kale versie van je domein zonder voorvoegsel, zoals "jouwsite.com" in plaats van "www.jouwsite.com". Deze beperking bestaat omdat CNAME-records niet naast andere recordtypen op dezelfde hostnaam kunnen bestaan, en het hoofddomein andere records nodig heeft (zoals MX-records voor e-mail en NS-records voor nameservers) om te werken.
Moet het hoofddomein ergens naar verwijzen, gebruik dan een A-record. Sommige DNS-aanbieders hebben een oplossing die ALIAS- of ANAME-records heet. Die werken als een CNAME maar zijn wel toegestaan op het hoofddomein. Niet elke aanbieder ondersteunt dit.
Een CNAME kan geen hostnaam delen met andere records
Heeft een hostnaam een CNAME-record, dan kan er op diezelfde hostnaam geen ander recordtype staan. Geen A-records, geen MX-records, geen TXT-records. De CNAME moet het enige record op die naam zijn. Daarom kun je geen CNAME op het hoofddomein zetten: het hoofddomein heeft al NS-records nodig en meestal ook MX- en TXT-records.
Vermijd CNAME-ketens
Een CNAME-keten ontstaat als de ene CNAME naar een andere CNAME verwijst, die naar weer een andere CNAME verwijst, voordat je eindelijk bij een A-record uitkomt. DNS kan zulke ketens technisch gezien volgen, maar elke stap kost extra lookup-tijd en vergroot de kans op een timeout of storing. Houd het simpel. Laat elke CNAME rechtstreeks verwijzen naar een hostnaam met een A-record.
Hoe voeg je een CNAME-record toe?
Een CNAME-record toevoegen gaat bij de meeste DNS-aanbieders volgens dezelfde stappen. De indeling van de instellingenpagina verschilt, maar de informatie die je invoert is overal hetzelfde.
- Log in op het DNS-beheerpaneel waar de nameservers van je domein zijn ingesteld. Dat is meestal je domeinregistrar of je hostingaanbieder
- Zoek de sectie met DNS-records of de DNS-zone-editor
- Klik op de optie om een nieuw record toe te voegen
- Kies CNAME als recordtype
- Voer de hostnaam in die je als alias wilt maken (bijvoorbeeld "www" of "blog")
- Voer de doeldomeinnaam in waar de alias naar moet verwijzen (bijvoorbeeld "jouwsite.com" of het adres van een dienstverlener)
- Stel de TTL in. Weet je het niet zeker, gebruik dan de standaardwaarde die je aanbieder voorstelt of stel 3600 (een uur) in
- Sla het record op
DNS-wijzigingen kunnen van een paar minuten tot 48 uur duren voordat ze zich over internet hebben verspreid. Deze vertraging heet DNS-propagatie. In die tijd zien sommige bezoekers misschien nog de oude instellingen en anderen de nieuwe. Meer over hoe dit proces werkt lees je in het hoofdstuk over hoe DNS werkt.
Wat zijn veelgemaakte CNAME-fouten?
De meeste CNAME-problemen komen voort uit een paar steeds terugkerende fouten. Als je ze vooraf kent, bespaar je tijd en voorkom je downtime.
- Een CNAME op het hoofddomein zetten. Dit breekt DNS. Gebruik op het hoofddomein een A-record
- Andere records naast een CNAME toevoegen. Heeft een hostnaam een CNAME, dan moet die het enige record op die hostnaam zijn. Een MX- of TXT-record op dezelfde hostnaam veroorzaakt conflicten
- CNAME-ketens maken. Een CNAME laten verwijzen naar een CNAME die naar een CNAME verwijst, voegt onnodige lookups toe. Laat elke CNAME rechtstreeks verwijzen naar een hostnaam die met een A-record wordt omgezet
- De punt aan het eind vergeten. Sommige DNS-aanbieders eisen een punt aan het eind van het doeldomein (zoals "jouwsite.com.") om aan te geven dat het een volledig gekwalificeerde domeinnaam is. Laat je die weg, dan plakt de aanbieder er soms extra tekst achter
- Een CNAME gebruiken terwijl een A-record beter is. Beheer je de server zelf en is het IP-adres stabiel, dan is een A-record simpeler en sneller. Gebruik een CNAME als het doel-IP kan veranderen of door een derde wordt beheerd
Zo regelt WEMASY CNAME-records
Als je een eigen domein aan je WEMASY-website koppelt, vertelt WEMASY je precies welke DNS-records je moet toevoegen. Voor subdomeinen betekent dat meestal een CNAME-record dat naar de servers van WEMASY wijst. WEMASY regelt aan de andere kant de hosting, SSL en routering, dus zodra de CNAME er staat, verbindt je subdomein automatisch met je site.
Voor hoofddomeinen geeft WEMASY in plaats daarvan de waarden van het A-record, omdat CNAME-records niet op het hoofddomein kunnen. De installatiegids loodst je door beide opties, afhankelijk van welk type domein je koppelt. Bekijk wat er in elk abonnement zit op de prijzenpagina van WEMASY.
Hoe nu verder
Nu je begrijpt hoe CNAME-records aliassen tussen domeinnamen maken, behandelt het volgende hoofdstuk een ander essentieel recordtype. MX-records bepalen waar de e-mail van je domein wordt bezorgd en volgen hun eigen regels. Dat staat in het volgende hoofdstuk over wat een MX-record is. Voor een overzicht van alle recordtypen en wanneer je welk gebruikt, lees je het hoofdstuk over DNS-recordtypen.
Kan een CNAME-record naar een IP-adres verwijzen?
Nee. Een CNAME-record kan alleen naar een andere domeinnaam verwijzen, nooit naar een IP-adres. Moet een hostnaam rechtstreeks naar een IP-adres wijzen, gebruik dan een A-record (voor IPv4) of een AAAA-record (voor IPv6). Het doel van een CNAME is een alias maken tussen twee domeinnamen.
Beïnvloedt een CNAME-record de snelheid van je website?
Een CNAME voegt één extra DNS-lookup toe, omdat de browser eerst de alias en daarna het doel moet omzetten. In de praktijk kost die extra stap maar een paar milliseconden en merk je er meestal niets van. Is snelheid een zorg, vermijd dan CNAME-ketens waarin meerdere aliassen naar elkaar verwijzen, want elke stap voegt een lookup toe.
Wat gebeurt er als het doel van een CNAME-record offline gaat?
Als de domeinnaam waar een CNAME naar verwijst niet meer wordt omgezet of de server erachter uitvalt, werkt je alias ook niet meer. De CNAME volgt het doel overal naartoe, ook bij downtime. Het CNAME-record zelf heeft geen ingebouwde reserve.
Is een CNAME hetzelfde als een redirect?
Nee. Een CNAME is een alias op DNS-niveau die de browser vertelt waar de server te vinden is. De URL in de browser blijft hetzelfde. Een redirect is een instructie op serverniveau die de browser naar een heel andere URL stuurt, waarna de URL in de browser verandert. Een CNAME verbindt domeinnamen achter de schermen. Een redirect stuurt bezoekers naar een nieuw adres.
Kun je een CNAME en een A-record op dezelfde hostnaam gebruiken?
Nee. De DNS-specificatie staat niet toe dat een CNAME naast een ander recordtype op dezelfde hostnaam bestaat. Heeft een hostnaam een CNAME, dan moet die het enige record op die naam zijn. Dit is een van de redenen dat een CNAME niet op het hoofddomein kan staan, dat al NS-records en vaak ook MX- en TXT-records nodig heeft.