Network Address Translation (NAT)
RFC 1631
NAT je proces výměny adresy v IP hlavičce za jinou
- šetří adresní prostor
- skrytím vnitřních adres a jejich oddělením NAT prvkem se zvyšuje bezpečnost vnitřní sítě
- přístup většího množství stanic do vnější sítě pod malou skupinou veřejných adres
Obvykle se používá ve stub sítích, default gateway provádí NAT
Vnitřní (inside) a vnější (outside) síť
Na NAT prvku se vždy definuje jedno outside interface a jedno nebo více inside interface
Vnitřní síť často používá privátní adresy, vnější síť globální.
Typy adres v NAT
- Inside Local - adresy konfigurované na stanicích vnitřní sítě
- Inside Global - adresy, pod nimiž jsou stanice na vnitřní síti vidět z vnější sítě
(dynamicky alokovány z poolu veřejných adres)
- Outside Local - adresy stanic ve vnější síti, jak se jeví ve vnitřní síti
- Outside Global - adresy konfigurované na stanicích vnější sítě
Přenos paketu z inside do outside:
- Zdrojová adresa: překlad inside local - > inside global
- Cílová adresa: překlad outside local na outside global (volitelně)
Přenos paketu z outside do inside:
- Zdrojová adresa: překlad outside global - > outside local (volitelně)
- Cílová adresa: překlad outside local na inside local
Použití NAT
- překlad inside local adres - mapování na adresy z poolu globálních adres
- overloading inside local adres, tzv. PAT (Port Address Translation)
- pro TCP/UDP
- jednotlivé lokální adresy přiřazeny jednotlivým portům jedné (nebo malého počtu) globální adresy
- rozložení zátěže - round-robin přiřazování poolu vnitřních adres jedné inside global adrese
- přeadresovávání sítí
- spojování sítí s překrývajícími se (privátními) rozsahy - dvojnásobný NAT
Překladová tabulka
struktura položky (u některých typů NAT vyplněna jen dvojice):
inside local, inside global, outside local, outside global
Položky se odstraňují, nejsou-li určitou dobu využívány
Dynamický NAT
NAT Pool - seznam globálních adres na outside interface, dynamicky přiřazovaných
inside adresám
- mapování inside local adres na inside global adresy z poolu na outside inteface
- ACL definuje inside adresy, které se mají překládat
- NAT pool definuje pool inside global adres
- položky překladové tabulky se mohou vytvářet jen od provozu zevnitř ven
- možnost zpřístupnění outside sítě mnoha stanicím přes několik globálních adres
- vytvořené položky jsou dočasné, doba životnosti musí odpovídat poptávce různých
stanic po globálních IP adresách z poolu ("recyklace" inside global adres)
Statický NAT
- manuální definování permanentní položky překladové tabulky
- pokud se má jevit jedna inside local adresa vždy pod toutéž inside global adresou
- pro zpřístupnění serveru umístěného ve vniřní síti a s pevnou IP adresou zvnějšku
Port Address Translation (PAT, NAT overload)
- více inside local adres se mapuje na tutéž inside global adresu, ale na různých portech
(dynamicky přidělovaných)
- rozšíření překladové tabulky o porty
Problémy NAT
- transport adres v těle zpráv aplikačních protokolů
- omezuje globální konektivitu (jednoznačnou identitu stanic, zřizování spojení mezi libovolnou dvojicí stanic)