Dolazne veze prema hostu koji takođe pokreće VPN klijent ne uspevaju na vrlo specifičan način: rukovanje stigne, daemon odgovori, a klijent ne dobije ništa natrag. Ništa ne blokira port. Odgovor je otišao kroz tunel, jer tunel poseduje podrazumevanu rutu i jezgro usmerava odgovore prema odredištu, a ne prema pamćenju odakle je zahtev došao. Taj jedini propust objašnjava svaki sledeći simptom.

Odgovor se usmerava, ne pamti

VPN klijent koji postavi podrazumevanu rutu dodaje unos koji nadmašuje LAN gejtvej, bilo metrikom bilo deljenjem prostora na dve preciznije polovine. Odlazni paketi sada biraju interfejs tunela. Jezgro nikada ne pita odakle je paket koji se odgovara izvorno stigao. Taj jedini propust objašnjava svaki sledeći simptom.

Smer napred usmerava se prema odredištu, kao i obrnuti smer. Odgovor je adresiran na javnog klijenta, kojeg će tunel rado preneti. Drugi kraj primi paket čiji izvor ne poseduje, odbaci ga, a originalni klijent čeka dok ne istekne vreme.

Strogo filtriranje obrnutog puta može odbaciti dolazni paket pre nego što ga daemon uopšte pročita. Prvo proverite taj brojač, jer filtrirano odbacivanje i greška usmeravanja spolja izgledaju identično.

ip route show default
sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.eth0.rp_filter
nft list ruleset | grep -A3 'hook forward'

Prva naredba pokazuje koja podrazumevana ruta trenutno pobeđuje. Druga izveštava primenjuje li se strogo filtriranje globalno ili po interfejsu, a treća pokazuje svako pravilo u lancu prosleđivanja koje može biti uključeno.

Tri načina da zadržite povratni put

Isključivanje odredišta usluge iz tunela najuža je opcija. Ruta hosta usmerena na LAN gejtvej, plus daemon vezan na fizičku adresu umesto na svaku adresu, drži taj jedan tok izvan tunela. Promena je lokalna i lako se poništava.

Usmeravanje po politici opšti je odgovor. Pravilo vezano za adresu izvora ili za oznaku vatrozida bira tabelu čija podrazumevana ruta pokazuje na WAN gejtvej, dok vlastite veze hosta nastavljaju koristiti tunel. Držite prioritet eksplicitnim da pravilo kasnije ne bude zasenjeno.

ip rule add from 203.0.113.25/32 table 100 priority 100
ip route add default via 192.0.2.1 dev eth0 table 100
ip route get 198.51.100.7 from 203.0.113.25

Prve dve naredbe grade alternativni put za odgovore s javne adrese. Treća pita jezgro kojim bi putem išao točno taj izvor i odredište, i tako potvrđujete da pravilo ima ikakav učinak.

Prevođenje izvora treća je opcija i jedina koja preživljava usmerivač koji već radi NAT ispred usluge. Odgovor se mora vratiti tom usmerivaču, a maskiranje na WAN interfejs to postiže skrivajući klijenta iz zapisnika usluge. Ručna zamena podrazumevane rute nakon povezivanja dijagnostika je, jer klijent prepisuje tabelu pri sledećem ponovnom povezivanju.

Kada kutija usmerava i za LAN

Ista greška pojavljuje se jedan skok dalje kada host usmerava za uređaje iza sebe. Dolazna veza prosleđuje se unutrašnjem uređaju čiji je jedini povratni put tunel, a odgovor stiže spoljnom klijentu s adrese provajdera. Unutrašnji uređaj sve vreme radi ispravno.

Praćenje veza tada vidi odgovor za tok koji nikad nije zabeležilo i odbacuje ga. Prevođenje odredišta dostavlja dolaznu vezu uređaju, a prevođenje izvora čini da odgovor izgleda kao da dolazi od samog usmerivača.

Politička ruta koja zadržava prosleđeni port na WAN-u dok vlastiti saobraćaj usmerivača koristi tunel čistiji je ekvivalent. Bez prevođenja izvora odgovor je adresiran na spoljnog klijenta, a unutrašnji uređaj uopšte nema rutu za tu adresu.

Tri probe koje razdvajaju uzroke

Sprovedite tri probe: vezu u kutiju s interneta, vezu iz nje prema javnom hostu i traženje naziva. Kada se prve dve razilaze, kriv je povratni put. Kada nazivi ne uspeju u oba smera, razrešivač je druga greška koja samo deli tunel.

Prvo rešite pitanje usmeravanja, pa pogledajte nazive. Mešanje to dvoje način je da se ispravan server okrivi za pokvaren razrešivač.

Zabeležite koje interfejs izuzetak imenuje i držite konfiguraciju pod kontrolom verzija. Pravilo napisano prema interfejsu koji se preimenuje nakon nadogradnje prolazi danas i pada nakon sledećeg restarta.

Povezani članci