Mae defnyddiwr yn adrodd bod y rhaglen fewnol yn gweithio o un peiriant ac yn methu o un arall, tra bod y ping rydych yn ei redeg o’r giât yn llwyddo yn y naill achos a’r llall. Gyda sawl tiwnel o gost gyfartal, nid gwrthddywediad yw hyn. Rhoddir pob llif ar ei gam nesaf ei hun, felly efallai bod eich prawf a sesiwn y defnyddiwr yn syml yn defnyddio llwybrau gwahanol. Mae’r daith isod yn atgynhyrchu’r dewisiad cyn newid unrhyw beth.

Un ping, sawl llwybr posibl

Pan fydd gan lwybr fwy nag un cam nesaf ar yr un gost, rhaid i’r llwybrydd ddewis un fesul pecyn. Mae’r rhan fwyaf o weithrediadau’n hashio meysydd o’r pecyn, fel arfer y cyfeiriadau ffynhonnell a chyrchfan ynghyd â’r protocol a’r porthladdoedd, fel bod yr ymatebion yn aros ar yr un llwybr. Mae rhaglenni gwahanol, neu hyd yn oed gysylltiadau gwahanol o un rhaglen, yn cynhyrchu hashes gwahanol.

Dyna pam nad yw diagnosis o’r giât yn profi nemor ddim. Mae gan brof y giât ei chyfeiriadau a’i phorthladdoedd ei hun, ac felly ei hash ei hun. Gall daro’r tiwnel iach tra bo’r defnyddiwr yn dal i daro’r un toredig.

Sut mae’r platfform yn dewis cam nesaf

Atgynhyrchwch y dewisiad yn lle ei ddyfalu. Gofynnwch i’r cnewyllyn pa lwybr y byddai’n ei ddefnyddio ar gyfer yr un ffynhonnell a chyrchfan â’r sesiwn sy’n methu. Mae’r chwiliad hwnnw’n cynnwys meysydd y mae chwiliad cyrchfan plaen yn eu hanwybyddu. Rhedegwch ef o gleient sy’n gweithio hefyd, a chymharwch y ddau ateb:

ip route get 10.20.5.7 from 10.20.0.14

Mae rhyddiadau iproute2 mwy diweddar hefyd yn derbyn y protocol a’r porthladd cyrchfan, sy’n bwysig pan fydd y hash yn eu cynnwys. Cymharwch yr allbwn hwnnw â’r un chwiliad o gleient sy’n gweithio, a’r gwahaniaeth yw’r dystiolaeth oedd ar goll gennych.

ObservationLikely causeFirst check
Ping works, application failsA different flow hash selects another tunnelPer-flow lookup from the client's address
Some users fail, others do notOne tunnel lacks a prefix or selectorCompare both tunnels' installed routes
Fails only at larger sizesTunnels have different effective MTUProbe the same size over each path
Fails after a reconnectStateful asymmetry between pathsSession state on both gateways

Cerddwch y llif sy’n methu, nid y tabl llwybrau

Mae’r tabl llwybrau’n rhestru’r ddau diwnel ac yn edrych yn gywir yn ôl diffiniad. Y cwestiwn yw beth mae pob tiwnel yn ei wneud â’r pecyn unwaith y’i dewisir. Gwiriwch fod y ddau’n cario’r un rhageddau gwarchodedig, yr un caniatâd anfon ymlaen, a llwybr dychwelyd sy’n cyrraedd yr un cleient.

Trowch sylw at ddyfeisiau cyflwr yn y canol. Os bydd cais yn gadael drwy un tiwnel a’r ateb yn dychwelyd drwy’r llall, bydd mur tân neu NAT na welodd y llif gwreiddiol erioed yn ei ollwng. Mae’r ddau diwnel yn anfon traffig ymlaen yn gywir, ac mae’r cysylltiad yn dal i fethu.

Gwiriwch yr MTU fesul llwybr hefyd. Mae llwybr ag amgylchyniad ychwanegol yn crebachu’r maint defnyddiadwy, ac mae trosglwyddiad sy’n llwyddo ar un tiwnel yn tagu ar y llall yn union ar y maint lle mae’r un llai yn torri.

Cymharwch un llwybr ar y tro

Lle mae’r dyluniad yn caniatáu cynnal a chadw, tynnwch un tiwnel o wasanaeth a gofalwch dasg y defnyddiwr. Os yw’r methiant yn diflannu, mae’r broblem yn perthyn i’r llwybr a dynnwyd gennych, a’r cam nesaf yw cymharu ei ffurfweddiad â’i gymydog yn hytrach nag ailarchwilio’r tabl llwybro.

Cymharwch y rhaglen go iawn, nid pings ailadroddus. Cofnodwch a yw’r methiant yn dilyn cam nesaf penodol, maint pecyn, neu drawsnewid ar ôl ailgysylltu, oherwydd mae’r tri phatrwm hynny’n pwyntio at atgyweiriadau gwahanol.

Yn olaf, nodwch pam ystyrir y llwybrau’n gyfwerth a sut y dylai methiant dynnu un ohonynt o wasanaeth. Dim ond pan fo’r llwybrau wir yn gyfnewidiol y mae aml-lwybr yn ddiogel, a datganiad dylunio yw hynny sy’n werth ei wirio yn hytrach na’i dybio.

Erthyglau cysylltiedig