Dau bwll cleient, un porth, a'r cynllun yn edrych yn ddibwys: mae un rheol yn anfon y pwll cyntaf allan dros yr uwlinc cyflym, ac un arall yn anfon yr ail bwll drwy dwnnel partner. Yna mae'r rheolau yn eu lle ac mae'r ail bwll yn dal i adael dros y llwybr diofyn. Nid yw'r rheol wedi torri. Nid yw ffynhonnell y pecyn yr hyn a ddisgwyliai'r awdur ar y foment y mae'r chwiliad yn digwydd, oherwydd mae'r cyfieithu a'r chwiliad yn digwydd ar bwyntiau gwahanol yn nhaith yr un pecyn, ac mae'r drefn yn groes i'r diagram meddwl y mae'r rhan fwyaf o bobl yn ei dynnu.

Mae'r chwiliad yn digwydd cyn i'r ffynhonnell gael ei hailysgrifennu

Ar gyfer pecyn a anfonir ymlaen o gleient VPN, mae'r cnewyllyn yn rhedeg dilyniant sefydlog. Mae'n cyrraedd ar ryngwyneb y twnnel, yn mynd drwy prerouting lle mae conntrack a DNAT yn byw, yna gwneir y penderfyniad llwybro, yna anfon ymlaen, yna postrouting, lle mae SNAT yn cael ei gymhwyso olaf. Mae rheol o ffurf from yn cael ei hystyried yn ystod y penderfyniad llwybro hwnnw, sy'n golygu ei bod yn gweld cyfeiriad gwreiddiol y cleient, nid yr un cyfieithiedig.

Felly nid yw ychwanegu rheol masquerade yn newid pa bolisi sy'n cyfateb i'r llif allan. Yr hyn y mae'n ei newid yw'r hyn a wêl y pen pell, ac felly pa lwybr dychwelyd sy'n bodoli. Mae'r rhain yn ddau ganlyniad gwahanol, ac mae adolygiadau newid yn eu cymysgu'n gyson. Gwahanwch nhw ac mae'r dyluniad fel arfer yn dod yn amlwg o fewn munud.

Yn y cyfeiriad ateb y mae'r cyfeiriad cyfieithiedig yn ymddangos yn y rheolau. Mae pecyn sy'n dychwelyd i'r porth wedi'i gyfeirio at y cyfeiriad cyfieithiedig, ac os oes gennych reolau polisi ar sail cyrchfan neu'r rhyngwyneb y daeth i mewn arno, dyna'r gwerth y byddwch yn ei gyfateb. Yr un cysylltiad, ffynhonnell wahanol o wirionedd ym mhob cyfeiriad.

StageSource the kernel seesWhat it means for your rule
PreroutingClient address, 172.31.7.42Where marks and DNAT are applied
Routing decisionStill 172.31.7.42This is where from rules match
PostroutingBecomes 198.51.100.9What the far end and its return route see

Felly mae angen tablau gwahanol ar ddau bwll â ffynonellau gwahanol, ac mae'r dyluniad yn gadarn. Yr hyn y mae'r tabl uchod yn ei eithrio yw'r llwybr byr o ddadfygio drwy edrych ar yr hyn a dderbyniodd y safle pell a didwytho'r rheol ohono.

Nid yw prawf o'r porth yn brawf o'r pwll

Nid yw'r traffig y mae'r porth ei hun yn ei gynhyrchu byth yn mynd drwy prerouting, oherwydd ni chyrhaeddodd ar ryngwyneb. Mae'n cael ei lwybro yn y llwybr allbwn, gyda chyfeiriad y porth ei hun fel ffynhonnell, ac ni fydd rheol from wedi'i seiilo ar ystod cleientiaid yn cyfateb. Mae pob tocyn yn y maes hwn sy'n dweud ei fod yn gweithio o'r blwch ond nid o'r cleient yn ailadrodd y ffaith honno.

Efelychwch y cleient yn lle ei amcangyfrif. Gellir gofyn i'r penderfyniad llwybro'n uniongyrchol, gyda ffynhonnell a rhyngwyneb mynediad wedi'u rhoi:

ip route get 198.51.100.9 from 172.31.7.42 iif tun0
ip route get 198.51.100.9 from 172.31.8.42 iif tun0
ip route show table 201

Rhedwch ef unwaith y pwll. Os yw'r ddau orchymyn yn dychwelyd yr un rhyngwyneb, nid yw'r rheolau yn gwahanu'r pyllau, a'r rheswm naill ai yw rheol sydd ar goll neu reol â blaenoriaeth uwch sy'n cyfateb i'r ddau. Os ydynt yn dychwelyd rhyngwynebau gwahanol ond mae'r cleient yn dal i fethu, mae'r nam yn is na'r chwiliad a gallwch stopio edrych ar reolau.

Blaenoriaeth, nid safle yn y ffeil

Mae rheolau'n cael eu gwerthuso mewn trefn flaenoriaeth esgynnol, a'r rhif sy'n cyfrif, nid y drefn y gwnaethoch eu teipio. Mae'r tabl local ar flaenoriaeth 0, y tabl main ar 32766 a'r rheol ddiofyn ar 32767, a dyna pam mae rheol a ychwanegwyd gyda'r flaenoriaeth ddiofyn yn glanio'n agos at ddiwedd y rhestr ac yn colli i bron popeth.

ip rule show
ip rule add from 172.31.8.0/24 lookup 201 priority 1000
ip -4 route show table 201

Mae blaenoriaeth benodol yn gwneud y drefn fwriadedig yn weladwy yn y ffeil ac mewn adolygiad. Mae hefyd yn atal ychwanegiad diweddarach rhag neidio'n dawel o flaen rheol bresennol, sef y rheswm mwyaf cyffredin dros bolisi sy'n gweithio roi'r gorau iddi ar ôl newid digyswllt.

Rheol gyfatebol sy'n pwyntio at dabl anghyflawn yw'r fagl arall. Os yw tabl 201 yn cynnwys llwybr diofyn ond heb lwybr i'r cyrchfan, mae'r pecyn yn cael ei ollwng neu ei anfon i'r lle anghywir, ac mae'r rheol yn edrych yn berffaith gywir ar ei phen ei hun. Darllenwch y tabl, nid y rheol yn unig. Mae rheol yn bwyntiwr, ac mae tabl gwag yn bwyntiwr i ddim.

Rhaid i'r llwybr dychwelyd fodoli o hyd

Mae polisi ffynhonnell yn dewis allanfa. Nid yw'n creu llwybr dychwelyd. Os yw'r ail bwll yn gadael drwy dwnnel partner, rhaid i'r partner wybod sut i gyrraedd 172.31.8.0/24, naill ai drwy lwybr yn ôl i'r porth neu drwy dderbyn cyfeiriadau cyfieithiedig y mae'n eu hadnabod yn barod.

Mae dewis rhwng y rhain yn benderfyniad dylunio â chanlyniadau gweladwy. Mae llwybro'r ystod cleientiaid yn ôl yn cadw hunaniaeth pob cleient gyda'r partner ac yn gofyn iddo dderbyn eich rhagddodiad. Mae cyfieithu'n cuddio'r pwll y tu ôl i un cyfeiriad ac yn gofyn i'r partner dderbyn y cyfeiriad hwnnw'n unig, ar gost na fydd eich logiau chi na'i logiau ef bellach yn cytuno pwy gysylltodd.

Beth bynnag a ddewiswch, ysgrifennwch ef wrth ymyl diffiniad y pwll. Mae llwybr dychwelyd sy'n bodoli ym meddwl rhywun yn unig yn union y math o beth sy'n goroesi nes i'r partner newid mur tân, ac yna'n cymryd diwrnod i'w ailadeiladu.

Peidiwch â dal twnnel y porth ei hun yn y polisi

Mae'r rheolau rydych yn eu hysgrifennu ar gyfer cleientiaid hefyd yn berthnasol i'r traffig y mae'r porth yn ei gynhyrchu, oni bai eich bod yn ei eithrio. Gall rheol eang ar sail marc neu ryngwyneb allbwn ddal cysylltiad y porth ei hun â'r partner, ac yna mae'r twnnel sy'n cario'r polisi yn cael ei lwybro gan y polisi. Mae hynny'n creu dolen neu dorri allan sy'n edrych fel nam darparwr.

Cymhwyswch bob rheol mor gul ag y mae'r dyluniad yn caniatáu: rhagddodiad ffynhonnell, rhyngwyneb mynediad, a lle mae cymorth, marc mai dim ond pecynnau cleient sy'n ei gario. Yna profwch gysylltedd y porth ei hun ar ôl pob newid rheol, oherwydd mae'r methiant yn hunangyfeiriol ac nid yw'n ymddangos mewn prawf cleient.

Mae tudalen lawlyfr ip-rule yn dogfennu semanteg y detholydd a'r flaenoriaeth. Cyfunwch hi â phrawf chwiliad fesul pwll ac mae'r dyluniad yn dod yn wiradwy, sef y gwahaniaeth rhwng llwybro polisi sy'n para blwyddyn a llwybro polisi y mae pawb yn ofni ei gyffwrdd.

Erthyglau cysylltiedig