Možnost přímé komunikace mezi koncovými body bývá označována jako „end-to-end“ transparentnost. Jejím základním předpokladem je jednoznačné adresování. Není-li některý z koncových bodů obdařen celosvětově jednoznačnou adresou, lze navázat spojení jen jednosměrně. Pokud takovou adresu nemá ani jeden z partnerů, nedá se přímé spojení navázat vůbec. Komunikace se pak musí odehrávat pomocí prostředníka, což zpravidla vede k nižší efektivitě a problémům se škálovatelností.
Ovšem přímou komunikaci mohou narušovat i další aspekty. Zajímavým materiálem věnovaným tomuto toto tématu je RFC 2775: Internet Transparency. V něm najdete výčet nejvýznamnějších škůdců transparentnosti Internetu. Patří mezi ně především:
-
Problémy začínají už u celkem nevinných věcí, jako je komutované připojení či dynamické přidělování adres prostřednictvím DHCP. Sice ještě nedochází k přímému narušení přenosu, ale potíže již začínají vystrkovat růžky. Adresy nejsou trvalé, takže je nelze například zařadit do adresáře vašeho IP telefonu. Obecně vzniká problém s navázáním spojení – jak zjistit adresu, se kterou se chcete spojit.
Daleko závažnější je ovšem konverze adres (NAT, IP maškaráda). Tady dochází k modifikaci IP datagramů a příjemce se vůbec nedozví skutečnou adresu odesilatele. Navíc tyto technologie bývají kombinovány s neveřejnými adresami podle RFC 1918. Lokální síť používá neveřejné adresy, které směrovač provádějící NAT převádí na svou vlastní.
To ovšem znamená, že spojení lze navázat jen z lokální sítě směrem ven (při této operaci si NAT vytvoří mapování mezi počítačem zahajujícím spojení a svou adresou a portem). Vazby interních počítačů a jejich portů na jednotlivé porty NAT směrovače se mění, takže zvenčí neexistuje způsob, jak adresovat počítače uvnitř sítě.
Navíc si řada aplikací přenáší IP adresy ve svých aplikačních protokolech. Mají-li projít NAT, je potřeba zasahovat i do obsahu IP datagramů a upravovat přenášená data. To ovšem může změnit jejich délku a samozřejmě kontrolní součty, takže je veselo.
-
Také existence firewallů na transparentnosti nepřidá. Pochopitelně velmi záleží na jejich konfiguraci. Něžný firewall, který například jen zamezuje přístup zvenčí k choulostivým vnitřním serverům, příliš nebolí. Ovšem typický správce sítě se snaží vyšroubovat bezpečnost na maximum, takže konfiguruje firewall stylem „co není povoleno, je zakázáno“. A povoleno nebývá mnoho. Takto chráněná síť staví velmi citelnou bariéru mezi své uživatele a zbytek světa. Řada aplikací zde narazí (zejména pokud používají náhodné porty).
Nejbrutálnější jsou aplikační firewally. Přímo nepropouštějí žádná data a aplikace s nimi musí aktivně spolupracovat, aby se vůbec dostaly ven. Tady nestačí přemluvit správce, aby povolil váš oblíbený port. Pokud neexistuje aplikační brána pro daný protokol, máte smůlu.
-
Tyto technologie často najdete na významných bodech síťové topologie (typicky v místě, kde vaše lokální síť hraničí s Internetem). Jedním z příkladů jsou výše zmiňované aplikační brány pracující na firewallu či NAT směrovači, díky nimž se vůbec dostanete do Internetu.
Dnes se ovšem čím dál častěji setkáváme s filtrováním na aplikační úrovni. Kde jsou ty časy, kdy elektronická pošta byla všeobecně prostupnou službou. Typický poštovní server dnes obsahuje celou řadu pravidel, podle nichž odmítá přijímat poštu z podezřelých míst či ze známých semenišť spammerů. Jedná se vlastně o analogii síťového firewallu, ovšem o několik vrstev výše.
Některé protokoly přímo počítají s existencí různých zprostředkovatelů na trase mezi oběma komunikujícími. Asi nejběžnějším příkladem je HTTP a jeho proxy cache (vyrovnávací server). Pokud je spolupráce s nimi dobrovolná, tedy vychází z konfigurace klienta, bývá celkem bez problémů.
Ovšem leckdy lze uživatele ke spolupráci přinutit, jako v případě transparentních WWW proxy cache serverů, kterými prochází veškerý WWW provoz. Takové řešení je nepochybně porušením transparentnosti provozu (přestože jeho název hlásá opak) a vyvolává řadu problémů. V akademické síti TEN 155 CZ jsme transparentní WWW proxy delší dobu provozovali, takže mám celkem dobrou představu o potížích (ale i výhodách), které jsou s tím spojeny. Po přechodu na gigabitové rychlosti již příslušná zařízení přestala kapacitně dostačovat, takže jsme se vrátili ke klasickému dobrovolnému modelu. Neuvažujeme o tom, že bychom v brzké budoucnosti obnovili transparentní WWW proxy cache.
Sečteno a podtrženo: překážek je v transparentní komunikaci mezi koncovými body dost a dost. V jejich pozadí stojí především tři příčiny:
- Bezpečnost. Řada překážek má především zabránit ošklivým hochům v napadení důležitých počítačů a služeb.
- Nedostatek adres. Díky němu se stále častěji používají neveřejné adresy v kombinaci s NAT.
- Zvýšení výkonu. Tento důvod je jednoznačně v menšině a vztahuje se vlastně jen na vyrovnávací servery.
První dva mají kořeny v návrhu IP. Chybějí v něm jakékoli bezpečnostní mechanismy a adresní prostor nestačí současnému zájmu. A máme tu druhý paradox. Všeobecně se vkládají značné naděje do protokolu IPv6, který nabídne adres, co hrdlo ráčí a díky povinné implementaci IPsec by měl podat pomocnou ruku i v oblasti bezpečnosti. Ovšem nikdo se moc do jeho implementací a nasazení nehrne, protože na IPv4 se peníze vydělají hned, zatímco IPv6 je v pozici holuba na střeše.
Kam tyto rozpory povedou? Já osobně doufám, že zvýšený zájem uživatelů o služby a aplikace typu end-to-end dotlačí poskytovatele Internetu a producenty softwarového vybavení k systémovému řešení, čili k IPv6. Jedinou existující alternativou totiž je setrvání u IPv4, což nutně povede k prohlubování existujících rozporů – především vzhledem ke krátícímu se adresnímu prostoru. Domnívám se, že u této varianty nás mnoho dobrého nečeká.