Tablica rutanja pokazuje zadanu rutu kroz ZeroTier interfejs, mreža se prijavljuje kao online, a pregledač ipak izlazi sa lokalne ISP adrese. Ta kombinacija je česta i nije greška na klijentu. Zadana ruta samo kaže gdje paketi treba da idu; nešto ih na drugoj strani mora proslijediti i prevesti. Tri odvojena dijela moraju biti tačna prije nego izlazni čvor proradi.

Ruta postoji, ali ništa ne izlazi

Prvo provjerite tablicu rutanja klijenta. Linija kao default via 10.147.20.5 dev zt0 dokazuje da je ruta instalirana, a ne da će odredište prihvatiti saobraćaj. Sljedeći skok mora biti član koji je voljan i sposoban da je proslijedi.

Ako isti zahtjev i dalje izlazi kroz fizički interfejs, klijent nije instalirao rutu ili ju je instalirao s metrikom koja je izgubila od lokalne zadane. Ako zahtjev nestane nakon instaliranja rute, izlazni član prima pakete i ne uspijeva ih proslijediti ili prevesti. Klijent koji zadrži fizičku zadanu rutu uopšte ne šalje paket na izlaz.

Ta razlika određuje gdje raditi. Poređenje javne adrese prije i poslije promjene razdvaja rutu koja nikada nije korištena od one koja je korištena i odbačena, i traži jednu komandu umjesto pregleda cijele konfiguracije. Uradite poređenje prije nego što promijenite bilo šta drugo, tako da oba rezultata dolaze iz istog početnog stanja.

Tri dijela koja sva moraju biti tačna

Izlaz je lanac, a najslabija karika određuje simptom. Tabela ispod navodi karike redom kojim obično zataje.

PartWhere it livesWhat a failure looks like
Forwarding and NATExit node kernel and firewallTraffic arrives, no reply
Managed default routeZeroTier network controllerNo default via the tunnel on the member
Client acceptanceMember's per-network settingRoute offered but not installed
DNS behaviorClient resolver configurationPages fail by name, IP works

Prvi red je ono što naziv opcije skriva. Član postaje izlaz tek kada njegovo jezgro prosljeđuje pakete između ZeroTier interfejsa i interfejsa okrenutog internetu, i kada se povratna putanja prevede natrag u tunel. Bez tog prosljeđivanja član je partner, a ne mrežni prolaz.

Red kontrolera je ovlaštenje, ne konfiguracija. Oglašavanje 0.0.0.0/0 kroz člana govori svakom klijentu gdje je izlaz; to ne čini taj član sposobnim da nosi saobraćaj. Također ne provjerava da član ima radnu putanju do interneta. ZeroTier dokumentacija o izlaznom čvoru pokriva istu podjelu između čvora, rute i klijenta.

Podesite izlazni čvor da prosljeđuje i prevodi

Trajno omogućite prosljeđivanje IPv4, zatim dodajte izvorni NAT za saobraćaj koji napušta WAN interfejs. Filter pravila moraju dozvoliti proslijeđeni tok u oba smjera, jer su prosljeđivanje i prevođenje odvojeni od dozvole:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o zt0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Zamijenite zt0 i eth0 imenima na hostu; pravilo sačuvano za primjer interfejsa ne prati pakete na stvarnom. Učinite promjene trajnim kroz upravitelja vatrozida koji posjeduje pravila, jer komanda u interaktivnoj ljusci nestaje pri sljedećem ponovnom pokretanju.

Ako host pokreće upravitelja vatrozida kao što su UFW ili firewalld, dodajte pravila kroz tog upravitelja umjesto da slažete iptables linije pored njega. Dva vlasnika koja uređuju iste lance stvaraju politiku koja zavisi od reda podizanja. Redoslijed je važan kada upravitelj generiše vlastite lance. Testirajte s klijenta nakon ponovnog učitavanja upravitelja, a ne prije.

Oglašavajte rutu i prihvatite je na klijentu

Na mrežnom kontroleru dodajte upravljanu rutu za 0.0.0.0/0 čiji je sljedeći skok ZeroTier adresa izlaznog člana. Zatim na članu koji je treba koristiti dozvolite nadjačavanje za tu mrežu. Dozvola je lokalna: ne rekonfiguriše druge članove i ne mijenja kontroler.

zerotier-cli listnetworks
zerotier-cli set <network-id> allowDefault=1
ip route get 1.1.1.1

Posljednja komanda treba prijaviti ZeroTier interfejs i adresu izlaznog člana. Ako i dalje prijavljuje fizički interfejs, ruta nedostaje ili konkurentska zadana ima bolju metriku.

Držite postavku ograničenu na mrežu kojoj je potrebna. Omogućavanje prihvatanja zadane rute globalno, ili na mreži koja treba da pruža samo privatnu podmrežu, šalje saobraćaj kroz izlaz koji nikada nije bio dimenzionisan za to.

Provjerite izlaz i pregledajte druge porodice adresa

Zatražite javnu adresu od servisa koji prijavljuje izvor i uporedite je s WAN adresom izlaznog čvora. Zatim učitajte stranicu po imenu da potvrdite da DNS još uvijek radi, i testirajte jednu važnu aplikaciju, a ne samo pregledač.

Klijent s dvostrukim stekom može nastaviti koristiti svoju izvornu IPv6 putanju dok IPv4 izlazi kroz ZeroTier. Ako je cilj sakriti ili kontrolisati sav saobraćaj, potrebna je odvojena ::/0 ruta i prosljeđivanje IPv6 na izlazu, a IPv4 test ne govori ništa o njima.

Obrnuto filtriranje putanje u Linuxu također može odbaciti valjan izlazni saobraćaj na klijentu. ZeroTier dokumentuje razmatranje rp_filter za članove koji učestvuju; mijenjajte tu postavku namjerno i tek nakon što su ruta i NAT potvrđeni, ne kao prvi eksperiment.

Ako je zahtjev pristup NAS-u ili jednoj uredskoj podmreži, upravljana ruta za taj prefiks je manja i sigurnija promjena od potpunog izlaza. Slanje cijelog pregledanja kroz drugi uređaj drugačija je odluka od dosezanja jednog privatnog resursa i zaslužuje poseban pregled.

Povezani članci