-
Notifications
You must be signed in to change notification settings - Fork 0
NAT a port forwarding
NAT je záplata na to, že IPv4 adresy došly. Funguje tak dobře, že si na ni všichni zvykli jako na samozřejmost, a pak jsou zmatení, když se s IPv6 najednou ztratí.
IPv4 má 32 bitů, což je asi 4,3 miliardy adres. Došly někdy kolem roku 2011. Domácností s deseti připojenými zařízeními jsou přitom stovky milionů.
Řešení: vyhradily se rozsahy, které se na internetu nepoužívají a každý si je může doma nasadit, kolikrát chce.
| Rozsah | Velikost | Kde se potkáš |
|---|---|---|
10.0.0.0/8 |
16,7 mil. | firmy, VPN |
172.16.0.0/12 |
1 mil. | Docker, méně časté |
192.168.0.0/16 |
65 tisíc | domácnosti |
K tomu 169.254.0.0/16, což je adresa, kterou si zařízení přidělí samo, když nedostane odpověď od DHCP. Když ji vidíš, znamená to „DHCP nefunguje".
Router má jednu veřejnou adresu a za sebou třeba dvacet zařízení. Když jedno z nich pošle paket ven, router přepíše zdrojovou adresu na svoji vlastní a poznamená si to.
Klíčová finta je v tom, že si zároveň mění i zdrojový port. Bez toho by nevěděl, komu patří odpověď.
Tabulka v routeru pak vypadá takhle:
| Vnitřní | Vnější | Cíl |
|---|---|---|
192.168.1.10:54321 |
85.207.12.34:41001 |
77.75.79.222:443 |
192.168.1.20:33445 |
85.207.12.34:41002 |
77.75.79.222:443 |
Když přijde odpověď na port 41001, router se podívá do tabulky, zjistí, komu patří, přepíše adresu zpátky a doručí. Přesně proto je NAT technicky vzato NAPT, tedy překlad adres i portů.
Podrobný průchod paketu je v cestě paketu.
Ta tabulka se plní jen odchozími spojeními. Když někdo zvenku pošle paket na tvou veřejnou adresu, router se podívá do tabulky, nic nenajde a paket zahodí. Nemá komu ho dát.
To je celý důvod, proč tvoje zařízení nejsou z internetu dostupná. Není to bezpečnostní rozhodnutí, je to vedlejší efekt toho, že router nemá jak uhodnout, komu paket patří.
Port forwarding je ruční předvyplnění té tabulky. Řekneš routeru: cokoliv, co přijde na port 443, posílej na 192.168.1.10, i když si to nikdo nevyžádal.
Nastavuje se to skoro všude stejně:
- vnější port (na kterém posloucháš z internetu)
- vnitřní IP adresa
- vnitřní port (může se lišit od vnějšího)
- protokol (TCP, UDP nebo obojí)
Vnitřní zařízení musí mít stabilní adresu. Udělej DHCP rezervaci. Bez ní ti to přestane fungovat, jakmile se něco restartuje ve špatném pořadí.
Nevystavuj ven, co nemusíš. Každý otevřený port je něco, co musíš aktualizovat a hlídat. SMB (445), RDP (3389) a databázové porty se ven nevystavují nikdy. Pro tyhle věci použij VPN.
Vnější port nemusí být stejný. Přesun SSH z 22 na nějaké vysoké číslo neposkytuje skutečnou bezpečnost, ale radikálně zmenší množství pokusů v logu.
Ověř si to zvenku. Test z domácí sítě ti nic neřekne — mnoho routerů neumí správně obsloužit přístup na vlastní veřejnou adresu zevnitř (tomu se říká hairpin NAT nebo NAT loopback). Použij mobil na datech.
UPnP umožňuje aplikacím vytvářet si port forwarding samy, bez ptaní. Konzole a hry ho používají rády.
Bezpečnostně je to nešťastné: jakýkoliv software u tebe v síti, včetně malwaru, si může sám otevřít cestu z internetu dovnitř. Bez tvého vědomí a bez záznamu.
Doporučení je vypnout ho a v případě potřeby udělat pravidla ručně. Pokud ho necháš zapnuté kvůli hraní, minimálně ho omez jen na VLANu, kde jsou konzole.
Když máš router poskytovatele a za ním svůj vlastní, provoz prochází NATem dvakrát. Port forwarding pak musíš nastavit na obou, jinak nefunguje.
Poznáš to snadno: veřejná adresa, kterou vidíš na ifconfig.co, se liší od té, kterou má tvůj router na WAN rozhraní.
Řešení je přepnout krabici poskytovatele do režimu bridge, čímž z ní uděláš hloupý modem a NAT dělá jen tvůj router.
Horší varianta téhož. Poskytovatel ti nedá veřejnou adresu vůbec — dostaneš adresu z rozsahu 100.64.0.0/10 a NAT probíhá až u něj, sdílený s dalšími stovkami zákazníků.
Port forwarding v takové situaci nefunguje a fungovat nemůže. Nemáš vlastní veřejnou adresu, na které bys mohl poslouchat.
Co s tím, je v poskytovatel, CGNAT a veřejná IP.
Tohle stojí za zdůraznění, protože je to nejrozšířenější omyl v domácích sítích.
NAT se chová ochranně jako vedlejší efekt, ale nikdo ho tak nenavrhoval a spoléhat se na něj je chyba. Nechrání tě proti ničemu, co vzniklo zevnitř — a to jsou dnes prakticky všechny útoky. Malware ve tvé síti si spojení ven naváže sám a NAT mu v tom ochotně pomůže.
Skutečnou ochranu dělá firewall. V IPv4 je schovaný za NATem a nevidíš ho. V IPv6 NAT není a firewall je vidět. Není to tím, že by IPv6 bylo méně bezpečné — jen je poctivější.
Našel jsi chybu nebo něco chybí? Založ issue nebo pošli pull request. — Psáno 2026, licence CC BY-SA 4.0
Základy
- Cesta paketu
- Vrstvy a zapouzdření
- MAC, ARP a přepínání
- Prefixy a masky
- Směrování
- DHCP a DNS
- Porty a spojení
- NAT a port forwarding
Domácí síť
IPv6
Linux firewall
TLS a reverse proxy
- TLS a HTTPS
- HTTP, QUIC a WebSocket
- Reverse proxy
- Caddy
- Nginx
- Traefik
- Certifikáty a Let's Encrypt
- Vlastní certifikační autorita
Kryptografie
- Stavební kameny
- Veřejný a soukromý klíč
- Diffie-Hellman
- Hashe, HMAC a podpisy
- Náhodnost a entropie
- TLS handshake
- Postkvantová kryptografie
- Šifrování disků a souborů
Virtualizace a kontejnery
Diagnostika
Vzdálený přístup
Provoz a bezpečnost
Praxe