Värsked konteinerilogi read lõpevad sageli Read-only file system kaebusega /proc/sys/net/ipv4/route/flush kohta ja seda rida süüdistatakse tunnelis, mis võib olla täiesti terve. Selle taga olev kirjutus tabab tuuma kirjet, mis ei tee enam midagi kasulikku, kuna IPv4 marsruudivahemälu on kadunud. Konteineri sees kinnitatakse /proc/sys kirjutuskaitstuna, seega lükatakse ümbersuunamine tagasi enne, kui ükski väärtus kohale jõuab, ja kest trükib selle tagasilükkamise. Töötav tunnel võib seda hoiatust trükkida seni, kuni vana rida skriptis püsib, ja --privileged ei tee kirjutust kunagi mõtestatuks.

Mida skript puhastada üritas

Vanemad ühendusskriptid lõppesid vahemälu puhastamisega: kirjuta väärtus tuuma juhtfaili ja palu IPv4 virnal oma marsruutimisvahemälu maha visata, et uus tunnelimarsruut valitaks ilma aegunud kirjete kadumist ootamata. Failile viidati /proc/sys/net/ipv4/ all, mis tegi toimingust kesta ümbersuunamise, mitte marsruutimiskäsu. Tuuma 3.6 eemaldas selle vahemälu ja koos sellega puhastamise olemasolu põhjuse. Midagi praeguses andmeteekonnas ei sõltu sellest kirjutusest.

Kirje ise jäi alles vana ainult-kirjutamise failina, nii et skript, mis sinna ikka kirjutab, jõuab päris teele ja päris õiguste kontrollini. Hostis tagastab kirjutus õnnestumise ega muuda midagi. Konteineris tabab sama ümbersuunamine kirjutuskaitstud /proc/sys ja ebaõnnestub veaga EROFS, mille kest trükib kirjutuskaitstud failisüsteemi teates. Tuumades, kus tee tõesti puudub, muutub sõnastus No such file or directory, ja järeldus ei muutu.

Kaks viga ütlevad erinevat asja ja vahe tasub selgena hoida. Read-only file system tähendab, et tuum jõudis kirjeni ja keeldus kirjutusest; No such file or directory tähendab, et kirje on kadunud. Kumbki teade ei räägi tunneliseadmest, marsruutidest ega nimelahendusest, seega ei saa kumbki õigustada rohkem õigusi.

Just järjekord paneb teate põhjuslikuna näima. Ühendusskript paigaldab marsruudid, muudab liidese olekut ja kirjutab nimelahenduse ümber enne lõpus oleva puhastamiseni jõudmist, seega on viimane trükitud rida see, mida inimesed tsiteerivad, isegi kui iga oluline samm tagastas õnnestumise. Tunnel, mis seatakse üles ja kannab liiklust seda hoiatust trükkides, vastab täpselt ülaltoodud mehhanismile.

Kontrollige kinnitust ja marsruuti enne õiguste lisamist

Kolm lugemist eristavad kosmeetilist hoiatust tõelisest rikkest: kas paigaldatud skript kannab rida veel edasi, kuidas on kinnitatud /proc/sys ja kuhu rakenduse liiklus tegelikult läheb. Käivitage need samas konteineri nimeruumis või hostis, kus hoiatus ilmus, sest kontroll seotud mittemasinal vastab teisele küsimusele.

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

grep vastus on nõrgem, kui paistab, sest tabamus tõestab, et rida on olemas, mitte et see jookseb kaitseta; hooldatud skript võib kirjutust kanda valvuri sees, mis selle vahele jätab. findmnt -no OPTIONS /proc/sys lahendab kinnituse otse ja ro selles väljundis tähendab, et iga kirjutus sellest punktist allpool lükatakse tagasi, ükskõik mida skript teeb. Seejärel näitab marsruudiotsing, kas rakendusele vajalik sihtkoht lahendatakse tunnelliidese või konteineri vaikevärava kaudu. Otsing, mis valib vaikevärava, tähendab, et tunnel tõusis ja miski ei marsruudi sellesse, mis on marsruutimise, mitte õiguste probleem.

Kust parandus tegelikult tuleb

Hooldatud parandus elab skriptis, mitte konteineri lippudes. upstream vpnc-script on muutnud, kuidas see toimingut käsitleb, seega võrrelge pildi sees olevat koopiat praeguse upstreamiga ja uuendage selle paketi või pildi ehituse kaudu, mis selle tarnib. Käsitsi muudetud fail jooksvas konteineris ei ole ülevaatatav ja ei ela järgmist ehitust üle.

--privileged on dokumenteeritud kõigi võimaluste ja laia seadmejuurdepääsu andmisena, suur järeleandmine teate eest, mis midagi ei muuda, seega nimetage pigem puuduv võimalus, kui mõni tõesti puudub. Pärast uuendust korrake marsruudiotsingut ja laske rakendusel tunnelit kasutada, sest vaikne logi ja töötav ühendus on eraldi tulemused.

Seotud artiklid