CNAME og det rene domæne
Modul 3: Records til din hjemmeside · Læsetid: 8 minutter
Læringsmål: Efter denne lektion kan du oprette et CNAME-record korrekt og forklare hvorfor det ikke kan bruges på det rene domæne.
Nøglebegreber: CNAME, alias, målnavn, CNAME-reglen (ingen andre records ved siden af), apex (rent domæne), ALIAS/ANAME/CNAME flattening
Et navn der peger på et andet navn
Et A-record siger: "dette navn bor på denne adresse". Et CNAME-record (af canonical name) siger noget andet: "dette navn er egentlig et andet navn, spørg der i stedet". Du laver dermed et alias.
shop.example.com. 3600 IN CNAME shops.platform.example.Spørger en browser om adressen på shop.example.com, svarer DNS'en: "det er shops.platform.example". Resolveren slår derefter A- eller AAAA-recordet for det navn op og giver den adresse tilbage. Besøgende mærker ikke noget til det: adresselinjen viser bare shop.example.com.
Hvorfor vil du det? Fordi IP-adressen så bliver den andens problem. En webshop-platform, nyhedsbrevstjeneste eller cloudpartner kan flytte sine servere og ændre adresserne uden at du skal ændre noget. Derfor beder mange tjenester om en CNAME i stedet for et A-record: "lad www pege på shops.platform.example".
Punktummet til sidst
I lektion 2.2 så du at et navn uden punktum til sidst læses som relativt: DNS'en sætter dit eget domænenavn bagpå. Ved en CNAME går det meget ofte galt.
| Du indtaster som værdi | Hvad DNS'en gør med det |
|---|---|
shops.platform.example. | shops.platform.example (korrekt) |
shops.platform.example | shops.platform.example.example.com (findes ikke) |
Mange kontrolpaneler tilføjer i dag selv punktummet eller advarer dig. Andre gør det ikke. Tjek derfor listen efter du har gemt: ser du dit eget domænenavn efter værdien, manglede punktummet.
Samme regel gælder for mailserveren i et MX-record og for NS-records. Ved en IP-adresse i et A-record sætter du ikke punktum.
CNAME-reglen: intet ved siden af
En CNAME har en fast regel fra DNS-standarden (RFC 1034, afsnit 3.6.2, og RFC 2181): et navn med en CNAME må ikke have andre records. Logisk nok: CNAME'en siger "jeg er egentlig det andet navn". Står der så også et A-record eller et MX-record, er det ikke tydeligt hvilket svar der gælder.
Det fører til to ting du møder i praksis:
- Står der allerede et A-record for
shop, skal du først slette det. Ellers afviser paneelet CNAME-recordet, eller værre, accepterer det og DNS'en begynder at opføre sig mærkeligt. - En CNAME kan ikke bruges på det rene domæne.
Hvorfor ikke på det rene domæne?
Det rene domæne, example.com uden noget foran, kaldes i fagsprog apex eller toppen af zonen. På det navn står der altid records der er obligatoriske:
- SOA-recordet (zonens tekniske hoved),
- NS-records (hvilke navneservere administrerer zonen),
- som regel også MX-records (mail) og TXT-records (SPF, verifikation).
Fordi en CNAME ikke tåler andre records ved siden af sig, og apex altid har SOA og NS, kan der ikke stå en CNAME på apex. Det er ikke en begrænsning i dit panel, men i selve DNS'en.
Beder en tjeneste dig om at koble "dit hoveddomæne" på, er der tre løsninger:
- Et A-record (og eventuelt AAAA) med tjenestens IP-adresse. De fleste webshop-platforme oplyser en fast adresse til det. Dette virker overalt.
- Et ALIAS-, ANAME- eller "CNAME flattening"-record. Nogle DNS-udbydere tilbyder en egen recordtype der opfører sig som CNAME, men som navneserveren selv omsætter til et A-record før svaret sendes af sted. Det er ikke en officiel recordtype: det virker kun hos udbydere der understøtter det, og det hedder noget forskelligt alle steder.
- Videresendelse. Lad det rene domæne pege på din egen webserver med et A-record, og lad den sende besøgende videre til
www.example.com, som har en CNAME til tjenesten. Hvordan videresendelse fungerer, kan du læse om i lektion 3.4.
Hvor en CNAME heller ikke må bruges
- Et MX-record må ikke pege på en CNAME (RFC 2181, afsnit 10.3). Mailserveren i en MX skal være et navn med sit eget A- eller AAAA-record. Nogle mailservere klarer det alligevel, men du kan ikke regne med det.
- Ingen CNAME på et navn du også har som subdomæne i dit hostingpanel. Et subdomæne i panelet får selv records der peger på din hosting. Vil du at navnet skal pege på en anden tjeneste, skal du slette subdomænet og kun oprette CNAME-recordet.
- Kæder kan bruges, men begræns dem. En CNAME må pege på et navn der selv igen er en CNAME. Hvert trin koster et ekstra opslag. Store platforme gør det ofte (du ser så to eller tre CNAME'er efter hinanden), men lav ikke selv lange kæder.
I praksis: sådan ser det ud i et panel
Som eksempel bruger vi DNS-skærmen i Mit WebOké. I andre paneler (DirectAdmin, cPanel, Plesk, Cloudflare, de fleste registrarer) hedder knapperne noget andet, men du udfylder de samme tre ting: type, navn og målnavn.
- Åbn DNS-skærmen for dit domæne og klik på Tilføj post.
- Vælg typen CNAME.
- Udfyld kun
shopi feltet Navn, uden dit domænenavn. - Udfyld målnavnet i feltet Peger på, med et punktum til sidst:
shops.platform.example. - Gem og tjek i listen at der ikke står dit eget domænenavn efter værdien.
Paneelet i eksemplet advarer hvis punktummet mangler. Det gør ikke alle paneler.
Opsummering
- En CNAME gør et navn til et alias for et andet navn; IP-adressen administreres så af den anden.
- Sæt et punktum til sidst i målnavnet, ellers sætter DNS'en dit eget domæne bagpå.
- Et navn med en CNAME må ikke have andre records.
- Derfor kan en CNAME ikke bruges på det rene domæne: der står altid SOA og NS. Brug her et A-record, et ALIAS-lignende record fra din DNS-udbyder eller videresendelse.
- Et MX-record må ikke pege på en CNAME.
Quiz
Opgave
Opgave Z3.2: Følg en CNAME. Hvilket navn peger CNAME-recordet for en.wikipedia.org på? Udfyld målnavnet.
Opgave O3.2: Indstil det selv i din øvelseszone. Opret i din øvelseszone et CNAME-record med navnet winkel der peger på shops.shop-demo.dnspractice.eu. (med punktummet). Sørg for at der ikke står et andet record for winkel. I øvelseszonen bruger du en falsk tjeneste; på dit rigtige domæne udfylder du det målnavn som den rigtige tjeneste oplyser. Klik derefter på Kontrollér.
Opgave O3.2
Denne opgave laver du i din egen øvelseszone: en rigtig DNS-zone på WebOkés navneservere, kun til dig. Tilmeld dig med din e-mailadresse. Du får et login-link på mail og kommer derefter tilbage til denne lektion. Vi bruger kun din adresse til kurset.
Læs mere
Disse artikler beskriver trinnene i WebOkés paneler; i andre paneler fungerer det på lignende vis.
