Hva er et kanonisk navn?
Et kanonisk navn er et begrep som brukes i datanettverk for å identifisere datamaskinens faktiske navn i Internett-navnesystemet. Den brukes ofte i referanse til en ressursregistrering i domenenavnsystemet (DNS), som er ansvarlig for å oversette obskure Internett-protokoll (IP) -adresser til mer gjenkjennelige navn. I dette tilfellet kalles ressursoppføringen i DNS CNAME og gjør det mulig for et annet navn, eller et alias, å peke på datamaskinens virkelige navn.
Når for eksempel en datamaskin leter etter et nettsted, sjekker den navnet som er skrevet inn i nettleseren mot spesielle servere som er vert for DNS-postene. Hvis navnet som blir sett opp i DNS-postene er spesifisert i en CNAME-post, mottar det det kanoniske navnet, og utfører deretter et nytt oppslag mot det kanoniske navnet for å løse IP-adressen til vertsdatamaskinen. Et ganske vanlig eksempel er når en enkelt datamaskin er vert for flere tjenester, for eksempel et nettsted og en FTP-tjeneste (File Transfer Protocol) for overføring av data.
I en nettleser kan en bruker skrive inn www.example.com. Under DNS-oppslaget møter den det kanoniske navnet i en CNAME-post som peker til en server som heter foo.example.com. En annen bruker kan da bruke en FTP-klient og skrive inn adressen til FTP-serveren på ftp.example.com. DNS-oppslaget møter en annen CNAME-oppføring som også peker til foo.example.com, nøyaktig den samme vertsmaskinen som blir brukt på nettstedet. I dette tilfellet ble imidlertid to forskjellige navn gitt til DNS, noe som førte til det kanoniske navnet på serveren.
I noen av de ovennevnte tilfellene utfører DNS deretter et nytt oppslag etter det kanoniske navnet for å løse sin IP-adresse i nettverket. IP-adressen blir deretter sendt tilbake til datamaskinen som lager nettet eller FTP-forespørselen, slik at datapakkene kan begynne å strømme. Selvfølgelig åpner dette flere muligheter for nettverksadministratorer å bruke DNS CNAME-postene på andre måter. En annen vanlig teknikk som brukes av webhotellhotstjenester gjør det mulig for en enkelt vertsdatamaskin å kjøre flere webservere, hver med et annet navn.
På grunn av den sarte naturen til DNS, er det imidlertid en rekke farer ved å implementere kanoniske navn med CNAME-poster, og det er derfor begrensninger i bruken. Det farligste er potensialet for å lage en uendelig sløyfe under oppslaget av et navn, og derfor skal ingen CNAME-post vise til en annen CNAME-post. Hvis for eksempel to CNAME-poster brukes, der www.example.com peker til det kanoniske navnet foo.example.com og deretter foo.example.com peker tilbake til www.example.com, vil oppslaget uendelig sjekke ett navn mot den andre.