Prosljeđivanje portova i trigeriranje portova stoje u istom izborniku na većini kućnih usmjerivača, pa se zato tretiraju kao dva načina da se obavi jedan posao. Prosljeđivanje je statično pravilo: dolazna veza na WAN port prevodi se na fiksnu unutarnju adresu i port, bez obzira na to odvija li se još nešto. Trigeriranje je uvjetno: usmjerivač prati odlazni promet i otvara dolazno mapiranje tek nakon što izađe odgovarajuća veza. VPN poslužitelj čeka da se prvo netko drugi poveže, pa je upravo taj uvjet jedina stvar koju nikada ne može ispuniti.

Dva pravila s različitim životnim ciklusima

IPv4 NAT čuva stanje. Kada unutarnji host pošalje paket prema van, usmjerivač stvara mapiranje da bi odgovori našli put natrag; dolazni paket koji ne odgovara nijednom mapiranju se odbacuje, i to je ponašanje koje neažuriranu radnu površinu drži izvan interneta. Prosljeđivanje je trajni zapis prevođenja koji se dodaje ručno. Trigeriranje je privremena rupa koju čuva obrazac prometa.

Praktična razlika je vrijeme. Prosljeđivanje postoji od trenutka kada se spremi dok ga netko ne izbriše. Trigerirano mapiranje postoji nakon što se trigger aktivira i zatvara se na tajmeru mirovanja, mjerenom u minutama na potrošačkom hardveru, ili odmah pri restartu.

Nijedno nije sigurnije u apstraktnom smislu. Prosljeđivanje izlaže jedan port neprekidno; trigger ga izlaže samo nakon određenog odlaznog prometa. Za servis koji mora prihvatiti prvi paket od stranca, samo jedno od toga odgovara poslu.

Zašto trigeriranje neće objaviti poslužitelj

VPN poslužitelj je pasivan po dizajnu. Partner, bio to prijenosnik u kafiću ili telefon na mobilnim podacima, šalje prvi paket, a usmjerivač za njega nema mapiranje. Ništa unutra nije pokrenulo promet prema trigger portu, pa se pravilo nikada ne aktivira i veza umire prije nego što rukovanje počne.

Tamo gdje trigeriranje izgleda kao da radi, nešto drugo stvara promet na trigger portu: klijent na LAN-u, sonda za nadzor ili poslužiteljeve vlastite odlazne provjere. Mapiranje se tada otvara za taj jedan host i zatvara kada promet prestane, pa sljedeći vanjski partner ponovno ne uspije, dok prvi uspjeh stoji u dnevniku i izgleda kao dokaz.

Trigeriranje je također obično jednoznačno po hostu. Mnoge implementacije dopuštaju samo jednom unutarnjem uređaju da drži mapiranje u danom trenutku, što je potpuno pogrešno za poslužitelj koji treba odgovoriti na nekoliko partnera. Funkcija je napravljena za aplikacije koje otvaraju kontrolnu vezu prema van i očekuju dolazne podatke na drugom portu, i još uvijek odgovara tom obliku.

Što prosljeđivanje zapravo mapira

Prosljeđivanje je jedan zapis prevođenja: WAN port i protokol na unutarnju adresu i port. Potreban mu je slušatelj koji već radi na drugoj strani, i potrebno je da unutarnja adresa ostane na mjestu. DHCP zakup koji se preseli na drugi stroj tiho šalje svaki tunel na pogrešan host, pa napravite rezervaciju prije pravila.

RuleOpens whenCloses whenFits a VPN listener
Port forwardSaved, at bootYou delete itYes
Port triggerMatching outbound trafficIdle timeout or rebootNo

Protokol je važniji nego što forma sugerira. OpenVPN preko UDP-a traži UDP prosljeđivanje, WireGuard traži UDP, a IPsec podaci dolaze kao ESP, IP protokol 50, koji uopće nema portove. Forma za prosljeđivanje koja prima samo TCP ili UDP to ne može izraziti, pa IPsec traži passthrough ili statično mapiranje jedan-na-jedan umjesto pravila za port.

Sloj iznad vašeg usmjerivača

Prosljeđivanje kontrolira samo prevođenje koje posjedujete. Ako WAN adresa nije vaša, što je slučaj iza NAT-a kod operatera gdje pretplatnici dijele 100.64.0.0/10 kako je opisano u RFC 6598, dolazna veza nikada ne stiže do vašeg usmjerivača jer je pružatelj prvi preveo. Nijedno pravilo na vašem uređaju ne može ispraviti taj redoslijed.

Dvostruki NAT je isti problem u malom. Vaš usmjerivač prosljeđuje prema usmjerivaču operatera, koji nema odgovarajuće pravilo i odbacuje paket. Ili dodajte pravilo na vanjskom uređaju, ili prebacite vanjski uređaj u način mosta i pustite svojem da drži javnu adresu.

Zato test mora doći izvana. Test iz istog LAN-a preko javne adrese zavisi od podrške za hairpin NAT i može proći ili pasti iz razloga nepovezanih s pravilom; telefon na mobilnim podacima, ili prijatelj na drugoj mreži, čišća je provjera.

Ograničite pravilo, pa provjerite obje polovine

Proslijedite jedan port na jednu adresu. Raspon dodan zato što su prvi pokušaji propali jest način na koji upravljačka sučelja završe na internetu, a VPN slušatelju ne treba objavljena administratorska stranica usmjerivača pokraj njega.

Zadržite sve što je već štitilo taj slušatelj: identitet po certifikatu ili ključu, host firewall, aktualne verzije paketa. Prosljeđivanje propušta paket; autentifikacija odlučuje postaje li paket tunel, i to su dva odvojena kvara kada nešto pođe po zlu.

Provjera ima dvije polovine. Rukovanje mora biti završeno s vanjske mreže, a zatim privatni resurs iza poslužitelja mora odgovoriti kroz tunel. Prosljeđivanje propušta vezu tunela i ništa više; usmjeravanje i autorizacija za 10.8.0.0/24 druga je postavka na drugom zaslonu.

Odlučite pomoću tri pitanja

Tri pitanja rješavaju izbor brže od bilo koje tablice usporedbe:

  • Spaja li se nešto izvana, kao prvi paket? Onda koristite prosljeđivanje, ili relej. Trigeriranje se ne može otvoriti bez odlaznog prometa kojeg nikada neće biti.
  • Mora li rupa nadživjeti vrijeme mirovanja? Onda koristite prosljeđivanje, jer se trigerirano mapiranje zatvara po vlastitom rasporedu.
  • Je li WAN adresa vaša za objavljivanje? Ako nije, popravite sloj iznad prije nego uredite bilo koje pravilo.

Ako je odgovor na sva tri pitanja ne, što je slučaj za prijenosnik koji sam zove komercijalnog pružatelja, nijedno pravilo nije potrebno. Klijent iza NAT-a radi jer sam stvara mapiranje sa stanjem, i to pokriva većinu ljudi koji čitaju stranicu o prosljeđivanju portova u ponoć.

Povezani članci