واقعاً کدام مؤلفه صاحب محدودیت مسیر OpenVPN است؟
محدودیت مسیر میتواند از آن موتور OpenVPN، افزونه NetworkManager یا سرور باشد. پیش از ویرایش پروفایل یا بالا بردن یک عدد، صاحب آن را نام ببرید.
پروفایلی که دویست مسیر دارد روی یک ماشین کار میکند و روی ماشین دیگری چهل مسیر نصب میکند. موتور، یکپارچهسازیای که آن را اجرا میکند و سروری که آن را تغذیه میکند هر یک حرفی دارند، و هر کدام میتوانند فهرست را در نقطهای متفاوت متوقف کنند. خواندن خرابی بهعنوان یک محدودیت واحد شما را به فایل اشتباه میفرستد. سازوکار سه مرحله دارد، و مرحلهای که متوقف شده شواهد دیدنی بر جای میگذارد، وقتی بدانید دنبال چه چیزی بگردید.
سه مرحله، سه محدودیت متفاوت
نخست موتور گزینه را تجزیه میکند و تصمیم میگیرد که آیا این نسخه آن را میفهمد. سپس یکپارچهسازی آنچه موتور گزارش میدهد را نصب میکند، و کد خودش ممکن است فهرست را محدود یا بازشکل دهد. در پایان سرور تصمیم میگیرد چند مسیر را به هویتی معین بفرستد، پیش از آنکه هر مرحلهای از سمت کلاینت چیزی ببیند. سه مرحله، سه سقف، و تنها یکی از آنها همان عدد درون پروفایل است.
بالا بردن یک سقف برای بقیه کاری نمیکند. مسیر ارسالشدهٔ ردشده میتواند تصمیمی سیاستی روی سرور باشد، همپوشانیای که کلاینت حل کرده، یا محدودیتی از نصبکننده که مازاد را دور ریخته است. هر یک از اینها اصلاح متفاوتی دارد.
پیش از سنجش هر چیزی سه مورد را از هم جدا کنید. خطای تجزیهگر نام یک نشانه را میآورد، محدودیت نصبکننده جدول مسیر کوتاهی بر جای میگذارد، و تصمیم سیاستی هیچ چیز بر جای نمیگذارد. شواهد میگویند نخست کدام مرحله را بررسی کنید.
| Stage | Who decides | What you can see |
|---|---|---|
| Parse | Client engine | An error naming the option |
| Install | Activation owner | A route count below the pushed count |
| Offer | Server policy | A route absent from the pushed list |
تجزیهگر نخست سخن میگوید
گزینهٔ ناشناخته بلند و زود شکست میخورد، و متن خطا نام نشانه را میآورد. آن آسانترین مرحله برای شناسایی است: پیام دقیق را با نسخهٔ نصبشدهٔ موتور مقایسه کنید، زیرا گزینهای که در یک انتشار افزوده شده در نسخهٔ پیش از آن ناشناخته است. پروفایلی که از استقرار تازهتری کپی شده منبع معمول این ناسازگاری است. تجزیهگر هرگز دستوری را که نمیشناسد بیصدا نادیده نمیگیرد.
گزینهٔ پذیرفتهشده دربارهٔ نتیجه چیزی نمیگوید. تجزیه موفق میشود، و باز هم ممکن است فهرست را نصبکننده کوتاه کند یا سرور هرگز آن را پیشنهاد ندهد. تجزیهٔ پاک را اجازهٔ ادامه بدانید، نه مدرک.
رشتهٔ نسخه را از فایل دودوییای که واقعاً اجرا شد یادداشت کنید، نه از تصور مدیر بسته از آنچه نصب شده است. این دو بیشتر از آنچه انتظار میرود با هم اختلاف دارند.
نصبکننده سقف خودش را دارد
مؤلفهای که فعالسازی را در اختیار دارد ممکن است افزونهٔ NetworkManager باشد نه فایل دودویی موتور، و میتواند محدودیت خودش را پیش از وجود هر تونلی تحمیل کند. ویرایشگرش ممکن است فیلدی را نشان دهد که موتور در حال اجرا هرگز نمیخواند، یا فیلدی را بخواند که ویرایشگر نشان نمیدهد. هر دو وضعیت از بیرون مانند اشکالی در کلاینت به نظر میرسند. هیچکدام با ویرایش پروفایل درست نمیشود.
آنچه رسیده را بشمارید، نه آنچه پیکربندی شده. فرمان ip route show dev tun0 مسیرهای نصبشده را فهرست میکند، و مقایسهٔ آن شمار با فهرست ارسالشده، مسیر دورریختهشده را از مسیری که هرگز فرستاده نشده جدا میکند. شماری که با ارسال همخوان باشد تردید را به سرور بازمیگرداند.
پوستهای دور فایل دودویی موتور برای تحمیل عددی بزرگتر، بهروزرسانیها را مبهم میکند و بازگشت را به حدس تبدیل میکند. همچنین محدودیت واقعی را از هر کسی که پیکربندی را بعداً بخواند پنهان میکند.
سرور تصمیم میگیرد چه چیزی به شما پیشنهاد شد
سیاست هر کلاینت میتواند فهرست را پیش از انتقال کوچک کند. فایلی مخصوص یک کلاینت ممکن است مسیرهایی برای یک هویت بیفزاید، یا سیاستی گروهی آنها را حذف کند، و کلاینت نمیتواند مسیر پالایششده را از مسیری که هرگز تعریف نشده تشخیص دهد. همین ابهام است که رکورد سرور را مهم میکند. فهرست ارسال مؤثر برای آن هویت را بخواهید، نه قالب را.
رکورد سرور را با فهرست دریافتشده مقایسه کنید. فاصلهٔ میان آن دو لایهٔ سیاست است، و معمولاً کوچکتر از آن است که پروفایل پیشنهاد میکند.
وقتی طراحی اجازه میدهد، شبکههای پیوسته را خلاصه کنید و ورودیهای کهنه را حذف کنید. مسیرهای کمتر و بزرگتر بیش از سقفی بالاتر موارد بیشتری را حل میکنند.
عدد را در جای درست تغییر دهید
از تنظیم مستندشدهٔ مؤلفهای استفاده کنید که واقعاً صاحب محدودیت است. اگر فیلد در افزونه نیست، بررسی کنید که افزونه از این ویژگی قدیمیتر است یا آنکه پشتوانهٔ دیگری صاحب مسیرها است. سپس نسخههای موتور، افزونه و سرور را کنار مقداری که برگزیدهاید مستند کنید. بهروزرسانی بعدی پرسش را دوباره میگشاید، و یادداشت همان چیزی است که آن را پاسخپذیر میکند.
پس از هر بهروزرسانی هر یک از سه مورد دوباره بیازمایید. محدودیتی که در جای درست بالا برده شده باز هم جابهجا میشود، وقتی مؤلفهای که آن را اعمال میکند عوض شود. رکورد نسخهها تنها چیزی است که آن جابهجایی را پیشبینیپذیر میکند.