Mae dau ddyfais yn anfon y pecyn ymlaen ac mae pob un yn cadw ei dabl ei hun. Gŵyr y llwybrydd LAN fod y rhagddodiad pell yn perthyn i’r cleient VPN, ac mae’r cleient VPN yn gwybod sut i gyrraedd y rhagddodiad hwnnw trwy ei dwnnel. Cyfluniwch y tabl cyntaf yn unig a bydd y pecyn yn cyrraedd peiriant heb lwybr cyfatebol, felly mae’n gadael eto trwy’r llwybr diofyn. Dyna’r methiant cyfan, ac o ochr y LAN mae’n edrych fel dolen lwybro oherwydd ei fod bron yn un.

Tynnwch y ddau naid cyn cyffwrdd â llwybr

Cymerwch gynllun darluniadol: gwesteion LAN ar 192.168.50.0/24, y llwybrydd cyffredin ar 192.168.50.1, cleient pwrpasol ar 192.168.50.15, a LAN bell ar 10.60.0.0/24 sy’n cyrraeddadwy trwy’r twnnel yn unig y mae’r cleient hwnnw’n ei gadw. Nid yw’r naill amrediad preifat yn gorgyffwrdd â’r llall, ac mae gan y twnnel ei gynllun cyfeiriadau ei hun.

Mae’r ddau amrediad preifat yn bwysig oherwydd nhw sy’n penderfynu pa ddyfais all ateb. Bydd yr ochr bell yn gweld y pecyn yn cyrraedd o gyfeiriad twnnel y cleient, ac mae’n rhaid i’w hymateb ddod o hyd i ffordd yn ôl i 192.168.50.0/24. Os mai dim ond y cyfeiriad allan sydd wedi’i gyflunio, gall y cais weithio tra bo’r ymateb yn diflannu.

Cam 1: pwyntiwch y llwybrydd at y cleient, nid at y twnnel

Ar y llwybrydd LAN, ychwanegwch lwybr cyrchfan y mae ei naid nesaf yn gyfeiriad LAN y cleient:

ip route add 10.60.0.0/24 via 192.168.50.15
ip route get 10.60.0.55

Mae’r cofnod hwnnw’n dweud “danfonwch ef i’r peiriant sy’n gallu twnelu”. Nid yw’n dweud dim am sut mae’r twnnel yn cael ei adeiladu, ac nid yw’n cymryd lle llwybr y cleient ei hun. Ar lwybrydd rheoledig mae’r cyfatebol yn byw ar dudalen llwybrau statig y ddyfais; ar lwybrydd Linux mae’n perthyn i gyfluniad y rhyngwyneb sy’n berchen ar y LAN, nid i gragen y byddwch yn ei chau.

Edrychwch ar ateb yr ail orchymyn. Os yw’n nodi’r cleient fel gateway a’r rhyngwyneb LAN fel device, mae’r naid gyntaf yn gywir ac mae’r gwaith sy’n weddill ar y peiriant arall.

Cam 2: rhowch lwybr ei hun i’r cleient ar ochr y twnnel

Nawr mae’r cleient yn derbyn pecyn ar gyfer 10.60.0.0/24 ac yn ymgynghori â’i dabl ei hun. Os yw ei gyfluniad twnnel wedi gosod llwybr ar gyfer y rhagddodiad hwnnw, mae’r pecyn yn parhau’n amgryptiedig. Os na, mae’r pecyn yn cyfateb i’r llwybr diofyn cyffredin ac yn mynd yn ôl i 192.168.50.1, sy’n ei anfon at y cleient eto.

Edrychwch cyn ychwanegu unrhyw beth:

ip route show table all | grep -E "10\.60\.0\.0/24|default"
sysctl net.ipv4.ip_forward

Llwybr rhagddodiad ar goll ym mhob tabl yw’r darganfyddiad rydych yn chwilio amdano. Ychwanegwch ef trwy gyfluniad y twnnel ei hun, fel bod yr ailgysylltiad nesaf yn ei ailosod; mae ip route add â llaw yn diflannu gyda’r sesiwn ac yn gwneud i’r nam ddychwelyd ar yr adeg leiaf cyfleus. Y naid nesaf yw rhyngwyneb y twnnel neu’r cyfeiriad y mae’r VPN yn ei bennu fel ei bartner, yn dibynnu ar y cleient, ac mae’n rhaid i gyfeiriad y partner ddod o’r proffil cyfredol yn hytrach nag o hen nodyn.

Nid yw’r ddolen, pan mae’n digwydd, yn anfeidrol yn ymarferol: mae’r TTL yn gostwng ar bob pas ac mae’r pecyn yn marw gyda neges amser wedi’i ragori. Dyna pam y gall traceroute ailadroddus awgrymu cylch tra bo cleient nad yw’n anfon ymlaen yn syml yn gollwng yr un pecyn yn ddistaw.

Cam 3: caniatáwch anfon ymlaen a dewiswch yr ail lwybr

Mae derbyn ac anfon ymlaen yn ganiatadau gwahanol. Mae net.ipv4.ip_forward=1 ar y cleient yn caniatáu tramwy ar lefel y cnewyllyn, ac mae’n rhaid i reol wal dân ei chaniatáu rhwng rhyngwyneb y LAN a’r twnnel o hyd. Ni fydd rheol sy’n caniatáu mynediad i dudalen reoli’r cleient ei hun yn caniatáu tramwy i’r LAN bell, ac mae’n hawdd colli’r gwahaniaeth pan fo’r un gwesteiwr yn ateb pings yn lleol.

Mae gan yr ochr bell y broblem drych. Mae’n rhaid iddi wybod bod 192.168.50.0/24 yn cyrraeddadwy trwy’r cleient dilys hwn. Gyda OpenVPN mae hynny fel arfer yn golygu llwybr fesul cleient a wthir gan gyfluniad y gweinydd, neu ffeil benodol i’r cleient ar y gweinydd sy’n datgan y LAN y tu ôl i’r cleient. Heb hynny, mae’r LAN bell naill ai’n gollwng yr ymateb neu’n ei anfon i’w phorth diofyn ei hun, sef y rhyngrwyd.

Cyfieithu’r ffynhonnell yw’r dewis arall pan na ellir hysbysebu rhagddodiad y LAN. Mae rheol masquerade â chwmpas ar y cleient yn ailysgrifennu’r ffynhonnell i gyfeiriad y twnnel, ac yna mae ymatebion yn dychwelyd yn naturiol. Mae hefyd yn cuddio pa westeiwr LAN a wnaeth y cais, ac nid yw ynddo’i hun yn caniatáu i’r ochr bell gychwyn cysylltiadau i mewn. Dewiswch y fasnachfraint hono’n fwriadol yn hytrach nag ychwanegu masquerade blanced a darganfod yr sgil-effaith yn ddiweddarach.

Cam 4: cadwch y ddau benderfyniad, yna profwch y llwybr go iawn

Mae gan bob llwybr berchennog, a’r perchennog yw’r cyfluniad sy’n cael ei ailgynhyrchu wrth gychwyn neu wrth ailgysylltu. Ar y llwybrydd gall fod yn gofnod llwybr statig; ar y cleient gall fod yn broffil VPN, NetworkManager, neu systemd-networkd. Gwirwch trwy ailgysylltu’r twnnel ac ailgychwyn y cleient, yna darllenwch y tabl eto yn hytrach nag ymddiried yn y golygiad.

Cadwch y llwybr diofyn sy’n cario cysylltiad allanol y twnnel yn gyfan. Mae ei ddisodli i “symleiddio” y gosodiad yn torri’r llwybr amgryptiedig cyn i unrhyw draffig mewnol allu ei ddefnyddio, a’r symptom yw twnnel nad yw byth yn ailsefydlu ar ôl y newid.

Profwch o westeiwr LAN cyffredin, nid o’r cleient, oherwydd nid yw cais sy’n tarddu ar y cleient byth yn arfer naid gyntaf y llwybrydd. Estynnwch wasanaeth sy’n bodoli dim ond ar y LAN bell a chadarnhewch gorff yr ymateb, yna edrychwch ar gwrifyddion neu logiau’r cleient i weld y tramwy yn digwydd. Mae traceroute mewnol sy’n dangos naidau preifat yn profi anfon ymlaen, nid amgrypio: mae’r llwybr allanol yn arsylwi ar wahân, a dim ond cwrifyddion rhyngwyneb y twnnel sy’n dangos beth a adawodd trwyddo.

Erthyglau cysylltiedig