Pam mae eich gwasanaeth Linux cyhoeddus yn ateb drwy’r VPN yn lle hynny
Gall gwasanaeth lleol dderbyn ar eth0 ac ateb drwy VPN twnnel llawn. Mae rheol ffynhonnell gyda thabl WAN cyflawn yn cadw’r atebion hynny ar y llwybr gwreiddiol.
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.