نوي کانټینر لاګونه ډېری وخت د /proc/sys/net/ipv4/route/flush په اړه د Read-only file system شکایت سره پای ته رسېږي، او هغه کرښه د داسې تونل په غاړه اچول کېږي چې کېدای شي بشپړ روغ وي. د هغې شاته لیکنه د کرنل هغې ننوتنې ته نښه کوي چې د IPv4 لارو کیش له منځه تللو وروسته نور ګټور کار نه کوي. د کانټینر دننه /proc/sys یوازې لوستلو ته ماؤنټ کېږي، نو د هر ارزښت له رسېدو مخکې لارښوونه ردېږي او شل هغه ردونه چاپوي. فعال تونل کولای شي دا خبرداری تر هغه چاپ کړي چې زړه کرښه په سکریپټ کې پاتې وي، او --privileged لیکنه هېڅکله بامعنا نه کوي.

سکریپټ څه پاکول غوښتل

زړو اتصال سکریپټونو د کیش پاکولو سره پای ته رسېده: په کرنل کنټرول فایل کې ارزښت لیکل او له IPv4 سټیک څخه غوښتل چې خپل د لارښوونې کیش پرېږدي، تر څو نوې تونل لاره پرته له دې چې زړو ننوتنو د پای ته رسېدو انتظار وشي وټاکل شي. فایل د /proc/sys/net/ipv4/ لاندې پته درلوده، چې کار یې د لارښوونې امر پرځای د شل لارښوونه وګرځوله. کرنل 3.6 هغه کیش لېرې کړ، او له هغې سره د پاکولو د شتون لامل هم. په اوسني معلوماتي مسیر کې هېڅ شی د هغې لیکنې پورې تړلی نه دی.

ننوتنه پخپله د زړې یوازې-لیکلې فایل په توګه پاتې شوه، نو هغه سکریپټ چې لا هم په کې لیکي ریښتینې لارې او ریښتیني اجازې کتنې ته رسېږي. په هوسټ کې لیکنه بریالیتوب بېرته ورکوي او هېڅ نه بدلوي. په کانټینر کې هماغه لارښوونه د یوازې لوستلو /proc/sys سره ټکر کوي او د EROFS سره ناکامېږي، چې شل هغه د یوازې لوستلو فایلسیسټم پیغام په توګه چاپوي. په هغو کرنلونو کې چې لاره واقعاً نشته، عبارت No such file or directory کېږي، او پایله نه بدلېږي.

دواړه تېروتنې بېلې خبرې کوي، او توپیر روښانه ساتل ارزښت لري. Read-only file system مانا دا ده چې کرنل یوې ننوتنې ته ورسېد او لیکنه یې رد کړه؛ No such file or directory مانا دا ده چې ننوتنه تللې ده. هېڅ پیغام د تونل وسیلې، لارو یا د نومونو حل په اړه راپور نه ورکوي، نو هېڅ یو یې هم د ډېرو امتیازاتو توجیه نشي کولای.

ترتیب هغه شی دی چې پیغام سببي ښکاري. اتصال سکریپټ د پای پاکولو ته له رسېدو مخکې لارې نصبوي، د انټرفیس حالت بدلوي او د نومونو حل بیا لیکي، نو وروستې چاپ شوې کرښه هغه کرښه ده چې خلک یې نقل کوي، حتی کله چې هر مهم ګام بریالیتوب بېرته راوړی وي. هغه تونل چې جوړېږي او دا خبرداری چاپوي او ترافیک وړي، له پورتني میکانېزم سره سمون خوري.

له امتیاز اضافه کولو مخکې ماؤنټ او لاره وګورئ

درې لوستنې سطحې خبرداری له ریښتیني ناکامۍ بېلوي: آیا نصب شوی سکریپټ لا هم کرښه لري، /proc/sys څنګه ماؤنټ دی، او د اپلیکیشن ترافیک واقعاً چېرته ځي. هغوی په هماغه کانټینر نومفضا یا په هغه هوسټ کې چل کړئ چې خبرداری پکې ښکاره شو، ځکه چې په بېربطه ماشین کې کتنه بله پوښتنه ځوابوي.

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 ځواب له ښکارېدو کمزوری دی، ځکه موندنه د کرښې شتون ثابتوي، نه دا چې پرته له ساتنې ګرځي؛ ساتل شوی سکریپټ کولای شي لیکنه د هغې ساتنې دننه ولري چې هغه پرېږدي. findmnt -no OPTIONS /proc/sys ماؤنټ مستقیم حل کوي، او په هغه وتنې کې ro مانا دا ده چې له هغې نقطې لاندې هره لیکنه ردېږي، سکریپټ هر څه چې وکړي. بیا د لارې پلټنه ښیي چې اپلیکیشن ته اړین منزل د تونل انټرفیس له لارې حل کېږي که د کانټینر د ډیفالټ ګېټوې له لارې. هغه پلټنه چې ډیفالټ ګېټوې ټاکي مانا دا ده چې تونل پورته شو او هېڅ شی ورته نه لارښوونې کېږي، چې دا د لارښوونې ستونزه ده، د امتیاز نه.

سمون واقعاً له کومه راځي

ساتل شوی سمون په سکریپټ کې ژوند کوي، نه په کانټینر بېرغونو کې. upstream vpnc-script بدل کړی چې دا عملیه څنګه سمبالوي، نو په عکس کې دننه کاپي له اوسني upstream سره پرتله کړئ او د هغه پاکېټ یا عکس جوړولو له لارې تازه کړئ چې هغه برابروي. په روان کانټینر کې په لاس سم شوی فایل د بیاکتنې وړ نه دی او تر راتلونکي جوړولو نه پاتې کېږي.

--privileged مستند شوی چې ټولې وړتیاوې او پراخه وسیلې لاسرسی ورکوي، چې د هېڅ نه بدلونکو پیغام لپاره لوی امتیاز دی، نو که واقعاً یوه وړتیا نیمګړې ده هغه ونوموئ. له تازه کولو وروسته د لارې پلټنه تکرار کړئ او اپلیکیشن ته اجازه ورکړئ چې تونل وکاروي، ځکه چې ارام لاګ او فعاله اړیکه بېلې پایلې دي.

اړوندې مقالې