کسی اولین و آخرین آدرس را به شما می‌دهد و مسیر VPN می‌خواهد. حرکت وسوسه‌انگیز انتخاب کوتاه‌ترین پیشوندی است که هر دو سر را در بر می‌گیرد، و این حرکت بی‌صدا مقصدهایی را اضافه می‌کند که هیچ‌کس نخواسته است. یک بلوک CIDR همیشه اندازه‌ای توان دو و آدرس شروعی هم‌تراز با آن دارد، پس یک بازه دلبخواه معمولاً به بیش از یکی نیاز دارد. بازه را طی کنید، آن را دقیق تقسیم کنید و سپس آدرس‌های درست بیرون آن را بررسی کنید.

با بازه شروع کنید، نه با پیشوند

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

بازه هم‌تراز به یک بلوک فرومی‌ریزد. بازه ناهم‌تراز به چند بلوک تجزیه می‌شود و تجزیه دقیق است نه تقریبی. کاری که نباید بکنید این است که به بیرون گرد کنید و آن را به‌قدر کافی نزدیک بنامید، چون آدرس‌های اضافی هر سیاستی را که مسیر حمل می‌کند دریافت می‌کنند.

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

حالت اول: بازه تصادفاً هم‌تراز است

198.51.100.64 تا 198.51.100.127 را بگیرید. آدرس اول روی مرز 64 آدرس هم‌تراز است و بازه دقیقاً 64 آدرس است، پس یک /26 آن را بدون هیچ باقی‌مانده‌ای توصیف می‌کند.

این حالت آسان است و ارزش شناختن دارد، چون یعنی نیاز را احتمالاً کسی نوشته که از پیش به پیشوندها فکر می‌کرده است. همچنین یعنی بررسی کوتاه است: تأیید کنید که اندازه توان دو است و شروع مضربی از آن اندازه.

محدوده‌های مستندسازی دقیقاً به این دلیل مثال‌های خوبی هستند که مالک ندارند. این آدرس‌ها را روی یک تونل واقعی نصب نکنید و فرض نکنید محدوده‌ای که به شما داده‌اند فضای مستندسازی است فقط چون غیرعادی به نظر می‌رسد.

حالت دوم: هم‌تراز نیست، پس تقسیمش کنید

حالا 198.51.100.100 تا 198.51.100.107 را بگیرید. این هشت آدرس است، که توان دو است، اما 100 مضرب هشت نیست. یک بلوک واحد با آن اندازه نمی‌تواند از آنجا شروع شود، پس بازه باید با بیش از یکی پوشش داده شود.

پوشش دقیق دو بلوک /30 است: 198.51.100.100/30 آدرس‌های 100 تا 103 را می‌پوشاند و 198.51.100.104/30 آدرس‌های 104 تا 107 را. در کل هشت آدرس، چیزی بیرون از بازه نیست و تجزیه برای یک بازه معین یکتاست.

python3 -c "from ipaddress import ip_address, summarize_address_range as s; print(*s(ip_address('198.51.100.100'), ip_address('198.51.100.107')), sep='\n')"

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

اندازه بگیرید پیشوند گسترده‌تر چه چیزی را می‌گرفت

پیش از پذیرفتن یک میان‌بر، هزینه‌اش را حساب کنید. یک /28 که از 198.51.100.96 شروع می‌شود 96 تا 111 را می‌پوشاند، یعنی شانزده آدرس به‌جای هشت. هشت آدرس اضافی 96 تا 99 و 108 تا 111 است و هر یک از آن‌ها مسیر را به ارث می‌برد.

python3 -c "from ipaddress import ip_network as n; w=set(n('198.51.100.96/28')); t=set(n('198.51.100.100/30'))|set(n('198.51.100.104/30')); print(len(w), len(t), sorted(w-t))"

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

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

مجموعه دقیق را نصب کنید و لبه‌ها را بررسی کنید

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

sudo ip route add 198.51.100.100/30 via 10.90.0.1 dev tun0
sudo ip route add 198.51.100.104/30 via 10.90.0.1 dev tun0
ip route get 198.51.100.101
ip route get 198.51.100.97

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

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

مقالات مرتبط