Ný gámaskrár enda oft á kvörtun Read-only file system um /proc/sys/net/ipv4/route/flush, og sú lína fær sökina fyrir göng sem geta verið fullkomlega heilbrigð. Skrifin þar að baki miða á kjarnafærslu sem gerir ekkert gagnlegt lengur þar sem IPv4-leiðarskyndiminnið er horfið. Inni í gámi er /proc/sys festur leshamlaður, þannig að tilvísuninni er hafnað áður en nokkurt gildi lendir og skelinn prentar þeirri höfnun. Virkt göng geta prentað þessa viðvörun svo lengi sem gamla línan er áfram í skránni, og --privileged gerir skrifin aldrei merkingarbær.

Hvað skráin reyndi að hreinsa

Eldri tengiskrár enduðu á skyndiminnishreinsun: skrifa gildi í stýriskrá kjarnans og biðja IPv4-stakkinn að henda leiðarskyndiminni sínu, svo ný leið ganganna yrði valin án þess að bíða eftir að úreltar færslur féllu úr gildi. Skráin var áfangið undir /proc/sys/net/ipv4/, sem gerði aðgerðina að skeljartilvísun frekar en leiðskipun. Kjarni 3.6 fjarlægði það skyndiminni, og með því ástæðuna fyrir tilvist hreinsunarinnar. Ekkert í núverandi gagnaleið er háð þessum skrifum.

Færslan sjálf lifði sem gömul skrifhamlandi skrá, svo skrá sem enn skrifar í hana nær raunverulegri slóð og raunverulegri heimildaprófun. Á hýsli skilar skrifið árangri og breytir engu. Í gámi rekst sama tilvísunin á leshamlaðan /proc/sys og mistekst með EROFS, sem skelin prentar sem skilaboð leshamlaðs skráarkerfis. Á kjörnum þar sem slóðin vantar í raun verður orðalagið No such file or directory, og niðurstaðan breytist ekki.

Villurnar tvær segja ólíka hluti, og það er þess virði að halda muninum skýrum. Read-only file system þýðir að kjarninn náði færslu og hafnaði skrifunum; No such file or directory þýðir að færslan er farin. Ekkert skilaboðanna greinir frá göngutækinu, leiðunum eða nafnupplausn, svo ekkert þeirra getur réttlætt meiri heimildir.

Röðin er það sem lætur skilaboðin líta orsakaleg út. Tengiskrá setur upp leiðir, breytir stöðu viðmóts og endurskrifar nafnupplausn áður en hún nær hreinsuninni í lokin, svo síðasta prentaða línan er línan sem fólk vitnar í, jafnvel þegar hvert mikilvægt skref skilaði árangri. Göng sem koma upp og flytja umferð meðan þau prenta þessa viðvörun passar nákvæmlega við fyrrnefnda virkni.

Athugaðu uppsetninguna og leiðina áður en heimild er bætt við

Þrjár lestrar aðskilja snyrtilega viðvörun frá raunverulegri bilun: hvort uppsetta skráin beri línuna enn, hvernig /proc/sys er festur og hvert umferð forritsins fer í raun. Keyrðu þær í sama nafnrými gámsins eða á hýslinum þar sem viðvörunin birtist, því athugun á ótengdri vél svarar annarri spurningu.

grep -n 'ipv4/route/flush' /usr/share/vpnc-scripts/vpnc-script
findmnt -no OPTIONS /proc/sys
ip -4 route get 10.20.5.10

Svar grep er veikara en það virðist, því fundur sannar að línan sé til staðar, ekki að hún keyri án varnar; viðhaldið skrá getur borið skrifin inni í vörð sem sleppir henni. findmnt -no OPTIONS /proc/sys leysir uppsetninguna beint, og ro í þeirri útkomu þýðir að hverju skrifi undir þeim punkti er hafnað, hvað sem skráin gerir. Leiðaruppflettingin sýnir þá hvort áfangastaðurinn sem forritið þarf leysist um gönguviðmótið eða um sjálfgefna gátt gámsins. Uppfletting sem velur sjálfgefnu gáttina þýðir að göngin komu upp og ekkert leiðar inn í þau, sem er leiðarvandamál en ekki heimildavandamál.

Hvaðan lagfæringin kemur í raun

Viðhalda lagfæringin býr í skránni en ekki í gámastýrimerkjunum. upstream vpnc-script hefur breytt því hvernig það meðhöndlar þessa aðgerð, svo berðu saman afritið inni í myndinni við núverandi upstream og uppfærðu gegnum pakkann eða myndbyggingu sem útvegar það. Handbreytt skrá inni í keyrandi gámi er ekki yfirfarin og lifir ekki næstu byggingu.

--privileged er skjalfest sem veitir allar getu auk víðtæks aðgangs að tækjum, stór eftirgjöf fyrir skilaboð sem breyta engu, svo nefndu getuna sem vantar ef ein vantar í raun. Eftir uppfærsluna skaltu endurtaka leiðaruppflettinguna og leyfa forriti að nota göngin, því hljóðlát skrá og virk tenging eru aðskildar niðurstöður.

Tengdir greinar