3. modul · 3.2
A CNAME és a csupasz domain
3. modul: Rekordok a weboldalhoz · Olvasási idő: 8 perc
Tanulási cél: E lecke után Ön képes helyesen létrehozni egy CNAME-rekordot, és megmagyarázni, miért nem lehet azt a csupasz domainen beállítani.
Alapfogalmak: CNAME, alias, célnév, a CNAME-szabály (nem lehet mellette más rekord), apex (csupasz domain), ALIAS/ANAME/CNAME flattening
Egy név, amely egy másik névre mutat
Egy A-rekord azt mondja: "ez a név ezen a címen található". Egy CNAME-rekord (a canonical name kifejezésből) mást mond: "ez a név valójában egy másik név, azt kérdezze meg". Ezzel egy aliast hoz létre.
shop.example.com. 3600 IN CNAME shops.platform.example.Ha egy böngésző a shop.example.com címét kérdezi, a DNS azt válaszolja: "ez a shops.platform.example". A resolver ekkor megkeresi ennek a névnek az A- vagy AAAA-rekordját, és azt a címet adja vissza. A látogató ebből semmit nem vesz észre: a címsorban egyszerűen a shop.example.com jelenik meg.
Miért lenne ez hasznos? Mert ekkor az IP-cím már a másik fél problémája. Egy webáruházplatform, hírlevélszolgáltató vagy felhőszolgáltató áthelyezheti a szervereit és megváltoztathatja a címeket anélkül, hogy Önnek bármit módosítania kellene. Ezért sok szolgáltatás CNAME-et kér A-rekord helyett: "mutasson a www a shops.platform.example felé".
A pont a végén
A 2.2 leckében láthatta, hogy a pont nélküli nevet a DNS relatívként olvassa: a saját domainnevét illeszti a végére. CNAME esetén ez nagyon gyakran hibát okoz.
| Amit az értéknél beír | Amit a DNS ebből csinál |
|---|---|
shops.platform.example. | shops.platform.example (helyes) |
shops.platform.example | shops.platform.example.example.com (nem létezik) |
Sok kezelőfelület manapság már maga illeszti be a pontot, vagy figyelmeztet rá. Mások nem. Mentés után ezért mindig ellenőrizze a listában: ha a saját domainneve ott áll az érték mögött, akkor hiányzott a pont.
Ugyanez a szabály vonatkozik a levelezőszerverre az MX-rekordban és az NS-rekordokra is. Egy A-rekordban szereplő IP-cím után nem kell pontot tenni.
A CNAME-szabály: semmi más mellette
A CNAME-nek egy szigorú szabálya van a DNS-szabványból (RFC 1034, 3.6.2. szakasz, és RFC 2181): egy névhez, amelyhez CNAME tartozik, nem lehet más rekord. Ez logikus: a CNAME azt mondja, "én valójában az a másik név vagyok". Ha emellett még egy A-rekord vagy MX-rekord is szerepelne, nem lenne egyértelmű, melyik válasz érvényes.
Ebből két gyakorlati dolog következik:
- Ha a
shopnévhez már létezik A-rekord, azt előbb törölje. Egyes kezelőfelületek ellenkező esetben elutasítják a CNAME-rekordot, vagy ami rosszabb, elfogadják, és a DNS furcsán fog viselkedni. - A csupasz domainen nem lehet CNAME-et beállítani.
Miért nem a csupasz domainen?
A csupasz domaint, vagyis a example.com nevet bármilyen előtag nélkül, szaknyelven apexnek vagy a zóna csúcsának nevezik. Ezen a néven mindig szerepelnek olyan rekordok, amelyeknek ott kell lenniük:
- a SOA-rekord (a zóna technikai fejléce),
- az NS-rekordok (mely névszerverek kezelik a zónát),
- legtöbbször az MX-rekordok (e-mail) és TXT-rekordok (SPF, hitelesítés) is.
Mivel egy CNAME mellett nem lehet más rekord, az apexen pedig mindig van SOA és NS, az apexen nem állítható be CNAME. Ez nem a kezelőfelület korlátozása, hanem magának a DNS-nek a tulajdonsága.
Ha egy szolgáltatás azt kéri, hogy "kösse össze a főnévét" a domainjével, három megoldás létezik:
- A-rekord (és esetleg AAAA) a szolgáltatás IP-címével. A legtöbb webáruházplatform ehhez egy fix címet ad meg. Ez mindenhol működik.
- ALIAS-, ANAME- vagy "CNAME flattening" rekord. Egyes DNS-szolgáltatók saját rekordtípust kínálnak, amely úgy viselkedik, mint egy CNAME, de amelyet a névszerver maga alakít át A-rekorddá, mielőtt a válasz elhagyja a rendszert. Ez nem hivatalos rekordtípus: csak az azt támogató szolgáltatóknál működik, és mindenhol más néven szerepel.
- Átirányítás. Állítsa be, hogy a csupasz domain A-rekorddal a saját webszerverére mutasson, és onnan irányítsa át a látogatókat a
www.example.comfelé, amelynél már van CNAME a szolgáltatáshoz. Az átirányítás működéséről a 3.4 leckében olvashat.
Hol nem alkalmazható még a CNAME
- Egy MX-rekord nem mutathat CNAME-re (RFC 2181, 10.3. szakasz). Az MX-ben szereplő levelezőszervernek olyan névnek kell lennie, amelyhez saját A- vagy AAAA-rekord tartozik. Néhány levelezőszerver mégis megbirkózik vele, de erre nem lehet biztosan számítani.
- Ne állítson be CNAME-et olyan névhez, amely egyben aldomainként is szerepel a tárhelykezelő felületén. A kezelőfelületen beállított aldomain már saját rekordokat kap, amelyek az Ön tárhelyére mutatnak. Ha azt szeretné, hogy a név egy másik szolgáltatásra mutasson, törölje az aldomaint, és csak a CNAME-rekordot hozza létre.
- Láncolás lehetséges, de korlátozza. Egy CNAME mutathat olyan névre, amely maga is CNAME. Minden lépés egy extra lekérdezést jelent. A nagy platformok gyakran alkalmaznak ilyet (ekkor két vagy három CNAME-et lát egymás után), de saját maga ne hozzon létre hosszú láncokat.
A gyakorlatban: így néz ki egy kezelőfelületen
Példaként a Fiókom DNS-képernyőjét használjuk. Más kezelőfelületeken (DirectAdmin, cPanel, Plesk, Cloudflare, a legtöbb regisztrátornál) a gombok máshogy hívhatók, de ugyanazt a három adatot kell megadnia: típus, név és célnév.
- Nyissa meg a domainjéhez tartozó DNS-képernyőt, és kattintson az Új rekord felvétele gombra.
- Válassza a CNAME típust.
- A Név mezőbe csak a
shopszót írja be, a domainneve nélkül. - A Erre mutat mezőbe írja be a célnevet, a végén ponttal:
shops.platform.example. - Mentse el, majd ellenőrizze a listában, hogy nem jelenik-e meg a saját domainneve az érték mögött.
A példában szereplő kezelőfelület figyelmeztet, ha hiányzik a pont. Nem minden kezelőfelület teszi ezt.
Összefoglalás
- A CNAME egy nevet egy másik név aliasává tesz; az IP-címet ekkor a másik fél kezeli.
- Tegyen pontot a célnév végére, különben a DNS a saját domainjét illeszti a végéhez.
- Egy névhez, amelyhez CNAME tartozik, nem lehet más rekord.
- Ezért nem lehet CNAME a csupasz domainen: ott mindig van SOA és NS. Ott A-rekordot, a DNS-szolgáltatója által kínált ALIAS-szerű rekordot vagy átirányítást használjon.
- Egy MX-rekord nem mutathat CNAME-re.
Kvíz
Feladat
Z3.2 feladat: Egy CNAME követése. Melyik névre mutat a en.wikipedia.org CNAME-rekordja? Adja meg a célnevet.
O3.2 feladat: Önálló beállítás a gyakorlózónában. Hozzon létre a gyakorlózónájában egy winkel nevű CNAME-rekordot, amely a shops.shop-demo.dnspractice.eu. névre mutat (a ponttal együtt). Ügyeljen rá, hogy a winkel névhez ne tartozzon más rekord. A gyakorlózónában egy fiktív szolgáltatást használ; a valódi domainjénél azt a célnevet adja meg, amelyet a valódi szolgáltatás megad. Ezután kattintson az Ellenőrzés gombra.
O3.2. feladat
Ezt a feladatot a saját gyakorlózónájában végzi el: egy valódi DNS-zónában, amely a WebOké névszerverein fut, és kizárólag az Ön számára jött létre. Jelentkezzen be az e-mail címével. Egy belépési linket kap e-mailben, amellyel visszatérhet erre a leckére. Az e-mail címét kizárólag a tanfolyamhoz használjuk.
További olvasnivaló
Ezek a cikkek a WebOké kezelőfelületein bemutatott lépéseket írják le; más kezelőfelületeken hasonlóan működnek.
