Klienti v LAN prekladajú cez tunel a vlastné dopyty routera ticho nerobia. Aktualizácie balíkov, synchronizácia času a dynamický DNS odchádzajú bežným uplinkom, zatiaľ čo každý preposlaný dopyt ide cez VPN, a nič v rozhraní nenaznačuje, že existujú dve rôzne cesty. Vysvetlenie nie je chyba v politike, ale otázka ktorý háčik vidí paket. Dva toky, jedna adresa prekladača a iba jeden z nich prechádza routerom. Ich oddelenie je celá oprava.

Dva toky, jedna adresa prekladača

Prvý tok je ten, ktorý si ľudia predstavujú. Klient sa pýta prekladača routera, prekladač preposiela nahor a tento preposlaný paket prechádza routerom na ceste von. Tento paket je viditeľný pre všetko, čo sleduje preposielanú prevádzku.

Druhý tok nikdy neprichádza odnikiaľ. Vytvára ho router, takže neexistuje prichádzajúci paket ani krok preposielania na porovnanie.

Oba môžu mieriť na rovnakú adresu prekladača, a práve preto je rozdiel ľahké prehliadnuť. Rovnaký cieľ, iný pôvod, iný reťaz. Keď uvidíte pôvod, zvyšok diagnózy nasleduje.

Preposielané a lokálne vytvorené pakety vstupujú inak

Preposielaná prevádzka sa vyhodnocuje, keď prichádza z iného rozhrania. Balíky politického smerovania to vystavujú ako reťaz prerouting a pravidlo umiestnené tam vidí každý paket prechádzajúci routerom. Preto sa klientske dopyty správajú presne tak, ako politika opisuje, a preto ich router ignoruje. Pravidlo nie je nesprávne, je len pripojené k háčiku, ku ktorému sa router nikdy nedostane. Presuňte ho a rovnaká zhoda začne fungovať.

Lokálne vytvorená prevádzka vzniká v procese na routeri a vstupuje do výstupnej cesty. Smeruje ju vlastné rozhodnutie routera a stretáva politiku iba vtedy, ak politika pokrýva tento reťaz. Neexistuje žiadne prichádzajúce rozhranie na porovnanie ani rozhodnutie o preposielaní na pozorovanie.

Je to vlastnosť miesta, kde sa pakety rodia, nie nejakého konkrétneho balíka. Pravidlo napísané pre jeden reťaz jednoducho nemá názor na ten druhý. Žiadne ladenie pravidiel to nezmení.

Vyberte výstupný reťaz a potom zúžte zhodu

Oprava spočíva v pripojení rovnakého zámeru aj k výstupnému reťazu, alebo v presunutí pravidla tam, keď vám ide o vlastné dopyty routera. V inštalácii OpenWrt postavenej na balíku politického smerovania to znamená zvoliť output namiesto prerouting v nastavení reťaze pravidla. Ponechajte obe pravidlá, ak obe populácie potrebujú pokrytie.

Potom zúžte, čomu pravidlo zodpovedá. Cieľové adresy prekladača na porte, ktorý prekladač skutočne používa, sú oveľa menšie rozhodnutie než posielať do tunela všetko, čo router vytvára.

Držte obe pravidlá explicitné, namiesto toho aby ste sa snažili napísať jedno pokrývajúce oba reťaze. Oddelené pravidlá sa čítajú ľahšie a umožňujú vám vypnúť cestu routera bez rušenia klientskej prevádzky pri ladení. Tiež robia počítadlá zmysluplnými po jednom.

Držte vlastnú dopravu tunela mimo pravidla

Vonkajšie spojenie tunela tiež vytvára router. Pravidlo, ktoré posiela všetku lokálne vytvorenú prevádzku do tunela, bude smerovať tunel cez seba samého, a ten vôbec nevstane.

Druhou obeťou je prístup na správu. Administratívne relácie vzniknuté na routeri alebo odpovede na ne môže príliš široké lokálne pravidlo vtiahnuť do tunela a stanú sa z LAN nedostupnými.

Vylúčte koncový bod tunela zo zhody a držte pravidlo obmedzené na adresy prekladača. To pre požiadavku DNS stačí a je dosť malé na to, aby sa o tom dalo uvažovať.

Testujte obe populácie, nie jednu

Sledujte, ako router vytvára vlastný dopyt, a poznamenajte, ktoré rozhranie ho nieslo. Zopakujte vyhľadávanie z hostiteľa v LAN a poznamenajte, ktorou cestou sa vydalo. Počítadlá na pravidlách politiky ukážu obe odpovede bez hádania.

Berte výsledky ako dve zistenia. Klient, ktorý prekladá cez tunel, nič nehovorí o routeri, a router, ktorý prekladá správne, nič nehovorí o klientovi na inom poslucháči. Zapíšte ich ako samostatné riadky do záznamu zmien.

Skontrolujte aj port: pravidlo zodpovedajúce cieľovému portu 53 vynechá prekladač dosiahnutý cez DNS over TLS na 853 alebo koncový bod HTTPS. Zosúlaďte dopravu, ktorú nakonfigurovaný upstream skutočne používa, a únik sa uzavrie zo správneho dôvodu.

Súvisiace články