Port address translation
Port address translation (PAT) je rys síťového zařízení, které překládá TCP, nebo UDP komunikace probíhající mezi místními počítači používající privátní sítě a vzdálenými počítači používající sítě veřejné. Umožňuje to lidem používat jednu veřejnou IP adresu pro mnoho místních počítačů v rámci soukromé sítě, kterou obvykle je místní počítačová síť (Local Area Network neboli LAN). PAT zařízení viditelně modifikuje IP balíčky (pakety) v okamžiku, kdy projdou skrz. Tato modifikace vytváří dojem, že všechny pakety, které jsou odesílány do veřejné sítě od mnoha místních počítačů na soukromé síti, vypadají jako od jediného vzdáleného počítače, který je představován jednotkou PAT.
Vztah mezi NAT a PAT
PAT je podmnožina NAT a těsně souvisí s konceptem překladu síťových adres. PAT je také známá jako přetížená NAT. V PAT je obecně jediná veřejně odkrytá IP adresa a všechny soukromé počítače se připojují pomocí jedné odkryté adresy. Přicházející balíčky z veřejné sítě jsou poslány k jejich cílům na soukromé síti pomocí odkazů uložených v tabulkovém seznamu obsaženém uvnitř PAT zařízení, které tímto způsobem udržuje komunikaci mezi jednotlivými páry veřejných a soukromých síťových portů. PAT upravuje jak odesílatelovu soukromou IP adresu, tak i číslo portu. PAT zařízení si vybere čísla portů, která budou vidět vzdálenými počítači na veřejné síti. Tímto způsobem PAT operuje ve 3. síťové vrstvě a zároveň 4. transportní vrstvě OSI modelu, zatímco základní NAT operuje jen ve vrstvě 3.
PAT implementace
Základní obousměrná komunikace
Každý TCP a UDP balíček obsahuje jak číslo portu zdroje a jeho IP adresu, tak i číslo portu cíle a jeho IP adresu. Adresa portu, neboli IP adresa páru tvoří socket, to jest zdrojová adresa portu a zdrojová IP adresa tvoří zdrojový socket. Pro veřejně přístupné služby jako webové servery a poštovní servery je číslo portu důležité. Například, port 80 se připojí k webovému serverovému softwaru a port 25 k poštovnímu serverovému SMTP démonovi. IP adresa veřejného serveru je také důležitá, například jako celosvětově jedinečná poštovní adresa, nebo unikátní telefonní číslo. Obě, jak IP adresa, tak i port musí být přesně známé všemi účastníky toužícími po úspěšné komunikaci. Soukromé IP adresy popsané v RFC 1918 jsou významné jen na soukromých sítích kde jsou používány. Porty jsou jedinečné koncové body komunikace na vzdáleném počítači. Spojení skrz PAT zařízení je udržováno pomocí kombinovaného mapování portů a IP adres. PAT řeší konflikty, které by mohly nastat, pokud by se dva různé počítače snažili použít stejné číslo portu k založení nového unikátního spojení zároveň.
Obdoba k PAT
PAT zařízení je podobné k recepční v kanceláři která má jedno veřejné telefonní číslo. Všechny odchozí telefonní hovory vedoucí z kanceláře se jeví jako přicházející ze stejného telefonního čísla. Jakákoli příchozí volání musí být převedená do správné privátní přípony operátorem, který se musí volajícího člověka zeptat, s kým by rád mluvil. Privátní přípony nemohou být vytáčeny přímo z okolních sítí.
Překlad koncového bodu
S PAT veškerá komunikace probíhající se vzdálenými počítači ve skutečnosti obsahuje externí IP adresu a informaci o číslu portu jednotky PAT, místo domácích IP adres a čísel portů jednotlivých místních počítačů v privátní síti.
- Když počítač na privátní (vnitřní) síti posílá balíček do externí sítě, PAT zařízení nahrazuje vnitřní IP adresu v zdrojovém poli hlavičky paketu (zpáteční adresy) s externí IP adresou PAT zařízení. To pak přiřadí spojovací číslo portu z množství dostupných portů, přiloží číslo tohoto portu k zdrojovému poli portů (stejně jako poštovní směrovací číslo na poště) a vyšle balíček do externí sítě. PAT zařízení poté vytvoří vstup do překladové tabulky obsahující vnitřní IP adresy, původní zdrojový port a přeložený zdrojový port. Všechny následující balíčky ze stejného spojení jsou přeložené k stejnému číslu portu.
- Počítač přijímání balíčku, který má podstoupený PAT, stanovuje spojení s portem a IP adresou specifikovanou v pozměněném balíčku, nehledě na skutečnost, že dodaná adresa je přeložená. (podobné použití jako u poštovního směrovacího čísla)
- Balíček přicházející z externí sítě je mapovaný k odpovídající vnitřní IP adrese a číslu portu z překladové tabulky, nahrazováním externí IP adresy a čísla portu v přicházející hlavičce balíčku (podobný překladu z poštovního směrovacího čísla ke konkrétní adrese domu). Balíček je pak předaný přes vnitřní síť. Z jiného hlediska, pokud cílové číslo portu z přicházejícího balíčku není nalezené v překladové tabulce, balíček je odhozen, nebo zamítnut, protože jednotka PAT neví, kam tento balíček poslat.
PAT jen překládá IP adresy a porty místních počítačů a schovává pravý koncový bod místního počítače na soukromé síti.
Viditelnost operace
PAT operace jsou typicky transparentní pro oba vnitřní i externí počítače. Typicky vnitřní počítač si uvědomuje pravdivou IP adresu a TCP či UDP port externího počítače. Charakteristicky PAT zařízení může fungovat jako standardní brána pro místní počítač. Nicméně vzdálený počítač si uvědomuje jen veřejnou IP adresu pro PAT zařízení a specifický port je užívaný pro komunikaci jménem specifického místního počítače.
Příklady PAT
Místní počítač na adrese 192.168.0.2 na soukromé síti může žádat o spojení s vzdáleným počítačem na veřejné síti. Počáteční paket dostává adresu 192.168.0.2:15345. PAT zařízení (které předpokládejme, má veřejnou IP z 1.2.3.4) smí libovolně přeložit tuto zdrojovou adresu: port pár 1.2.3.4:16529 vytváří vstup v jeho vnitřní tabulce která port 16529 používá pro spojení do 192.168.0.2 na soukromé síti. Jakmile je paket přijatý z veřejné sítě pomocí PAT zařízení na adrese 1.2.3.4:16529, paket je předaný na adresu 192.168.0.2:15345.
Výhody PAT
Navíc k výhodám poskytnutým NAT: PAT dovoluje mnoha domácím počítačům sdílet jedinou externí IP adresu.
Nevýhody PAT
- Rozšiřitelnost - mnoho místních počítačů na soukromé síti vytvoří mnoho spojení s veřejnou sítí. Vzhledem k tomu, že počet portů má omezené množství, může se stát, že PAT bude mít nedostatečné množství v překladové tabulce. Přestože existují tisíce dostupných portů, které jsou velmi rychle recyklovány, některé síťové komunikace konzumují mnohonásobně více portů současně během jediné logické transakce (jako například HTTP žádost o webovou stránku s mnoha vloženými objekty, nebo některé VoIP aplikace). Dostatečně velký LAN, který často trpí tímto typem zatížení by mohl pravidelně konzumovat veškeré dostupné porty.
- Složitost firewallu - protože veškeré vnitřní adresy jsou skryté za jednou veřejně skryto-přístupovou adresu, je nemožné pro vnější stroje, aby zavedly spojení se specifickým vnitřním strojem bez zvláštní konfigurace na firewallu k tomu, aby předaly spojení se specifickým portem. Toto má značný dopad na aplikace jako VOIP, videokonference, a jiné peer-to-peer aplikace.
Reference
V tomto článku byl použit překlad textu z článku Port address translation na anglické Wikipedii.
Související články
Externí odkazy
- RFC 1918 - Address Allocation for Private Internets
- http://computer.howstuffworks.com/nat.htm
- https://web.archive.org/web/20080730052117/http://www.zdnetasia.com/insight/network/0,39044847,39050002,00.htm