Diiwaannada weel cusub waxay inta badan ku dhammaadaan cabasho Read-only file system oo ku saabsan /proc/sys/net/ipv4/route/flush, oo xariiqdaas waxaa lagu eedeeyaa tunnel caafimaad qaba. Qoraalka ka dambeeya wuxuu bartilmaameedsadaa gelitaan kernel oo aan wax faa'iido leh samaynayn maadaama kaydka marinnada IPv4 uu lumay. Gudaha weelka /proc/sys waxaa lagu dhejiyaa akhris-kaliya, sidaas darteed dib-u-celinta waa la diidayaa ka hor inta aan qiime soo gaarin shellkuna wuxuu daabacaa diidmadaas. Tunnel shaqaynaya ayaa ku daabici kara digniintan inta xariiqda hore ay ku sii jirto skriptka, oo --privileged waligiis macne ma yeesho qoraalka.

Waxa uu skriptku isku dayay inuu tirtiro

Skriptyada isku-xirka hore waxay ku dhammaan jireen nadiifin kayd: ku qor qiime faylka kontoroolka kernel oo ka codso IPv4 stack inuu tuuro kaydkiisa marinnada, si marrin tunnel cusub loo doorto iyada oo aan la sugayn in gelitaannada duugoobay dhacaan. Faylka waxaa lagu cinwaanay /proc/sys/net/ipv4/ hoostiisa, taas oo hawsha ka dhigtay dib-u-celin shell halkii ay ahaan lahayd amarka marinnada. Kernel 3.6 wuxuu meesha ka saaray kaydkaas, iyo sidoo kale sababta tirtirku u jiray. Waxba ku jira waddada xogta hadda kama tiirsana qoraalkaas.

Gelitaanka laftiisu wuxuu ku sii noolaa sidii fayl duug ah oo qoraal-kaliya, sidaas darteed skript weli ku qoraya wuxuu gaaraa waddo dhab ah iyo hubin ogolaansho dhab ah. Martigeliyaha qoraalku wuxuu soo celiyaa guul oo waxba ma beddelo. Weelka dhexdiisa isla dib-u-celintaas waxay ku dhacdaa /proc/sys akhris-kaliya oo ku guuldareysta EROFS, taas oo shellku u daabaco fariinta nidaamka faylka ee akhris-kaliya. Kernelada ay waddadu runtii maqan tahay, odhaahdu waxay noqotaa No such file or directory, gabagabona ma beddelmo.

Laba qalad ayaa sheegaya waxyaalo kala duwan, kala duwanaantaana waa in si cad loo hayaa. Read-only file system waxay ka dhigan tahay in kernelku gaaray gelitaan oo diiday qoraalka; No such file or directory waxay ka dhigan tahay in gelitaanku tagay. Midkoodna fariin ma sheegto qalabka tunnelka, marinnada ama xallinta magacyada, sidaas darteed midkoodna ma caddayn karo mudnaan dheeraad ah.

Nidaamka ayaa fariinta u muujiya sabab u eg. Skript isku-xirku wuxuu rakibaa marinnada, beddelaa xaaladda interface-ka oo dib u qoraa xallinta magacyada ka hor inta uusan gaarin nadiifinta dhammaadka, sidaas darteed xariiqda ugu dambeysa ee la daabacay waa tan dadku soo xigtaan xitaa marka tallaabo kasta oo muhiim ah ay soo celiso guul. Tunnelka istaaga oo qaada taraafikada isagoo daabacaya digniintan wuxuu si sax ah ugu habboon yahay habka kor ku xusan.

Hubi isku-xirka iyo marinka ka hor inta aadan ku darin mudnaan

Saddex akhris ayaa kala saara digniin muuqaal ah iyo guuldarro dhab ah: in skriptka la rakibay weli qaado xariiqda, sida /proc/sys loo dhejiyay, iyo halka taraafikada codsigu runtii tagto. Ku wad isla magaca-bakhaarka weelka ama martigeliyaha ay digniintu ka muuqatay, sababtoo ah hubin mashiin aan xiriir la lahayn waxay ka jawaabtaa su'aal kale.

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

Jawaabta grep way ka daciifsan tahay sida ay u muuqato, sababtoo ah helitaanku wuxuu caddeeyaa in xariiqdu jirto, ma aha in ay ku shaqeyso iyada oo aan ilaalin. Skript la ilaaliyay ayaa qoraalka ku qaadi kara gudaha ilaalin dhaafta. findmnt -no OPTIONS /proc/sys si toos ah ayuu u xalliyaa isku-xirka, oo ro soo-saarkaas waxay ka dhigan tahay in qoraal kasta oo ka hooseeya bartaas la diiday, wax kasta oo skriptku sameeyo. Kadib raadinta marinku waxay muujinaysaa in meesha loo socdo ee codsigu u baahan yahay lagu xalliyo interface-ka tunnelka ama gateway-ga caadiga ah ee weelka. Raadin doorta gateway-ga caadiga ah waxay ka dhigan tahay in tunnelku kacay oo aan waxba lagu marin, taas oo ah dhibaato marrin, ma aha mudnaan.

Halka ay sixiddu runtii ka timaaddo

Sixidda la ilaaliyay waxay ku nooshahay skriptka, ma aha calaamadaha weelka. upstream vpnc-script wuxuu beddelay sida uu u maareeyo hawshan, sidaas darteed isbarbar dhig nuqulka sawirka dhexdiisa iyo upstream-ka hadda jira oo ku cusboonaysii xirmada ama dhismaha sawirka ee bixiya. Fayl gacan lagu tafatiran gudaha weel socda lama dib-eeggi karo oo ma noolaan doono dhismaha xiga.

--privileged waxaa lagu diiwaangeliyay inuu bixiyo dhammaan awoodaha iyo marin ballaaran oo qalabka, taas oo ah tanaasul weyn fariin aan waxba beddelin, sidaas darteed magacow awoodda maqan haddii runtii mid maqan tahay. Cusboonaysiinta kadib, ku celi raadinta marinka oo u ogolow codsi inuu isticmaalo tunnelka, sababtoo ah diiwaan aamusan iyo isku-xir shaqeeya waa natiijooyin kala duwan.

Maqaallo la xiriira