Skip to main content

12.2 Preklad adresy zdroja (source NAT)

nat-tracking.webp

Preklad adresy zdroja

Pri preklade adresy zdroja (source NAT) smerovač nahrádza skutočnú adresu odosielateľa (typicky z LAN siete) svojou vlastnou adresou (typicky z WAN rozhrania), pričom môže, ak je to nutné, nahradiť aj zdrojový port. Vďaka tomu dokáže IPv4 internet ešte stále fungovať, aj keď sa minuli IPv4 adresy.

Bežne má každá domácnosť pridelenú jedinú verejnú IPv4 adresu na WAN rozhraní (nie však vždy, viď nižšie) a za ňou sú skryté všetky LAN zariadenia. Tie používajú privátne IPv4 adresy a pri prístupe do internetu sú maskované verejnou IPv4 adresou. Smerovač požiadavku z LAN do WAN zaeviduje do tabuľky spojení, zmení zdrojovú LAN adresu za svoju WAN adresu a keď príde paket odpovede, podľa tabuľky mu zase zmení cieľovú adresu na LAN adresu.

Keďže UDP protokol neudržiava spojenia, tento mechanizmus by nefungoval, no smerovač pre účely NAT eviduje aj UDP konverzácie ako spojenia, podobne aj ICMP protokol (ping).

Konfigurácia v MikroTik RouterOS

Na smerovačoch MikroTik môžeme NAT pravidlá definovať vo WinBox ponuke IPFirewall, záložka NAT.

Source NAT v praxi využívame v smere z LAN do WAN, definujeme predovšetkým výstupné sieťové rozhranie (ešte nedávno nebolo možné v source NAT zvoliť vstupné rozhranie). V MikroTik RouterOS definujeme pravidlá pre reťazec srcnat a máme dve možnosti akcie (Action):

  • srcnat-action.webpJednoduchšou je maškaráda (akcia masquerade) - ňou dosiahneme, že zdrojová adresa je pri prístupe do WAN „maskovaná“ za ľubovoľnú vonkajšiu (WAN) adresu smerovača. Je ideálna pre dynamickú IP adresu na WAN rozhraní, pretože pri každej zmene adresy alebo výpadku WAN rozhrania sa automaticky prečistí tabuľka spojení. To vynúti nové nadviazanie spojení už s novou IP adresou.
  • Ak máme pevnú IP adresu na WAN rozhraní, či dokonca viaceré, je lepšie používať „plnohodnotnú“ akciu src-nat. Tu musíme definovať, ktorá IP adresa sa má použiť (To Addresses). Môžeme prípadne aj upresniť, pre ktorých LAN klientov sa má táto akcia vykonať (na záložke General - Src. Address, prípadne aj List). Pri krátkom výpadku WAN sa spojenia nezrušia, ale zostávajú aktívne, čo urýchli obnovu komunikácie.

Maškaráda čistí tabuľku spojení zámerne, pretože sa predpokladá, že pri novom nadviazaní dynamického spojenia dostane smerovač inú IP adresu a staré záznamy v tabuľke by boli aj tak nepoužiteľné a len by blokovali nové pokusy o spojenie.

CGNAT

Keďže v dnešnej dobe sú IPv4 adresy skutočne nedostatkové, niektorí poskytovatelia internetu neposkytujú klientom žiadnu skutočnú verejnú IPv4 adresu, ale adresu z rozsahu 100.64.0.0/10 (teda 100.64-127.x.y). Tento rozsah bol dodatočne vyhradený pre vnútorné prepájacie siete poskytovateľov internetu, pokiaľ nemajú dostatok verejných adries. Tento rozsah definuje RFC 6598 a označuje sa CGNAT (Carrier-grade NAT) alebo aj NAT444 (pretože sa postupne vystriedajú tri IPv4 adresy).

Bezpečnosť

Preklad zdrojovej adresy vyvoláva falošný pocit bezpečia - z podstaty veci vyplýva, že z internetu (WAN) nie je možné pripojiť sa na ktorékoľvek LAN zariadenie, keďže má privátnu IP adresu. Vzdialene z internetu to skutočne možné nie je (ak nie je aktívna funkcia NAT-PMP alebo UPnP), no bezprostrední susedia vo WAN prístup majú, čo si môžeme aj ľahko vyskúšať. Preto nemôžeme NAT pokladať za ochranný prvok a vždy treba myslieť aj na firewall!

Je potrebné uvedomiť si aj potenciálny bezpečnostný problém v bežnej situácii: Pokiaľ máme v source NAT zadané výstupné WAN rozhranie a nemáme obmedzené vstupné rozhranie (čo je bežná prax), potom sa NAT vykoná aj pre spojenia z WAN do WAN. Teda ak by niekto z WAN prišiel na adresu nášho smerovača (hocikto na port presmerovaný cez UPnP do WAN alebo sieťový sused, ktorý si zadal smerovanie), náš smerovač by ochotne odoslal požiadavku pod svojou adresou. Záškodník z WAN by teda mohol svoju činnosť vykonávať pod našou verejnou IP adresou! Opäť je na mieste pripomenúť potrebu zakázať spojenia z WAN do WAN na firewalli, aby sme z nášho smerovača nespravili nechcený proxy server.