Vad är ett kanoniskt namn?

Ett kanoniskt namn är en term som används i datornätverk för att identifiera en dators faktiska namn inom internetnamnsystemet. Det används oftast med hänvisning till en resurspost i domännamnssystemet (DNS), som ansvarar för att översätta obskyra IP-adresser till mer igenkännliga namn. I det här fallet kallas resursposten i DNS CNAME och tillåter att ett annat namn, eller alias, pekar på datorns riktiga namn.

När en dator letar efter en webbplats, till exempel, kontrollerar den namnet som skrivits in i webbläsaren mot speciella servrar som är värd för DNS-posterna. Om namnet som slås upp i DNS-posterna anges i en CNAME-post, får det det kanoniska namnet och utför sedan en andra uppslagning mot det kanoniska namnet för att lösa värddatorns IP-adress. Ett ganska vanligt exempel är när en enda dator är värd för flera tjänster, till exempel en webbplats och en filöverföringsprotokoll (FTP)-tjänst för överföring av data.

I en webbläsare kan en användare skriva in www.example.com. Under DNS-sökningen påträffar den det kanoniska namnet i en CNAME-post som pekar på en server som heter foo.example.com. En annan användare kanske då använder en FTP-klient och skriver in adressen till FTP-servern på ftp.example.com. DNS-sökningen påträffar en annan CNAME-post som också pekar på foo.example.com, exakt samma värddator som används för webbplatsen. I det här fallet gavs dock två olika namn till DNS, vilket ledde till serverns kanoniska namn.

I något av ovanstående fall utför DNS sedan en andra sökning efter det kanoniska namnet för att lösa dess IP-adress i nätverket. IP-adressen skickas sedan tillbaka till datorn som gör webb- eller FTP-begäran så att datapaketen kan börja flöda. Naturligtvis öppnar detta upp flera möjligheter för nätverksadministratörer att använda DNS CNAME-posterna på andra sätt. En annan vanlig teknik som används av webbhotelltjänster gör att en enda värddator kan köra flera webbservrar, var och en med olika namn.

På grund av DNS:s känsliga natur finns det dock ett antal faror med att implementera kanoniska namn med CNAME-poster, och därför finns det begränsningar för dess användning. Det farligaste är möjligheten att skapa en oändlig loop under ett namns uppslag, och därför bör ingen CNAME-post peka på en annan CNAME-post. Om till exempel två CNAME-poster används, där www.example.com pekar på det kanoniska namnet foo.example.com och sedan foo.example.com pekar tillbaka till www.example.com, kommer uppslagningen oändligt att kontrollera ett namn mot den andre.