د OpenVPN حساب لپاره میاشتنۍ د معلوماتو کوټه چېرته ځای لري
هغه کوټه چې په هر بیا وصلېدنې کې بیا تنظیمېږي حد نه دی. کارونه د حساب له مخې تعقیب کړئ، هر د بایټ توپیر یو ځل واخلم او کله چې کوټه پای ته ورسیږي داخله بنده کړئ.
هغه کوټه چې هر کله تونل بیا وصل شي بیا تنظیمېږي، حد نه دی، او دا هغه څه دي چې تاسو یې ترلاسه کوئ کله چې د بایټ شمېرونکی پر VPN سرور وتړل شي پرته له دې چې د دوامداره حالت لپاره ځای وي۔ شمېرونکی د یوې ناستې پورې اړه لري؛ کوټه د یو کس یا د وسیلې تړون پورې اړه لري۔ د دې ځانګړتیا ټول سختي له همدې ناسم مطابقت څخه راځي، نو لاندې کتنې د دې په اړه دي چې حالت چېرته اوسیږي او کومه طبقه اجازه لري چې پریکړه وکړي۔
کوټه حساب ته وتړئ، نه تونل ته
د کوټې موضوع په نومولو سره پیل وکړئ۔ یو کس کولای شي د درې وسیلو سندونه ولري، او له دوی څخه هیڅ یو یې هم باید خپلواکه میاشتنی بودیجه ترلاسه نه کړي یوازې ځکه چې دوی جلا تصدیق کوي۔ هغه ثابت حساب پېژندونکی چې بیا وصلېدنې، نوي تونل پتې او دویمې دروازې ته لېږد زغملای شي، یوازینی لنګر دی چې کوټه یې کارولی شي۔ د سند عام نوم یوازې هغه وخت د دې کیلي په توګه کار کوي کله چې ستاسو د صادرولو پالیسي هر نوم لپاره یو حساب تضمین کړي۔
ټاکل شوې تونل پته هیڅکله ځواب نه دی۔ پتې بیا کارول کیږي، حوضونه شریک دي، او یو حساب کولای شي په هماغه دقیقه کې پر دوو دروازو دوه ځله څرګند شي۔ که کتاب په پته ولاړ وي، د ټانکي بیا ډکولو لپاره جلا کېدل او بیا وصلېدل بس دي۔
د حساب وړتیا لپاره په هرې ناستې کې بس څه ثبت کړئ: حساب، د بیل ورکولو موده، د دروازې نمونه، د ناستې پېژندنه، وروستي کتل شوي شمېرونکي او تصویب شوې ټوله۔ د ناستې پېژندنې کې د ډیمون د پیل نسل شامل کړئ، ځکه چې بیا پیل شوی سرور د پیرودونکو ID بیا کاروي او ساده مطابقت به پخوانۍ بنسټیزه کرښه میراث کړي۔
واحد، لوری او د بیا تنظیم پوله وټاکئ
په لیکلي ډول باید څلور تعریفونه روښانه شي مخکې له دې چې هر ډول راټولول پیل شي۔ ایا کوټه هغه بایټ شمېري چې پیرودونکی یې لېږي، هغه چې ترلاسه کوي، که د دواړو مجموعه؟ ایا یو ګیګابایټ 10^9 بایټ دی که 2^30؟ په کومه سیمهایزه ساعت او په کومه وخت سیمه کې دوره اوړي؟ او شمېرونکی دقیقاً څه اندازه کوي، په داسې حال کې چې د تونل اضافي لګښت او بیا لېږدونه شامل دي خو د اپلیکیشن د فایل اندازه او د عرضه کوونکي بیل شامل نه دي؟
له دې انتخابونو څخه هیڅ یو هم غلط نه دی، خو تطبیق او هغه شمېره چې پیرودونکی یې ویني باید سره سمون ولري۔ د یوې سیستم دوه نیمې برخې چې په GiB یا په هغه بدلون کې چې د محلي وخت پر ځای د UTC په نیمه شپه کې پېښېږي سره اختلاف ولري، دقیقاً هغه ډول ټکټ جوړوي چې په ټوله کوټه باور کمزوری کوي۔
د بایټ ټولې په یوه اخیستل شوې توپیر بدلې کړئ
د مدیریت انټرفیس دورهای BYTECOUNT_CLI کرښې راپور کوي چې د پیرودونکي ID او په هر لوري کې راټول شوي بایټ ټولې لېږدوي، او bytecount امر ټاکي چې هغه څو ځله رارسي۔ د سرور له نظره، ترلاسه شوې شمېره هغه بایټ شمېري چې پیرودونکي لېږلي او لېږل شوې شمېره هغه بایټ شمېري چې هغه ته رسول شوي۔ وقفه داسې وټاکئ چې کتاب یې هضم کړای شي؛ ډېره لنډه وقفه هغه دقت اخلي چې واقعاً یې نه ترلاسه کوئ۔
یو محدودیت ټول ډیزاین جوړوي: د مدیریت ساکټ یوازې یو کنټرول اړیکه مني۔ د څارنې صادروونکی، یو GUI او ستاسو کنټرولر نشي کولای هر یو خپله خلاصه کړي۔ پریکړه وکړئ چې کوم پروسه د کانال مالک ده او نورو ته اجازه ورکړئ چې له هغې حالت ولولي، ځکه چې دا انټرفیس اداري کړنې ورکوي او په هر حال باید له کوربه بهر نه ښکاره شي۔
rx_delta = sample.rx_now - session.prev_rx
tx_delta = sample.tx_now - session.prev_tx
charge = rx_delta + tx_delta
# same transaction:
ledger.total += charge
session.prev_rx, session.prev_tx = sample.rx_now, sample.tx_now
نوي بنسټیزې کرښې او د کارونې زیاتوالی یوځای تصویب کړئ، ترڅو د نمونې بیا غږول دوه ځله اخیستلو پر ځای هیڅ ونه اخلي۔ هغه شمېرونکی چې شاته ځي سیګنال دی، پور نه: دا معنی لري چې ناسته بدله شوې یا ډیمون بیا پیل شوی، او سم ځواب دا دی چې د ناستې پېژندنه سره سمه کړئ نه دا چې منفي اندازه کریډیټ کړئ۔
د جلا کېدو لاره ورته پاملرنې ته اړتیا لري۔ که وروستنی پېښه د ناستې پای ټولې ولېږدوي، یوازې له وروستي تصویب شوي نمونې څخه توپیر واخلئ۔ د بشپړې ټولې اضافه کول وروسته له دې چې دورهای نمونه اخیستنه لا دمخه اخیستل شوې، په کورني کوټه سیستمونو کې ترټولو عامه دوهګونه شمېرنه ده۔ هغه ناستې چې د دورې پوله تېروي هم قاعدې ته اړتیا لري، ځکه چې یوه وروستنۍ ټوله د دې په اړه هیڅ معلومات نه لېږدوي چې بایټ کله نیمه شپه تېره کړه۔
پای ته رسېدل باید داخله رد کړي، نه یوازې تونل ووژني
کله چې یو حساب خپل حد ته ورسیږي، دوه کارونه باید پېښ شي: موجودې ناستې پای ته ورسیږي او نوي رد شي۔ د مدیریت پروتوکول د پیرودونکي ID له مخې client-kill وړاندې کوي، کوم چې لومړی نیمګړتیا حل کوي هغه وخت چې تاسو د حساب هر ژوندې ناسته شمار کړئ نه دا چې یوه پته چې ناڅاپه مو ولیده ووژنئ۔
دویمه نیمه هغه ځای دی چې د کوټې ډیزاینونه پکې ناکامېږي۔ یوازې وژل د پیرودونکي د بیا وصلېدنې لوپ سره سیالي ده، کوم چې به په څو ثانیو کې په خوښۍ سره بېرته راشي۔ داخله باید له شریک کتاب سره مشوره وکړي، او په څو دروازو ځای پر ځای کولو کې هغه کتنه نشي کولای چې د هر ماشین فایل وي۔ هر هغه نمونه چې ننوتل منلی شي باید هماغه پای ته رسېدلې حالت وویني۔
د ټوکن پر بنسټ بیا وصلېدنې خپلې ازموینې ته اړتیا لري۔ OpenVPN 2.6 کولای شي د auth-gen-token سره د ناستې ټوکن په داخل کې تصدیق کړي، او هغه بهرنۍ تصدیق غوښتنه پرېږدي چې ستاسو کنټرولر د حد د تطبیق لپاره کاروله۔ نو هغه ټوکن چې لا هم معتبر دی هویت ثابتوي، نه پاتې کوټه، او هر نوی پیرودونکی نمونه باید لا هم له کتاب سره مشوره وکړي۔ که تاسو د دې پر ځای management-client-auth فعال کړئ، کنټرولر پخپله تصدیق کوونکی کیږي او د ناستې حالت د تحلیل او د پای ته رسېدلو یا ناسم ټوکنونو د رد کولو مکلفیت میراث کوي۔
هغه زیاتوالی ومنئ چې نمونه اخیستنه یې جوړوي
دورهای څارنه او جلا کېدل تاسو ته د پېژندل شوې زغم سره نمونه شوې کوټه درکوي۔ پیرودونکی کولای شي نږدې یوه راپور ورکولو وقفه او هغه وخت چې کنټرولر ته د عمل لپاره اړین دی زیات شي، او پر یو حساب هممهاله ناستې هغه کړکۍ څو برابره کوي۔ دا په انټرفیس کې ووایاست پر دې پر ځای چې د وروستي بایټ دقیق پرېکول اعلان کړئ چې تاسو یې نه شئ کولای برابر کړئ۔
ریښتینی کلک سرحد بله انجنیري ستونزه ده: په لېږدونکې لاره کې تطبیق، چې په ټولو ناستو کې هماغه حساب ته تړل شوی وي۔ شمېرونکي ګړندي لوستل هماغه خبره نه ده، او هغه پیرودونکي ته چې یوازې نور تونلونه خلاصوي مقاومت نه کوي۔
مخکې له خپرېدنې، هغه منلو قضیې چل کړئ چې ساده تطبیقونه ماتوي: تکراري بیا وصلېدنې، په یو وخت کې دوه وسیلې، د کنټرولر او دروازې بیا پیل، ورک شوې جلا کېدنې پېښه، په ناستې منځ کې دوره بدلون، او له پای ته رسېدو سمدلاسه وروسته د ټوکن بیا وصلېدنې هڅه۔ بیا د حسابي وقفو لپاره د ناکامۍ طریقه وټاکئ۔ دوامداره کتاب ستاسو ثبت شوې کارونه ساتي؛ هغه څارنې چې هیڅکله نه دي راغلې بیا ژوندي کولای نه شي، او پیرودونکی وړ دی چې پوه شي په دې دوو حالتونو کې په کوم کې دی۔