Dostať sa k tlačiarni v kancelárskej lokálnej sieti cez člena ZeroTier znie ako jedno pravidlo, ale v skutočnosti sú to tri rozhodnutia na troch rôznych miestach. Overlay musí vedieť, kde je lokálna sieť, hostiteľ Linux musí byť ochotný preposielať pakety a lokálna sieť musí vedieť, ako poslať odpoveď späť. Vstupné pravidlo, ktoré otvorí port na bráne, sa žiadneho z nich netýka. Je to nesprávny nástroj na správnom hostiteľovi.

Tri úlohy, traja vlastníci

Spravovaná trasa patrí ku konfigurácii siete ZeroTier. Hovorí členom, že daný prefix je dostupný cez konkrétnu adresu člena.

Preposielanie patrí jadru Linuxu a tomu, kto vlastní politiku jeho firewallu. Rozhoduje, či paket, ktorý dorazí na overlay, znova odíde fyzickým rozhraním. Hostiteľ, ktorý nepreposiela, paket po prijatí potichu zahodí. Odosielateľ vidí vypršanie časového limitu a v logu služby sa nič neobjaví.

Cesta späť patrí lokálnej sieti. Jej hostitelia a jej smerovač musia vedieť, že prefix overlaya je dostupný cez adresu vašej brány v lokálnej sieti, alebo musí niečo prekladať prevádzku, aby táto otázka vôbec nevznikla.

Každé z toho môže byť správne, zatiaľ čo ostatné zlyhávajú, a preto test, ktorý iba pingne bránu, nič nedokazuje o službe za ňou.

Nasmerujte spravovanú trasu na člena

Pridajte trasu pre zamýšľaný prefix lokálnej siete cez overlay adresu brány, nie cez jej adresu v lokálnej sieti. Overlay adresa je tá, na ktorú sa dostanú ostatní členovia; adresa v lokálnej sieti má význam len na kábli.

Aby návrh fungoval, členovia musia prijímať spravované trasy a ich vlastné lokálne siete nesmú už používať prefix, ktorý inzerujete. Vzdialený notebook, ktorý je doma na 192.168.60.0/24, tiež nemôže smerovať 192.168.60.0/24 cez overlay.

Držte inzerovaný prefix tak úzky, ako úloha dovolí. Inzerovanie väčšieho agregátu na ovplyvnenie preferencie môže tiež nárokovať adresný priestor, ktorý nevlastníte, a vzniklý konflikt sa objaví na zariadeniach pripojených k obom sieťam. Môže tiež spôsobiť, že člen uprednostní cestu, ktorá nikam nevedie. Držte trasu čestnú a zvyšok nechajte na politike.

Zapíšte prefix a adresu člena do tej istej poznámky ako pravidlá firewallu, pretože najčastejšou poruchou je trasa ukazujúca na nesprávneho člena.

Zapnite prechod v jadre

Prečítajte si bežiaci hodnotu preposielania, skôr než čokoľvek zmeníte, a potom nastavenie ztrvalte mechanizmom, ktorý váš systém už používa, nie jednorazovým príkazom, ktorý pri reštarte zmizne.

Ak politiku vlastní UFW, jeho pravidlá trás vyjadrujú preposielanie pre dvojicu zdroja, cieľa a rozhrania. Sú oddelené od vstupných pravidiel, ktoré otvárajú službu na samotnej bráne:

sysctl net.ipv4.ip_forward
sudo ufw route allow in on zt3f2a1c9d out on eth0 proto tcp to 192.168.60.20 port 443
sudo ufw status verbose

Názov rozhrania je skutočné overlay zariadenie na danom hostiteľovi, ktoré prečítate z ip link; nie je to pevný reťazec naprieč inštaláciami. Ak hostiteľ preposiela predvolene a UFW nie je v ceste, pravidlo trasy sa bude ignorovať a rozhodujúce sú nastavenia jadra.

Vyberte, ako sa odpovede vracajú

Pri zachovaní zdroja vidí služba v lokálnej sieti skutočnú overlay adresu a odpovedá na ňu. To vyžaduje trasu na hostiteľovi lokálnej siete alebo na jeho smerovači, ktorá smeruje overlay prefix na vašu bránu, a to je zmena mimo linuxového stroja.

Keď túto trasu nemožno pridať, obmedzený preklad zdroja spôsobí, že požiadavka vyzerá, akoby prišla z brány v lokálnej sieti. Odpovede sa potom vracajú lokálne a nie je potrebná zmena smerovania lokálnej siete, za cenu straty pôvodného zdroja v logoch služby.

Obmedzte preklad na overlay zdroj a konkrétny cieľ v lokálnej sieti. Prekladať všetko, čo opúšťa rozhranie lokálnej siete, je široká verzia, ktorá neskôr prekvapí každého, kto pravidlá číta, a tiež skrýva prevádzku, ktorá mala byť zablokovaná.

Ani jedna voľba neudeľuje nevyžiadaný prístup z lokálnej siete späť k ľubovoľným overlay členom. Ak je to žiaduce, je to samostatné pravidlo s vlastnou revíziou.

Testujte zo skutočného člena

Pripojte sa z iného člena, nie z brány, a vyžiadajte jednu povolenú službu. Potom skúste službu, ktorá má zostať zatvorená, a oba testy zopakujte po opätovnom pripojení a po reštarte brány.

Člen, ktorý hlási ONLINE, ani úspešný ping na overlay adresu brány neoveruje trasu, pravidlo preposielania ani cestu späť:

zerotier-cli listnetworks
ip -4 route get 192.168.60.20
sudo ufw status numbered

Druhý príkaz ukazuje, ktoré rozhranie by paket použil pre hostiteľa v lokálnej sieti, a tretí, či pravidlo trasy existuje vo forme, ktorú ste zamýšľali. Ak oboje vyzerá správne a služba stále vyprší, zostávajúcim podozrivým je cesta späť.

Súvisiace články