Ketinis yra pagrįstas: siųsti viską vienam įmonės domenui tuneliu, o likusią dalį palikti ramybėje. Redaguojama direktyva diegia maršrutus, o maršrutas neturi jokios pagrindinio kompiuterio vardo sąvokos, su kuria galėtų sutapti. Kiekvienas bandymas į jį įrašyti „wildcard“ duoda arba analizės klaidą, arba, kas dar blogiau, maršrutą, kuris šiandien veikia atsitiktinai, nes vardas buvo išspręstas į vieną adresą. Dviejų skirtingų mechanizmų prašoma atlikti vienas kito darbą.

Ką maršrutas įdiegia ir ko jis niekada neskaito

Maršruto įrašas sako, kad paskirties priešdėlis pasiekiamas per sąsają. Branduolys lygina paketus su tais priešdėliais, todėl vieninteliai dalyvaujantys identifikatoriai yra adresai ir kaukės. Pagrindinio kompiuterio vardas niekada nepasireiškia peradresavimo sprendime, ir todėl ten šablono sutapatinti negalima.

OpenVPN kai kuriuose maršruto parametruose gali priimti išsprendžiamą vardą, ir ta tolerancija yra painiavos šaltinis. Vardas išsprendžiamas taikant konfigūraciją, sukuriant vieną ar daugiau adresų, kurie tampa įprastais maršrutais. Po to vardas visiškai išnyksta iš vaizdo.

Taigi maršrutas, pastatytas iš vardo, yra akimirksnio nuotrauka, o ne taisyklė. Jis apima tai, į ką tas vardas buvo išspręstas tuo metu, kai tunelis startavo, ir tai yra būtent toks elgesys, kurio nenorite kintančiai pagrindinių kompiuterių šeimai. Įrašas, kuris rytoj persikels, palieka maršrutą rodantį į vakar.

Kai paskirtis tikrai yra priešdėlis

Jei tikslas yra žinomas privatusis tinklas, parašykite priešdėlį. Dokumentacijos erdvės pavyzdyje vienas pagrindinis kompiuteris ir vienas potinklis atrodo taip:

route 10.60.4.20 255.255.255.255
route 10.60.0.0 255.255.0.0

Abu įrašai nurodo adresus ir kaukes, ir abu išgyvena DNS pakeitimus, nes niekas juose nepriklauso nuo vardo. Tai ir yra visas privalumas: maršrutas yra teiginys apie topologiją, o ne apie vieną kartą įvykusią paiešką.

Neišveskite didelio priešdėlio iš vieno DNS atsakymo. Vienas pagrindinio kompiuterio vardas, išsprendžiamas į vieną adresą, nieko nesako apie už jo esančio tinklo dydį, o spėjamas priešdėlis yra būdas, kuriuo tunelis galiausiai pradeda gaudyti srautą, kurio niekas neketino per jį siųsti. Vietoj to, kad išvestumėte jį iš paieškos, paklauskite tinklo savininko apie tikrąjį priešdėlį.

Kai darbo vienetas yra pagrindinio kompiuterio vardas

Pasirinkimas pagal domeną reikalauja kažko, kas skaito domeną, tai yra programų sluoksnio komponento. Įprastas atsakymas yra HTTP tarpinis serveris, gyvenantis kitoje tunelio pusėje, o klientas pasirenka, kuriuos prašymus jam siųsti.

Tarpinio serverio konfigūracijos failas gali išreikšti tą pasirinkimą. Toliau pateiktos iliustracinės taisyklės siunčia vieną domeną ir jo subdomenus tarpiniam serveriui, o visa kita tiesiogiai:

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";
}

Tikslaus vardo palyginimas apima patį domeną, o priesagos palyginimas apima jo vaikus, bet nesutampa su vardu, kuris tiesiog baigiasi panašiais simboliais. Abu reikalingi, o praleidus vieną gaunama taisyklė, kuri atrodo teisinga ir praleidžia viršūnę arba aferistą.

Šios taisyklės pasirenka tarpinį serverį; jos jo nesukuria ir nekeičia jokio operacinės sistemos maršruto. Tarpinio serverio adresui vis dar reikia savo kelio per tunelį, o kaip tiesioginiai pažymėti prašymai vis dar laikosi maršrutizavimo politikos, kurią mašina jau turi.

Ko tarpinio serverio parinktis neapima

Programos, kurios nepaiso naršyklės tarpinio serverio konfigūracijos, nepatirs nieko iš to. Komandinės eilutės įrankiai, atnaujintuvai ir programos su savo tinklo steku ima maršrutų lentelę, o ne PAC failą, todėl tiems atvejams reikia palaikomo mechanizmo atskirai programai arba kitokio dizaino. Sudarykite svarbių klientų sąrašą prieš pažadėdami, kad naršyklės taisyklė apima darbo eigą.

Grįžimas tiesiogiai taip pat nėra išsigelbėjimas. Jei mašinos maršrutizavimo politika jau siunčia viską į tunelį, kaip tiesioginis pažymėtas prašymas lieka jo viduje, nes tarpinio serverio pasirinkimas ir maršrutų lentelė yra skirtingi sprendimai, priimami skirtinguose sluoksniuose.

Vardų sprendimas yra trečias atskiras klausimas. Pasirinkimas, kurie prašymai eina į tarpinį serverį, nieko nesako apie tai, kuris sprendėjas į juos atsako, o abiejų traktavimas kaip vieno nustatymo sukuria nutekėjimus, kurie nematomi tol, kol kas nors nepabando iš išorės. Nuspręskite, kur atsakoma į kiekvieną užklausą, ir užsirašykite tą sprendimą šalia tarpinio serverio taisyklės. Sprendėjas, kuris pasikeičia todėl, kad tunelis pakilo, tyliai perkelia atsakymą.

Tikrinti abu kelius, ne tik laimingąjį

Išbandykite pagrindinio kompiuterio vardą, kuris turėtų sutapti, vardą, kuris neturėtų, ir domeno viršūnę, nes viršūnė yra atvejis, kurį taisyklė su vien priesaga dažniausiai praleidžia. Tada patvirtinkite, kokiu keliu kiekvienas prašymas iš tikrųjų ėjo, o ne spėkite tai iš to, ar puslapis įsikėlė.

Galiausiai išbandykite gedimo šaką. Nepasiekiamas tarpinis serveris turėtų sugesti taip, kaip iš anksto nusprendėte, o ne tyliai grįžti prie tiesioginio ryšio. Tinklo parinkčių nuoroda tiksliai dokumentuoja maršruto parametrus; domeninė šio dizaino pusė gyvena visiškai už jos ribų.

Susiję straipsniai