قواعد دیوار آتش یک آدرس اول و آخر می‌پذیرند، مانند 192.168.0.200 تا 192.168.0.255، اما مسیرها این‌گونه نیستند. یک ورودی مسیر فقط جای شبکه و ماسک دارد، یعنی یک بازه پیوسته باید به یک یا چند پیشوند هم‌تراز تبدیل شود، پیش از آنکه OpenVPN آن را نصب کند. پروفایلی که route-nopull را با بازه‌ای ناهم‌تراز جفت می‌کند همان جایی است که خطا معمولاً پنهان می‌شود، چون فایل تجزیه می‌شود و هیچ مسیری مطابقت ندارد. بلوک‌ها را درست کنید و خطا با یک فرمان دیده می‌شود.

افسانه: بازه یک مسیر است

جدول‌های مسیریابی جفت‌های شبکه و ماسک را ذخیره می‌کنند و بلندترین تطابق را انتخاب می‌کنند، پس بازه‌ای با شروع و پایان جایی برای زیستن ندارد. یک پیشوند که 256 آدرس را می‌پوشاند از .0 تا .255 را پوشش می‌دهد، نیمی از آن اندازه .0 تا .127 را می‌پوشاند، و تنها بازه‌ای که با آن لبه‌ها هم‌تراز باشد در یک گام نگاشت می‌شود. هر چیز دیگری باید به بلوک‌ها بریده شود. مسیر کوچک‌تر همچنان همان بازه اصلی را معنا می‌دهد.

بازه‌ای که با پیشوند هم‌تراز نیست، یک مسیر فشرده نیست. گونه دیگری از شیء است، و رفتار کردن با آن به‌عنوان مسیر همان جایی است که خطای خاموش آغاز می‌شود.

هم‌ترازی حساب است، نه سبک

اندازه بلوک‌ها را طول پیشوند تعیین می‌کند. یک /29 تنها می‌تواند از آدرسی شروع شود که بر 8 بخش‌پذیر است، یک /28 از آدرسی بر 16، یک /27 از آدرسی بر 32. بلوک را از مرزش جابه‌جا کنید و ماسک مجموعه‌ای از آدرس‌ها را می‌پوشاند که متفاوت از آن است که در نظر داشتید.

از انتهای پایین جمع کنید. در هر گام بزرگ‌ترین بلوک هم‌تراز را بردارید که از پایان بازه نمی‌گذرد، سپس از نخستین آدرس بعد از آن ادامه دهید. بلوک‌ها نمی‌توانند هم‌پوشانی داشته باشند، چون هرکدام جایی آغاز می‌شود که پیشینی ایستاده است.

دو نفر که این کار را دستی انجام می‌دهند باید به یک نتیجه برسند. اختلاف یعنی کسی شروعی را مجاز دانسته که هم‌تراز نبوده است.

از 200 تا 255 را کار کنید

StepStartBlock that fitsLine for the profile
1.200, multiple of 8/29, 8 addresses192.168.0.200 255.255.255.248
2.208, multiple of 16/28, 16 addresses192.168.0.208 255.255.255.240
3.224, multiple of 32/27, 32 addresses192.168.0.224 255.255.255.224

بازه از .200 آغاز می‌شود که مضرب 8 است، پس بلوک نخست یک /29 از .200 تا .207 است. پس از این هشت آدرس نخستین مقدار آزاد .208 است که بر 16 بخش می‌شود، پس یک /28 از .208 تا .223 را می‌گیرد. آنچه می‌ماند .224 تا .255 است، سی و دو آدرس که از مضربی از 32 آغاز می‌شوند، یعنی /27. همان سه سطر تمام تجزیه است.

آنها را به‌صورت خطوط مسیر بنویسید نه نثر. پروفایلی که فقط خط اول را دارد هشت آدرس را می‌پوشاند و بقیه را بیرون از تونل می‌گذارد.

route-nopull
route 192.168.0.200 255.255.255.248
route 192.168.0.208 255.255.255.240
route 192.168.0.224 255.255.255.224

بلوک آخر به بررسی مرز نیاز دارد. درون 192.168.0.224/27، .224 آدرس شبکه و .255 آدرس پخش است، پس میزبانی که باید روی .255 پاسخ دهد با پیشوند پوشیده می‌شود و همچنان دست‌نیافتنی است. آن میزبان را جابه‌جا کنید یا بازه را به شکل دیگری تقسیم کنید، به‌جای مسیریابی بلوک و امید بستن.

route-nopull با تصویر چه می‌کند

route-nopull را تنها زمانی اضافه کنید که مسیرهای هل‌داده‌شده سرور ناخواسته باشند. بدون این دستور، مسیرهای هل‌داده‌شده و این خطوط با هم وجود دارند و مشخص‌ترین پیشوند برنده می‌شود. با آن، گزینه‌های DNS و DHCP هل‌داده‌شده نیز ناپدید می‌شوند، پس حل نام داخلی به پیکربندی خودش نیاز دارد. این عارضه جانبی کسانی را غافلگیر می‌کند که دستور را برای رفع مشکل مسیر افزوده‌اند.

آن را به دلیل درست اضافه کنید، نه به‌عنوان واکنش خودکار. حذف مسیرهای هل‌داده‌شده تصمیمی سیاستی با پیامد DNS است. اگر سرور می‌تواند همان سه پیشوند را هل دهد، بگذارید، و نسخه‌های سمت کلاینت را حذف کنید تا یک مالک فهرست را کنترل کند.

بررسی‌هایی که خطاهای معمول را می‌گیرند

بررسی کنید که هر ماسک یک رشته پیوسته از یک‌ها باشد. مقدار 255.255.255.248 می‌گذرد و 255.255.255.200 رد می‌شود، و ماسکی که پیوسته نیست رد یا بد خوانده می‌شود. سپس مسیر یک آدرس در هر بلوک را تأیید کنید.

ip route get 192.168.0.205
ip route get 192.168.0.220
ip route get 192.168.0.240

هر پاسخ باید رابط تونل را نام ببرد. نتیجه‌ای که آداپتور فیزیکی را نام می‌برد یعنی خط هرگز نصب نشده است، که اغلب وقتی رخ می‌دهد که مدیر شبکه رومیزی جدول را پس از اتصال پروفایل بازنویسی می‌کند.

برای فهرست یک مالک انتخاب کنید. وقتی سرور می‌تواند همان پیشوندها را هل دهد، آنها را هل دهید و ویرایش‌های سمت کلاینت را بردارید. مالک واحد یعنی یک غلط تایپی یک جا دارد، و کلاینت و سرور نمی‌توانند بر سر اینکه کدام آدرس‌ها درون تونل هستند اختلاف داشته باشند.

مقالات مرتبط