VPN ابری به BGP نیاز دارد: چرا سایر پروتکلهای مسیریابی شکست میخورند
تونل بالاست و پیشوند هرگز ظاهر نمیشود. VPNهای ابری مدیریتشده BGP را بهعنوان قرارداد مسیریابی به کار میبرند، پس ابتدا الزام سرویس را بررسی کنید.
انجمن امنیتی IPsec بالاست، شمارندههای تونل حرکت میکنند و ترافیک به پیشوند ابر ناپدید میشود. سپس اپراتور تلاش میکند OSPF را روی روتر مشتری فعال کند، انتظار دارد همسایه شکل بگیرد، و هیچ اتفاقی نمیافتد. تونل هرگز قطعه گمشده نبود: یک VPN ابری مدیریتشده قرارداد مسیریابی مشخصی ارائه میدهد و در پلتفرمهای بزرگ آن قرارداد BGP است. تا زمانی که نشستی وجود نداشته باشد و پیشوندی پذیرفته نشود، تونل فقط مسیری رمزنگاریشده بدون مقصدی در پشت آن است.
تونل بالاست و مسیر غایب است
تکمیل فاز 1 و فاز 2 ثابت میکند که دو طرف در مورد حفاظت توافق دارند، نه اینکه هر طرف بداند ترافیک را کجا بفرستد. اینها ماشینهای حالت جداگانه با حالتهای خرابی جداگانهاند.
سه پرسش را به ترتیب بپرسید: آیا پیشوند اعلام شد، آیا همسایه آن را پذیرفت، و آیا برای ارسال نصب شد؟ پیشوندی که اعلام و فیلتر شده باشد مسئله سیاست است. پیشوندی که هرگز اعلام نشده باشد مسئله نشست یا پیکربندی است. پیشوندی که پذیرفته شده اما نصب نشده باشد مسئله انتخاب مسیر است، و هر پاسخ به بخش متفاوتی از پیکربندی اشاره میکند.
آنچه ارائهدهنده واقعاً به شما میدهد
دروازه VPN مدیریتشده یک روتر بیمحدودیت نیست. ارائهدهنده دروازهای به شما میدهد با آدرسهای همسایه پشتیبانیشده، تنظیم سیستم خودگردان، محدودیتهای پیشوند و رفتار خرابی مشخص. همان سطح، محصول است.
Google Cloud مسیریابی پویا با BGP را برای HA VPN مستند میکند، که در آن Cloud Router مسیرهای همسایه را یاد میگیرد و مسیرهای پویای سفارشی واجد شرایط را به VPC تأمین میکند. AWS Site-to-Site VPN انتخاب میان مسیریابی ایستا و پویا را مستند میکند و بررسیهای زندهبودن BGP را برای جابهجایی تونل سودمند میداند و در همان حال بررسیهای سلامت را برای دستگاههای بدون BGP پشتیبانی میکند. رفتار هیچ پلتفرمی را نباید از نام محصول دیگری استنباط کرد.
نتیجه عملی این است که ابتدا حالت مدیریتشده را انتخاب میکنید و سپس پارامترهای پشتیبانیشده را میخوانید. طرحی که نوع مجاورتی را فرض کند که سرویس ارائه نمیدهد، مسئله پیکربندی برای حل روی روتر مشتری نیست.
حفاظت تونل و دسترسپذیری دو کار جداگانهاند
IPsec ترافیکی را که برای تونل انتخاب شده محافظت میکند. BGP اطلاعات دسترسپذیری را فراهم میکند که یک پیشوند را واجد شرایط میکند. تونل کارکننده ثابت نمیکند که پیشوند مورد انتظار اعلام، پذیرفته یا نصب شده است.
شعبهای را تصور کنید که 10.42.0.0/16 را از طریق دو مسیر تونل واجد شرایط اعلام میکند. یک مسیر قابل استفاده را حذف کنید و انتخاب مسیر میتواند تغییر کند بدون اینکه کسی مسیر هر بار کاری را ویرایش کند. تشخیص، انتخاب مسیر و بازیابی برنامه آنی نیستند و در استقرارهای مختلف یکسان نیستند، بنابراین آزمون جابهجایی باید کل توالی را مشاهده کند نه اولین بستهای که عبور میکند.
وقتی یک پیشوند ابری دسترسناپذیر است، پیش از دست زدن به رمزنگاری وضعیت نشست و مسیرهای یادگرفته را بررسی کنید. یک SA برپا بدون مسیر پشت آن رایجترین شکل این نشانه است.
کجا فرضهای OSPF میشکند
OSPF، IS-IS یا پروتکل دیگری درون تونل IPsec روی یک دستگاه خودمدیریت کاملاً ممکن است، جایی که هر دو سر و طراحی ارسال در اختیار شماست. این واقعیت درباره سرویس مدیریتشدهای که تنها BGP را بهعنوان حالت مسیریابی پویا ارائه میدهد چیزی نمیگوید.
اگر طرحی پیشنهادی به مجاورتی نیاز دارد که سرویس پشتیبانی نمیکند، معماری را آگاهانه تغییر دهید. گزینهها شامل دستگاه خودمدیریت در VPC، مسیریابی ایستا در جایی که سرویس پشتیبانی میکند، یا محصول اتصال متفاوت است. پیکربندی پروتکل فقط روی روتر مشتری نمیتواند همسایهای در سمت ابر که وجود ندارد اضافه کند و پیشوند را ظاهر نخواهد کرد.
پاسخ یک فروشنده را به دروازه فروشنده دیگر منتقل نکنید. همان واژهها، مانند مسیریابی پویا یا جابهجایی تونل، میتوانند سازوکارها و محدودیتهای متفاوتی را توصیف کنند.
الزام سرویس را بخوانید و سپس طراحی کنید
پیش از اولین خط پیکربندی، آدرسهای همسایه، شمارههای سیستم خودگردان، پیشوندهایی که اعلام و میپذیرید، محدودیتهای مسیر و رفتار مورد انتظار هنگام شکست تونل را بنویسید. همان پنج مورد قراردادی است که بر اساس آن طراحی میکنید.
سپس به همان ترتیب بررسی کنید: نشست برقرار، پیشوند دریافتشده، مسیر موجود در جدول مسیر VPC و جریان واقعی به یک آدرس سرویس. پس از جابهجایی اجباری تکرار کنید، زیرا نشستی که دوباره برقرار میشود میتواند با مجموعه مسیر متفاوتی بازگردد. اگر طرح به همگرایی زیر یک ثانیه وابسته است، آن را اندازه بگیرید نه فرض کنید.
قرارداد سرویس را همراه با سابقه تغییر نگه دارید. وقتی بعداً کسی میپرسد چرا تونل نمیتواند OSPF اجرا کند، پاسخ یک مرز محصول است نه محدودیت پروتکل، و سابقه باید همین را بگوید.