Mae cleient OpenVPN yn galw un cyfeiriad, mae'r gweinydd yn ateb o un arall, ac nid yw'r tiwnel byth yn codi. Mae log y gweinydd yn dangos y pecyn yn cyrraedd ac mae daliad yn dangos ateb yn gadael, felly rhoddir y bai ar y cleient. Ar westeiwr sydd â sawl rhyngwyneb, neu sawl cyfeiriad ar un rhyngwyneb, nid yw'r ddwy ochr yn cytuno pa gyfeiriad sy'n cael ei ddefnyddio. Mae'r ateb yn ddilys ar haen IP, eto mae llawer o gleientiaid yn gwrthod datagram nad yw ei ffynhonnell yn y cyfeiriad y gwnaethant gysylltu ag ef.

Beth mae'r cleient yn ei weld pan fydd y ffynhonnell yn newid

Nid oes gan soced UDP nad yw wedi'i rwymo i gyfeiriad lleol penodol ffynhonnell sefydlog, felly mae'r cnewyllyn yn dewis un wrth anfon. Daw'r dewis hwnnw o chwiliad llwybr tuag at gyfeiriad y cleient, a'r ffynhonnell yw cyfeiriad y rhyngwyneb y mae'r chwiliad yn ei ddewis. Ar beiriant ag un rhyngwyneb mae'r dewis yn anweladwy; ar westeiwr sydd â chyfeiriad rheoli, cyfeiriad cyhoeddus a chyfeiriad eilaidd ar yr un cerdyn rhwydwaith, mae'n dibynnu ar fetrigau a pholisi llwybro. Mae llwybro yn ôl polisi yn gwneud yr anghysondeb yn fwy tebygol yn hytrach na llai, oherwydd gall rheol ddewis cyswllt na chyrhaeddodd y cleient mohono. Mae llwybr diofyn a ddysgwyd oddi wrth un darparwr ynghyd â rheol ffynhonnell sy'n pwyntio at un arall yn ddigon i'w gynhyrchu.

Bydd cleientiaid sy'n hidlo atebion, a thracio cysylltiadau sy'n disgwyl yr union bedwarawd a'r ffynhonnell, yn gollwng yr ateb heb neges ddefnyddiol. Yna mae'r tiwnel yn dod i ben fel pe na bai dim wedi cyrraedd, a dyna pam y caiff hyn ei gamgymryd am broblem hidlydd ar ochr y cleient. Mae daliad a gymerwyd ar y gweinydd yn unig yn cadarnhau'r camgymeriad yn hytrach na'i esbonio, oherwydd mae'r ateb wir yn gadael. Cymharwch ffynhonnell yr ateb â'r cyfeiriad y gwnaeth y cleient ei alw cyn newid unrhyw beth arall.

Beth mae'r opsiwn multihome yn ei wneud mewn gwirionedd

Ysgrifennir y cyfarwyddeb fel multihome mewn ffeil ffurfweddu a fel --multihome ar y llinell orchymyn, ac mae'n gwneud i weinydd UDP ateb o'r cyfeiriad y cyrhaeddodd pecyn y cleient. Mae'r cnewyllyn yn trosglwyddo'r cyfeiriad cyrchfan gwreiddiol fel data atodol wrth dderbyn, ac mae OpenVPN yn defnyddio'r gwerth hwnnw fel ffynhonnell yr ateb. Felly mae gweinydd sy'n gwrando ar gyfeiriad gwyllt, local 0.0.0.0 ar gyfer IPv4 neu ei gyfatebydd IPv6, yn ymddwyn fel pe bai pob cleient wedi cyrraedd gwrandawr penodol. Mae cleientiaid a ddaeth i mewn drwy'r cyfeiriad cyhoeddus yn cael atebion o'r cyfeiriad cyhoeddus, ac mae cleientiaid ar gyfeiriad mewnol yn eu cael o'r cyfeiriad hwnnw. Nid oes dim arall yn symud ar lwybr y pecyn: mae'r llwybr, y rheolau hidlo a ffurfweddiad y tiwnel yn aros yn union fel yr oeddent.

Dyma'r rheswm pam mae'r opsiwn yn ddiogel i'w ychwanegu at weinydd sy'n gweithio'n iawn yn barod, a hefyd y rheswm pam na all drwsio hidlydd sy'n caniatáu un cyfeiriad yn unig. Rhaid dal i dderbyn y pecyn ar y llwybr y mae'n ei gymryd, felly dim ond tarddiad yr ateb y mae'r cywiriad ffynhonnell yn ei newid. UDP yn unig yw hefyd: nid oes gan wrandawr TCP y broblem hon yn yr un ffurf, oherwydd adnabyddir y cysylltiad gan y pedwarawd yn hytrach na chan gyfeiriad ffynhonnell yr ateb.

Pryd mae cyfeiriad lleol sefydlog yn y diofyn anghywir

Cyn cyrraedd am yr opsiwn, gwiriwch a yw'r gweinydd yn rhwymo un cyfeiriad lleol penodol, oherwydd mae gwrandawr rhwymedig bob amser yn ateb o'r cyfeiriad hwnnw. Mae hynny'n gywir ar gyfer defnydd ag un rhyngwyneb ac yn anghywir cyn gynted ag y bydd cleientiaid yn defnyddio mwy nag un cyfeiriad yn gyfreithlon. Os oedd y rhwymiad yn fwriadol, penderfynwch a ddylai'r gweinydd dderbyn traffig ar gyfeiriadau ychwanegol o gwbl. Mae tynnu'r rhwymiad yn cynyddu allyriant, felly rhaid i'r gwasanaeth a'r hidlydd orfodi'r rhyngwynebau a'r rhwydweithiau ffynhonnell a ganiateir, nid y cyfeiriad rhwymo yn unig.

Mae cyfeirlyfr OpenVPN yn cyfyngu'r opsiwn i weinyddion UDP, yn nodi'r prosesu ychwanegol ar lwybr y pecyn, ac yn cofnodi pa blatfformau sy'n ei gefnogi. Cadarnhewch hynny ar y rhyddhau sydd wedi'i osod cyn cynllunio o'i gwmpas. Lle nad yw'n cael ei gefnogi, y dewis arall yw rhwymo'r cyfeiriad penodol neu drwsio'r llwybr dychwelyd, ac mae'r ddau yn newidiadau culach nag y maent yn ymddangos ar yr olwg gyntaf. Mae gwrando ar gyfeiriad gwyllt hefyd yn cael canlyniadau y tu hwnt i atebion: mae gweinydd ar bob cyfeiriad yn gyrraeddadwy o bob rhwydwaith y mae'r gwesteiwr wedi'i gysylltu ag ef, ac efallai nad dyna'r allyriant y bwriadodd unrhyw un.

Profwch ffynhonnell yr ateb o'r tu allan

Profwch o'r tu allan i'r gweinydd, a chofnodwch yr union gyfeiriad a'r cludiant y defnyddiodd y cleient cyn dal unrhyw beth. Mae'r tri phrawf isod yn ateb tri chwestiwn gwahanol, ac mae'r drefn yn bwysig.

tcpdump -ni any udp port 1194
ss -lunp 'sport = :1194'
ip route get 203.0.113.10 from 198.51.100.20

Mae'r daliad yn dangos y cyfeiriad ffynhonnell ar yr ateb, sef y ffaith y mae'r erthygl gyfan yn troi o'i chwmpas. Mae'r rhestr socedi yn dangos yr hyn y gwnaeth y gweinydd ei rwymo mewn gwirionedd, oherwydd mae gwrandawr gwyllt a gwrandawr penodol yn edrych yr un fath mewn ffeil ffurfweddu ac yn ymddwyn yn wahanol ar y wifren. Mae'r chwiliad llwybr yn dangos y ffynhonnell y byddai'r cnewyllyn yn ei dewis ar gyfer y llif hwnnw, sy'n esbonio'r daliad cyn i chi newid unrhyw beth. Ailadroddwch y tri ar gyfer IPv4 ac IPv6 ar wahân, oherwydd gwrandawyr ar wahân a chwiliadau ar wahân ydynt, ac nid yw cofnod gwyllt ar gyfer un teulu yn dweud dim am y llall.

Mae llwybro, darganfod a hidlo yn aros ar wahân

Nid yw cadw ffynhonnell yr ateb yn gosod llwybr allan, yn diweddaru DNS deinamig, nac yn gwneud i un teulu cyfeiriadau dderbyn y llall. Ar weinydd â sawl cyswllt rhaid cytuno ar lwybr dychwelyd pob ffynhonnell yn fwriadol, neu mae atebion yn gadael drwy ryngwyneb na chaniataodd hidlydd y cleient mohono. Yn yr un modd, rhaid i gyfeiriad newydd ar ôl newid rhagddodiad gyrraedd cleientiaid drwy ddarganfod a'r llif ailgysylltu a gefnogir, yn hytrach na thrwy'r hen gofnod.

Gadewch y gwiriadau hunaniaeth gweinydd a'r dilysu tystysgrifau yn union fel y maent, oherwydd nid yw cyfeiriad wedi newid yn cyfiawnhau derbyn cymar heb ei wirio. Os yw'r ateb bellach yn gadael o'r ffynhonnell a fwriadwyd ac mae'r tiwnel yn dal i fethu, triniwch broblem y ffynhonnell fel un wedi'i datrys a symudwch ymlaen. Mae'r camgymeriad nesaf a welir yn perthyn i lwybro, hidlo neu ddilysu, ac ni fydd newid y gwrandawr eto yn ei gyrraedd. Ysgrifennwch ffynhonnell yr ateb yn y tocyn wrth ymyl y cyfeiriad y gwnaeth y cleient ei alw, fel y gall y person nesaf wirio'r un ffaith ag un gorchymyn.

Erthyglau cysylltiedig