Gweinydd neu gleient: pa uned OpenVPN ar Pi â dwy rôl
Mae dwy enghraifft OpenVPN yn rhannu un Pi: mae un yn derbyn defnyddwyr sy’n crwydro, mae’r llall yn galw i fyny i’r darparwr uwch. Darllenwch enw’r uned a’r cyfeiriadur cyn ailgychwyn y naill na’r llall.
Mae dau broses OpenVPN yn rhedeg ar Pi sydd ar yr un pryd yn derbyn defnyddwyr sy’n crwydro ac yn cyrraedd darparwr uwch, ac nid ydynt yn rhannu fawr ddim heblaw’r caledwedd. Mae un yn gwrando am dwneli sy’n dod i mewn tra mae’r llall yn galw allan. Mae pob un yn darllen ei gyfeiriadur ei hun, ac mae gan bob un ei ffordd ei hun o fethu. Ailgychwyn yr un anghywir yw’r ffordd fwyaf cyffredin i atgyweiriad cleient beri i’r gwrandawr fownsio yn lle hynny.
Cyfunwch enw’r uned â’r cyfeiriadur y mae’n ei lwytho
Mae Upstream 2.6 yn cludo dwy uned dempled, [email protected] ac [email protected]. Mae templed y gweinydd yn cychwyn yn /etc/openvpn/server ac yn llwytho %i.conf oddi yno. Mae templed y cleient yn cychwyn yn /etc/openvpn/client. Gall enghraifft o’r enw roaming fodoli yn y ddau le ar unwaith, fel gweinydd a chleient, gyda dwy ffurfwedd heb berthynas a dim cysylltiad rhyngddynt heblaw’r llinyn.
Gofynnwch i systemd yn lle’r system ffeiliau, oherwydd mae pecynwyr yn ychwanegu ffeiliau sy’n gallu newid y cyfeiriadur gwaith neu’r dadleuon y mae’r deuaidd yn eu cael.
systemctl list-units --type=service 'openvpn-*@*' systemctl cat [email protected] systemctl show -p WorkingDirectory -p ExecStart [email protected]
Mae’r gorchymyn cyntaf yn rhestru pob uned a enghreifftiwyd, gan gynnwys y rhai a fethodd ac a arhosodd wedi’u llwytho. Mae’r ail yn argraffu ffeil yr uned ynghyd ag unrhyw ddiystyriad. Y trydydd yw’r ffordd gyflymaf i weld y ddau ffaith sy’n penderfynu’r cwestiwn: y cyfeiriadur y mae’r broses yn cychwyn ynddo, a’r llwybr ffurfweddu a roddwyd iddi.
Penderfynwch yn ôl cyfeiriad pecynnau, nid yn ôl enw rhyngwyneb
Mae gan enghraifft weinydd soced gwrando ac mae’n derbyn cysylltiadau. Ei gludiant amgryptiedig yw mewnbwn lleol ac allbwn lleol ar y Pi, tra mae’r traffig y mae’n ei anfon ymlaen i ddefnyddwyr yn dilyn y llwybr anfon ymlaen ac yn ateb i set wahanol o reolau. Nid oes gan enghraifft gleient wrandawr yn yr ystyr hwnnw: mae’n galw cymar, felly ei gludiant amgryptiedig yw allbwn lleol tuag at yr is-haen.
Mae’r gwahaniaeth hwnnw yn dweud wrthych ble mae rheol yn perthyn. Rheol sy’n cyfateb i ryngwyneb y tu mewn i gadwyn anfon ymlaen dim ond yn caniatáu traffig y mae’r llwybro eisoes wedi’i ddewis; nid yw byth yn dewis y llwybr. Pan fydd pecynnau defnyddiwr sy’n crwydro yn gadael drwy’r llwybr anghywir, y gadwyn i’w harchwilio yw forward, nid output.
Edrychwch ar socedi cyn damcaniaethu. Mae gweinydd wedi’i rwymo i udp/1194 yn dangos soced gwrando. Mae’r cleient yn dangos cysylltiad â chyfeiriad y darparwr a dim byd yn gwrando o gwbl.
ss -lunp | grep openvpn ss -unp state established '( dport = :1194 or sport = :1194 )'
Gall llwybr diofyn un enghraifft ddal atebion y llall
Mae redirect-gateway a wthir gan y cleient uwch yn gosod llwybr diofyn sy’n cystadlu â phopeth arall ar y blwch, gan gynnwys yr atebion y mae’r gweinydd yn eu hanfon at ddefnyddwyr sy’n crwydro. Mae OpenVPN yn gwneud eithriad ar gyfer ei gyfeiriad cymar ei hun fel bod y twnnel yn parhau i fod yn gyrraeddadwy, ond nid yw’r eithriad hwnnw’n dweud dim am ffôn ar rwydwaith gwesty.
Mae’r symptom fel arfer yn anghymesur. Mae’r handshake yn cwblhau, mae’r cleient yn adrodd ei fod wedi cysylltu, ac mae traffig yn marw ar ôl y pecyn ateb cyntaf. Mae llwybro polisi yn seiliedig ar ffynhonnell, neu farc pecyn a osodir ar enghraifft y gweinydd gyda --mark, yn cadw’r ddau lif ar wahân; nid yw’r naill na’r llall yn set gyflawn o reolau ynddo’i hun, ac mae’r ddau angen llwybrau dilys yn y tabl a ddewisant.
Profwch y penderfyniad lleol yn hytrach na chyflwr y twnnel, oherwydd mae’r cnewyllyn yn dewis y ffynhonnell a’r rhyngwyneb cyn i OpenVPN weld y pecyn.
ip route get 203.0.113.44 ip rule show
Ailgychwynwch un rôl a phrofwch fod y llall wedi goroesi
Mae trefn yn bwysig pan fydd y ddwy rôl yn dibynnu ar yr un is-haen. Ailgychwynwch y cleient yn gyntaf os oes rhaid i’r llwybr uwch fodoli cyn y gellir anfon traffig defnyddwyr ymlaen, ac ailgychwynwch y gweinydd yn gyntaf pan fyddwch ond yn newid ei wrandawr neu ei bwll. Unffordd neu’r llall, cadarnhewch y ddwy uned wedyn, oherwydd gall ailgychwyn aflwyddiannus adael y rôl arall yn rhedeg ar gyflwr hen.
Ysgrifennwch yr amod stopio i lawr cyn y newid: a yw colli’r twnnel uwch yn rhwystro defnyddwyr sy’n crwydro, neu’n disgyn yn ôl i uplink ei hun y Pi? Mae angen ateb penodol ar DNS ac IPv6 hefyd, oherwydd mae datryswr a wthir yn aml yn goroesi’r llwybr a’i gwnaeth yn ddefnyddiol.
systemctl restart [email protected] systemctl is-active [email protected] journalctl -u [email protected] -n 20 --no-pager
Derbyniwch y newid dim ond pan fydd tri pheth yn dal ar unwaith: mae cysylltiad sy’n dod i mewn yn cwblhau, mae cymhwysiad a anfonwyd ymlaen yn cyrraedd ei gyrchfan drwy’r allanfa a fwriadwyd, ac mae’r ddau broses yn dal i adrodd eu cymar disgwyliedig. Os bydd un o’r tri yn methu, fe wnaethoch newid yr enghraifft anghywir neu’r llwybr anghywir, a’r cam nesaf yw ail-ddarllen yr uned yn hytrach nag ailgychwyn unrhyw beth arall.