Vyšlo v týdeníku CHIPweek č. 35/96, 27. srpna 1996
Vytištěno z adresy: http://www.earchiv.cz/a96/a635k130.php3

MX záznam

O systému doménových jmen (systému DNS, Domain Name System) jsme si v tomto seriálu povídali již několikrát. Přitom jsme si vždy zdůrazňovali, že jde o celý ucelený systém, určený zejména k tomu, aby uživatelům Internetu umožňoval používat lépe zapamatovatelná symbolická jména místo málo mnemonických číselných IP adres (na kterých přenosové mechanismy v Internetu skutečně fungují). Jakmile ale takovýto propracovaný, udržovaný a fungující systém v Internetu jednou existuje, bylo by škoda jej nevyužít i pro další účely.

Jedním z těchto „dalších účelů" je i doručování elektronické pošty. V této oblasti totiž došlo k určitým změnám výchozích předpokladů oproti tomu, z čeho vycházela původní koncepce elektronické pošty v Internetu (daná protokolem SMTP a standardem RFC 822), a reagovat na ně se podařilo právě díky možnosti využít systém DNS i pro jiné účely. O co ale šlo?

Prvotní koncepce elektronické pošty počítala s tím, že jednotlivé zprávy jsou opatřovány adresami typu „uživatel@počítač", a že k jejich doručení tudíž stačí navázat spojení s příslušným cílovým počítačem uvedeným přímo v adrese a dopis na něj přenést. Časem se ale k Internetu začalo připojovat mnoho sítí, jejichž připojení nebylo trvalé - šlo o sítě s tzv. komutovanou přípojkou, které své spojení s Internetem navazovaly jen někdy, typicky na základě své vlastní potřeby (když se někdo „zevnitř" potřeboval dovolat ven). Důležité přitom bylo, že pro potenciální odesilatele elektronické pošty „zvnějšku" nebyly počítače v takovýchto sítích vždy dostupné. Mechanismus přenosu zpráv (daný zejména protokolem SMTP a jeho implementací) však tvrdošíjně počítal s tím, že počítač-adresát je kdykoli dostupný, a opačnou situaci interpretoval jako chybu (a své pokusy odeslat mu zprávu nejprve několikrát opakoval, a pak ohlásil neúspěch a zprávu vrátil jako nedoručitelnou).

Místo změny samotného přenosového mechanismu se nakonec použilo jiné řešení, které přineslo i některé další výhody. Toto řešení spočívá v tom, že kromě adres typu „uživatel@počítač" se povolilo i používání adres typu „uživatel@doména". Například místo mé adresy „pet@frode.dcit.cz", která specifikuje konkrétní počítač (frode v doméně dcit.cz) mi můžete psát i na adresu „pet@dcit.cz". Z té sice nevyplývá, na který konkrétní počítač se má zpráva doručit, ale tuto informaci si může odesílající poštovní server vyžádat právě od systému DNS (navíc sám, bez přímé účasti odesilatele-člověka).

V rámci systému DNS jsou totiž o každé doméně uchovávány různé informace - kromě informací potřebných pro práci se symbolickými jmény to jsou i informace potřebné pro doručování pošty. Vrátíme-li se k příkladu z předchozího odstavce, pro doménu dcit.cz by zde byla obsažena i informace typu „veškerou poštu pro uživatele v doméně dcit.cz doručuj na uzel frode.dcit.cz".

Pokud jde o technickou stránku věci, tyto informace jsou v jednotlivých name serverech systému DNS uchovávány jako posloupnost položek (záznamů), obecně označovaných jako Resource Records (zkratkou RR). Tyto položky přitom mohou být různého typu, a jeden z nich je i typ určený pro potřeby doručování elektronické pošty - je to záznam typu Mail eXchanger (zkratkou MX).

Jednotlivé MX záznamy v rámci určité domény tedy určují, kam konkrétně má být doručována elektronická pošta pro tuto doménu. Takovýchto MX záznamů přitom může být i více, a mohou být „odstupňovány" - díky číselnému parametru, který vyjadřuje jejich váhu resp. prioritu. Smyslem je právě vyhovět situacím, kdy některý z počítačů-příjemců není dostupný. Například u příjemců s pouze dočasným připojením (s komutovanou přípojkou) lze díky prioritám MX záznamů stanovit, že v případě momentální existence spojení má být pošta doručena přímo cílovému poštovnímu serveru (příslušný MX záznam má nejvyšší prioritu), a v případě momentální neexistence spojení má být pošta dočasně „uskladněna" na jiném, trvale dosažitelném počítači (tento MX záznam musí mít nižší prioritu). Této možnosti se přitom s výhodou využívá i v případě takových domén resp. sítí, které mají trvalé spojení, a ošetřuje se tím případný výpadek tohoto spojení (během kterého se pak veškerá pošta skladuje na některém jiném poštovním serveru).

Existence MX záznamů, která umožňuje používat adresy typu „uživatel@doména", pak přináší i další výhody. Například tu, že při případných změnách v poštovním systému na straně příjemce není nutné měnit poštovní adresy jednotlivých uživatelů. Kdyby třeba v doméně dcit.cz převzal roli poštovního serveru místo uzlu frode některý jiný počítač (viz výše uvedený příklad), musel bych všem kdo mi píší oznamovat změnu své adresy „pet@frode.dcit.cz" na příslušnou novou adresu. Naproti tomu adresa „pet@dcit.cz" se měnit nemusí, neboť zde stačí jedna jediná změna v příslušném MX záznamu v rámci systému DNS.