Marsruutide tabel näitab vaikimisi marsruuti ZeroTier-liidese kaudu, võrk teatab end võrgus olevat ja brauser väljub ikkagi kohalikult ISP-aadressilt. See kombinatsioon on tavaline ega ole kliendi viga. Vaikimisi marsruut ütleb ainult, kuhu paketid peaksid minema; teises otsas peab miski neid edasi saatma ja tõlkima. Enne kui väljumissõlm töötab, peavad kehtima kolm eraldi osa.

Marsruut on olemas, aga välja ei lähe miski

Kontrollige esmalt kliendi marsruutide tabelit. Rida nagu default via 10.147.20.5 dev zt0 tõestab, et marsruut paigaldati, mitte et sihtkoht liikluse vastu võtab. Järgmine hüpe peab olema liige, kes on valmis ja suuteline seda edasi saatma.

Kui sama päring väljub endiselt füüsilise liidese kaudu, ei paigaldanud klient marsruuti või paigaldas selle mõõdikuga, mis kaotas kohalikule vaikimisi marsruudile. Kui päring kaob pärast marsruudi paigaldamist, saab väljumisliige pakette ja ei suuda neid edasi saata ega tõlkida. Klient, kes hoiab füüsilist vaikimisi marsruuti, ei saada väljumisele üldse ühtegi paketti.

See erinevus otsustab, kus töötada. Avaliku aadressi võrdlemine enne ja pärast muudatust eraldab marsruudi, mida kunagi ei kasutatud, sellest, mida kasutati ja mis kõrvale jäeti, ning nõuab ühte käsku kogu konfiguratsiooni ülevaatamise asemel. Tehke võrdlus enne muu muutmist, et mõlemad tulemused pärineksid samast algseisundist.

Kolm osa, mis peavad kõik kehtima

Väljumine on ahel ja nõrgim lüli määrab sümptomi. Allolev tabel loetleb lülid järjekorras, milles need tavaliselt ebaõnnestuvad.

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

Esimene rida on see, mida valiku nimi varjab. Liikmest saab väljumine alles siis, kui selle tuum saadab pakette edasi ZeroTier-liidese ja internetti suunatud liidese vahel ning kui vastusetee tõlgitakse tagasi tunnelisse. Ilma selle edasisaatmiseta on liige võrdne osapool, mitte lüüs.

Kontrolleri rida on volitus, mitte konfiguratsioon. 0.0.0.0/0 liikme kaudu teatamine ütleb igale kliendile, kus väljumine asub; see ei tee liiget võimeliseks liiklust kandma. See ei kontrolli ka, kas liigmel on töötav tee internetti. ZeroTieri väljumissõlme dokumentatsioon käsitleb sama jaotust sõlme, marsruudi ja kliendi vahel.

Seadistage väljumissõlm edasi saatma ja tõlkima

Lubage IPv4 edasisaatmine püsivalt, seejärel lisage lähtevõrgu NAT liiklusele, mis lahkub WAN-liidesest. Filtrireeglid peavad lubama edastatavat voogu mõlemas suunas, sest edasisaatmine ja tõlkimine on loast eraldi:

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

Asendage zt0 ja eth0 hosti nimedega; näidisliidese jaoks salvestatud reegel ei järgi pakette päris liidesel. Tehke muudatused püsivaks selle tulemüürihalduri kaudu, kellele reeglid kuuluvad, sest interaktiivses kestas antud käsk kaob järgmisel taaskäivitusel.

Kui hostis töötab tulemüürihaldur nagu UFW või firewalld, lisage reeglid selle halduri kaudu, selle asemel et iptables-ridu kõrvale laduda. Kaks omanikku, kes muudavad samu ahelaid, loovad käivitusjärjekorrast sõltuva poliitika. Järjekord loeb, kui haldur genereerib oma ahelad. Testige kliendist pärast halduri uuesti laadimist, mitte enne.

Teatage marsruut ja võtke see kliendis vastu

Lisage võrgukontrolleris hallatav marsruut 0.0.0.0/0 jaoks, mille järgmine hüpe on väljumisliikme ZeroTier-aadress. Seejärel lubage sellel liikmel, kes seda kasutama peaks, selle võrgu jaoks ülekirjutus. Luba on kohalik: see ei sea ümber teisi liikmeid ega muuda kontrollerit.

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

Viimane käsk peaks näitama ZeroTier-liidest ja väljumisliikme aadressi. Kui see näitab endiselt füüsilist liidest, puudub marsruut või on konkureerival vaikimisi marsruudil parem mõõdik.

Hoidke säte piiratud võrguga, mis seda vajab. Vaikimisi marsruudi vastuvõtu lubamine globaalselt või võrgus, mis peaks pakkuma ainult privaatset alamvõrku, saadab liikluse väljumise kaudu, mida ei olnud selleks kunagi mõõdetud.

Kontrollige väljumist ja teisi aadressiperekondi

Küsige avalikku aadressi teenuselt, mis teatab allika, ja võrrelge seda väljumissõlme WAN-aadressiga. Seejärel laadige nimega sait, et kinnitada, et DNS ikka lahendab, ja testige ühte olulist rakendust, mitte ainult brauserit.

Kahe virnaga klient saab jätkata oma loomuliku IPv6-tee kasutamist, samal ajal kui IPv4 väljub ZeroTieri kaudu. Kui eesmärk on kogu liiklust varjata või kontrollida, on vaja eraldi ::/0-marsruuti ja IPv6 edasisaatmist väljumisel, ning IPv4 test ei ütle nende kohta midagi.

Linuxi pöördtee filtreerimine võib kliendis samuti korralikku väljumisliiklust maha visata. ZeroTier dokumenteerib rp_filteri kaalutluse osalevatele liikmetele; muutke seda sätet teadlikult ja alles pärast marsruudi ja NAT-i kinnitamist, mitte esimese katsena.

Kui nõue on juurdepääs NAS-ile või ühele kontori alamvõrgule, on selle prefiksi hallatav marsruut väiksem ja turvalisem muudatus kui täielik väljumine. Kogu veebilehitsemise saatmine teise seadme kaudu on teine otsus kui ühe privaatse ressursi kättesaamine ja väärib eraldi ülevaatamist.

Seotud artiklid