Żewġ proċessi OpenVPN jaħdmu fuq Pi li fl-istess ħin jilqa' utenti roaming u jasal għal fornitur ta' fuq, u kważi ma jaqsmu xejn ħlief il-ħardwer. Wieħed jisma' t-tunnels li deħlin filwaqt li l-ieħor iddial lejn barra. Kull wieħed jaqra d-direttorju tiegħu, u kull wieħed għandu l-mod tiegħu ta' falliment. Li terġa' tibda dak ħażin hija l-aktar triq komuni li biha tiswija tal-klijent tispiċċa tħawwad lis-semmiegħ minflok.

Qabbel l-isem tal-unità mad-direttorju li tgħabbi

Upstream 2.6 jgħaddi żewġ unitajiet mudell, [email protected] u [email protected]. Il-mudell tas-server jibda f'/etc/openvpn/server u jgħabbi %i.conf minn hemm. Il-mudell tal-klijent jibda f'/etc/openvpn/client. Istanza bl-isem roaming tista' teżisti fiż-żewġ postijiet fl-istess ħin, bħala server u bħala klijent, b'żewġ konfigurazzjonijiet mhux relatati u l-ebda rabta bejniethom ħlief is-sekwenza.

Staqsi lil systemd minflok lis-sistema tal-fajls, għax dawk li jippakkjaw iżidu fajls żejda li jistgħu jbiddlu d-direttorju tax-xogħol jew l-argumenti li jirċievi l-binarju.

systemctl list-units --type=service 'openvpn-*@*'
systemctl cat [email protected]
systemctl show -p WorkingDirectory -p ExecStart [email protected]

L-ewwel kmand jelenka kull unità maħluqa, inklużi dawk li fallew u baqgħu mgħobbija. It-tieni jistampa l-fajl tal-unità flimkien ma' kwalunkwe sostituzzjoni. It-tielet hija l-aktar triq mgħaġġla biex tara ż-żewġ fatti li jiddeċiedu l-mistoqsija: id-direttorju li fih jibda l-proċess, u l-mogħdija tal-konfigurazzjoni li ngħatat lilu.

Iddeċiedi mid-direzzjoni tal-pakketti, mhux mill-isem tal-interface

Istanza tas-server għandha socket li jisma' u taċċetta konnessjonijiet. It-trasport encrypted tagħha huwa input lokali u output lokali fuq il-Pi, filwaqt li t-traffiku li tgħaddi għall-utenti jsegwi l-mogħdija tat-trażmissjoni u jwieġeb għal sett ieħor ta' regoli. Istanza tal-klijent m'għandhiex semmiegħ f'dak is-sens: iddial lil pari, għalhekk it-trasport encrypted tagħha huwa output lokali lejn is-saff ta' taħt.

Dik id-differenza tgħidlek fejn tappartjeni regola. Regola li taqbel ma' interface ġewwa katina ta' trażmissjoni tippermetti biss it-traffiku li r-rotta diġà għażlet; qatt ma tagħżel ir-rotta. Meta l-pakketti ta' utent roaming joħorġu mit-triq ħażina, il-katina li għandha tiġi spezzjonata hija forward, mhux output.

Ħares lejn is-sockets qabel ma tteorizza. Server marbut ma' udp/1194 juri socket li jisma'. Il-klijent juri assoċjazzjoni mal-indirizz tal-fornitur u xejn li jisma'.

ss -lunp | grep openvpn
ss -unp state established '( dport = :1194 or sport = :1194 )'

Ir-rotta default ta' istanza waħda tista' taqbad it-tweġibiet tal-oħra

redirect-gateway imbuttat mill-klijent ta' fuq jinstalla rotta default li tikkompeti ma' kollox ieħor fuq il-magna, inklużi t-tweġibiet li s-server jibgħat lill-utenti roaming. OpenVPN jagħmel eċċezzjoni għall-indirizz tal-pari tiegħu stess biex it-tunnel jibqa' jintlaħaq, iżda dik l-eċċezzjoni ma tgħid xejn dwar telefon fuq netwerk ta' lukanda.

Is-sintomu normalment huwa asimmetriku. Il-handshake jitlesta, il-klijent jirrapporta konness, u t-traffiku jmut wara l-ewwel pakkett ta' tweġiba. Routing tal-politika bbażat fuq is-sors, jew marka tal-pakkett imqiegħda fuq l-istanza tas-server bl---mark, iżżomm iż-żewġ flussi mifruda; l-ebda waħda mhija sett sħiħ ta' regoli waħedha, u t-tnejn jeħtieġu rotot validi fit-tabella li jagħżlu.

Ittestja d-deċiżjoni lokali minflok l-istat tat-tunnel, għax il-kernel jagħżel is-sors u l-interface qabel ma OpenVPN jara l-pakkett.

ip route get 203.0.113.44
ip rule show

Erġa' ibda rwol wieħed u uri li l-ieħor baqa' ħaj

L-ordni hija importanti meta ż-żewġ rwoli jiddependu mill-istess saff ta' taħt. Erġa' ibda l-klijent l-ewwel jekk ir-rotta ta' fuq trid teżisti qabel ma t-traffiku tal-utenti jista' jiġi mgħoddi, u erġa' ibda s-server l-ewwel meta tkun qed tbiddel biss is-semmiegħ tiegħu jew il-pool tiegħu. Fi kwalunkwe każ iċċekkja ż-żewġ unitajiet wara, għax tqanqil fallut jista' jħalli r-rwol l-ieħor jaħdem b'qagħda skaduta.

Ikteb il-kundizzjoni tal-waqfien qabel il-bidla: it-telf tat-tunnel ta' fuq jimblokka lill-utenti roaming, jew jaqa' lura għall-uplink proprju tal-Pi? DNS u IPv6 wkoll jeħtieġu tweġiba espliċita, għax resolver imbuttat spiss jibqa' ħaj aktar mir-rotta li għamlitu utli.

systemctl restart [email protected]
systemctl is-active [email protected]
journalctl -u [email protected] -n 20 --no-pager

Aċċetta l-bidla biss meta tliet affarijiet ikunu veri fl-istess ħin: konnessjoni ġdida li tidħol titlesta, applikazzjoni mgħoddija tasal fid-destinazzjoni tagħha mill-ħruġ maħsub, u ż-żewġ proċessi għadhom jirrapportaw il-pari mistenni tagħhom. Jekk wieħed mit-tlieta jfalli, biddilt l-istanza ħażina jew ir-rotta ħażina, u l-pass li jmiss huwa li terġa' taqra l-unità minflok ma terġa' tibda xi ħaġa oħra.

Artikli relatati