Fräsch Container-Loggen enden dacks op enger Read-only file system-Plainte iwwer /proc/sys/net/ipv4/route/flush, an déi Linn gëtt fir en Tunnel verantwortlech gemaach, dee komplett gesond ka sinn. D'Schreiwen dohannert riicht sech op en Kernel-Agang, deen näischt Nëtzleches méi mécht, zënter den IPv4-Routencache fort ass. An engem Container gëtt /proc/sys nëmme liest montéiert, dofir gëtt d'Ëmleedung ofgeleent, ier e Wäert ukommt, an d'Shell dréckt déi Oflehnung. En funktionéierenden Tunnel kann dës Warnung drécken, soulaang déi al Linn am Skript bleift, an --privileged mécht d'Schreiwen ni sënnvoll.

Wat d'Skript probéiert huet eidelzemaachen

Méi al Verbindungsskripte sinn mat enger Cache-Botz opgehalen: e Wäert an eng Kernel-Kontrolldatei schreiwen an den IPv4-Stack froen, säi Routing-Cache ewechzegeheien, sou datt eng nei Tunnelroute gewielt gëtt, ouni ze waarden, bis veralte Bäiträg ofleefen. D'Datei war ënner /proc/sys/net/ipv4/ adresséiert, wat d'Operatioun zu enger Shell-Ëmleedung an net zu engem Routingbefehl gemaach huet. De Kernel 3.6 huet dee Cache ewechgeholl, an domat de Grond fir d'Existenz vum Eidelmaachen. Näischt am aktuellen Datapad hänkt vun där Schreiwen of.

Den Agang selwer huet als al Schreiwe-nëmmen-Datei iwwerlieft, dofir erreecht e Skript, dat nach ëmmer dohinner schreift, e richtege Pad an eng richteg Berechtegungspréifung. Op engem Host gëtt d'Schreiwen Erfolleg zréck an ännert näischt. An engem Container trëfft déiselwecht Ëmleedung op e nëmme liest /proc/sys a feelt mat EROFS, wat d'Shell als Noriicht vum nëmme liest Dateisystem dréckt. Op Kernele wou de Pad wierklech feelt, gëtt d'Formuléierung No such file or directory, an d'Schlussfolgerung ännert sech net.

Déi zwou Feeler soen verschidden Saachen, an den Ënnerscheed ass d'Wäert, kloer ze halen. Read-only file system heescht, de Kernel huet en Agang erreecht an d'Schreiwen ofgeleent; No such file or directory heescht, den Agang ass fort. Keng vun de Noriichten informéiert iwwer den Tunnelapparat, d'Routen oder d'Nimmopstellung, dofir kann keng vun hinne méi Privilegien rechtfertegen.

Et ass d'Reiefolleg, déi d'Noriicht kausal ausgesäit. E Verbindungsskript installéiert Routen, ännert den Interface-Zoustand a schreift d'Nimmopstellung ëm, ier et d'Botz um Enn erreecht, dofir ass déi lescht gedréckt Linn déi Linn, déi d'Leit zitéieren, och wann all wichtege Schrëtt Erfolleg zréckginn huet. En Tunnel, deen opgebaut gëtt a Verkéier dréit, während en dës Warnung dréckt, passt genee zum uewe beschriwwene Mechanismus.

Préift de Mount an d'Route, ier Dir Privilegien dobäi setzt

Dräi Liesungen trennen eng kosmetesch Warnung vun engem richtege Feeler: ob d'installéiert Skript d'Linn nach dréit, wéi /proc/sys montéiert ass, a wou den Trafic vun der Applikatioun tatsächlech higeet. Féiert se am selwechten Container-Namensraum oder op dem Host aus, wou d'Warnung erschéngen ass, well eng Kontroll op enger onbetraffener Maschinn eng aner Fro beäntwert.

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

D'Äntwert vum grep ass méi schwaach wéi et ausgesäit, well en Treffer beweise kann, datt d'Linn do ass, awer net, datt se ouni Schutz leeft; en ënnerhalene Skript kann d'Schreiwen an enger Bewaachung droen, déi se iwwerspréngt. findmnt -no OPTIONS /proc/sys entscheet de Mount direkt, an ro an där Ausgab heescht, datt all Schreiwen ënner deem Punkt ofgeleent gëtt, egal wat d'Skript mécht. Duerno weist d'Routensich, ob d'Zil, dat d'Applikatioun brauch, iwwer den Tunnel-Interface oder iwwer de Standard-Gateway vum Container opgeléist gëtt. Eng Sich, déi de Standard-Gateway wielt, heescht, datt den Tunnel eropkomm ass an näischt dohinner routet, wat e Routingproblem ass an net e Privilegieproblem.

Wou d'Reparatur tatsächlech hierkënnt

Déi ënnerhalen Reparatur lieft am Skript an net an de Container-Flaggen. Den upstream vpnc-script huet geännert, wéi en dës Operatioun behandelt, dofir vergläicht d'Kopie am Image mat deem aktuellen Upstream a maacht en Update iwwer de Pak oder de Image-Build, deen en offréiert. Eng vun Hand geännert Datei an engem lafende Container ka net iwwerpréift ginn an iwwerlieft den nächste Build net.

--privileged ass dokumentéiert als Gewäert vun alle Fäegkeeten plus breede Gerätezougang, eng grouss Konzessioun fir eng Noriicht, déi näischt ännert, dofir nennt déi fehlend Fäegkeet, wann eng wierklech feelt. Nom Update widderhuelt d'Routensich a loosst eng Applikatioun den Tunnel benotzen, well e rouegt Log an eng funktionéierend Verbindung sinn ënnerschiddlech Resultater.

Ähnlech Artikelen