NAT traversal
Network address translator traversal (NAT-T, česky průchod skrze NAT) je v počítačových sítích způsob navázání a správy spojení pomocí IP protokolu přes síťové prvky, které provádějí NAT (překlad síťových adres). Za standardních okolností totiž není možné navázat spojení s počítačem, který je umístěn za dynamickým NAT (tzv. „maškaráda“). Možnost průchodu skrze NAT (bez spolupráce správce NAT zařízení) je výhodná pro mnoho síťových aplikací, jako například peer-to-peer sdílení nebo VoIP,[1] protože vyžaduje spolupráci třetí strany (s veřejnou IP adresou) pouze při vzniku spojení.
Překlad síťových adres
Zařízení NAT narušují end-to-end konektivitu, se kterou počítal původní návrh Internetu. NAT se začalo používat kvůli Vyčerpání IPv4 adres, resp. pro zmírnění následků nedostatku IPv4 adres. NAT umožňuje používat privátní IP adresu v soukromých sítích, které jsou umístěny za směrovači a pro komunikaci se zbytkem Internetu využívat byť jedinou veřejnou IP adresu. Zařízení ve vnitřní síti komunikují se zařízeními ve vnější síti pomocí změny zdrojové IP adresy (a portu) v odchozích IP datagramech, které procházejí skrze zařízení provádějící NAT. Při obdržení odpovědi přepíše zařízení provádějící NAT zpět původní privátní IP adresu a port tak, aby byla odpověď doručena původnímu zařízení.
Překlad síťových adres je nevhodný pro umisťování serverů do vnitřní sítě, protože zařízení provádějící NAT nemá bez vnější pomoci možnost, jak určit, pro jaké zařízení ve vnitřní síti jsou přicházející datagramy určeny. Tento problém nevzniká při přístupu z vnitřního počítače k webovým stránkám a e-mailovým službám umístěných ve veřejném Internetu. Ale peer-to-peer sdílení souborů, VoIP služby a herní konzole vyžadují, aby klienti byli dosažitelní z Internetu podobně jako veřejné servery. Příchozí datagramy nemohou být jednoduše předány správnému vnitřnímu zařízení. Kromě toho mnoho podobných služeb přenáší informace o IP adrese a čísle portu uvnitř datagramů, což potenciálně vyžaduje nasazení technologií deep packet inspection.
Technologie překladu síťových adres nejsou standardizovány. Tím pádem jsou metody, využívané pro průchod NAT branou často proprietární a špatně zdokumentované. Mnoho technik průchodu vyžaduje asistenci od serverů umístěných vně maškarádované sítě. Některé metody využívá server pouze při navazování připojení. Jiné metody jsou založeny na přeposílání všech dat skrze takový veřejný server, což eskaluje požadavky na šířku pásma (tj. kvalitní konektivitu veřejně umístěného serveru), zvyšuje latenci (zpoždění), a jsou tak nevhodné pro hlasovou a obrazovou komunikaci v reálném čase.
Techniky průchodu NAT branou obvykle obchází zabezpečení používané v příslušné síti. Podnikoví bezpečností experti upřednostňují techniky, které výslovně spolupracují s NAT branou a firewally povolujících průchod NAT branou, a tím umožňují kontrolu a vynucování bezpečnostních politik v NAT bráně. Mezi IETF standardy, které používají takový bezpečnostním model, jsou Realm-Specific IP (RSIP) a middlebox komunikace (MIDCOM).
Techniky
Dostupné techniky průchodu branou NAT jsou následující:
- Socket Secure (SOCKS) je technologie vytvořená na začátku devadesátých let, která používá proxy servery k přeposílání provozu mezi sítěmi nebo systémy.
- Traversal Using Relays around NAT (TURN) je protokol posílání navržený speciálně k průchodu branou NAT.
- NAT hole punching je obecná technika, která využívá vlastnosti bran NAT, jak zacházejí s některými protokoly (například, UDP, TCP, nebo ICMP), k propuštění dříve zablokovaných paketů v branou NAT.
- Session Traversal Utilities for NAT (STUN) je standardizovaná množina metod a síťových protokolů pro NAT hole punching. Tato množina byla navržená pro UDP, ale byla rozšířena také pro TCP.
- Interactive Connectivity Establishment (ICE) je kompletní protokol pro používání STUN a/nebo TURN k průchodu branou NAT, zatímco vybírá nejlepší dostupnou trasu. Vyplňuje některé chybějící informace a nedostatky, které nebyly zmíněny ve specifikaci STUN.
- UPnP Internet Gateway Device Protocol (IGDP) je podporován mnoha malými bránami NAT v menších kancelářích. Umožňuje zařízení v síti zeptat se směrovače na otevření portu.
- NAT-PMP je protokol představený společností Apple jako alternativa k IGDP.
- PCP je následovník NAT-PMP.
- Application-level gateway (ALG) je část firewallu nebo brány NAT, která umožňuje nastavení filtrů průchodu branou NAT.[2] Mnoho lidí tvrdí, že tato technika vytváří více problémů, než řeší.[3]
Symetrický NAT
Nedávný růst počtu symetrických bran NAT snížil míru úspěšných průchodů branou NAT v mnoha praktických situacích, jako např. mobilní a veřejné WiFi připojení. Techniky Hole punching, jako STUN and ICE, nedokáží procházet symetrickou branou NAT bez pomoci přeposílajícího serveru, jak je ukázáno v TURN. Techniky, které procházejí symetrickou branou NAT pomocí pokusů předpovědět následující port, který bude otevřen zařízením NAT, byly objeveny v roce 2003 Yutakou Takedou v Panasonic Communications Research Laboratory[4] a v roce 2008 výzkumníky z Waseda University.[5] Techniky předpovědi portu jsou efektivní pouze se zařízením NAT, které používá známé deterministické algoritmy pro výběr portu. Toto předvídatelné, ale ne statické, schéma pro alokaci portu je neobvyklé ve velkých branách NAT, které jsou použité např. v 4G LTE sítích, a proto je předpověď portu v těchto mobilních širokopásmových sítích velmi neefektivní.
IPsec
Klienti IPsec VPN používají průchod branou NAT k umožnění Encapsulating Security Payload paketů projít branou NAT. IPsec používá ke svému provozu několik protokolů, které musí být povoleny, aby bylo možné projít firewally a překladači sítových adres (NAT):
- Internet Key Exchange (IKE) – User Datagram Protocol (UDP) port 500
- Encapsulating Security Payload (ESP) – číslo IP protokolu 50
- Authentication Header (AH) – číslo IP protokolu 51
- IPsec průchod branou NAT – UDP port 4500, když se používá průchod branou NAT
Mnoho směrovačů poskytuje rozšíření často nazývané IPsec Passthrough.
V systému Windows XP je ve výchozím stavu průchod NAT branou povolen, ale v systému Windows XP s balíčkem Service Pack 2 je tato funkce ve výchozím nastavení vypnuta pro případ, kdy je VPN server také za zařízením NAT, kvůli vzácné a kontroverzní bezpečnostní chybě.[6] Záplaty pro IPsec NAT-T jsou dostupné také pro systémy Windows 2000, Windows NT 4.0 a Windows 98.
Průchod NAT branou pro IPsec může být použit k umožnění oportunistického šifrování mezi systémy. Průchod NAT branou umožňuje systémům za NAT branou na požádání přijímat a navazovat bezpečné spojení.
Hosted NAT traversal
Hosted NAT traversal (HNT) je množina mechanismů používaná zprostředkovateli, které obsahují prostředky pro přeposílání a blokování.[zdroj?] IETF radí nepoužívat metodu blokování přes Internet a doporučuje ICE kvůli bezpečnostním důvodům.[7]
Dokumenty k IETF standardu
- RFC 1579 – FTP dobře použitelné s firewally
- RFC 2663 – Termíny a úvahy k Network Address Translator (NAT)
- RFC 2709 – Bezpečnostní model s IPsec v módu Tunnel pro domény NAT
- RFC 2993 – Architektonické dopady brány NAT
- RFC 3022 – Tradiční Network Address Translator (Tradiční NAT)
- RFC 3027 – Komplikace protokolů s Network Address Translator (NAT)
- RFC 3235 – Network Address Translator (NAT) – Pokyny k návrhu aplikací splupracující s NAT
- RFC 3715 – IPsec – Kompatibilita s Network Address Translation (NAT)
- RFC 3947 – Jednání NAT-T v IKE
- RFC 5128 – Stav Peer-to-Peer (P2P) komunikace napříč Network Address Translators (NATs)
- RFC 5245 – Interactive Connectivity Establishment (ICE): Protokol pro NAT-T k protokolům Offer/Answer
Související články
- Session Border Controller (SBC)
- Děrování (síťování)
- UDP hole punching
- TCP hole punching
- ICMP hole punching
- NAT Port Mapping Protocol (NAT-PMP)
- Port Control Protocol (PCP)
Odkazy
Reference
V tomto článku byl použit překlad textu z článku NAT traversal na anglické Wikipedii.
- Firewall and NAT Traversal Explained [online]. Eyeball Networks Inc., 2013-07-05 [cit. 2013-10-10]. Dostupné v archivu pořízeném dne 2013-10-19. (anglicky)
- Zhou Hu. NAT Traversal Techniques and Peer-to-Peer Applications. [s.l.]: Helsinki University of Technology, 2005. Dostupné online. (anglicky)
- Introduction to NAT [online]. [cit. 2016-05-30]. Dostupné online. (anglicky)
- Symmetric NAT Traversal using STUN [online]. Dostupné online. (anglicky)
- A New Method for Symmetric NAT Traversial in UDP and TCP [online]. [cit. 2017-01-19]. Dostupné v archivu pořízeném dne 2017-02-02. (anglicky)
- IPSec NAT Traversal is not recommended for Windows Server 2003 computers that are behind network address translators [online]. Microsoft knowledge base #885348. Dostupné online. (anglicky)
- Latching: Hosted NAT Traversal (HNT) for Media in Real-Time Communication draft-ietf-mmusic-latching-04 2013-10-08
Externí odkazy
- Problems and fact about modern day NAT traversal systems
- Autonomous NAT traversal – NAT to NAT communication without a third party
- Cornell University – Characterization and Measurement of TCP Traversal through NATs and Firewalls
- Columbia University – An Analysis of the Skype Peer-to-Peer Internet Telephony
- Peer to peer communication across Network Address Translators (UDP Hole Punching)