STUN

Z Multimediaexpo.cz

Internetové protokoly
Aplikační vrstva
Transportní vrstva
Síťová vrstva
Linková vrstva
Fyzická vrstva

Session Traversal Utilities for NAT (STUN) je sada pomocných internetových standardů a protokolů, které slouží k umožnění komunikace skrz NAT, typicky používaný u interaktivních síťových služeb (VOIP, instant messaging apod.). STUN umožňuje zjištění typu NAT, veřejné IP adresy a portu. Protokol byl původně definován dokumentem RFC 3489, kde zkratka znamenala – Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs).

Základní princip funkce

STUN klient odešle požadavek na STUN server, který klientovi vrátí odpověď s IP adresou NAT routeru a s číslem portu, který NAT otevřel pro příchozí spojení. Z odpovědi zjistí STUN klient také typ použitého NAT – různé typy NAT nakládají s příchozími UDP pakety různými způsoby.

Rozdílné typy NAT podle STUN

Některé aplikace pracující s NATem potřebují charakterizovat NAT dle typu. STUN protokol charakterizuje NAT jako Full cone NAT, Restricted cone NAT, Port restricted cone NAT a Symetrický NAT.

Full Cone NAT

Full Cone NAT.png

Známý také jako NAT jedna ku jedné. Všechny požadavky ze stejné vnitřní IP adresy a portu jsou mapovány na stejnou externí IP adresu a port. Externí počítač pak pošle paket lokálnímu počítači, který je za NATem, zasláním paketu na mapovanou externí adresu. STUN server tento paket dále přepošle příslušnému počítači za NATem.

Restricted Cone NAT

Restricted Cone NAT.png

Všechny požadavky ze stejné lokální IP adresy a portu jsou mapovány na stejnou externí IP adresu a port. Na rozdíl od NAT jedna ku jedné může externí zařízení zaslat paket lokálnímu pouze pokud mu lokální počítač zaslal předtím paket.

Port Restricted NAT

Port Restricted Cone NAT.png

Je podobný Restricted cone NAT, ale omezení zahrnuje čísla portů. Externí zařízení může poslat paket na konkrétní port lokálnímu jen pokud lokální počítač předtím zaslal z tohoto portu paket vnějšímu zařízení.

Obsah

Symetrický NAT

Symmetric NAT.png

Všechny požadavky ze stejné lokální IP adresy a portu na specifickou IP adresu a port jsou mapovány na unikátní externí zdrojovou IP adresu a port. Jestliže to samé lokální zařízení pošle paket se stejnou zdrojovou adresou a portem na jiné místo určení, je použito odlišné mapování. Pouze externí zařízení, které obdrží paket může poslat UDP paket zpět lokálnímu zařízení. V případě symetrického NAT vidí STUN server odlišné mapování, než to odpovídající cíli, ke kterému se mají skrze klienta zasílat pakety.

Terminologie zavedená STUN protokolem se ukázala jako nedostatečná k popisu NAT, mnoho implementací kombinuje výše popsané typy. Mnoho implementací NAT zachovává port, tedy ve většině situací zůstávají stejná lokální a externí čísla portů. Pokud se ovšem dvě lokální zařízení pokouší o komunikaci se stejným vnějším zařízením na stejném portu, je vnější port druhého lokálního zařízení přidělen náhodně. Pak tedy záleží na úhlu pohledu a NAT je typu restricted cone a zároveň symetrický.

Externí dokazy

Implementace