Pam mae cleient VPN ar rwydwaith lleol y swyddfa yn colli pob ateb
Mae gliniadur ar rwydwaith lleol y swyddfa ac ar dwnnel yn yr un is-rwydwaith yn ateb o’r rhyngwyneb anghywir. Mae hidlwyr llac y llwybr cefn yn esbonio’r distawrwydd.
Mae gliniadur yn eistedd ar /24 y swyddfa dros Ethernet ac yn ymuno hefyd â gweinydd OpenVPN sy’n byw yn yr un /24. Mae cydweithiwr yn pingio cyfeiriad y twnnel; mae’r cais yn cyrraedd yn glir, ac nid oes dim yn dod yn ôl. Mae log y twnnel yn lân ac mae pori yn dal i weithio, felly’r twnnel yw’r amheuyn anghywir. Mae dilysu ffynhonnell IPv4 ar y peiriant sy’n derbyn yn taflu’r pecyn cyn i unrhyw beth ei ddarllen.
Mae’r golled yn digwydd cyn i unrhyw beth ddarllen y pecyn
Mae dilysu ffynhonnell yn gofyn un cwestiwn am bob pecyn sy’n dod i mewn: pe bai’r gwesteiwr hwn wedi ateb y ffynhonnell honno, a fyddai’r ateb yn gadael drwy’r rhyngwyneb y daeth y pecyn i mewn arno? Pan fo’r ateb yn na, mae’r cnewyllyn yn taflu’r pecyn ar unwaith. Nid oes soced na llwybr anfon yn ei weld byth, a dyna pam mae cipiad ar y twnnel yn dal i gofnodi cais nad yw’r cymhwysiad yn ei dderbyn byth.
Mae’r cleient yma yn dal 10.66.0.9 ar ei dwnnel, ac mae’r gweinydd OpenVPN yn ateb yn 192.168.80.10 y tu mewn i ragddodiad y swyddfa. Mae cydweithiwr yn 192.168.80.25 yn pingio cyfeiriad y twnnel, felly mae’r cais yn croesi’r rhwydwaith lleol, mae’r gweinydd yn ei lwybro i’r twnnel, ac mae’n cyrraedd rhyngwyneb twnnel y cleient gan gario cyfeiriad ffynhonnell y swyddfa. Yn nhabl llwybro’r peiriant hwnnw mae rhagddodiad y swyddfa yn perthyn i’r ddyfais Ethernet, nid i’r twnnel. Mae dilysu yn cymharu’r rhyngwyneb cyrraedd â’r llwybr, yn canfod anghysondeb ac yn gwrthod y pecyn, felly mae’r cydweithiwr yn gweld colled gyflawn tra bo’r ddau ben yn adrodd twnnel iach.
Mae gan y cyfeiriad drych yr un siâp: pan fydd y cleient yn cychwyn tuag at y swyddfa, gellir taflu atebion ar ochr y swyddfa am yr un rheswm. Mae trwsio a wirwyd i un cyfeiriad yn unig yn tueddu i ddychwelyd fel ail docyn.
Profwch y modd sydd mewn grym cyn cyffwrdd ag unrhyw sysctl
Darllenwch y gwerthoedd effeithiol yn hytrach na dibynnu ar ragosodiad dosbarthiad, oherwydd dim ond hanner y penderfyniad yw’r gosodiad fesul rhyngwyneb. Y modd sydd mewn grym yw’r uchaf o werth y rhyngwyneb a gwerth all, felly nid yw sero ar ryngwyneb y twnnel yn golygu dim tra bo all yn un. Mae penderfyniad y modd caeth yn benderfyniad llwybro, felly rhedwch y chwiliad y mae’r cnewyllyn yn ei redeg a chymharwch ei ateb â’r rhyngwyneb y daeth y pecyn iddo mewn gwirionedd.
tcpdump -ni tun0 icmp and host 192.168.80.25
ip route get 192.168.80.25
sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.tun0.rp_filter
Yna ailadroddwch y ping wrth wylio’r cyfrifydd gwallau. Mae cyfrif sy’n codi wrth ymyl cais y mae’r cipiad eisoes yn ei ddangos yn arwydd o’r tafliad hwn, nid o lwybr sy’n eisiau. Trowch ar gofnodi marsaidd tra byddwch yno, fel bod y cnewyllyn yn enwi’r ffynhonnell a’r rhyngwyneb y gwrthododd. Gyda’i gilydd maen nhw’n diystyru’r seiffr, y wal dân a iroute sy’n eisiau fel esboniadau.
Ysgrifennwch y llinell sylfaen cyn newid unrhyw beth: y ddau werth, y ddyfais a ddewisodd y chwiliad, a’r cyfrifydd y gwyliasoch. Y cofnod hwnnw sy’n dweud wrthych wedyn a wnaeth y newid yr hyn yr ydych yn ei feddwl.
Beth mae pob modd rp_filter yn ei dderbyn mewn gwirionedd
Mae’r cnewyllyn yn dangos tri gwerth fesul rhyngwyneb, ac nid ydynt yn dri arlliw o un rheol. Mae sero yn analluogi’r gwiriad. Mae un yn gaeth ac yn mynnu bod y ffynhonnell yn cael ei llwybro’n ôl allan drwy’r rhyngwyneb cyrraedd. Mae dau yn llac ac yn mynnu’n unig fod rhyw lwybr at y ffynhonnell yn bodoli yn y tabl, ble bynnag y mae’n pwyntio.
| Value | Name | Accepts | Still rejects |
|---|---|---|---|
| 0 | off | any source at all | nothing on this check |
| 1 | strict | a source routed back out the arrival interface | a source whose route points elsewhere |
| 2 | loose | a source with any route in the table | a source with no route at all |
Y rhes sy’n bwysig yma yw’r un llac, a’r hyn y mae’n parhau i’w wrthod. Mae ffynhonnell ffug sy’n llwybradwy yn unrhyw le yn eich tabl yn mynd trwodd, tra bod ffynhonnell heb unrhyw lwybr o gwbl yn cael ei gwrthod o hyd. Ar liniadur mae hynny’n gonsesiwn gul; ar lwybrydd sy’n anfon traffig pobl eraill mae’n un eang. Mae’r modd yn perthyn i’r gwesteiwr, felly mae’r un rhif yn cario pwys gwahanol yn y ddau le.
Mae pa res y mae’r topoleg hon ei hangen yn dilyn o’r tabl yn hytrach nag o arfer. Mae’r pecyn yn gyfreithlon ac mae ei ffynhonnell yn llwybradwy, felly mae’r llac yn ei dderbyn ac nid yw’r caeth yn gwneud. Nid oes dim yn yr achos yn galw am sero, a byddai dewis sero yn tynnu gwiriad nad yw’n costio dim yma.
Dewiswch y newid lleiaf sy’n tynnu’r amwysedd
Y modd llac yw’r newid lleiaf sy’n ffitio, ac mae’n ostyngiad go iawn mewn caethder, nid yn swits diniwed. Mae opsiwn gwell yn bodoli pryd bynnag y mae’r topoleg yn caniatáu: tynnwch y gorgyffwrdd, ac mae’r amwysedd yn diflannu.
Lle nad oes angen rhagddodiad y swyddfa ond dros Ethernet, tynnwch ef o’r llwybrau y mae’r proffil yn eu tynnu ac mae’r cyfeiriad yn dod yn gyrraeddadwy drwy un llwybr. Pan fo’n rhaid i’r ddau lwybr gydfodoli go iawn, pinwch y ffynhonnell a’r ddyfais â rheol polisi yn lle llacio dilysu ar bob rhyngwyneb. Mae hynny’n cadw hidlo caeth ar gyfer popeth arall ar y peiriant ac yn dogfennu’r eithriad lle bydd y peiriannydd nesaf yn edrych amdano.
Pa bynnag lwybr a gymerwch, cofnodwch ef mewn drop-in sysctl yn hytrach nag mewn gorchymyn byw. Gosodwch yr allweddi all a default gyda’i gilydd, fel na all ailgysylltu adfer y modd caeth yn dawel.
# /etc/sysctl.d/99-rp-filter.conf
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2
sysctl --system
Beth mae’r modd llac yn ei roi heibio, a ble
Mae’r modd llac yn dal i wrthod ffynhonnell na allai unrhyw lwybr ei chyrraedd, ac mae’n rhoi’r gorau i wrthod ffynhonnell ffug sy’n digwydd bod yn llwybradwy. Ar liniadur mae hynny’n gonsesiwn gul. Ar ddyfais sy’n anfon traffig nad yw’n berchen arno, mae’r un dewis yn llawer ehangach. Felly mae’r un gosodiad yn cario dau ystyr gwahanol iawn yn dibynnu ar ble mae’n rhedeg.
Diffodd y gwiriad yn llwyr ar westai sy’n anfon traffig ar gyfer pobl eraill yw’r un trwsio i’w osgoi. Mae sero yn taflu ymaith y dilysu y mae’r modd llac yn ofalus i’w gadw. Os yw’r gwesteiwr yn anfon ar gyfer eraill, dadleuwch dros opsiwn y rheol polisi o’r adran flaenorol yn lle hynny.
Gadewch nodyn yn enwi’r ddau ryngwyneb, y rhagddodiad sy’n gorgyffwrdd a’r prawf union sy’n llwyddo nawr. Mae hynny’n fwy defnyddiol i’r peiriannydd nesaf na llinell sy’n dweud bod hidlo wedi’i addasu.