Nid oes dim yn y soced yn cofio pa ryngwyneb a gludodd y cais, felly gall llwybr diofyn VPN twnnel llawn ddal ateb sy’n perthyn i’r WAN. Nid yw’r gwasanaeth yn anwybyddu’r rhyngwyneb sy’n dod i mewn; mae Linux yn llwybro ateb a gynhyrchwyd yn lleol yn ôl cyrchfan a pholisi ffynhonnell. Gall rheol sy’n seiliedig ar ffynhonnell anfon dim ond atebion y gwasanaeth drwy dabl WAN cyflawn, gan adael all-lif arferol ar y twnnel. Mae’r porth yn aros ar agor tra bod yr ateb yn gadael drwy’r llwybr anghywir, a dyna pam mae’r symptom yn ymddangos yn unochrog.

Y camdybiaeth: mae atebion yn dilyn y rhyngwyneb y daethant i mewn arno

Mae’n teimlo’n rhesymegol y dylai pecyn sy’n cyrraedd ar eth0 adael ar eth0. Gellir ysgrifennu hidlwyr pecynnau di-wladwriaeth felly, ac mae tcpdump ar yr ochr fewnol yn dangos y cais yn union lle mae disgwyl. Nid yw llwybro’n gweithio felly ar gyfer traffig y mae’r gwesteiwr ei hun yn ei greu.

Unwaith y bydd y gwasanaeth yn derbyn y cysylltiad, mae ei ateb yn becyn newydd a gynhyrchwyd yn lleol. Mae’r cnewyllyn yn ymgynghori â’r rheolau llwybro ar gyfer cyrchfan a ffynhonnell yr ateb, ac mae llwybr diofyn y VPN yn ateb hollol ddilys. Nid oes dim yn y soced yn cofio pa ryngwyneb a gludodd y cais.

Dyna pam mae’r symptom yn ymddangos yn unochrog: mae ceisiadau’n cyrraedd, mae atebion yn diflannu. Dyna hefyd pam nad yw ychwanegu rheol wal dân ar gyfer y porth sy’n dod i mewn yn newid dim. Nid yw’r pecyn yn cael ei rwystro ar y ffordd i mewn; mae’n cael ei lwybro rywle arall ar y ffordd allan. Dilynwch yr ateb gyda chwilair a gymhwyswyd i ffynhonnell, a daw’r cilgwrs yn weladwy.

Yr hyn y mae’r cnewyllyn yn ei lwybro mewn gwirionedd: y cyfeiriad ffynhonnell

Y ddolen sydd ei hangen arnoch yw’r cyfeiriad lleol y mae’r gwasanaeth yn ei ddefnyddio ar gyfer atebion. Ar westeiwr â chyfeiriad eth0 enghreifftiol 192.0.2.10/24 a phorth 192.0.2.1, mae’r cyfeiriad hwnnw’n bresennol ar y rhyngwyneb. Ar VM cwmwl, gall y cyfeiriad cyhoeddus gael ei gyfieithu i fyny’r afon a bod yn absennol o’r gwestai, felly defnyddiwch y cyfeiriad y mae’r gwesteiwr yn ei ddal mewn gwirionedd.

Archwiliwch y cyflwr presennol cyn cadw rhif tabl neu flaenoriaeth rheol. Gall rheolau polisi presennol gysgodi un newydd, a gall hen dabl â’r un rhif fod eisoes yn cario llwybrau di-gysylltiad:

ip -4 addr show dev eth0
ip -4 rule show
ip -4 route show table all

Yna dewiswch dabl yn ôl ffynhonnell. Mae’r rheol yn cyfateb i atebion sy’n cario 192.0.2.10 yn barod, sef yn union y traffig a derfynwyd yn lleol yr ydych am ei eithrio. Nid yw traffig a anfonwyd ymlaen a phecynnau o gyfeiriadau lleol eraill yn cyfateb.

Adeiladwch dabl dychwelyd cyflawn, nid hanner llwybr diofyn

Nid yw tabl sydd â llwybr diofyn yn unig yn ddigon. Mae’n rhaid i’r cnewyllyn ddatrys y porth o hyd, ac mae’r datrysiad hwnnw angen y rhagddodiad cysylltiedig yn yr un tabl. Mae tabl heb y rhagddodiad hwnnw’n methu wrth ddatrys y porth hyd yn oed pan fydd ei lwybr diofyn yn edrych yn gywir. Ychwanegwch y ddau, yna cyfeiriwch y rheol ffynhonnell at y tabl:

ip -4 route add table 100 192.0.2.0/24 dev eth0 src 192.0.2.10
ip -4 route add table 100 default via 192.0.2.1 dev eth0
ip -4 rule add priority 1000 from 192.0.2.10/32 lookup 100

Defnyddiwch y rhagddodiad a’r porth go iawn yn lle copïo’r enghraifft. Mae rhyngwyneb cwmwl wedi’i ffurfweddu fel /32 gyda phorth ar y cyswllt angen llwybr cysylltiedig gwahanol, ac mae tabl a adeiladwyd o’r rhagddodiad anghywir yn methu ar y naid gyntaf. Mae’r priodoledd src yn nodi’r ffynhonnell a ffefrir ar gyfer y llwybr hwnnw; nid yw’n disodli’r rheol ffynhonnell.

Mae trefn yn bwysig hefyd. Mae rheol eang â rhif blaenoriaeth is yn cael ei gwerthuso gyntaf, felly rhaid cyrraedd y rheol ffynhonnell cyn unrhyw reol a fyddai’n anfon y traffig hwn yn ôl i’r prif dabl. Gwiriwch y blaenoriaethau gyda ip rule show ar ôl ei hychwanegu, nid yn unig wrth gychwyn.

Gwiriwch gyda chwilair a gymhwyswyd i ffynhonnell

Gofynnwch i’r cnewyllyn lwybro cyrchfan prawf o gyfeiriad y gwasanaeth. Dylai’r ateb enwi eth0 a phorth WAN, nid y twnnel:

ip -4 route get 198.51.100.25 from 192.0.2.10

Yna gwnewch gysylltiad awdurdodedig newydd a gwylio’r ddau gyfeiriad. Mae chwilair sy’n dewis y tabl cywir tra bod y cysylltiad byw yn dal i fethu yn awgrymu hidlo llwybr gwrthdro neu reol wal dân, nid y tabl. Gwiriwch y rheolyddion hynny cyn analluogi unrhyw beth yn fyd-eang.

Rhowch y llwybrau a’r rheol derfynol o dan y rheolwr rhwydwaith sy’n berchen ar y rhyngwyneb. Mae newidiadau cyfeiriad, adnewyddu DHCP ac ailgysylltiadau VPN i gyd yn ailysgrifennu cyflwr y cnewyllyn, ac mae rheol a ychwanegwyd â llaw yn diflannu neu’n pwyntio at borth hen ffasiwn ar ôl y digwyddiad nesaf.

Lle mae’r eithriad hwn yn stopio

Mae’r rheol yn eithrio traffig a derfynwyd yn lleol o un cyfeiriad ffynhonnell. Nid yw’n cwmpasu pyrth a gyhoeddwyd gan Docker, DNAT, na gwasanaethau a anfonwyd ymlaen drwy’r gwesteiwr, oherwydd mae’r pecynnau hynny’n cael eu llwybro fel traffig a anfonwyd ymlaen ac ni fyddant byth yn cario ffynhonnell leol y gwesteiwr yn yr un ffordd. Mae angen marc a osodwyd wrth fewnbynnu a rheol sy’n cyfateb i’r marc ar y cynlluniau hynny fel arfer.

Nid yw ychwaith yn gwneud i gyfeiriad cyhoeddus y gwesteiwr ymddangos ar y rhyngwyneb. Pan fydd NAT i fyny’r afon yn berchen ar y cyfeiriad hwnnw, rhaid i’r ateb adael drwy’r llwybr y mae’r NAT hwnnw’n ei ddisgwyl, a dyna pam mae’n rhaid i’r tabl WAN adlewyrchu’r porth a’r rhagddodiad gwreiddiol yn hytrach na ystod gyhoeddus a ddyfallwyd.

Cadwch yr eithriad wedi’i ddogfennu gyda’i rif tabl, blaenoriaeth ei reol a’r cyfeiriad ffynhonnell union. Gall y newid nesaf i’r VPN neu’r rhyngwyneb ei dorri’n dawel, ac mae nodyn sy’n enwi’r tri gwerth yn gyflymach i’w wirio na darganfod y symptom o’r newydd o adroddiad cwsmer.

Os yw’r gwasanaeth yn dal i ateb ar y llwybr anghywir ar ôl i’r chwilair ffynhonnell lwyddo, cymharwch gyfeiriad ffynhonnell y soced byw â’r un yn y rheol. Gall gwasanaeth wedi’i rwymo i gyfeiriad gwyllt ddewis ffynhonnell wahanol i’r cyfeiriad a brofwyd gennych, a’r camwahaniaeth hwnnw yw’r bwlch sy’n weddill.

Erthyglau cysylltiedig