\"/
\"/ \"/    

Elektronická pošta: Problémy se spojením

Jiří Zlatuška, ÚVT MU
Ročník III - číslo 5, květen 1993
Citace: J. Zlatuška. Elektronická pošta: Problémy se spojením. Zpravodaj ÚVT MU. ISSN 1212-0901, 1993, roč. III, č. 5, s. 3-5.
Tematické zařazení: Elektronická pošta
Článek je součástí seriálu Elektronická pošta
 předchozí článek | následující článek 

Problémy se spojením

Vracené zprávy

Při pravidelném používání elektronické pošty narazíme čas od času na nečekané potíže v podobě pošty, která se po odeslání vrátí zpět. Zpravidla to znamená, že dostaneme zprávu s označením v řádce Subject znějící:

     Subject: Returned mail: User unknown

Odesilatelem takové zprávy je většinou program zvaný MAILER-DAEMON, což je program starající se o doručování pošty na unixovských systémech a označující sám sebe jako:

     From: Mail Delivery Subsystem
      <MAILER-DAEMON@host.blah.blah.edu>

Obdržení takové zprávy znamená, že naše odeslaná pošta se vrátila bez doručení adresátovi. Předtím, než se s tímto problémem obrátíme na systémového administrátora našeho počítače, bývá dobré pozorně si prohlédnout hlavičku této zprávy. Obsahuje informace o příčině problému a často z ní velice jednoduše můžeme přijít na řešení. Nejčastěji to bývá překlep ve jméně či adrese stroje, kam posíláme zprávu - pak stačí využít toho, že součástí chybové zprávy je i úplný text pošty, kterou jsme posílali, a zkusit jej odeslat ještě jednou.

Při prohlížení hlavičky chybové zprávy musíme pamatovat na to, že nás zajímají i položky, které pro nás za normálních okolností může program, kterým si poštu prohlížíme, odfiltrovávat. V programu elm bychom tak hned zkraje měli použít příkaz h, kterým zviditelníme přesný text hlavičky bez jakýchkoli úprav. Uvidíme tak začátek textu ve tvaru připomínajícím třeba:

From MAILER-DAEMON@varda.ics.muni.cs
   Thu May 20 02:52:24 1993
Received: by varda.ics.muni.cs
   (5.65c/UW-NDC Revision: 2.21 ) id AA23261;
   Thu, 20 May 1993 00:52:25 +0200
Date: Thu, 20 May 1993 00:52:25 +0200
From: Mail Delivery Subsystem
   <MAILER-DAEMON@varda.ics.muni.cs>
Subject: Returned mail: User unknown
Message-Id: <199305192252.AA23261@varda.ics.muni.cs>
To: zlatuska

   ----- Transcript of session follows -----
550 baggins... User unknown

   ----- Unsent message follows -----
Received: by varda.ics.muni.cs
   (5.65c/UW-NDC Revision: 2.21 ) id AA23259;
   Thu, 20 May 1993 00:52:25 +0200
Message-Id: <199305192252.AA23259@varda.ics.muni.cs>
Subject: How to mix Black Velvet?
To: baggins
Date: Thu, 20 May 1993 00:52:24 +0200 (EET)
From: Jiri Zlatuska <zlatuska@varda.ics.muni.cs>

Úvodní část zprávy má několik oddílů. První z nich je hlavička vlastní zprávy s chybou, kterou nám MAILER-DAEMON posílá, včetně obvyklých informací o tom, kudy nám zpráva byla doručena. Tento příklad se celý odehrává na jediném počítači: autor se pokusil poslat zprávu uživateli baggins, který ovšem na jeho domovském systému není registrován.

Pod záhlavím Transcript of session follows následuje část obsahující zprávu o problémech, které se vyskytly. V našem případě je to konstatování User unknown, indikující, že uživatel (poštovní schránka) se jménem baggins není na daném systému znám - právě toto je nejčastější situace vyplývající buď z překlepu v uživatelském jméně nebo z opomenutí označit v adrese kromě jména i jméno počítače za znakem @, kdy se poštovní doručovatel snaží najít příslušného uživatele na tom počítači, odkud odesíláme poštu. K dešifrování řady typů chybových zpráv není potřeba žádný chybovník ani znalost příslušných chybových kĎdů (autor sám neví, kde by něco takového hledal), protože doprovodný anglický text a pozorná kontrola adres z chybových zpráv obvykle postačí.

Záhlaví Unsent message follows pak uvádí doslovný text zprávy, kterou jsme se původně pokoušeli posílat, včetně úvodních informací, kudy zpráva k cílovému počítači putovala.

Kromě ilustrace reakce na prostý překlep ve jméně uživatele si ukážeme ještě příklad poněkud komplikovanější, se kterým měla možnost se setkat řada návštěvníků Velké Británie. Představme si, že se snažíme poslat poštu svému kolegovi Bagginsovi doma, ta se však vrátí zpět s následujícím záhlavím:

Received: from skye.dcs.ed.ac.uk by
   dcs.ed.ac.uk id aa12560; 6 May 93 10:54 BST
From: Mail Delivery Subsystem
   <MAILER-DAEMON@dcs.ed.ac.uk>
Date: Thu, 6 May 93 10:54:52 BST
Message-Id:
   <2981.9305060954@skye.dcs.ed.ac.uk>
Subject: Returned mail: User unknown
To: zlatuska@dcs.ed.ac.uk
Status: RO

   ----- Transcript of session follows -----
Connected to mmdfhost:
>>> RCPT To:
   <baggins@varda.ics.muni.cs.ed.ac.uk>
<<< 550 (BHST) Unknown host/domain name in
   "baggins@varda.ics.muni.cs.ed.ac.uk"
550 baggins@varda.ics.muni.cs.ed.ac.uk... User
   unknown

   ----- Unsent message follows -----
Date: Thu, 6 May 93 10:54:52 BST
Message-Id:
   <2981.9305060954@skye.dcs.ed.ac.uk>
From: Jiri Zlatuska <zlatuska>
Subject: Re: Good single malt?
To: Bilbo Baggins
   <baggins@varda.ics.muni.cs.ed.ac.uk>
In-Reply-To: Bilbo Baggins' message of Thu, 6
   May 1993 11:03:02 +0200 (EET)

Ze zprávy z poznámky User unknown můžeme usoudit, že uživatel daného jména neexistuje, ale to by nebyl dobrý závěr: ve skutečnosti jsme pomocí reply odpovídali na jeho předchozí zprávu, takže na druhé straně uživatel tohoto jména prostě musí být. Skutečná příčina leží o řádek výš, kde se konstatuje, že počítač (host) nebo jeho doména není v Internetu známa: Unknown host/domain name in "...". Prohlédneme-li si pozorně adresu, o kterou se jedná, vidíme okamžitě proč: místo varda.ics.muni.cs je tam totiž uvedena zkomolenina varda.ics.muni.cs.ed.ac.uk. Stačí adresu opravit a poslat zprávu znova. Totiž - všude na světě kromě Británie: toto zkomolení adresy za nás udělal místní pošťák (zmiňovali jsme se o této ostrovní anomálii v části věnované doménovým adresám), který všechny adresy končící na .cs považuje za "obrácené" britské adresy směřované na katedru Computer Science (cs) a postaral se o automatickou změnu adresy, která pro Brity zpravidla funguje. Ocitneme-li se v Británii v takové situaci, může se stát, že nám nepomůže nic jiného, než požádat místního systémového administrátora o opravu tabulek a příp. i zanesení adres, se kterými doma budeme komunikovat, jako výjimek do standardních úprav místních adres. Jedním z výsledků rozdělení Československa bude i zánik domény .cs během asi roku, kdy ji nahradí domény .cz a .sk, vycházející z ISO zkratek pro oba nové státy. Po této změně problémy v Británii zmizí, avšak může se stát, že zprávy s doménou .cs se začnou vracet s indikací neexistující domény přesně jako v našem příkladu - pomůže pak znovuodeslání zprávy s opravenou doménou (některé z těchto úprav za nás ale bude dělat automaticky pošťák, takže narazit bychom měli opravdu jen ve výjimečných případech).

Osahávání uživatelů

Čas od času se ocitneme v situaci, kdy si potřebujeme např. ověřit, zda uživatel daného jména na některém počítači existuje. V prostředí Internetu a unixovských počítačů lze k tomuto účelu použít příkaz finger, který nám tuto informaci ve většině případů poskytne1. Nejjednodušší je použít tento příkaz ve tvaru

     finger jméno@adresa

kde adresa je úplná adresa počítače v doménovém tvaru. Výsledkem může být např.:

varda.p06$ finger baggins@cs.city.ac.uk 
[cs.city.ac.uk]
Login name: baggins
In real life: Bilbo Baggins
Directory: /homes/baggins
Shell: /bin/csh
Last login Sat May  8 10:35 on ttyp1 from 147.251.12.8
Mail last read Mon May  3 09:21:15 1993
Project: Trying to understand life
Plan:
Once I understand life, I'm gonna enjoy it.

Dozvídáme se tak nejen, že uživatel baggins má na počítači cs.city.ac.uk účet, ale i řadu dalších informací, konkrétně dobu posledního použití účtu (last login) a posledního čtení pošty (mail last read) - ne všechny systémy však v těchto polích vracejí použitelné údaje (nepoužitelný šum nám zde vrací zejména SCO UNIX, který je často používán jako Unix běžící na počítačích třídy PC). V polích project a plan se zobrazí informace, které si uživatel zapsal do souborů .plan a .project ve svém domovském adresáři (často je to využíváno třeba na informace o telefonu, adrese, či úředních hodinách). V případě, že máme štěstí a uživatel daného jména je zrovna přihlášen, dostaneme místo last login ... informaci ve tvaru

On since May 19 16:06:42 on ttyp7 from varda.ics.muni.cs.
2 hours 35 minutes Idle Time

informující nás jednak o tom, kdy se přihlásil, jednak o tom, před jak dlouhou dobou naposledy sáhl na klávesnici (idle time) - tato informace se může hodit pro rozhodnutí, má-li smysl kontaktovat ho třeba pomocí programu talk.

Příkaz finger lze použít i na zjištění, kteří všichni uživatelé jsou zrovna přihlášeni na nějakém počítači. Vynecháme-li jméno a zadáme jako parametr jen @adresa, dostaneme třeba po dotazu na počítač arwen odpověď ve tvaru2:

varda.p06$ finger @arwen
[arwen.ics.muni.cs]
Login       Name       TTY Idle    When Office
mejzlik  Petr Mejzlik  05  2:41 Tue 17:21
mejzlik  Petr Mejzlik  04  5:08 Wed 14:36
sarek    Milan Sarek   12  6:17 Tue 17:30  UVT
zlatuska Jiri Zlatuska 2B       Thu 00:46  UVT
sarek    Milan Sarek   p00 1:02 Wed 17:52  UVT

Osahávání uzlů Internetu

Počítače zapojené do Internetu protokolem TCP/IP poskytují službu, která dovede otestovat stav připojení konkrétního počítače. Elektronická pošta by měla poměrně spolehlivě chodit i tehdy, dochází-li k občasným výpadkům části sítě či krátkodobým odpojením počítačů3, informace o stavu napojení nám ale může dát indikaci např. o možné době, kdy čekat odpověď, či zda je možné dálkové napojení pomocí telnet apod. Příkaz, kterým můžeme otestovat připojení libovolného počítače v síti Internet, je ping, kterému se jako parametr zadá úplné doménové jméno počítače, příp. internetová adresa ve tvaru čtyř čísel oddělených tečkou. Výsledkem je výpis tvaru (ukončíme ho pomocí ^C nebo ^\):

varda.p06$ ping cs.city.ac.uk
PING cs.city.ac.uk: 56 data bytes
64 bytes from 138.40.91.8: icmp_seq=0. time=280. ms
64 bytes from 138.40.91.8: icmp_seq=1. time=490. ms
64 bytes from 138.40.91.8: icmp_seq=2. time=330. ms
Quit

Kromě toho, že je počítač cs.city.ac.uk v dosažitelném stavu, získáváme ještě údaj o době, kterou potřebuje 64 znaků na cestu od nás na cílový počítač a zpět - vidíme, že se jedná o dobu mezi 280 a 490 ms.

Poznamenejme výslovně, že ping testuje jen stav napojení v Internetu a pro počítače mimo tuto síť samozřejmě použitelný není. Podobně je tomu i v případě příkazu finger, kdy se navíc ještě musíme omezit jen na unixovské systémy.

setting
1 Výjimkou jsou počítače, kde je tato služba z bezpečnostních důvodů znepřístupněna.
... zpět do textu
2 Pole idle znamenají čas od posledního doteku klávesnice (v daném případě je na arwen poměrně mrtvo, protože se jedná o stav z jedné hodiny po půlnoci) a pole when ukazuje dobu, kdy se uživatel přihlásil. Plný několikařádkový výpis bychom získali uvedením parametru -l, tj. příkazem finger -l @arwen.
... zpět do textu
3 Obě tyto věci by však měly nastávat jen výjimečně: Individua s obsesí vypínat počítače je vhodné držet pro jistotu pod zámkem a k unixovským serverům je pod žádnou záminkou nepouštět!
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011