Fartölva situr á /24 skrifstofunnar um Ethernet og tengist líka OpenVPN-þjóni sem lifir á sama /24. Kollegi pingar göngufangið; beiðnin berst greinilega og ekkert fer til baka. Annáll gangan er hreinn og vafrið virkar enn, svo gangurinn er rangi grunaður. IPv4 upprunastaðfesting á vélinni sem tekur á móti hendir pakkanum áður en nokkuð les hann.

Hendingin á sér stað áður en nokkuð les pakkann

Upprunastaðfesting spyr einnar spurningar um hvern innkomandi pakka: ef þessi vél svaraði þeim uppruna, myndi svarið fara út um tengið sem pakkinn kom einmitt inn á? Þegar svarið er nei hendir kjarninn pakkanum við komuna. Hvorki sökkull né framsendingarleið sér hann nokkurn tíma, og þess vegna skráir upptaka á ganginum enn beiðni sem forritið fær aldrei.

Biðlarinn hér heldur 10.66.0.9 á ganginum sínum, og OpenVPN-þjónninn svarar á 192.168.80.10 innan forskeytis skrifstofunnar. Kollegi á 192.168.80.25 pingar göngufangið, svo beiðnin fer yfir netið, þjónninn beinir henni í ganginn, og hún berst á gangtengi biðlarans með upprunafang skrifstofunnar. Í leiðartöflu þeirrar vélar tilheyrir forskeyti skrifstofunnar Ethernet-tækinu, ekki ganginum. Staðfestingin ber saman komutengið og leiðina, finnur misræmi og hendir pakkanum, svo kolleginn sér algjört tap á meðan báðir endar tilkynna heilbrigðan gang.

Spegiláttin hefur sama form: þegar biðlarinn byrjar í átt að skrifstofunni getur svörum verið hent á skrifstofuhliðinni af sömu ástæðu. Viðgerð sem er staðfest í aðeins eina átt kemur venjulega aftur sem annað mál.

Sannið hið gildandi fyrirkomulag áður en þið snertið nokkurt sysctl

Lesið raungildin í stað þess að treysta sjálfgefnu dreifingar, því stillingin fyrir hvert tengi er aðeins helmingur ákvörðunarinnar. Gildandi fyrirkomulag er það hærra af tengisgildinu og gildinu all, svo núll á gangtenginu þýðir ekkert meðan all er einn. Ákvörðun strangrar stillingar er leiðarákvörðun, svo keyrið þá uppflettingu sem kjarninn keyrir og berið svar hennar saman við tengið sem pakkinn kom í raun inn á.

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

Endurtakið svo pingið og fylgist með villuteljaranum. Teljari sem hækkar við hlið beiðni sem upptakan sýnir þegar er undirskrift þessarar hendingar, ekki leiðar sem vantar. Kveikið á Mars-annálun á meðan þið eruð þar, svo kjarninn nefni upprunann og tengið sem hann hafnaði. Saman útiloka þau dulritunina, eldvegginn og vantað iroute sem skýringar.

Skrifið grunnlínuna niður áður en þið breytið nokkru: bæði gildin, tækið sem uppflettingin valdi og teljarann sem þið fylgdust með. Það er þessi skráning sem segir ykkur síðar hvort breytingin gerði það sem þið haldið.

Hvað hver rp_filter stilling tekur í raun við

Kjarninn birtir þrjú gildi fyrir hvert tengi, og þau eru ekki þrír blær einnar reglu. Núll slokknir á athuguninni. Einn er strangur og krefst þess að uppruninn sé leiðbeint til baka út um komutengið. Tveir er laus og krefst aðeins þess að einhver leið að upprunanum sé í töflunni, hvert sem hún vísar.

ValueNameAcceptsStill rejects
0offany source at allnothing on this check
1stricta source routed back out the arrival interfacea source whose route points elsewhere
2loosea source with any route in the tablea source with no route at all

Röðin sem skiptir máli hér er sú lausa, og það sem hún hafnar áfram. Fölsuð uppruni sem er leiðanleg hvar sem er í töflunni fer í gegn, á meðan uppruna án nokkurrar leiðar er enn hafnað. Á fartölvu er þetta þröngt eftirlát; á beini sem sendir umferð annarra er það breitt. Stillingin tilheyrir vélinni, svo sama talan ber ólíka þyngd á tveimur stöðum.

Hvort röðin er nauðsynleg fyrir þessa uppsetningu leiðir af töflunni en ekki af venju. Pakkinn er lögmætur og uppruni hans leiðanlegur, svo hin lausa tekur við honum en hin stranga ekki. Ekkert í málinu kallar á núll, og að velja núll myndi fjarlægja athugun sem kostar ekkert hér.

Veljið minnstu breytinguna sem fjarlægir tvíræðnina

Lausa stillingin er minnsta breytingin sem hentar, og hún er raunveruleg mildun á strangleika, ekki meinlaust rofi. Betri valkostur er til hvenær sem uppsetningin leyfir: fjarlægið skarann og tvíræðnin hverfur.

Þar sem forskeyti skrifstofunnar er aðeins nauðsynlegt um Ethernet, fjarlægið það úr leiðunum sem sniðið dregur og fangið verður aðgengilegt um eina leið. Þegar báðar leiðirnar verða í raun að vera til saman, festið upprunann og tækið með stefnureglu í stað þess að slaka á staðfestingunni á hverju tengi. Það heldur strangleika í síun fyrir allt annað á vélinni og skjalfestir undantekninguna þar sem næsti verkfræðingur mun leita hennar.

Hvaða leið sem þið veljið, skráið hana í sysctl drop-in en ekki í lifandi skipun. Stillið lyklana all og default saman, svo endurtenging geti ekki hljóðlega endurheimt stranga stillingu.

# /etc/sysctl.d/99-rp-filter.conf
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2
sysctl --system

Hverju laxstilltingin lætur frá sér, og hvar

Lausa stillingin hafnar enn uppruna sem engin leið næði til, og hættir að hafna fölsuðum uppruna sem verður fyrir tilviljun leiðanlegur. Á fartölvu er þetta þröngt eftirlát. Á tæki sem sendir umferð sem það á ekki er sama valið mun breiðara. Sama stillingin ber því tvær mjög ólíkar merkingar eftir því hvar hún keyrir.

Að slökkva athugunina algjörlega á vél sem sendir umferð fyrir aðra er eina viðgerðin sem forðast á. Núll hendir staðfestingunni sem lausa stillingin gætir varlega. Ef vélin sendir fyrir aðra, færið þá rök fyrir stefnuregluvalkostinum úr fyrri kafla í staðinn.

Skiljið eftir athugasemd sem nefnir tengin tvö, skarandi forskeytið og þá nákvæmu prófun sem nú tekst. Það er nytsamlegra fyrir næsta verkfræðing en lína sem segir að síuninni hafi verið breytt.

Tengdir greinar