OpenVPN پخش multicast را به هر کلاینت میفرستد، نه به مشترکان
سرور فضای کاربر بسته گروه را برای هر کلاینت کپی میکند، نه برای هر مشترک. پخش را بودجهبندی کنید، با شمارندههای تونل اثباتش کنید و سپس دامنه طراحی را محدود کنید.
"از multicast پشتیبانی میکند" به یک پرسش پروتکلی پاسخ میدهد و پرسش ظرفیت را دستنخورده میگذارد. آنچه از نظر عملیاتی مهم است این است که سرور برای یک بسته گروه چند نسخه میفرستد و کدام تونلها آنها را حمل میکنند. یک برنامه مشترکشده که جریان را دریافت میکند فقط ثابت میکند تحویل جایی کار میکند. ثابت نمیکند که کلاینتهای بیعلاقه از پهنای باند در امان ماندهاند.
سه پرسش درون یک ادعای ویژگی
عضویت در گروه میپرسد آیا گیرنده به گروه پیوسته است. تحویل از طریق تونل میپرسد آیا بسته اصلاً از تونل گذشته است. سیاست تکرار میپرسد سرور چند نسخه ساخته و به چه کسی داده است. بیانیه یک فروشنده میتواند درباره اولی درست و درباره سومی ساکت باشد، و هزینه همانجاست.
هنگام اندازهگیری یک لینک آنها را جدا نگه دارید. تنها پرسش سوم بودجه خروجی را در سمت سرور تعیین میکند.
سرور فضای کاربر با بسته گروه چه میکند
در سرور سنتی فضای کاربر OpenVPN 2.6، بسته پخش یا multicast که میرسد در مسیر ورودی TUN/TAP طبقهبندی میشود و به روال پخش عمومی سپرده میشود، نه به جستوجوی هر گروه. آن روال نمونههای کلاینت را میپیماید، فرستنده و هر نمونه متوقفشده را رد میکند، بررسی VLAN را در جایی که پیکربندی شده اعمال میکند و برای هر کلاینت باقیمانده یک نسخه در صف میگذارد. هیچ گامی در آن حلقه جدول عضویت را بررسی نمیکند. این تکرار به سبک پخش است و کل سازوکار همین است.
این را ویژگی آن مسیر کد بدانید، نه قانونی جهانی. مسیرهای داده شتابداده، پیادهسازیهای دیگر و نسخههای متفاوت ممکن است رفتار دیگری داشته باشند، و هیچیک از اینها TAP را الزام یا تعمیر نمیکند.
پیش از هر اندازهگیری، نسخهها را بودجهبندی کنید
نرخ بار مفید را بگیرید و در تعداد کلاینتهای واجد شرایط ضرب کنید. جریانی که یک مگابیت بر ثانیه به بیست کلاینت میفرستد، بیست مگابیت بر ثانیه بار مفید تولید میکند که سرور را ترک میکند، پیش از کپسولهسازی، بازفرست و هر سرباری به ازای هر کلاینت. این حساب یک بودجه است، نه اندازهگیری استقرار شما.
ip -s link show tun0شمارنده بایتهای ارسال را پیش و پس از یک بازه ثابت با یک فرستنده شناختهشده فعال بخوانید. بر بازه تقسیم کنید و با نرخ بار مفید ضربشده در تعداد کلاینت مقایسه کنید. عددی نزدیک به نرخ یک جریان یعنی تکرار محدود است؛ عددی نزدیک به نرخ ضربشده یعنی هر کلاینت نسخهای دریافت میکند.
شمارنده ترافیک تونل خودتان را هم شامل میشود، پس پنجره آزمایش را کوتاه و میزبان را در غیر این صورت ساکت نگه دارید. دقت کمتر از مرتبه بزرگی اهمیت دارد، و همین تمام چیزی است که برای تشخیص یک نسخه از بیست نسخه نیاز دارید.
آزمایش دو کلاینتی که پرسش دامنه را روشن میکند
یک کلاینت را وصل کنید که باید جریان را دریافت کند و دومی را که نباید. فرستنده را راه بیندازید، سپس برای همان بازه شمارندههای تونل کلاینت دوم را ببینید. رشد در کلاینت دوم شاهد مستقیم تکرار گسترده است، هر چه فهرست ویژگیها گفته باشد.
ضبط را به نشانی گروه فیلتر کنید تا ترافیک نامرتبط نخوانید، و آن را به رابط تونل محدود کنید. ضبط رابط فیزیکی روی میزبان شلوغ فایلی میسازد که هیچکس نمیتواند تفسیرش کند و ممکن است دادههای کاربری را نگه دارد که قصد جمعآوریشان را نداشتید.
سپس نقشها را برعکس کنید. اگر نتیجه به جای گروه، گیرنده را دنبال کند، شما با چیزی روبهرو هستید که عضویت را در نظر میگیرد، و فرض پیشین به نفع شما نادرست بوده است.
برگزیدن طراحی محدود به جای برداشتن محدودیتها
وقتی پخش بیش از حد گسترده است، راهحل یک ترتیب توزیع محدود و پشتیبانیشده است، نه حذف همه کنترلهایی که دارید. گزینهها شامل نزدیککردن نقطه توزیع به گیرندهها، استفاده از مدل اشتراک مخصوص منبع که هویت منبع را همراه گروه حمل میکند، یا تقسیم جریان است تا سایتهای بیعلاقه هرگز روی یک مرز توزیع ننشینند.
هویت منبع و گروه را از این واقعیت صرف که مقصد multicast است جدا نگه دارید. گیرندهای که گروه را میشناسد ولی منبع را نه، مشترکی متفاوت از کسی است که کانال مشخصی خواسته است. درهمآمیختن این دو، برنامهریزی ظرفیت بعدی را به حدس تبدیل میکند.
مدل کانال multicast مخصوص منبع مرجع این تمایز است. هر طراحی که انتخاب کنید، مجموعه همتایان واجد شرایط، مالک تکرار و شمارندهای را که دفعه بعد میخوانید بنویسید؛ همان ثبت است که شگفتی پهنای باند را به هزینهای شناختهشده تبدیل میکند.