Zámer je rozumný: poslať všetko pre jednu firemnú doménu tunelom a zvyšok nechať na pokoji. Upravovaná direktíva inštaluje trasy a trasa nemá žiadny pojem názvu hostiteľa, s ktorým by sa dalo porovnávať. Každý pokus zapísať do nej zástupný znak skončí buď chybou parsovania, alebo, čo je horšie, trasou, ktorá dnes funguje náhodou, pretože sa názov preložil na jednu adresu. Dva rôzne mechanizmy sú žiadané, aby robili prácu jeden druhému.

Čo trasa inštaluje a čo nikdy nečíta

Záznam trasy hovorí, že cieľový prefix je dostupný cez rozhranie. Jadro porovnáva pakety s týmito prefixami, takže jediné zúčastnené identifikátory sú adresy a masky. Názov hostiteľa sa v rozhodnutí o preposielaní nikdy neobjaví, a preto tam vzor nemožno porovnať.

OpenVPN dokáže v niektorých parametroch trasy prijať preložiteľný názov a táto tolerancia je zdrojom zmätku. Názov sa preloží pri aplikácii konfigurácie a vznikne jedna alebo viac adries, ktoré sa stanú bežnými trasami. Potom názov z obrazu úplne zmizne.

Trasa postavená z názvu je teda snímka, nie pravidlo. Pokrýva to, na čo sa názov preložil v okamihu spustenia tunela, a to je presne správanie, ktoré pri meniacej sa rodine hostiteľov nechcete. Záznam, ktorý sa zajtra presunie, nechá trasu ukazovať na včerajšok.

Keď je cieľom skutočne prefix

Ak je cieľom známa privátna sieť, napíšte prefix. Pre príklad z dokumentačného priestoru vyzerá jeden hostiteľ a jedna podsiete takto:

route 10.60.4.20 255.255.255.255
route 10.60.0.0 255.255.0.0

Oba záznamy uvádzajú adresy a masky a oba prežijú zmeny DNS, pretože nič v nich nezávisí od názvu. V tom je celá výhoda: trasa je tvrdenie o topológii, nie o vyhľadaní, ktoré prebehlo raz.

Neodvodzujte veľký prefix z jedinej odpovede DNS. Jeden názov hostiteľa preložený na jednu adresu vám nič nehovorí o veľkosti siete za ním a odhadnutý prefix je spôsob, akým tunel začne zachytávať prevádzku, ktorú cez neho nikto posielať nechcel. Opýtajte sa vlastníka siete na skutočný prefix, namiesto toho, aby ste ho odvodzovali z vyhľadania.

Keď je jednotkou práce názov hostiteľa

Výber podľa domény vyžaduje niečo, čo doménu číta, teda komponent aplikačnej vrstvy. Zvyčajnou odpoveďou je HTTP proxy, ktorá žije na druhej strane tunela, a klient si vyberá, ktoré požiadavky jej pošle.

Konfiguračný súbor proxy môže tento výber vyjadriť. Ilustratívne pravidlá nižšie posielajú jednu doménu a jej subdomény na proxy a všetko ostatné priamo:

function FindProxyForURL(url, host) {
    var h = host.toLowerCase();
    if (h === "corp.example" || dnsDomainIs(h, ".corp.example")) {
        return "PROXY 10.60.0.12:3128";
    }
    return "DIRECT";
}

Porovnanie presného názvu pokrýva samotnú doménu a porovnanie prípony pokrýva jej potomkov bez toho, aby zodpovedalo názvu, ktorý sa len končí podobnými znakmi. Obe sú potrebné a vynechanie jedného vytvorí pravidlo, ktoré vyzerá správne a preskočí vrchol alebo podvodníka.

Tieto pravidlá vyberajú proxy; nevytvárajú ju a nemenia žiadnu trasu operačného systému. Adresa proxy stále potrebuje vlastnú cestu tunelom a požiadavky označené ako priame stále nasledujú politiku smerovania, ktorú stroj už má.

Čo voľba proxy nepokrýva

Programy, ktoré ignorujú konfiguráciu proxy prehliadača, tým nebudú vôbec ovplyvnené. Nástroje príkazového riadku, aktualizátory a aplikácie s vlastným sieťovým zásobníkom berú smerovaciu tabuľku, nie súbor PAC, takže tieto prípady potrebujú podporovaný mechanizmus pre jednotlivú aplikáciu alebo iný návrh. Než sľúbite, že pravidlo prehliadača pokrýva pracovný postup, zistite, ktorí klienti sú dôležití.

Vrátiť sa priamo tiež nie je úniková cesta. Ak politika smerovania stroja už posiela všetko do tunela, požiadavka označená ako priama zostáva vnútri, pretože voľba proxy a smerovacia tabuľka sú rôzne rozhodnutia prijaté v rôznych vrstvách.

Preklad názvov je tretia samostatná otázka. Voľba, ktoré požiadavky idú na proxy, nič nehovorí o tom, ktorý resolver na ne odpovedá, a zaobchádzanie s oboma ako s jedným nastavením vytvára úniky, ktoré sú neviditeľné, kým to niekto neotestuje zvonka. Rozhodnite, kde sa každá otázka zodpovedá, a toto rozhodnutie zapíšte vedľa pravidla proxy. Resolver, ktorý sa zmení preto, že sa tunel zdvihol, odpoveď potichu presunie.

Testovať obe cesty, nielen tú šťastnú

Otestujte názov hostiteľa, ktorý by mal zodpovedať, názov hostiteľa, ktorý by nemal, a vrchol domény, pretože vrchol je prípad, ktorý pravidlo len s príponou najčastejšie vynechá. Potom potvrďte, ktorou cestou každá požiadavka skutočne išla, namiesto odvodzovania z toho, či sa stránka načítala.

Nakoniec otestujte vetvu zlyhania. Nedostupná proxy by mala zlyhať spôsobom, ktorý ste vopred rozhodli, namiesto tichého návratu k priamemu pripojeniu. Referencia sieťových možností presne dokumentuje parametre trasy; doménová polovica tohto návrhu žije úplne mimo nej.

Súvisiace články