Tabuľka trás zobrazuje predvolenú trasu cez rozhranie ZeroTier, sieť hlási stav online a prehliadač napriek tomu vychádza z miestnej adresy poskytovateľa. Takáto kombinácia je bežná a nie je chybou klienta. Predvolená trasa iba hovorí, kam majú pakety ísť; na druhom konci ich musí niekto preposlať a preložiť. Než výstupný uzol začne fungovať, musia platiť tri samostatné časti.

Trasa existuje, ale nič nevychádza

Najprv skontrolujte tabuľku trás klienta. Riadok ako default via 10.147.20.5 dev zt0 dokazuje, že trasa bola nainštalovaná, nie že cieľ prevádzku prijme. Ďalší skok musí byť člen, ktorý je ochotný a schopný ju preposlať.

Ak ten istý dopyt stále vychádza fyzickým rozhraním, klient trasu nenainštaloval, alebo ju nainštaloval s metrikou, ktorá prehrala s miestnou predvolenou trasou. Ak dopyt po inštalácii trasy zmizne, výstupný člen prijíma pakety a nedokáže ich preposlať ani preložiť. Klient, ktorý si ponechá fyzickú predvolenú trasu, nepošle výstupu ani jeden paket.

Tento rozdiel určuje, kde pracovať. Porovnanie verejnej adresy pred zmenou a po nej oddelí trasu, ktorá sa nikdy nepoužila, od trasy, ktorá sa použila a bola zahodená, a vyžaduje jeden príkaz namiesto prehliadky celej konfigurácie. Porovnanie urobte skôr, než zmeníte čokoľvek iné, aby oba výsledky vychádzali z rovnakého počiatočného stavu.

Tri časti, ktoré musia platiť všetky

Výstup je reťaz a najslabší článok určuje príznak. Tabuľka nižšie uvádza články v poradí, v akom zvyčajne zlyhávajú.

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

Prvý riadok je ten, ktorý názov možnosti skrýva. Člen sa stane výstupom len vtedy, keď jeho jadro preposiela pakety medzi rozhraním ZeroTier a rozhraním obráteným do internetu a keď sa cesta odpovede preloží späť do tunela. Bez tohto preposielania je člen partnerom, nie bránou.

Riadok kontroléra je oprávnenie, nie konfigurácia. Inzerovanie 0.0.0.0/0 cez člena hovorí každému klientovi, kde je výstup; neznamená, že tento člen prevádzku unesie. Ani neoveruje, či člen má funkčnú cestu do internetu. Dokumentácia ZeroTier k výstupnému uzlu pokrýva rovnaké rozdelenie medzi uzlom, trasou a klientom.

Nastavte výstupný uzol na preposielanie a prekladanie

Trvalo zapnite preposielanie IPv4 a potom pridajte zdrojový NAT pre prevádzku opúšťajúcu rozhranie WAN. Pravidlá filtra musia povoliť preposielaný tok v oboch smeroch, pretože preposielanie a preklad sú oddelené od povolenia:

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

Nahraďte zt0 a eth0 názvami na hostiteľovi; pravidlo uložené pre ukážkové rozhranie nebude sledovať pakety na skutočnom. Zmeňte zmeny na trvalé cez správcu firewallu, ktorý pravidlá vlastní, pretože príkaz v interaktívnom shelle zmizne pri ďalšom reštarte.

Ak hostiteľ používa správcu firewallu, napríklad UFW alebo firewalld, pridajte pravidlá cez tohto správcu namiesto vrstvenia riadkov iptables vedľa neho. Dvaja vlastníci upravujúci rovnaké reťaze vytvárajú politiku závislú od poradia spúšťania. Poradie je dôležité, keď správca generuje vlastné reťaze. Testujte z klienta po opätovnom načítaní správcu, nie pred ním.

Inzerujte trasu a prijmite ju na klientovi

Na sieťovom kontroléri pridajte spravovanú trasu pre 0.0.0.0/0, ktorej ďalší skok je adresa ZeroTier výstupného člena. Potom na člene, ktorý ju má používať, povoľte prepísanie pre túto sieť. Oprávnenie je miestne: nenakonfiguruje ostatných členov a nemení kontrolér.

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

Posledný príkaz by mal hlásiť rozhranie ZeroTier a adresu výstupného člena. Ak stále hlási fyzické rozhranie, trasa chýba alebo má konkurenčná predvolená trasa lepšiu metriku.

Nastavenie držte obmedzené na sieť, ktorá ho potrebuje. Povolenie prijímania predvolenej trasy globálne alebo v sieti, ktorá má poskytovať iba privátnu podsiete, posiela prevádzku cez výstup, ktorý na to nikdy nebol dimenzovaný.

Overte výstup a skontrolujte ostatné rodiny adries

Požiadajte o verejnú adresu u služby, ktorá hlási zdroj, a porovnajte ju s WAN adresou výstupného uzla. Potom načítajte stránku podľa názvu a potvrďte, že DNS stále prekladá, a otestujte jednu dôležitú aplikáciu, nie iba prehliadač.

Klient s duálnym zásobníkom môže ďalej používať svoju natívnu cestu IPv6, zatiaľ čo IPv4 vychádza cez ZeroTier. Ak je cieľom skryť alebo riadiť všetku prevádzku, je potrebná samostatná trasa ::/0 a preposielanie IPv6 na výstupe, a test IPv4 o nich nič nehovorí.

Spätné filtrovanie cesty v Linuxe môže na klientovi zahodiť aj platnú výstupnú prevádzku. ZeroTier dokumentuje úvahu o rp_filter pre zúčastnených členov; toto nastavenie meňte vedome a až po potvrdení trasy a NAT, nie ako prvý experiment.

Ak je požiadavkou prístup k NAS alebo jednej kancelárskej podsieti, spravovaná trasa pre tento prefix je menšia a bezpečnejšia zmena než úplný výstup. Posielanie celého prehliadania cez iné zariadenie je iné rozhodnutie než dosiahnuť jeden privátny zdroj a zaslúži si samostatnú revíziu.

Súvisiace články