En kanonisk navneoptegnelse (forkortet "CNAME-post") er en type ressourceoptegnelse i Domain Name System (DNS), der giver dig mulighed for at specificere, at et domænenavn er et alias for et andet domæne.
Dette kan være nyttigt, når du kører flere tjenester (såsom en FTP- server og en webserver ; hver kører på forskellige porte ) fra en enkelt IP-adresse . For eksempel kan du pege ftp.example.com og www.example.com til DNS-posten example.com , som har en A- post, der peger på en IP-adresse. Derefter, hvis IP-adressen nogensinde ændres, er der kun én ændring, der skal foretages i netværket.
CNAME-poster skal altid pege på et andet domænenavn, aldrig direkte til en IP-adresse.
CNAME-poster er specificeret i [rfc: 1034 RFC 1034] og specificeret i paragraf 10 i [rfc: 2181 RFC 2181].
De behandles specielt i DNS og har flere begrænsninger for deres brug. Når en DNS-resolver støder på den, mens den leder efter en klassisk post, genstarter den forespørgslen ved hjælp af det kanoniske navn i stedet for det oprindelige navn. Hvis resolveren startes med det formål at se på CNAME-poster, returneres det kanoniske navn (til højre) i stedet for at genstarte forespørgslen. Det kanoniske navn, som en CNAME-post peger på, kan være hvor som helst i DNS, hvad enten det er på den lokale server eller på en ekstern server i en anden DNS-zone.
For eksempel med den følgende DNS-zone, når løsningen på bar.example.com , vil løseren se en CNAME-post. Det genstarter kontrollen med foo.example.com og returnerer 192.0.2.23.
NOM TYPE VALEUR -------------------------------------------------- bar.example.com. CNAME foo.example.com. foo.example.com. A 192.0.2.23
En DNAME-post eller " Navneregistreringsdelegation " er defineret af [rfc: 6672 i RFC 6672] (den oprindelige RFC 2672 er nu forældet). En DNAME-post opretter et alias for alle undertræer i domænenavnet. I modsætning hertil opretter CNAME-posten et alias for et unikt navn og ikke for dets underdomæner. DNS syntetiserer en CNAME-post for at anvende DNAME for navneanmodningen - Cname for hver node på et undertræ med samme effekt som et DNAME for hele undertræet.
For eksempel, hvis der er en DNS-zone som følger:
foo.example.com. DNAME bar.example.com. bar.example.com. A 192.0.2.23 xyzzy.bar.example.com. A 192.0.2.24 *.bar.example.com. A 192.0.2.25En søgning efter en A-post foo.example.com returnerer ikke noget, fordi et DNAME ikke er et CNAME, og der ikke er nogen A-post, der er direkte relateret til foo.
Dog en søgning efter xyzzy. foo .example.com kortlægges og returnerer A-posten for xyzzy. bar .eksempel.com , som er 192.0.2.24; hvis posten NAME havde været en CNAME-post, ville denne anmodning have returneret navnet, der ikke blev fundet.
Endelig vil en anmodning om foobar.foo.example.com blive kortlagt og returnere 192.0.2.25.