محدودههای آدرس VPN خصوصی را پیش از برخورد سایتها برنامهریزی کنید
محدودههای خصوصی همپوشان پیش از هر تونلی مسیریابی را میشکنند. پیشوندها را فهرست کنید، استخرهای کلاینت را جدا از LAN سایتها اندازه بگیرید و از سمت دور آزمایش کنید.
دو سایتی که هر دو از 192.168.1.0/24 استفاده میکنند میتوانند هر یک به اینترنت برسند و در همان حال به یکدیگر نرسند. دروازه خطایی برنمیگرداند؛ یک مسیر برای آن پیشوند نصب میکند و هر بسته را به همان همتایی میفرستد که نخست آن را ادعا کرد. هیچ چیز در دستدهی، فهرست رمزها یا متریک رابط نمیگوید کدام همتا اشتباه است. برنامهریزی آدرس همان بخشی از طراحی است که این را پیش از اتصال هر کسی روشن میکند.
هر فضایی که باید قابل دسترسی باشد را فهرست کنید
محدودههایی را که باید مسیریابی شوند بنویسید، نه فقط آنهایی را که پیکربندی میکنید. یعنی LAN سایتها، استخرهای کلاینت VPN، زیرشبکههای ابری، شبکههای مدیریت و خارج از باند، بخشهای آزمایشگاه و شبکههایی که کاربران معمولاً از خانه به آنها وصل میشوند. روتر مصرفی که بهصورت 192.168.1.0/24 عرضه میشود فرضی نیست، و همان پیشوند در هتلها و محلهای همایش دیده میشود. فهرست، جدولی از پیشوند، مالک و هدف است و تنها سندی است که مانع تحویل دوباره همان محدوده میشود.
| Prefix | Purpose | Owner |
|---|---|---|
| 10.20.0.0/16 | site LANs | network team |
| 10.20.100.0/22 | VPN client pool | remote access |
| 10.20.200.0/24 | management | operations |
پیشوندهایی را که در سال آینده انتظار دارید اضافه کنید، چون طرحی که فقط امروز را پوشش میدهد در نخستین سایت جدید شکست میخورد. در هر ردیف مشخص کنید چه کسی میتواند آن را تغییر دهد، نه فقط چه کسی مالک آن است.
استفاده دوباره همان چیزی است که این را سخت میکند: فضای خصوصی محدود است و هر سازمانی 10.0.0.0/8 را از خود میداند. یک طرح نمیتواند وعده دهد که هیچ LAN مهمان آیندهای روی یکی از پیشوندهای شما نمیافتد، پس طراحی باید بگوید وقتی این اتفاق میافتد چه میشود. دو قاعده بیشتر کار را انجام میدهند. استخرهای کلاینت را در یک بلوک پیوسته بگذارید که میتوانید خلاصه کنید، و هرگز محدودهای را تخصیص ندهید که تیم دیگری پیشتر مسیریابی میکند. باقی چیزها سندی است که کسی بهروز نگه میدارد.
چرا همپوشانی جدول مسیریابی را شکست میدهد
مسیر یک پیشوند بهاضافهٔ گام بعدی است و ارسال، بلندترین پیشوند منطبق را انتخاب میکند. وقتی دو همتا هر دو 192.168.1.0/24 را ادعا میکنند، جدول یک ورودی برای آن نگه میدارد، پس ترافیک هر دو سایت از همان تونل خارج میشود. سایت دوم بد پیکربندی نشده است؛ دسترسیناپذیر است چون سایت اول به همان آدرسها پاسخ میدهد. هیچ متریکی نمیتواند آنها را جدا کند، چون تطبیق پیش از مراجعه به متریکها رخ میدهد.
شکست نامتقارن است و آسان بد خوانده میشود. میزبانهای سایت A به دروازه و برخی سرویسها میرسند، در حالی که میزبانهای سایت B به هیچ چیز پاسخ نمیدهند، و گزارش یک تونل سالم در هر دو جهت نشان میدهد. این الگو برخورد آدرس است نه خرابی احراز هویت یا دیوار آتش، و تأیید آن یک تخلیهٔ جدول در مقایسه با فهرست میخواهد.
استخر کلاینت و محدودههای سایت را آگاهانه اندازه بگیرید
استخر کلاینت VPN محدودهای است که دروازه هر بار یک آدرس از آن میدهد، پس اندازهٔ آن همزمانی را محدود میکند. یک /24 دارای 254 آدرس قابل استفاده است، که برای تیم کوچک سخاوتمندانه و برای شعبهای که کانتینر اجرا میکند تنگ است؛ یک /22 در فضای خصوصی هزینهای اضافه ندارد و بحث را حذف میکند. استخر را پیوسته و دور از هر LAN سایت نگه دارید تا مسیر خلاصه به سمت کلاینتها هرگز سایتی را نبلعد. محدوده را حتی وقتی استخر خالی است رزرو کنید، چون محدودهٔ نانوشته همان است که مهندس بعدی تخصیص میدهد.
سایتها محدودههایی به اندازهٔ میزبانهای انتظار بهاضافهٔ رشد میگیرند، همتراز با مرزی که پاک خلاصه میشود. شکافهای آگاهانه میان تخصیصها هزینهای ندارند و برای تجمیع بعدی جا میخرند.
سپس جهتی را بررسی کنید که مردم فراموش میکنند: مسیر بازگشت. هر روتر سایت به مسیری به استخر کلاینت نیاز دارد، و متمرکزکننده به مسیری به هر پیشوند سایت که سرویس میدهد. جدول پیشوند مرتب بدون راه بازگشت به استخر هنوز طراحی شکستهای است، و نشانهٔ آن اتصال یکطرفهای است که به هیچ چیز پاسخ نمیدهد. هر دو جهت را در همان جدول نگه دارید و هر بار سایتی اضافه میشود آن را بازبینی کنید.
ترجمه و شمارهگذاری دوباره مسائل متفاوتی را حل میکنند
وقتی همپوشانی از قبل وجود دارد، دو گزینهٔ صادقانه و یک گزینهٔ ناصادقانه هست. شمارهگذاری دوباره برخورد را برای همیشه برمیدارد و هزینهاش یک پنجرهٔ نگهداری بهاضافهٔ هر آدرس سختکدشدهای است که فراموش کردهاید. ترجمهٔ آدرس محدودهٔ خصوصی یک طرف را در لبهٔ تونل به محدودهٔ دیگری نگاشت میکند، که هر دو سایت را دستنخورده میگذارد اما وضعیت اضافه میکند، پروتکلهایی که آدرس را درون خود دارند میشکند و خواندن گزارشها را سختتر میکند. گزینهٔ ناصادقانه مسیر میزبان به یک سرور است که یک آزمون را میگذراند و در همهچیز دیگر شکست میخورد.
بر اساس کنترل و عمر انتخاب کنید. سایتی که مالک آن هستید و میتوانید زمانبندی کنید به مسیر شمارهگذاری دوباره تعلق دارد؛ شبکهٔ شریکی که نمیتوانید به آن دست بزنید و برای یک برنامه استفاده میشود نامزد ترجمه با نگاشت مستند است. آن نگاشت را بنویسید، چون ترجمهای که فقط درون یک فایل پیکربندی وجود دارد در همان لحظهای که فایل جایگزین شود ناپدید میشود.
پیش از استقرار از سمت دور آزمایش کنید
از شبکهای آزمایش کنید که دروازه را میزبانی نمیکند، چون LAN خود دروازه بیشتر خطاهای مسیریابی را پنهان میکند. یک کلاینت را پشت یک روتر خانگی معمولی وصل کنید، سپس به سرویسی در هر سایت و یکی درون استخر کلاینت برسید. جهت معکوس را هم آزمایش کنید، از میزبان سایت به کلاینت، چون مسیرهای بازگشت مستقل شکست میخورند. آزمونی که فقط دروازه را پینگ میکند ثابت میکند تونل بالا است و نه چیزی بیشتر.
محدودهها، مالکان و نگاشتهای ترجمه را در یک سند مشترک نگه دارید که سایت بعدی پیش از تخصیص هر چیزی آن را میخواند. هر بار سایتی اضافه میشود آن را بازبینی کنید و محدودهٔ مستندنشده را نقص بدانید نه شگفتی.
سند همان تحویلشدنی است. طرحی که در حافظهٔ سه نفر زندگی میکند نخستین بار که یکی از آنها مرخصی است شکست میخورد، و همپوشانی که در تولید پیدا شود بیش از آنچه جدول میبود هزینه دارد.