Dau naid VPN ar un Pi: pa lwybr sy'n cario pa gymar
Nid yw dwy gyfeiriad twnnel ar un Pi yn fai. Mae angen ei gludwr ei hun, ei brawf ei hun a chynllun wrth gefn datganedig ar bob cyrchfan pan fydd y naid allanol yn marw.
Mae dwy gyfeiriad twnnel ar un bwrdd bach yn edrych fel camgymeriad, a'r reddf yw dileu un. Mae'r reddf honno'n torri'r peth yr oedd i fod i'w dacluso. Mae gwesteiwr sy'n cario dau naid yn dal un cyfeiriad fesul atodiad, a dewisir pob cyfeiriad gan lwybr gwahanol. Y cwestiwn sy'n werth ei ofyn yw pa lwybr sy'n dewis pa gludwr ar gyfer pa gyrchfan, nid faint o gyfeiriadau sy'n bodoli.
Tair cyrchfan sydd angen cludwyr gwahanol
Mae cadwyn dau naid yn dair dosbarth o gyrchfannau wedi'u pentyrru, a charir pob un gan atodiad gwahanol. Rhaid cyrraedd y gymar allanol dros y cyswllt ffisegol. Rhaid cyrraedd y gymar mewnol trwy'r twnnel allanol. Rhaid cyrraedd cyrchfan y cymhwysiad a orchuddir trwy'r twnnel mewnol, y cludir ei gludiant ei hun gan yr un allanol.
| Destination class | View that names the carrier | Command that proves it | Symptom when the wrong carrier wins |
|---|---|---|---|
| Outer peer, 198.51.100.10 | the main table, by destination | ip route get 198.51.100.10 | the outer handshake never completes |
| Inner peer, 203.0.113.7 | the main table once the outer tunnel is up | ip route get 203.0.113.7 | the inner handshake leaves over the physical link |
| Application destination, 172.30.9.1 | the table the inner client's traffic is selected into | ip route get 172.30.9.1 from 10.8.0.2 | the exit address looks right and the traffic never crossed the outer hop |
| Parallel tunnels, one per source group | one policy per group, not the main table | ip rule show beside a marked test connection | both tunnels are up and one steals the other's traffic |
Llenwch y rhesi â chyfeiriadau go iawn y darllenydd cyn cyffwrdd â llwybr, oherwydd dim ond pan fydd yn gyffredin y mae'r tabl yn ddefnyddiol. Mae cadwyn sy'n gweithio yn bodloni'r pedair rhes ar yr un pryd, ac mae cadwyn hanner gweithiol fel arfer yn bodloni un ohonynt gyda'r cludwr anghywir. Darllen y rhes anghywir fel y methiant sy'n troi problem llwybro yn brynhawn o olygiadau.
Mae gan gyfeiriadau rolau, nid cyfrif
Mae Linux yn caniatáu sawl cyfeiriad ar un rhyngwyneb a sawl twnnel ar un gwesteiwr, felly nid yw cyfrif yn dweud dim am gywirdeb. Y peth sy'n bwysig yw pa gyfeiriad sy'n perthyn i ba atodiad, ac a yw'r llwybr ar gyfer cymar penodol yn dewis yr atodiad yr oeddech yn ei olygu. Mae tair golwg yn ateb hynny o dri chyfeiriad, ac mae'n werth eu darllen yn yr un drefn bob tro.
Mae'r rhestr gyfeiriadau yn dangos beth sy'n bodoli a pha atodiad sy'n berchen arno. Mae'r tabl llwybrau yn ateb cwestiwn y cludwr ar gyfer traffig cyrchfan cyffredin. Mae'r olwg polisi yn ei ateb eto ar gyfer traffig a ddewisir gan ffynhonnell neu farc, sef y drefn arferol pan fydd dau gleient yn rhannu un gwesteiwr.
ip -4 addr show
ip -4 route show table all
ip rule show
Gall dileu cyfeiriad oherwydd bod y rhestr yn edrych yn hir dynnu rhan o'r llwybr, ac mae dileu llwybr oherwydd ei fod yn edrych yn ddiangen yn gwneud yr un peth yn dawelach. Nid yw'r un yn cynhyrchu gwall; mae'r gymar yn syml yn stopio ateb ar y llwybr yr oeddech yn ei olygu tra'n aros yn gyrraeddadwy trwy un arall. Nid yw cymhwysiad sy'n adrodd cyfeiriad allanfa'r gymar mewnol yn profi bod y traffig wedi croesi'r twnnel allanol, gan fod mynediad uniongyrchol yn cynhyrchu'r un arsylwad. Y bwlch hwnnw rhwng arsylwad a phrawf yw'r rheswm y gwirir y cludwr ar haen y llwybro.
Mae trefn cychwyn yn curo cwsg sefydlog
Os yw'r cleient mewnol yn dibynnu ar gyfeiriad neu lwybr a ddarperir gan y cleient allanol, rhaid i'r cychwyn aros am yr adnodd hwnnw yn hytrach nag am oedi. Mae cwsg yn gweithio nes y diwrnod y daw'r twnnel allanol yn araf, ac yna mae'n methu o dro i dro mewn ffordd na all neb ei hailadrodd. Mae trefnu yn seiliedig ar ddibyniaethau yn symud y dyfalu ac nid yw'n costau dim heblaw disgrifio'r ddibyniaeth unwaith. Nid yw enwau rhyngwyneb yn fecanwaith trefnu chwaith.
Mae'r cnewyllyn yn dosbarthu enwau fel tun0 a tun1 yn nhrefn eu creu, a gall y drefn honno newid rhwng ailgychwyn neu ailgysylltu. Rhwymwch y ffurfweddiad i hunaniaeth a ddarperir gan yr offeryn, neu i enw a bennwch yn fwriadol. Mae enw a ddewiswch yn gontract; mae enw a ddewisir gan y cnewyllyn yn ddamwain.
Cadwch gludiant pob cleient allan o lwybr cymhwysiad y llall, a byddwch yn fanwl am yr hyn y mae opsiynau llwybro OpenVPN 2.6 yn ei addo mewn gwirionedd. Mae'r mecanwaith ailgyfeirio diofyn a ddogfenwyd yn cadw cleient yn gallu cyrraedd ei gymar pell trwy'r giât a oedd eisoes yn bodoli, sy'n torri un ddolen ailgylchu benodol. Nid yw'n troi un cleient yn gludwr i gleient arall, felly mae gweddill y gadwyn yn parhau i fod yn eich dyluniad. Lle mae'r gadwyn angen polisi yn hytrach na llwybr, ysgrifennwch reol ffynhonnell neu farc benodol a'i phrofi gyda'r traffig y mae i fod i'w gydweddu.
Beth sy'n digwydd pan fydd y naid allanol yn marw
Cyn i'r gadwyn gyfrif fel un gyflawn, penderfynwch beth sy'n digwydd pan fydd y naid allanol yn diflannu. Mae cludiant y cleient mewnol yn marw gyda hi, a'r cam nesaf yw cwestiwn polisi yn hytrach nag un technegol: methu, ceisio eto, neu ailgysylltu'n uniongyrchol dros y cyswllt ffisegol. Y trydydd canlyniad hwnnw yw'r un y gwerth ei ystyried. Mae'n troi dyluniad dau naid yn ddyluniad un naid yn dawel ar yr eiliad y mae'r defnyddiwr yn credu bod y gorchudd yn dal yn gyfan.
Os yw dau naid yn orfodol, rhaid i'r cleient mewnol beidio â gallu sefydlu llwybr uniongyrchol pan fydd yr allanol wedi mynd, a'r ffordd i wybod yw torri'r naid allanol a gwylio beth mae'r un mewnol yn ei wneud. Mae cynllun wrth gefn a gymeradwywyd yn ateb cyfreithlon, ond rhaid ei ysgrifennu, ei brofi a'i gyfleu. Nid yw cynllun wrth gefn na chofnodwyd gan neb yn wahaniaethol oddi wrth ollyngiad yn ystod adolygiad digwyddiad.
Mae DNS a'r teulu cyfeiriad arall yn perthyn i'r un penderfyniad. Mae chwiliad a gynhyrchir yn lleol yn dilyn polisi'r gwesteiwr ei hun yn hytrach na pholisi cleient a anfonwyd ymlaen, felly efallai nad y datryswr sy'n gweithio ar gyfer traffig a anfonwyd ymlaen yw'r un y mae'r gwesteiwr ei hun yn ei ddefnyddio.
Derbyniwch bob haen yn y drefn y gwnaethoch ei hadeiladu
Profwch yn y drefn y gwnaed y gadwyn: y twnnel allanol ar ei ben ei hun, yna cludiant y cleient mewnol trwy'r twnnel allanol, yna'r cymhwysiad trwy'r twnnel mewnol. Rhaid i bob derbyniad fod yn gysylltiad newydd yn hytrach na thudalen a oedd eisoes ar agor. Yna torrwch ac adferwch bob haen ar wahân a gwylio beth mae'r un nesaf yn ei wneud.
Canlyniad y cynllun wrth gefn yw'r arsylwad mwyaf gwerthfawr yma, a'r un nad yw tudalen IP gyhoeddus byth yn ei ddangos. Cadwch lwybrau'r cymar, y cyfeiriadau a ddefnyddir ganddynt a'r canlyniad hwnnw wrth ymyl y ffurfweddiad, oherwydd nid y llwybr hapus yw'r rhan y gofynnir amdani yn ddiweddarach.