Vyšlo na Lupě, 29.9.2006
Vytištěno z adresy: http://www.earchiv.cz/b06/b0927001.php3

Jak funguje ENUM?

Systém ENUM využívá ke svému fungování stávající DNS. Zájemce si podle svého telefonního čísla musí nejprve zaregistrovat odpovídající ENUM doménu, a tu pak naplnit potřebnými informacemi. Skrze tzv. validaci ale musí nejprve prokázat, že je oprávněným uživatelem příslušného telefonního čísla. Toto pak musí opakovat každých 6 měsíců.

Minulý pátek jsme si zde na Lupě, v souvislosti se startem testovacího provozu systému ENUM, povídali o tom, co vlastně ENUM je. Dospěli jsme k tomu, že jde o "mapování" z prostoru všech telefonních čísel do prostoru internetových adres (tzv. URI). Tedy o mechanismus, který dostane (jako svůj vstup) telefonní číslo, a to převede na internetovou adresu URI (jako svůj výstup).

Později jsme si tuto představu upřesnili v tom smyslu, že jednomu a témuž telefonnímu číslu může v rámci ENUMu odpovídat více internetových URI - po jedné pro různé služby, které by chtěly ENUM využívat. Tedy například jedna emailová adresa, jedna adresa protokolu SIP nebo H.232 (pro hlasová volání), jedna webová adresa atd. Z toho nám pak vyšla představa ENUMu jako černé krabičky, která má dva vstupy, po jednom pro vlastní dotaz (telefonní číslo) a pro specifikaci druhu dotazu (které služby se má odpověď týkat).

Jak to pak v praxi funguje, jsme si ukazovali na příkladu ENUM klienta, který nám ukázal všechny dostupné odpovědi na dotaz, týkající se konkrétního čísla.

Od představy ENUM klienta je pak už blízko k principiální představě toho, jak vlastně může být ENUM v praxi využíván. Umožňuje totiž, aby uživatelé nemuseli zadávat přímo internetové adresy (URI) těch zdrojů, se kterým chtějí pracovat, ale mohli je identifikovat pomocí telefonních čísel. Potřebný převod pak již zajistí ENUM.

Jedním z důvodů, proč by se uživatelům něco takového mohlo hodit, je samotný numerický charakter telefonních čísel. Tomu jsou totiž lépe uzpůsobena různá mobilní zařízení, zejména mobilní telefony (zatímco zadávat na nich složití URI adresy je obvykle hodně krkolomné).

Jenže ENUM nabízí ještě mnohem více. Tím, že k jednomu telefonnímu číslu poskytuje více "internetových ekvivalentů", umožňuje dostatečně inteligentním zařízením, aby měnily (optimalizovaly) své chování. Například chytré komunikační zařízení, které zjistí že se někomu nelze dovolat "naživo", pomocí interaktivního hlasového hovoru, může samo nabídnout svému uživateli, zda nechce držiteli telefonního čísla poslat mailem hlasový vzkaz. Nebo zda ho nechce kontaktovat nějak jinak, například přes SMS, či přes instant messaging apod.

Nebo úplně jinak: dostatečně chytré zařízení může samo vybrat nejvýhodnější (ve smyslu: nejlacinější) způsob kontaktování volané osoby. Pokud například zjistí, že se mu lze dovolat po Internetu (zdarma), dá této variantě přednost před klasickým voláním přes klasickou telefonní síť (obecně za peníze).

Možností využití ENUMu je opravdu hodně, a mnohé z nich nás dnes ani nenapadají. K těm, které se týkají úspor při hlasovém volání, se dostaneme v dalším článku. Dnes ještě zůstaneme u toho, jak vlastně ENUM funguje. Opět tak ale učiníme "z nadhledu", s důrazem spíše na srozumitelnost a intuitivnost, než na technické detaily. Ostatně, zájemci o přesnější popis ENUM si jistě dokáží sami najít na Internetu relevantní podklady (například zde).

První pohled dovnitř černé skříňky

To hlavní, co bychom si o fungování ENUMu měli říci, je že samo využívá již existujícího a dobře zavedeného systému DNS. Nemá tedy žádnou "vlastní databázi", ale místo toho své "převodní informace" uchovává v rámci systému DNS. Můžeme si to vykládat také tak, že ENUM je vlastně specifický způsob využití stávajícího DNS.

Základní představa je taková, že pro potřeby ENUMu se z telefonního čísla "vyrobí" doména. Tedy podle určitého pravidla se telefonní číslo převede na něco, co už je "řádným" symbolickým doménovým jménem (tzv. plně kvalifikovaným doménovým jménem, FQDN, Fully Qualified Domain Name). To pak může být vstupem do existujícího DNS, které již může obsahovat příslušné informace a odpovídat na dotazy, požadujíci tyto informace.

První pohled "dovnitř" černé skříňky ENUMu

Jak namapovat telefonní čísla?

Než si odpovíme na to, jak konkrétně probíhá převod telefonního čísla na plně kvalifikovaného doménové jméno, zastavme se nejprve u požadavků, které bychom na takovýto převod měli klást.

Samozřejmě musí být respektována vnitřní struktura telefonních čísel, tak jak je definována mezinárodním číslovacím plánem veřejných telefonních sítí, neboli doporučením ITU E.164. Z našeho pohledu, a v návaznosti na náš národní číslovací plán veřejných telefonních sítí, je podstatné že každé (tuzemské) telefonní číslo má "v mezinárodním tvaru" přesně 12 číslic, z nichž první tři jsou pevně dány (mají hodnotu 420), a představují tzv. číslo země (CC, Country Code). Obvyklý způsob zápisu takovéhoto 12-místného mezinárodního čísla je ještě uvozen znakem "+" (například +420 222 745 120, i když správný "přestupný znak" u nás tvoří dvě nuly.

Zbývajících 9 číslic z 12 představuje tzv. národní (významové) číslo, které opět může mít určitou vnitřní strukturu. Ta ale pro nás zde již není podstatná - kromě jedné důležité skutečnosti, kterou je existence číselných řad. Uživatelé (i operátoři, viz dále) mohou využívat celé série čísel (číselné řady), a mohou je chtít "zařadit" do ENUMu opět jako celé řady, místo jako příslušný počet jednotlivých čísel. Takže i tomu musí být převod telefonních čísel na plně kvalifikovaná doménová jména uzpůsoben.

Vzorem jsou reverzní domény

Konečně další významný požadavek je ten, aby celý způsob převodu telefonních čísel na plně kvalifikovaná doménová jména odpovídal zvyklostem Internetu, kde už jsou určité precedenty.

Již dříve totiž byl určitým způsobem "namapován" do prostoru symbolických doménových jmen v DNS jiný číselný prostor (prostor číselných adres) - a to prostor IP adres (verze 4). Využívá se to pro obdobné převody jaké chce nabízet i ENUM, konkrétně pro převod z číselných IP adres na symbolická doménová jména.

Pokud známe něčí IP adresu, můžeme se DNS zeptat, jaká symbolická doménová adresa této číselné adrese odpovídá. Je to vlastně "obrácený" převod oproti tomu, co se po DNS požaduje nejčastěji a kvůli čemu vlastně vzniklo (tj. kvůli převodu symbolických doménových jmen na číselné IP adresy). Proto se souvislosti s převodem číselných IP adres na symbolická doménová jména hovoří o "reverzi" (o reverzním převodu, a o reverzních doménách atd.).

Dotaz do DNS na číselnou IP adresu, která odpovídá jménu www.lupa.cz

"Reverzní" dotaz: jaké jméno odpovídá IP adrese 81.31.5.18

Konkrétní způsob, jakým se číselná IP adresa převede na (plně kvalifikované) doménové jméno, naznačuje již druhý z výše uvedených obrázků. Je-li IP adresa stroje, na kterém běží www.lupa.cz, 81.31.5.18, pak z ní vyrobíme plně kvalifikované doménové jméno tak, že "zrcadlově" obrátíme pořadí složek z obvyklého zápisu IP adresy (tj. 18.5.31.81, místo 81.31.5.18), a zprava přidáme koncovku "in-addr.arpa".

Pro možnost samotného reverzního převodu (z IP adresy na symbolické doménové jméno) je pak nutné, aby byla v rámci DNS zaregistrována a řádně "naplněna" vhodná reverzní doména. Pro jednoduchost a názornost si představme, že by se jednalo o reverzní doménu 5.31.81.in-addr.arpa, která jakoby "zkracuje" celou původní IP adresu o poslední byte. To proto, aby sama tato doména mohla fungovat jako tabulka, a mohla odpovídat na dotazy, týkající se "chybějící" části číselné adresy - vše ve smyslu následujícího obrázku.

Představa reverzního překladu

V praxi může být (a bývá) "dělící čára", vymezující "dotaz" a samotnou reverzní doménu, posazena i jinak, než na předchozím obrázku (kde odděluje poslední byte původní IP adresy). Důvodem je potřeba respektovat způsob přidělování IP adres koncovým uživatelům ze strany internetových providerů - po různě velkých kvantech.

Pamatujme si to všechno, než se vrátíme k telefonním číslům. Tam to totiž funguje na naprosto stejném principu. Právě kvůli tomu si to popisujeme nejprve na reverzních doménách.

Kam zavěsit telefonní čísla?

To, jak jsme k obrácenému zápisu IP adresy připojili příponu ve tvaru in-addr.arpa, odpovídá tomu, že celý prostor IP adres je jakoby "zavěšen" pod doménu nejvyšší úrovně (TLD) .arpa a její subdoménu (SLD, resp. doménu druhé úrovně) in-addr.

Přitom samotná TLD .arpa nemá nic společnoho s organizací ARPA (Advanced Research Projects Agency, později přejmenovanou na DARPA), která stála u zrodu Internetu, a která jako grantová agentura resortu obrany USA zajišťovala potřebné financování. Zde jde o něco jiného - o zkratku z "Address and Routing Parameter Area", která dala jméno specifické "infrastrukturní" doméně nejvyšší úrovně, používané v rámci Internetu právě pro zde popisované účely.

Doménu .arpa si tedy můžeme představit jako jakýsi společný "věšák", pod který se "věší" různé další prostory číselných (i jiných) adres. Dnes už to není zdaleka jen prostor číselných IP adres (verze 4) - ale třeba také prostor IP adres verze 6. Vždy je zde ale ještě vhodně pojmenovaný "mezičlánek", v podobě domény druhé úrovně, který rozlišuje příslušný prostor.

V případě IP adres (verze 4) již víme, že tento mezičlánek má jméno "in-addr". V případě IP adres verze 6 má jméno "ip6". Další varianty pak najdete v rámci tohoto oficiálního popisu TLD domény http://www.iana.org/arpa-dom/ .arpa.

A jak v tuto chvíli už jistě tušíte, právě pod TLD .arpa byl "zavěšen" i prostor všech telefonních čísel, definovaný standardem ITU E.164. Takže jistě nepřekvapí, že příslušný mezičlánek (doména druhé úrovně) se jmenuje také e164.

Představa "zavěšení" prostoru všech telefonních čísel pod TLD arpa

Do budoucna se pak nejspíše dočkáme "zavěšení" dalších číselných či adresových prostorů.

Telefonní číslo jako doménové jméno

Nyní, po této dlouhé exkurzi do světa reverzních domén, už by mělo být jasné i to, jak z telefonního čísla vyrobit plně kvalifikované doménové jméno pro ENUM.

Nejprve je zbavíme všech přebytečných znaků, jako eventuelních závorek, znaménka "+" či dvou nul na začátku. Naopak, pokud máme telefonní číslo jen v "národním" tvaru, jako 9-místné, musíme k němu přidat tři úvodní číslice našeho čísla země (CC, Country Code), konkrétně 420. Výsledkem by mělo být přesně dvanáctimístné číslo.

Toto dvanáctimístné číslo následně zrcadlově obrátíme, jednotlivé číslice oddělíme tečkami (čímž je prohlásíme za jména (sub)domén), a zprava přidáme příponu "e164.arpa".

Abychom ale takovéto plně kvalifikované doménové jméno, vniklé z (tuzemského) telefonního čísla, mohli vzít a ptát se na něj systému DNS, musí být v DNS nejprve zaregistrována příslušná "ENUM doména". Právě možnost takovéto registrace je tím, co nyní běží (v testovacím provozu) od 20.9.2006.

Jak již určitě tušíte, z povídání kolem reverzních domén, i pro potřeby ENUMu mohou být registrovány různě "velké" ENUM domény. Mohou to být domény odpovídající jedinému telefonnímu číslu - pak jde například o doménu 0.2.1.5.4.7.2.2.2.0.2.4.e164.arpa. Nebo může jít o doménu odpovídající celé řadě telefonních čísel (která ale musí být "zaokrouhlena" na celé číselné pozice. Tedy například pro řadu tel. čísel 222745120 až 222745129 by bylo třeba zaregistrovat ENUM doménu 2.1.5.4.7.2.2.2.0.2.4.e164.arpa (která je o jednu úroveň "mělčí").

Kdo má právo registrovat ENUM domény?

Celý prostor telefonních čísel, vymezený doporučením ITU E.164, je samozřejmě mezinárodní, a skrze čísla zemí (CC, Country Code) fakticky integruje národní číslovací plány jednotlivých zemí. Stejný princip členění a stejnou strukturu pak musí respektovat i rozdělení (delegace) pravomocí k subdoménám e164.arpa. Tak aby každý stát, skrze pověřeného správce (označovaného jako Tier 1 Register), měl právo vytvářet ENUM domény jen ve své "národní větvi".

Pro ČR získal takovouto pravomoc v červnu 2003 správce národní TLD .cz, kterým je sdružení CZ.NIC. Získal ji od Mezinárodní telekomunikační unie (ITU), na základě souhlasu MI ČR. Jde tedy konkrétně o pravomoc k "větvi" 0.2.4.e164.arpa.

Představa delegace pravomoci pro CZ.NIC

CZ.NIC přitom zajišťuje samotný "chod" domény 0.2.4.e164.arpa, stejně jako pro naši národní TLD doménu .cz. Vlastní registrace ENUM domén, pod 0.2.4.e164.arpa, však již zprostředkovávají registrátoři, na běžné komerční bázi (opět stejně jako u TLD .cz). Od pátečního prvního článku o ENUMu se počet těchto registrátorů rozrostl na 4 (když nově přibyla společnost General Registry), dalšími jsou Kraxnet, Ipex a Ignum.

Není ENUM jako ENUM

Než se pustíme do otázky registrací "z druhé strany", neboli z pohledu toho, kdo a jak má právo si zaregistrovat doménu na nějaké telefonní číslo, si musíme říci ještě jednu důležitou skutečnost. A to že není ENUM jako ENUM, resp. že může být více ENUMů.

Ten ENUM, který nyní "spustil" CZ.NIC, je tzv. uživatelský (User ENUM). Je veřejný a určený pro koncové uživatele, k tomu aby oni si do něj - a to z vlastní iniciativy, neboli na principu OPT-IN - vkládali takové informace, jaké uznají za vhodné.

Vedle User ENUMu existují, resp. mohou existovat ještě další ENUMy (jakoby paralelní, ale obsahově oddělené). Například "Infrastructure ENUM", určený hlavně operátorům a providerům. Ti si mohou skrze něj zaregistrovávat celé rozsahy čísel, které mají přidělené pro své zákazníky, a do příslušných domén ukládat informace o dostupnosti těchto číselných rozsahů ve svých sítích. Ty informace pak slouží hlavně ostatním operátorů, aby věděli jak a kudy mají směrovat hovory z/do svých sítí.

Ale ani tím vše nekončí. Na stejném principu mohou existovat a být používány další varianty ENUMu, včetně čistě privátních, které si operátoři a provideři budují a provozují čistě pro své potřeby .

Nicméně to, co v nedávných dnech spustil CZ.NIC, je uživatelský ENUM (User ENUM). Tedy ENUM určený koncovým uživatelům, a nikoli operátorům a providerů.

Potřeba validace

Charakter uživatelského ENUMu a způsob přidělování telefonních čísel (které dostávají přidělené operátoři, aby je "propůjčovali" svým zákazníkům), si vynucuje jedno specifické opatření, které u registrací "klasických" domén pod TLD .cz nemá obdoby. Jde o nutnost prokázat, že žadatel o registraci je "oprávněným koncovým uživatelem telefonního čísla nebo bloku telefonních čísel" (viz pravidla registrace od CZ.NIC).

Říká se tomu validace, a její konkrétní podoba je na příslušném registrátorovi ENUM domén. Typicky jde o to, že registrátor zavolá nebo pošle na příslušné telefonní číslo SMS s kódem, který zákazník musí zpětně "vrátit" registrátorovi (vyplnit do příslušného formuláře na webu atd.). Další možností je například notářem ověřené prohlášení, doklad od operátora apod.

Důležité ale je, že vztah uživatele k telefonnímu číslu se může v čase měnit, a tak se validace musí pravidelně opakovat. V podmínkách CZ.NICu je stanoven interval 6 měsíců.

Přepisovací pravidla místo tabulky

Na závěr tohoto článku o fungování ENUmu se ještě vraťme k představě ENUmu coby "překladače" mezi telefonními čísly a internetovými adresami. Konkrétně ke způsobu, jakým tento překlad probíhá. Přesné detaily už přesahují rámec tohoto článku, ale několik věcí bychom přeci jen měli tušit:

  • samotná registrace ENUM domény, provedená přes registrátora u CZ.NICu, zahrnuje jen odkazy na name servery pro danou ENUM doménu (stejně jako u domén druhé úrovně pod .cz).
  • vlastní "převodní informace" obsahují až příslušné name servery, které si již zákazník musí zajistit sám. V případě ENUMu ale nejsou tyto name servery plněny individuálními "adresovými záznamy", které by vytvářely explicitní převodní tabulky, jak naznačuje jeden z výše uvedených obrázků (pro reverzní doménu). V případě ENUMu je použit nový typ DNS záznamu, pojmenovaný NAPTR (Naming Authority Pointer). Je ve skutečnosti "přepisovacím pravidlem", které dostane jako vstup dotaz, směřující do ENUMu, a přepíše jej do podoby odpovědi. Výhodou je například to, že místo n různých záznamů (v případě domény odpovídající většímu rozsahu čísel), stačí stále jedno přepisovací pravidlo.
  • překlad mezi telefonním číslem a výslednou internetovou adresou (URI) má jakoby více na sobě nezávislých rovin, pro různé druhy požadovaných výstupů (odpovědí). Jak jsme si již uvedli výše, jedno a totéž telefonní číslo může být překládáno na URI adresy různých služeb (na emailovou adresu, webovou adresu, SIP adresu atd.). Obecně tedy do celého překladu vstupuje ještě požadavek na typ výsledku, resp. "ENUM služby" (ENUMservice). Samozřejmě musí existovat konvence definující příslušné varianty služeb, včetně formátu výsledku a dalších náležitostí. Správcem této konvence je organizace IANA, a její popis lze najít zde.

Celý proces "překladu" z telefonního čísla na URI, který v rámci ENUMu probíhá s využitím přepisovacích pravidel (záznamů NAPTR), má také řadu možností, jak vyjádřit různé priority a preference. Ale to bylo na další, a mnohem techničtější povídání.

Zde si na závěr jen řekněme, že naši ENUM registrátoři se snaží svým zákazníkům vyjít vstříc i v tom, že jim kromě registrace ENUM domény dokáží zajistit i potřebnou funkčnost name serverů a jejich naplnění - byť třeba jen v omezeném rozsahu, pouze s možností překladu telefonního čísla na jednu konkrétní SIP adresu, pro potřeby vedení hlasových hovorů.

Ale to už souvisí s tím, že dnes se ENUM využívá především pro výhodnější vedení hovorů, právě skrze SIP adresy. Ale to si už opravdu nechme na další článek.