Mae'r gwesteiwr yn dal i ateb SSH ar ôl i VPN twnnel llawn godi, tra bod gwasanaeth a gyhoeddwyd gan Docker ar yr un peiriant yn mynd yn fud. Nid oes dim o'i le ar y gwrandäwr: mae'r cynhwysydd yn rhedeg, mae'r mapio porth yn bodoli, ac mae'r pecyn yn cyrraedd. Mae'r cynhwysydd yn iach ac mae'r cais yn ei gyrraedd. Y gwahaniaeth yw o ble mae'r ateb yn dechrau pan fo Linux yn dewis ei lwybr, a'r gwahaniaeth hwnnw sy'n penderfynu pa un o'r dau ddyluniad isod sydd ei angen arnoch.

Dilynwch y tuple drwy NAT cyrchfan

Cymerwch westeiwr yn 192.0.2.10, gan gyhoeddi TCP 2222 i gynhwysydd yn 172.30.240.5:22. Mae cais o 198.51.100.25 yn cael ei gyfieithu cyn cyrraedd y cynhwysydd, ac mae'r cynhwysydd yn ateb fel ef ei hun.

WAN request:      198.51.100.25 -> 192.0.2.10:2222
after DNAT:       198.51.100.25 -> 172.30.240.5:22
container reply:  172.30.240.5:22 -> 198.51.100.25

Wrth benderfyniad llwybr y gwesteiwr mae'r ateb yn dal i gario cyfeiriad ffynhonnell y cynhwysydd. Mae cyfieithu gwrthdro yn adfer y tuple a gyhoeddwyd yn ddiweddarach, a dyna pam mae'r pecyn yn edrych yn anghywir yn union ar yr eiliad y dewisir y llwybr.

Pam mae rheol ar gyfer y gwesteiwr yn unig yn ei cholli

Mae rheol sy'n dewis y tabl WAN dim ond ar gyfer pecynnau o 192.0.2.10 yn cwmpasu daemonau'r gwesteiwr ei hun ac yn colli'r ateb a anfonwyd ymlaen yn gyfan gwbl. Cyfeiriad ffynhonnell yr ateb yw 172.30.240.5, nid y gwesteiwr.

Y gormod o gywiro yw llwybro popeth o'r cynhwysydd drwy'r WAN, sydd hefyd yn eithrio cysylltiadau allan anghysylltiedig y cynhwysydd o'r VPN. Mae honno'n bolisi gwahanol i'r un y gofynnwyd amdano, ac mae fel arfer yn synnu rhywun yn ddiweddarach.

Mae paru ar ôl DNAT yn fachyn gwahanol

Mae dogfennaeth Docker ar waliau tân yn nodi bod hidlo defnyddiwr cyffredin yn gweld y cyrchfan ar ôl DNAT, felly nid yw paru'r porth cyhoeddedig 2222 mewn rheol arferol yr un peth â pharu porth 22 y cynhwysydd. Os yw'r tuple gwreiddiol yn bwysig, defnyddiwch y mecanwaith cyrchfan gwreiddiol a gefnogir yn lle dyfalu pa borth sy'n weladwy.

Mae'r dryswch bachyn hwn yn cynhyrchu rheolau sy'n edrych yn gywir ac nad ydynt byth yn paru. Edrychwch ar y rhifyddion ar y rheol ei hun cyn ailysgrifennu'r polisi. Mae rheol heb unrhyw daro yn dweud wrthych ei bod yn cael ei gwerthuso yn rhywle nad yw'r pecyn byth yn cyrraedd.

Dyluniad A: cario'r penderfyniad fel cyflwr cysylltiad

Gall marc cysylltiad gario'r penderfyniad mynediad drwy'r cyfieithiad, ond rhaid ei adfer i'r pecyn cyn y chwiliad llwybr sy'n bwysig. Y camau yw:

  1. Cadwch faes marc a blaenoriaeth rheol nad ydynt yn gwrthdaro â Docker, y VPN na pherchennog polisi arall.
  2. Nodwch y cysylltiad WAN newydd a fwriadwyd yn unig ar bwynt cyn-DNAT lle mae olrhain cysylltiadau ar gael.
  3. Cofnodwch y penderfyniad ar y marc cysylltiad, heb orfodi'r cais gwreiddiol ei hun i'r tabl WAN.
  4. Yn y cyfeiriad ateb, adferwch eich bitiau marc eich hun yn unig i'r pecyn cyn llwybro.
  5. Dewiswch dabl WAN cyflawn yn ddigon cynnar fel na all rheol VPN ennill yn gyntaf.

Mae angen y llwybrau cysylltiedig go iawn a'r porth ar y tabl hwnnw. Mae hefyd angen ymddygiad diffiniedig pan fo'r llwybr ar goll. Syrthni distaw i'r twnnel yw'r canlyniad gwaethaf, oherwydd mae'r ffurfweddiad yn dal i edrych fel pe bai'n gweithio. Methwch ar gau a chofnodwch hynny yn lle hynny.

Dyluniad B: terfynu ar y gwesteiwr

Mae blaendal a ffurfweddwyd yn fwriadol ar ochr y gwesteiwr, megis procsi TCP neu brocsi gwrthdro o flaen y cynhwysydd, yn cadw'r ateb yn tarddu o gyfeiriad y gwesteiwr. Yna mae rheolau a ysgrifennwyd ar gyfer y gwesteiwr yn ymddwyn yn ôl y disgwyl, ac mae'r cynhwysydd yn aros ar ei rwydwaith preifat.

Y gost yw rhan symudol arall gyda'i ffurfweddiad, ei thriniaeth cyfeiriad ffynhonnell a'i rheolyddion mynediad. Mae fel arfer yn ffin gefnogir symlach, ac yn aml dyma'r ateb cywir pan fyddai polisi llwybro yn cael ei gynnal gan un person a allai adael.

Gwiriwch y newid, nid y bwriad

Agorwch gysylltiad awdurdodedig newydd o'r ochr gyhoeddus a chadarnhewch fod yr ateb yn gadael y rhyngwyneb a fwriadwyd. Yna gwiriwch fod cais anghysylltiedig a ddechreuwyd gan y cynhwysydd yn dal i ddilyn y VPN.

Peidiwch â fflysio tabl cysylltiadau'r peiriant i brofi un rheol: mae cofnodion presennol yn cadw eu mapio cynharach, ac mae'r fflysio yn torri popeth arall ar y gwesteiwr. Mae cyhoeddi porth yn diffinio cyrhaeddadwyedd. Nid yw'n diffinio llwybr yr ateb. Ysgrifennwch y dyluniad a ddewiswyd gyda'i enwau tabl, fel na fydd y person nesaf yn ei ailddarganfod yn ystod digwyddiad.

Erthyglau cysylltiedig