Dva profila sta povezana in eden od njiju tiho prenaša promet, namenjen drugemu. Gostitelj Linux lahko oba OpenVPN odjemalca zažene hkrati brez težav. Česar ne zmore, je odločitev namesto vas, kateri proces lahko zahteva katero predpono. Ta odločitev mora pasti, preden se dvigne drugi tunel, ne potem, ko se vir neha odzivati.

Začnite z delom, ki ga mora opraviti druga povezava

Pisarna, dosegljiva prek enega profila, in laboratorij, dosegljiv prek drugega, potrebujeta oba tunela dvignjena in nobenega od njiju, ki bi zahteval vse. Ena trmasta aplikacija, ki mora izstopiti prek drugega profila, potrebuje pravilo politike, ne druge privzete poti. Rezervna povezava potrebuje samo en tunel, ki deluje hkrati, zato rezerva ne bi smela startati skupaj s strojem.

To so tri različne konfiguracije in se mešajo, ker se vse tri začnejo enako: drugi profil in uspešna povezava. Najprej zapišite predvideno ureditev, nato konfigurirajte proti njej. En stavek o nameri prihrani uro zajemanja paketov.

systemctl list-units --type=service 'openvpn-client@*'
ip -4 route show default

Prvi ukaz izpiše delujoče instance, vključno s tistimi, ki so bile zagnane ročno zunaj upravitelja. Drugi izpiše trenutno zahtevo po privzeti poti, in to je stanje, ki ga boste morali pozneje razložiti.

Prekrivajoči se bazeni se zlomijo prej kot usmerjanje

Dva strežnika bosta z veseljem dodelila naslove iz istega 10.8.0.0/24. Odjemalec ima nato dva vmesnika znotraj ene predpone in nič ne pove, katera destinacija pripada kateri, nastalo vedenje pa je videti kot napaka usmerjanja, v resnici pa je napaka oštevilčenja. Prenumeriranje bazena stane eno urejanje konfiguracije; vsaka poznejša usmerjevalna obhodna pot stane vikend. Preverite bazen, preden zanj dodate pot.

Poglejte tudi lokalni LAN. Domači LAN s številko 192.168.1.0/24, ki ga izpostavi tudi en tunel, ustvari enako dvoumnost, simptom pa je ime gostitelja, ki se razreši, medtem ko se povezava nikoli ne dokonča. To je videti kot napaka pri razreševanju imen, dokler ne izpišete poti.

ip -4 addr show
ip route show table all | grep -E '10\.|192\.168\.'

Primerjajte oba izhoda z obema konfiguracijama strežnika, preden se dotaknete odjemalca. Če se predpone prekrivajo, se ustavite in prenumerirajte, ker ju nobeno število ponovnih zagonov ne bo ločilo.

Dajte vsakemu profilu lastno enoto in vsaki predponi lastnika

Vsak profil dobi svoje ime instance in svojo konfiguracijsko datoteko, zato instanca z imenom office naloži office.conf, tista z imenom lab pa lab.conf. Potrdite to preslikavo prek upravitelja storitev, namesto da bi zaupali izpisu mape, ker lahko drop-in spremeni, katera datoteka se naloži. Napačna preslikava pomeni, da nastavljate profil, ki ne deluje.

Nato določite, kdo namešča poti. Ko strežniki potiskajo nezdružljive nize, bodisi zavrnite potiskanje in sami naštejte predpone, bodisi pustite enemu profilu, da obdrži privzeto pot, drugega pa vodite s pravili politike. Dva procesa, ki oba namestita privzeto pot, končata s tihim zmagovalcem in brez pisnega zapisa o odločitvi.

systemctl cat [email protected]
grep -E 'route-nopull|pull-filter|redirect-gateway' /etc/openvpn/client/lab.conf

Prvi pokaže enoto z vsako preglasitvijo, ki spremeni njene argumente. Drugi pokaže, ali profil sploh sprejema potisnjene poti, in to je stikalo, ki odloči vse naprej.

Oznake zadržijo odgovore na vmesniku, s katerega so prišli

Ko vsak tunel služi različnim virom, lahko odgovor odide po napačni povezavi in povezava umre po prvem paketu. Vzorec, ki zdrži, je označevanje prihajajočih paketov glede na vhodni vmesnik, obnovitev te oznake na odgovoru in dajanje vsaki oznaki tabele z lastnimi privzetimi vrati.

Ohlapno filtriranje povratne poti je treba običajno popustiti za prizadete vmesnike, ker odgovor zakonito prispe po povezavi, ki je glavna tabela nikoli ne bi izbrala. Oznake naj bodo ozke, da nikoli ne ujamejo lastnega šifriranega prometa tunelov, kar bi tunel poslalo skozi njega samega.

ip rule show
ip route show table 101
sysctl net.ipv4.conf.all.rp_filter

Preberite obstoječa pravila, preden dodate še eno. Podvojene prioritete in pozabljene tabele so običajen razlog, da je politika oznak videti povsem brez učinka.

Dokažite izolacijo z ustavitvijo ene povezave

Z obema tuneloma dvignjenima zabeležite naslov vsakega vmesnika, pot do enega gostitelja za vsakim tunelom in pot, ki jo ubere nepovezana destinacija. Jedro vprašajte za iskanje, namesto da berete eno tabelo, ker ena tabela nikoli ne pokaže končne odločitve.

Nato ustavite eno instanco in opazujte, kako njen vmesnik in poti izginjajo, medtem ko druga nadaljuje. Prekinitev pri preživeli pomeni, da si obe še vedno delita ime naprave, pot ali pravilo požarnega zidu, ki ju nihče ni ločil.

Vrnite ustavljeni profil in ponovite iste preveritve. Ko tunel preživi le prvi zagon po ponovnem zagonu, gledate napako življenjskega cikla in ne zasnove usmerjanja.

Sorodni članki