Direct naar de inhoud

Cookie-instellingen

Kies per soort welke cookies je toestaat. Je kunt je keuze altijd wijzigen via Cookie-instellingen onderaan elke pagina. Privacyverklaring

Noodzakelijk

Altijd aan

Nodig om in te loggen, je winkelwagen te bewaren en je keuzes te onthouden. Deze staan altijd aan.

Welke cookies?
  • weboke_sessie, weboke_klant, weboke_remember: je sessie en ingelogd blijven
  • weboke_basket: je winkelwagen
  • wkBtwIncl: prijzen met of zonder btw tonen
  • wok_cookies: je cookiekeuze, 12 maanden

Meet welke advertentie tot een bezoek of bestelling leidt, zodat we niet betalen voor advertenties die niets doen.

Welke cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), tot 90 dagen
  • OpenAI Ads, advertenties in ChatGPT
  • wok_aff: via welke partner je bij ons kwam (affiliateprogramma), 60 dagen

4,6

Land en taal

Elk land heeft zijn eigen site, met prijzen en btw van dat land.

Bekijken

CNAME en de kale domeinnaam

Module 3: Records voor je website · Leestijd: 8 minuten

Leerdoel: Na deze les kun je een CNAME-record correct maken en uitleggen waarom het niet op de kale domeinnaam kan.

Kernbegrippen: CNAME, alias, doelnaam, de CNAME-regel (geen andere records ernaast), apex (kale domeinnaam), ALIAS/ANAME/CNAME flattening

Een naam die naar een andere naam wijst

Een A-record zegt: "deze naam woont op dit adres". Een CNAME-record (van canonical name) zegt iets anders: "deze naam is eigenlijk een andere naam, vraag het daar maar". Je maakt er een alias mee.

shop.example.com.   3600  IN  CNAME  shops.platform.example.

Vraagt een browser het adres van shop.example.com, dan antwoordt de DNS: "dat is shops.platform.example". De resolver zoekt dan het A- of AAAA-record van die naam op en geeft dat adres terug. Voor de bezoeker merk je er niets van: de adresbalk toont gewoon shop.example.com.

Waarom zou je dat willen? Omdat het IP-adres dan het probleem van de ander is. Een webwinkelplatform, nieuwsbriefdienst of cloudpartij kan zijn servers verplaatsen en de adressen wijzigen zonder dat jij iets hoeft aan te passen. Daarom vragen veel diensten om een CNAME in plaats van een A-record: "laat www wijzen naar shops.platform.example".

De punt aan het eind

In les 2.2 heb je gezien dat een naam zonder punt aan het eind als relatief wordt gelezen: de DNS plakt je eigen domeinnaam erachter. Bij een CNAME gaat dat heel vaak mis.

Je typt bij de waardeWat de DNS ervan maakt
shops.platform.example.shops.platform.example (goed)
shops.platform.exampleshops.platform.example.example.com (bestaat niet)

Veel panelen voegen de punt tegenwoordig zelf toe of waarschuwen je. Andere niet. Kijk dus na het opslaan in de lijst: zie je je eigen domeinnaam achter de waarde staan, dan ontbrak de punt.

Dezelfde regel geldt voor de mailserver in een MX-record en voor NS-records. Bij een IP-adres in een A-record zet je geen punt.

De CNAME-regel: niets ernaast

Een CNAME heeft één harde regel uit de DNS-standaard (RFC 1034, paragraaf 3.6.2, en RFC 2181): een naam met een CNAME mag geen andere records hebben. Logisch: de CNAME zegt "ik ben eigenlijk die andere naam". Als er dan ook nog een A-record of een MX-record bij staat, is niet duidelijk welk antwoord geldt.

Daaruit volgen twee dingen die je in de praktijk tegenkomt:

  1. Staat er al een A-record voor shop, verwijder dat dan eerst. Een paneel weigert anders het CNAME-record, of erger, accepteert het en de DNS gaat raar doen.
  2. Een CNAME op de kale domeinnaam kan niet.

Waarom niet op de kale domeinnaam?

De kale domeinnaam, example.com zonder iets ervoor, heet in vaktaal de apex of de top van de zone. Op die naam staan altijd records die er móéten zijn:

  • het SOA-record (de technische kop van de zone),
  • de NS-records (welke nameservers de zone beheren),
  • meestal ook MX-records (mail) en TXT-records (SPF, verificatie).

Omdat een CNAME geen andere records naast zich duldt, en de apex altijd SOA en NS heeft, kan er op de apex geen CNAME staan. Dat is geen beperking van je paneel, maar van de DNS zelf.

Vraagt een dienst je om "je hoofddomein" te koppelen, dan zijn er drie oplossingen:

  1. Een A-record (en eventueel AAAA) met het IP-adres van de dienst. De meeste webwinkelplatforms geven daarvoor een vast adres op. Dit werkt overal.
  2. Een ALIAS-, ANAME- of "CNAME flattening"-record. Sommige DNS-partijen bieden een eigen recordtype dat zich gedraagt als CNAME, maar dat de nameserver zelf omzet naar een A-record voordat het antwoord de deur uitgaat. Dit is geen officieel recordtype: het werkt alleen bij partijen die het ondersteunen, en het heet overal anders.
  3. Doorsturen. Laat de kale domeinnaam met een A-record naar je eigen webserver wijzen, en laat die bezoekers doorsturen naar www.example.com, dat wel een CNAME naar de dienst heeft. Hoe doorsturen werkt, lees je in les 3.4.

Waar een CNAME nog meer niet mag

  • Een MX-record mag niet naar een CNAME wijzen (RFC 2181, paragraaf 10.3). De mailserver in een MX moet een naam zijn met een eigen A- of AAAA-record. Sommige mailservers redden zich toch, maar je kunt er niet op rekenen.
  • Geen CNAME op een naam die je ook als subdomein in je hostingpaneel hebt. Een subdomein in het paneel krijgt zelf al records die naar je hosting wijzen. Wil je dat de naam naar een andere dienst wijst, verwijder dan het subdomein en maak alleen het CNAME-record.
  • Ketens kunnen, maar beperk ze. Een CNAME mag naar een naam wijzen die zelf weer een CNAME is. Elke stap kost een extra opzoeking. Grote platforms doen dit vaak (je ziet dan twee of drie CNAMEs achter elkaar), maar maak zelf geen lange ketens.
Een CNAME maken, met de punt aan het eind 0:52

In de praktijk: zo ziet het eruit in een paneel

Als voorbeeld gebruiken we het DNS-scherm van Mijn WebOké. In andere panelen (DirectAdmin, cPanel, Plesk, Cloudflare, de meeste registrars) heten de knoppen anders, maar vul je dezelfde drie dingen in: type, naam en doelnaam.

  1. Open het DNS-scherm van je domein en klik op Record toevoegen.
  2. Kies het type CNAME.
  3. Vul bij Naam alleen shop in, zonder je domeinnaam.
  4. Vul bij Verwijst naar de doelnaam in, met een punt aan het eind: shops.platform.example.
  5. Sla op en controleer in de lijst of er niet je eigen domeinnaam achter de waarde staat.

Het paneel in het voorbeeld waarschuwt als de punt ontbreekt. Niet elk paneel doet dat.

Samenvatting

  • Een CNAME maakt van een naam een alias voor een andere naam; het IP-adres beheert dan de ander.
  • Zet een punt aan het eind van de doelnaam, anders plakt de DNS je eigen domein erachter.
  • Een naam met een CNAME mag geen andere records hebben.
  • Daarom kan een CNAME niet op de kale domeinnaam: daar staan altijd SOA en NS. Gebruik daar een A-record, een ALIAS-achtig record van je DNS-partij of doorsturen.
  • Een MX-record mag niet naar een CNAME wijzen.

Quiz

1. Een dienst vraagt je om example.com (zonder www) als CNAME naar shops.platform.example te laten wijzen. Wat doe je?



2. Je typt bij een CNAME voor shop de waarde shops.platform.example zonder punt. In de lijst staat daarna shops.platform.example.example.com. Wat is er gebeurd?



3. Voor shop.example.com staat al een A-record. Je wilt er een CNAME van maken. Wat moet je eerst doen?



4. Mag de mailserver in een MX-record een naam zijn die een CNAME heeft?



Opdracht

Z3.2 (opzoeken): Naar welke naam wijst het CNAME-record van en.wikipedia.org? Vul de doelnaam in.

Opdracht Z3.2: Een CNAME volgen


We slaan niets op van wat je invult of wat we vinden. Alleen je browser onthoudt dat je de opdracht hebt gehaald.

O3.2 (instellen): Maak in je oefenzone een CNAME-record met de naam winkel dat wijst naar shops.shop-demo.dnspractice.eu. (met de punt). Zorg dat er voor winkel geen ander record staat. In de oefenzone gebruik je een nepdienst; bij je echte domein vul je de doelnaam in die de echte dienst opgeeft. Klik daarna op Controleren.

Opdracht O3.2 Deze opdracht doe je in je eigen oefenzone. De oefenzone komt later beschikbaar.

Verder lezen

Deze artikelen beschrijven de stappen in de panelen van WebOké; in andere panelen werken ze vergelijkbaar.

Even geduld…

Stel je domeinen in

Regel per domein de nameservers, de koppeling aan je hosting en wie de eigenaar wordt.

Je domeinen laden…