Paket za 10.77.20.0/24 sprejme na strežniku OpenVPN dve ločeni odločitvi: operacijski sistem ga mora predati vmesniku VPN, OpenVPN pa mora vedeti, kateri povezani odjemalec ima to predpono. Manjkajoča pot v jedru ga zavrže pred tunelom, manjkajoča pot peera pa za njim. Obe napaki sta z oddaljenega LAN-a videti enako, diagnosticiranje, katero imate, pa zahteva en ukaz na vsaki strani.

V klasični podatkovni poti v uporabniškem prostoru pot v jedru pripelje paket v proces tunela, iroute pa temu procesu pove, kateri peer naj ga prejme. Nobena ne nadomesti druge, konfiguracija samo z eno od njiju pa bo videti smiselna do prvega ping.

Dve odločitvi, ne ena pot

Predstavljajte si povezavo med lokacijama, kjer 10.77.20.0/24 leži za enim samim odjemalcem. Pot v jedru strežnika, na primer ip route add 10.77.20.0/24 dev tun0, pošilja ustrezne pakete napravi tunela. Nato OpenVPN pogleda v svojo lastno notranjo tabelo, zgrajeno iz vnosov iroute v imeniku konfiguracije odjemalca, da odloči, katera povezava peera jih prejme. Brez poti v jedru paket nikoli ne doseže procesa, brez poti peera pa doseže proces in ne gre nikamor.

To delitev je lahko pozabiti, ker je ena vrstica poti v profilu odjemalca videti, kot da opravi obe nalogi. Ne opravi: potiskanje poti pove odjemalcem, kaj naj pošiljajo skozi tunel, medtem ko iroute pove strežniku, kdo ima obseg naslovov za odjemalcem. Živita v različnih datotekah, bereta ju različni strani in odpovedujeta v nasprotnih smereh.

Kam spada iroute in kaj pove

Vnos gre v datoteko za posameznega odjemalca, poimenovano po njegovem common_name, v client-config-dir, kot iroute 10.77.20.0/24. Ujemanje imena datoteke ni kozmetično: OpenVPN poišče overjeno identiteto in prebere datoteko s točno tem imenom, zato datoteka z imenom site-a velja le za odjemalca, katerega skupno ime je site-a. Dodajte ccd-exclusive, če naj bodo odjemalci brez takšne datoteke povsem zavrnjeni, kar je prava nastavitev, ko je vsak odjemalec prehod lokacije. Imajte eno datoteko na prehod in jo poimenujte po subjektu potrdila, ki ga resnično izdate.

Preizkusite vnos s strežnika, preden obtožite oddaljeni LAN. Statusna datoteka navaja povezane odjemalce z njihovimi skupnimi imeni, strežnik, ki teče z --verb 4, pa zabeleži namestitev iroute v trenutku, ko se peer poveže. Če se ob povezavi ne pokaže nič, je datoteka v napačnem imeniku ali navaja napačno identiteto.

Past: datoteka je, identiteta je napačna

Pravilno videti iroute, pritrjen na napačnega peera, izgubi več časa kot manjkajoča datoteka, ker je na disku vse videti prav. Preimenovanje potrdil, podvojena skupna imena in username-as-common-name, ki spreminja dejansko identiteto, vse to ustvarjajo. Preverite, katero identiteto je strežnik overil, ne katere ste pričakovali: izpis stanja je merodajen, ime datoteke pa je le iskalni ključ.

Pot lahko preživi svojega lastnika. Statične poti in vnosi iroute opisujejo predpono, ne zagotovila razpoložljivosti, zato se promet lahko še naprej usmerja k peeru, ki je trenutno odklopljen.

Dokončajte pot za peerom

Lastništvo peera je sredina poti, ne konec. Odjemalec mora posredovati pakete iz tunela v svoj LAN, kar pomeni omogočeno posredovanje IP na tem gostitelju in pravilo požarnega zidu, ki prepust dovoli. Gostitelji v oddaljenem LAN-u potrebujejo povratno pot za naslov tunela: bodisi pot, ki kaže nazaj na prehod, bodisi namerno zasnovan NAT na strani odjemalca. Potrdite nastavitev posredovanja na odjemalcu s sysctl net.ipv4.ip_forward, namesto da bi predpostavljali privzeto vrednost distribucije.

Če morajo drugi odjemalci VPN doseči to podomrežje, se ureditev spet poveča: strežnik potrebuje client-to-client, ti odjemalci pa morajo predpono usmerjati skozi tunel. Nič od tega ne izhaja iz strežnikove lastne usmerjevalne tabele.

Preverite en cilj iz resničnega vira namesto s strežnika samega. Ping z nepovezanega gostitelja v LAN-u na gostitelja za odjemalcem preizkusi povratno pot, pravilo posredovanja in lastništvo peera v eni potezi, medtem ko uspešen handshake dokaže le identiteto. Nato odklopite lastniškega peera in zapišite, kaj pot počne, ker ta odgovor je vaš način odpovedi.

Sorodni članki