کله چې لینکس کانټریک نور ستاسو ملګری نه وي

کله چې لینکس کانټریک نور ستاسو ملګری نه وي

د اتصال تعقیب ("conntrack") د لینکس کرنل شبکې سټیک اصلي ځانګړتیا ده. دا کارنل ته اجازه ورکوي چې د ټولو منطقي شبکې اتصال یا جریان تعقیب وساتي او په دې توګه ټول هغه پاکټونه وپیژني چې هر جریان رامینځته کوي ترڅو دوی په ترتیب سره یوځای پروسس شي.

Conntrack د کرنل یو مهم ځانګړتیا ده چې په ځینو اساسي قضیو کې کارول کیږي:

  • NAT د کانټریک په معلوماتو تکیه کوي نو دا کولی شي د ورته جریان څخه ټول پاکټونه په مساوي ډول چلند وکړي. د مثال په توګه، کله چې یو پوډ د Kubernetes خدمت ته لاسرسی ومومي، د کیوب - پراکسي بار بیلنسر د کلستر دننه یو ځانګړي پوډ ته ټرافيک مستقیم کولو لپاره NAT کاروي. کانټریک ریکارډ کوي چې د ورکړل شوي پیوستون لپاره ، د IP خدمت ته ټولې کڅوړې باید ورته پوډ ته واستول شي ، او هغه پاکټونه چې د بیک انډ پوډ لخوا بیرته راستانه شوي باید بیرته هغه پوډ ته NAT شي چې غوښتنه یې شوې وه.
  • دولتي فایر والونه لکه کیلیکو د ارتباط له لارې د وایټ لیست "ځواب" ترافیک پورې معلوماتو باندې تکیه کوي. دا تاسو ته اجازه درکوي د شبکې پالیسي ولیکئ چې وايي "زما پوډ ته اجازه راکړئ چې د هر لرې پرتو IP پتې سره وصل شي" پرته له دې چې پالیسي ولیکئ ترڅو په واضح ډول د ځواب ترافیک اجازه ورکړي. (د دې پرته، تاسو باید خورا لږ خوندي "د هر IP څخه زما پوډ ته پاکټونو ته اجازه ورکړئ" قاعده اضافه کړئ.)

سربیره پردې ، کانټریک په عمومي ډول د سیسټم فعالیت ته وده ورکوي (د CPU مصرف او د کڅوړې ځنډ کمولو سره) ځکه چې یوازې په جریان کې لومړی پاکټ
باید د ټولې شبکې سټیک ته لاړ شي ترڅو معلومه کړي چې د دې سره څه وکړي. پوسټ وګورئ "د کیوب پراکسي حالتونو پرتله کول"د دې لپاره چې دا څنګه کار کوي یو مثال وګورئ.

په هرصورت، کانټریک خپل محدودیتونه لري ...

نو دا ټول چیرته غلط شول؟

د کانټریک جدول د تنظیم وړ اعظمي اندازه لري ، او که دا ډک شي ، اړیکې معمولا رد یا پریښودل پیل کیږي. په جدول کې د ډیری غوښتنلیکونو ترافیک اداره کولو لپاره کافي وړیا ځای شتون لري ، او دا به هیڅکله ستونزه نه وي. په هرصورت، یو څو سناریوګانې شتون لري په کوم کې چې تاسو غواړئ د کانټریک میز په کارولو غور وکړئ:

  • ترټولو څرګند قضیه دا ده که ستاسو سرور خورا لوی شمیر په ورته وخت کې فعال اړیکې اداره کړي. د مثال په توګه، که ستاسو د کانټریک میز د 128k ننوتلو لپاره ترتیب شوی وي، مګر تاسو> 128k همغږي اړیکې لرئ، تاسو به خامخا له ستونزې سره مخ شئ!
  • یو څه لږ څرګند قضیه: که ستاسو سرور په هره ثانیه کې خورا لوی شمیر اړیکې پروسس کړي. حتی که اړیکې لنډمهاله وي، دوی د ځینې مودې لپاره د لینکس لخوا څارل کیږي (120s په ډیفالټ). د مثال په توګه، که ستاسو د کانټریک جدول د 128k ننوتلو لپاره ترتیب شوی وي او تاسو هڅه کوئ چې په هره ثانیه کې 1100 اتصالونه اداره کړئ، دوی به د کانټریک میز له اندازې څخه ډیر وي حتی که اړیکې خورا لنډ مهاله وي (128k/120s = 1092 ارتباطات/s ).

د ایپس ډیری ځانګړي ډولونه شتون لري چې پدې کټګوریو کې راځي. برسیره پردې، که تاسو ډیری خراب لوبغاړي لرئ، د ډیری نیم خلاص اړیکو سره ستاسو د سرور کنټریک میز ډکول کیدای شي د خدماتو انکار (DOS) برید د یوې برخې په توګه وکارول شي. په دواړو حالتونو کې، کانټریک کولی شي ستاسو په سیسټم کې یو محدود خنډ شي. په ځینو حاالتو کې، د کانټریک جدول پیرامیټرونو تنظیم کول ممکن ستاسو اړتیاو پوره کولو لپاره کافي وي - د اندازې په زیاتولو یا د کانټریک وخت کمولو سره (مګر که تاسو دا غلط کوئ نو تاسو به له ډیرې ستونزې سره مخ شئ). د نورو قضیو لپاره به دا اړینه وي چې د تیریدونکي ترافیک لپاره کانټریک بای پاس کړئ.

اصلي مثال

راځئ چې یو ځانګړی مثال ورکړو: یو لوی SaaS چمتو کونکي چې موږ ورسره کار کاوه په کوربه کې یو شمیر میمکیچ سرورونه درلودل (نه مجازی ماشینونه) ، چې هر یو یې په هره ثانیه کې د 50K+ لنډ مهاله اړیکې پروسس کوي.

دوی د کانټریک ترتیب سره تجربه وکړه، د میز اندازې زیاتول او د تعقیب وخت کمول، مګر ترتیب د اعتبار وړ نه و، د RAM مصرف د پام وړ زیات شو، کوم چې یوه ستونزه وه (د GBytes په ترتیب کې!)، او اړیکې دومره لنډې وې چې کانټریک نه و. د دې معمول فعالیت ګټه رامینځته کړئ (د مصرف CPU یا د کڅوړې ځنډول).

دوی د بدیل په توګه کالیکو ته مخه کړه. د کالیکو شبکې تګلارې تاسو ته اجازه درکوي چې د ځانګړي ډول ټرافیک لپاره کانټریک ونه کاروئ (د doNotTrack پالیسۍ اختیار په کارولو سره). دې دوی ته د فعالیت کچه ​​​​ورکړه چې دوی ورته اړتیا لري، او د کالیکو لخوا چمتو شوي امنیت اضافه کچه.

د بای پاس کانټریک لپاره به تاسو څومره اوږدوالی ته لاړشئ؟

  • د شبکې تګلارې باید په عمومي ډول سمې وي. د SaaS چمتو کونکي په قضیه کې: د دوی غوښتنلیکونه په خوندي زون کې تیریږي او له همدې امله ، د شبکې پالیسي په کارولو سره ، دوی کولی شي د نورو ځانګړي غوښتنلیکونو څخه ټرافيک ویټ لیست کړي چې memcached ته د لاسرسي اجازه ورکړل شوې.
  • د نه تعقیبولو پالیسي د پیوستون سمت په پام کې نه نیسي. په دې توګه، که د میمکیچ سرور هیک شوی وي، تاسو کولی شئ په تیوریکي توګه هڅه وکړئ چې د میمکیچ شوي کوم مشتریانو سره وصل شئ، تر هغه چې دا د سم سرچینې پورټ کاروي. که څه هم، که تاسو د خپلو memcached مراجعینو لپاره د شبکې پالیسي په سمه توګه تعریف کړې وي، نو بیا د دې ارتباط هڅې به بیا هم د پیرودونکي لوري رد شي.
  • د نه تعقیب کولو پالیسي په هر پاکټ کې پلي کیږي، د عادي پالیسیو په مقابل کې، کوم چې یوازې په جریان کې په لومړي کڅوړه کې پلي کیږي. دا کولی شي په هر پاکټ کې د CPU مصرف زیات کړي ځکه چې پالیسي باید د هرې کڅوړې لپاره پلي شي. مګر د لنډ مهاله اړیکو لپاره، دا لګښت د کانټریک پروسس کولو لپاره د سرچینو مصرف کمولو سره متوازن دی. د مثال په توګه، د SaaS چمتو کونکي په قضیه کې، د هر پیکټ لپاره د کڅوړو شمیر خورا کوچنی و، نو د CPU اضافي مصرف کله چې په هر پاکټ کې د پالیسیو پلي کول توجیه شوي.

راځئ چې ازموینه پیل کړو

موږ ازموینه په یو واحد پوډ کې د میمکیچ شوي سرور او ډیری میمکیچ شوي پیرودونکي پوډونو سره په لیرې پرتو نوډونو کې پرمخ وړې ترڅو موږ وکولی شو په یوه ثانیه کې خورا لوی شمیر اړیکې پرمخ یوسو. د memcached سرور پوډ سره سرور په کانټریک جدول کې 8 کورونه او 512k ننوتل درلودل (د کوربه لپاره د معیاري ترتیب شوي میز اندازه).
موږ تر منځ د فعالیت توپیر اندازه کړ: د شبکې پالیسي نشته؛ د منظم کالیکو پالیسۍ سره؛ او کیلیکو د نه تعقیبولو پالیسي.

د لومړۍ ازموینې لپاره، موږ په هر ثانیه کې د اړیکو شمیر 4.000 ته ټاکلی، نو موږ کولی شو د CPU مصرف کې توپیر باندې تمرکز وکړو. د نه پالیسي او منظمې تګلارې تر منځ کوم مهم توپیر نه و، مګر د CPU مصرف شاوخوا 20٪ زیات شوی:

کله چې لینکس کانټریک نور ستاسو ملګری نه وي

په دویمه ازموینه کې، موږ څومره پیوستونونه پیل کړل څومره چې زموږ پیرودونکي کولی شي په هره ثانیه کې د اتصالاتو اعظمي شمیر تولید کړي او اندازه کړي چې زموږ میمکیچ سرور یې اداره کولی شي. لکه څنګه چې تمه کیده، د "نه پالیسي" او "منظمه پالیسي" قضیې دواړه په یوه ثانیه کې د 4,000 اتصالاتو حد ته رسیدلي (512k / 120s = 4,369 اړیکې/s). د نه تعقیب کولو پالیسي سره، زموږ پیرودونکي په هره ثانیه کې 60,000 اړیکې پرته له کومې ستونزې لیږلي. موږ ډاډه یو چې موږ کولی شو دا شمیره د نورو پیرودونکو په اضافه کولو سره زیاته کړو، مګر موږ احساس کوو چې دا شمیرې د دې مقالې د څرګندولو لپاره لا دمخه کافي دي!

کله چې لینکس کانټریک نور ستاسو ملګری نه وي

پایلې

کانټریک یو مهم دانه ځانګړتیا ده. هغه خپله دنده په بشپړ ډول ترسره کوي. دا ډیری وختونه د کلیدي سیسټم اجزاو لخوا کارول کیږي. په هرصورت، په ځینو مشخصو سناریوګانو کې، د کنټریک له امله ګنډل د نورمال ګټو څخه ډیر دي چې دا چمتو کوي. په دې سناریو کې، د کالیکو شبکې تګلارې د شبکې امنیت زیاتولو په وخت کې د کانټریک کارول په انتخابي توګه غیر فعالولو لپاره کارول کیدی شي. د نورو ټولو ټرافیک لپاره، کنټریک ستاسو ملګري ته دوام ورکوي!

زموږ په بلاګ کې نورې مقالې هم ولولئ:

سرچینه: www.habr.com

Add a comment