Kaj je kanonično ime?

Kanonično ime je izraz, ki se uporablja v računalniškem omrežju za identifikacijo dejanskega imena računalnika v sistemu internetnih poimenovanj. Najpogosteje se uporablja v zvezi z zapisom virov v sistemu domenskih imen (DNS), ki je odgovoren za prevajanje prikritih naslovov internetnega protokola (IP) v bolj prepoznavna imena. V tem primeru se zapis vira v DNS imenuje CNAME in omogoča, da drugo ime ali vzdevek kaže na pravo ime računalnika.

Ko računalnik na primer išče spletno mesto, preveri ime, vneseno v spletni brskalnik, glede na posebne strežnike, ki gostijo zapise DNS. Če je ime, ki ga iščete v zapisih DNS, podano v zapisu CNAME, prejme kanonično ime in nato izvede drugo iskanje po kanoničnem imenu, da razreši naslov IP gostiteljskega računalnika. Precej pogost primer je, ko en računalnik gosti več storitev, na primer spletno mesto in storitev protokola za prenos datotek (FTP) za prenos podatkov.

V spletnem brskalniku lahko uporabnik vnese www.example.com. Med iskanjem DNS naleti na kanonično ime v zapisu CNAME, ki kaže na strežnik z imenom foo.example.com. Drugi uporabnik lahko nato uporablja odjemalca FTP in vnese naslov strežnika FTP na ftp.example.com. Iskanje DNS naleti na drug vnos CNAME, ki prav tako kaže na foo.example.com, popolnoma isti gostiteljski stroj, ki se uporablja za spletno mesto. V tem primeru pa sta bili DNS-ju dani dve različni imeni, kar je privedlo do kanoničnega imena strežnika.

V katerem koli od zgornjih primerov DNS nato izvede drugo iskanje kanoničnega imena, da razreši njegov naslov IP v omrežju. Naslov IP se nato pošlje nazaj računalniku, ki naredi spletno ali FTP zahtevo, tako da lahko začnejo teči podatkovni paketi. Seveda to odpira več možnosti skrbnikom omrežja, da zapise DNS CNAME uporabljajo tudi na druge načine. Druga pogosta tehnika, ki jo uporabljajo storitve gostovanja spletnih mest, omogoča, da en gostiteljski računalnik zažene več spletnih strežnikov, od katerih ima vsak drugačno ime.

Zaradi občutljive narave DNS pa obstajajo številne nevarnosti pri implementaciji kanoničnih imen z zapisi CNAME, zato obstajajo omejitve za njegovo uporabo. Najbolj nevarna je možnost ustvarjanja neskončne zanke med iskanjem imena, zato noben zapis CNAME ne sme kazati na drug zapis CNAME. Če se na primer uporabita dva zapisa CNAME, kjer www.example.com kaže na kanonično ime foo.example.com in nato foo.example.com kaže nazaj na www.example.com, bo iskanje neskončno preverjalo eno ime proti drugemu.