اصل بنیادین پروتکل سنتی مسیریابی دروازه‌ای مرزی که در RFC 4271 تعریف شده است تصریح می‌کند که هر سخنگوی BGP تنها مجاز است یک مسیر بهینه را برای هر پیشوند لایه شبکه (NLRI) به همسایگان خود اعلام کند. هنگامی که این اصل با رفلکتورهای مسیر (Route Reflectors، طبق RFC 4456) جهت مقیاس‌پذیری شبکه‌های داخلی iBGP ادغام می‌شود، نقص ساختاری شدیدی به نام پنهان‌سازی مسیر (path hiding) پدید می‌آید.

زمانی که یک سیستم خودمختار دارای چند روتر مرزی (ASBR) با خروجی‌های ترانزیت مجزا باشد، رفلکتور مسیر میانی تنها مسیر بهینه محلی خود را محاسبه کرده و همان مسیر واحد را به کلاینت‌ها منتشر می‌کند. در نتیجه، روترهای لبه سرویس‌دهنده (PE) و دروازه‌های خروجی مشتری از وجود پیوندهای پشتیبان بالادستی کاملاً بی‌خبر می‌مانند. در صورت قطع پیوند اصلی، ارسال بسته‌ها برای ده‌ها ثانیه مختل می‌شود تا پیام‌های پس‌گیری مبادله شده، محاسبات مجدد انجام پذیرد و جداول سخت‌افزاری بازنویسی شوند.

استاندارد RFC 7911 قابلیت BGP ADD-PATH را برای حل ریشه‌ای این گلوگاه همگرایی معرفی کرده است. با افزودن یک شناسه مسیر ۴ بایتی (Path Identifier) به پیام‌های به‌روزرسانی، روترها می‌توانند چندین مسیر موازی را برای یک پیشوند واحد در طول یک نشست ارسال نمایند و بستری پایدار برای همگرایی زیر ثانیه BGP PIC و زیرساخت‌های مقاوم Anycast فراهم آورند.

محدودیت مسیر واحد و پدیده پنهان‌سازی مسیر در ستون فقرات BGP

در شبکه‌های گسترده اپراتوری و شبکه‌های توزیع محتوا، توپولوژی تمام‌متصل (Full-Mesh) در iBGP مستلزم برقراری $N \times (N - 1) / 2$ نشست اتصال TCP است. برای جلوگیری از انفجار تعداد اتصالات، مهندسان شبکه از رفلکتورهای مسیر (RR) استفاده می‌کنند.

بر اساس مشخصات کلاسیک RFC 4271، هنگامی که یک رفلکتور مسیر برای پیشوند 198.51.100.0/24 از دو روتر مرزی ASBR-1 و ASBR-2 تبلیغ مسیر دریافت می‌کند، الگوریتم تصمیم‌گیری تنها یک برنده برمی‌گزیند. رفلکتور سپس تنها این مسیر انتخابی را به کلاینت‌های خود اعلام کرده و مسیر جایگزین را از سیگنالینگ خروجی حذف می‌کند.

       [ ترانزیت بالادست A ]           [ ترانزیت بالادست B ]
                 |                                |
             [ ASBR-1 ]                       [ ASBR-2 ]
                 \                                /
                  \                              /
                   +---> [ Route Reflector ] <--+
                         (فقط مسیر ۱ را انتخاب می‌کند)
                                  |
                                  v (فقط مسیر ۱ را منتشر می‌کند)
                         [ روتر کلاینت PE ]
                        (از ترانزیت B بی‌خبر است!)

این پنهان‌سازی مسیر سه پیامد عملیاتی نامطلوب به همراه دارد:

  1. تأخیر طولانی در همگرایی: اگر پیوند ASBR-1 قطع شود، روتر کلاینت نمی‌تواند بلافاصله ترافیک را تغییر دهد؛ بلکه باید منتظر پیام پس‌گیری از ASBR-1، محاسبه مجدد توسط RR و ارسال اعلان جدید بماند که این امر ۵ تا ۴۵ ثانیه زمان می‌برد.
  2. نوسانات دائمی مسیر: هنگام تعامل ویژگی Multi-Exit Discriminator (MED) با ساختارهای سلسله‌مراتبی رفلکتور، پنهان‌سازی مسیر موجب چرخش‌های مکرر و ناپایداری‌های تشریح‌شده در RFC 3345 می‌گردد.
  3. مسیریابی نامطلوب خروجی: گره‌های لبه نمی‌توانند ترافیک را میان چندین ارائه‌دهنده ترانزیت توزیع کنند، زیرا پایگاه اطلاعات هدایت (FIB) آنها تنها حاوی یک اشاره‌گر هاپ بعدی است.

معماری BGP ADD-PATH: سازوکارهای پروتکل RFC 7911

استاندارد RFC 7911 بدون نیاز به بازگشت به ساختار پیچیده تمام‌متصل iBGP، پنهان‌سازی مسیر را از طریق بازنگری در ساختار کدگذاری پیشوندها در بسته‌های BGP برطرف ساخته است.

کدگذاری NLRI و شناسه مسیر ۴ بایتی Path Identifier

در پیام‌های سنتی UPDATE در پروتکل BGP-4، هر مدخل NLRI شامل یک بایت طول پیشوند و بایت‌های متغیر آدرس است. RFC 7911 یک عدد صحیح ۴ بایتی به نام شناسه مسیر (Path Identifier) را دقیقاً پیش از فیلد طول پیشوند قرار می‌دهد:

+----------------------------------------------------+
|            شناسه مسیر Path Identifier (۴ بایت)     |
+----------------------------------------------------+
|            طول پیشوند (۱ بایت، از ۰ تا ۳۲/۱۲۸)     |
+----------------------------------------------------+
|            پیشوند آی‌پی (طول متغیر)                |
+----------------------------------------------------+

شناسه مسیر مفهومی محلی در نشست ارتباطی BGP دارد و تمایزدهنده مسیرهای مختلف اعلام‌شده برای یک پیشوند یکسان از سوی یک همسایه است. اگر ASBR-1 و ASBR-2 پیشوند 203.0.113.0/24 را به رفلکتور بفرستند، رفلکتور شناسه 1 را به مسیر اول و شناسه 2 را به مسیر دوم تخصیص داده و هر دو را در پیام‌های استاندارد UPDATE به سمت کلاینت‌ها هدایت می‌کند.

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

مذاکره قابلیت‌ها و حالت‌های انتشار جهت‌دار

روترها در مرحله آغازین برقراری نشست با بهره‌گیری از پارامتر اختیاری قابلیت‌های BGP (طبق RFC 5492) پشتیبانی از ADD-PATH را بررسی می‌کنند. کد قابلیت 69 مشخص‌کننده پشتیبانی برای هر خانواده آدرس (AFI/SAFI) است.

مقدار این قابلیت شامل یک بایت پرچم جهت‌دار Send/Receive است:

  • 1: دریافت ADD-PATH (روتر قادر به خواندن شناسه‌های مسیر دریافتی است).
  • 2: ارسال ADD-PATH (روتر شناسه‌های مسیر را به داده‌های ارسالی الصاق می‌کند).
  • 3: فعال بودن هم‌زمان ارسال و دریافت.

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

همگرایی مستقل از پیشوند BGP PIC و بازنشانی سریع مسیر

اهمیت راهبردی RFC 7911 هنگام پیوند با فناوری همگرایی مستقل از پیشوند (BGP PIC) نمایان می‌گردد. روند سنتی بازیابی خرابی در BGP دارای پیچیدگی محاسباتی $O(N)$ است که در آن $N$ بیانگر تعداد پیشوندهای تحت تأثیر خرابی است. در جداول کامل اینترنت جهانی با بیش از ۹۵۰ هزار پیشوند، به‌روزرسانی خط‌به‌خط حافظه TCAM چندین ثانیه طول می‌کشد.

فناوری BGP PIC ساختار صفحه داده را به یک معماری اشاره‌گر سلسله‌مراتبی تبدیل می‌کند. ورودی‌های پیشوند در جدول سخت‌افزاری FIB مستقیماً به پورت فیزیکی اشاره نمی‌کنند، بلکه به اشیای میانی تفکیک هاپ بعدی ارجاع دارند.

+-----------------------+      +--------------------------+      +-------------------+
| پیشوند 198.51.100.0   | ---> | شیء اشتراکی Next-Hop     | ---> | رابط اصلی         |
+-----------------------+      | (ASBR-1 در وضعیت فعال)   |      +-------------------+
| پیشوند 203.0.113.0    | ---> | پشتیبان: ASBR-2 ADD-PATH | ---> | رابط پشتیبان      |
+-----------------------+      +--------------------------+      +-------------------+

سازوکارهای همگرایی BGP PIC Core در برابر BGP PIC Edge

فناوری BGP PIC پایداری را در دو سطح تضمین می‌کند:

  1. سطح BGP PIC Core: از قطعی پیوندهای داخلی میان روترهای هسته P و لبه PE محافظت به عمل می‌آورد. پروتکل IGP با استفاده از پایش پیوند با پروتکل BFD در کسری از ثانیه قطعی را شناسایی کرده و اشاره‌گر LSP را در سخت‌افزار ظرف مدت ۵۰ میلی‌ثانیه اصلاح می‌نماید.
  2. سطح BGP PIC Edge: در برابر قطعی خطوط اتصال روترهای مرزی ASBR به اینترنت محافظت ایجاد می‌کند. از آنجا که BGP ADD-PATH مسیر جایگزین را از پیش به روتر لبه ارسال نموده، هاپ بعدی پشتیبان در سخت‌افزار ثبت است. با قطع نشست اصلی، سخت‌افزار تنها یک اشاره‌گر ریشه را تغییر می‌دهد و کلیه پیشوندها در زمان ثابت $O(1)$ به مسیر دوم منتقل می‌شوند.

رفع نوسانات MED و ناپایداری مسیر در خوشه‌های Route Reflector

ویژگی Multi-Exit Discriminator (MED) ابزاری برای اعلان ترجیح ورودی به سیستم خودمختار مجاور است. با این حال، الگوریتم استاندارد تنها مقادیر MED مسیرهای ارائه‌شده توسط یک AS یکسان را با یکدیگر مقایسه می‌کند.

در شبکه‌های مجهز به رفلکتور مسیر، این رفتار شرطی موجب ایجاد حلقه‌های سرگردان موسوم به نوسانات MED (طبق RFC 3345) می‌گردد. رفلکتور مدام بین مسیرهای A و B و C نوسان کرده و پیام‌های متناقض منتشر می‌سازد.

با به‌کارگیری BGP ADD-PATH، رفلکتورها دیگر مسیرهای دارای اولویت کمتر را پنهان نمی‌کنند. تمامی مسیرهای نامزد به سمت کلاینت‌ها ارسال می‌شوند و به هر روتر لبه اجازه می‌دهند بر پایه فاصله IGP محلی خود تصمیم‌گیری کند؛ این رویکرد به نوسانات مداوم پایان می‌بخشد.

توازن بار ECMP و توزیع ترافیک ورودی در روترهای مرزی ASBR

به یاری BGP ADD-PATH، مدیران زیرساخت قادرند سازوکار چندمسیره با هزینه یکسان (ECMP) را در میان روترهای مرزی مختلف مستقر سازند.

رفلکتورهای مسیر را می‌توان بر اساس سیاست‌های زیر تنظیم نمود:

  • حالت Add-Path All: انتشار تمامی مسیرهای معتبر موجود در Adj-RIB-In.
  • حالت Add-Path Best N: انتشار $N$ مسیر دارای اولویت بالا (معمولاً ۲ یا ۳ مسیر) به منظور تعادل میان بهره‌وری پهنای باند و کنترل مصرف حافظه.
  • حالت Add-Path Group-Best: ارسال یک مسیر برگزیده به ازای هر سیستم خودمختار همسایه.

محدودیت‌های حافظه سخت‌افزاری TCAM FIB و مقیاس‌پذیری

پیاده‌سازی ADD-PATH نیازمند سنجش دقیق منابع سخت‌افزاری است:

  • حافظه رم جدول مسیریابی (RIB): نگهداری دو مسیر به ازای هر پیشوند، میزان مصرف حافظه رم در پردازنده کنترلی را دو برابر می‌کند. رفلکتورهای پیشرفته با ۶۴ گیگابایت حافظه ECC به راحتی جداول پرشمار را مدیریت می‌نمایند، اما در روترهای با منابع کمتر باید خانواده‌های آدرس غیرضروری فیلتر شوند.
  • حافظه سخت‌افزاری TCAM (در FIB): بارگذاری مسیرهای پشتیبان در کارت‌های خطی موجب اشغال ظرفیت حافظه سخت‌افزاری می‌شود. بهره‌گیری از جداول اشتراکی با معماری اشاره‌گر مانع از تکرار فیلدهای پیشوند شده و سرعت پردازش تمام‌عیار خطی را حفظ می‌نماید.

پویایی بازیابی خرابی: تغییر مسیر زیر یک ثانیه در مقایسه با تأخیر همگرایی

برتری عملیاتی BGP ADD-PATH همراه با BGP PIC در داده‌های عملکردی کاملاً مشهود است:

شاخص عملیاتی پروتکل سنتی BGP (RFC 4271) استاندارد BGP ADD-PATH با PIC
دید گره لبه به مسیرها فقط ۱ مسیر بهینه مسیر اصلی به همراه مسیرهای پشتیبان
سازوکار تغییر مسیر محاسبه مجدد نرم‌افزاری جابجایی اشاره‌گر سخت‌افزاری
زمان تغییر مسیر ۵۰۰۰ تا ۴۵۰۰۰ میلی‌ثانیه کمتر از ۵۰ میلی‌ثانیه (پیوسته)
پیچیدگی محاسباتی خطی $O(N)$ متناسب با پیشوندها ثابت $O(1)$ و آنی
خطر نوسان صفات MED در شبکه‌های پیچیده بسیار بالا کاملاً برطرف‌شده
بهره‌وری از پیوندهای خروجی محدود به یک پیوند توزیع متقارن روی چند شاسی

امنیت و استحکام عملیاتی در استقرارهای چنداتصاله BGP

اشتراک‌گذاری مسیرهای چندگانه نیازمند پایبندی به اصول امنیتی برای جلوگیری از نشت مسیر و ربایش ترافیک است:

  • اعتبارسنجی مبدأ با RPKI: روترهای لبه موظفند پیش از افزودن مسیرهای ADD-PATH به جدول RIB، گواهی دیجیتال ROA را بررسی کنند. مسیرهای فاقد اعتبار باید بلافاصله رد شوند.
  • آستانه سقف تعداد پیشوندها: برای هر نشست باید سقف معینی برای دریافت پیشوندها تعریف شود تا از حملات ناشی از پر شدن حافظه جلوگیری به عمل آید.
  • پشتیبانی از راه‌اندازی آرام Graceful Restart: ترکیب ADD-PATH با مکانیزم Long-Lived Graceful Restart انتقال پایدار بسته‌ها را در هنگام راه‌اندازی مجدد ماژول‌های کنترلی حفظ می‌کند.
  • پایش تله‌متری: بررسی منظم جدول Adj-RIB-In اطمینان می‌دهد که روترهای PE مسیرهای پشتیبان خود را بدون جریمه‌های ناپایداری مسیر دریافت می‌دارند.

نحوه ادغام BGP ADD-PATH در RiceGuard برای پایداری گره‌های Anycast

شبکه جهانی Anycast در سرویس VPNRice پاسخگوی هزاران اتصال کاربران در بیش از ۴۰ نقطه اتصال در سراسر جهان است. کاربران می‌توانند وضعیت آدرس خروجی خود را از طریق ابزار بررسی آدرس آی‌پی در VPNRice ارزیابی نمایند.

در معماری Anycast، چندین مرکز داده یک بلوک آی‌پی یکسان را به اپراتورهای ترانزیت بین‌المللی سطح یک (Tier-1) اعلام می‌کنند. در صورت افت کیفیت یکی از پیوندهای ترانزیت، سازوکار قدیمی BGP سبب قطع ارتباط هزاران تونل رمزگذاری‌شده در خلال همگرایی مجدد می‌گردد.

برای تضمین تداوم پایداری نشست‌ها، VPNRice فناوری RiceGuard را با ساختار BGP ADD-PATH و BGP PIC تجهیز نموده است:

  1. پیش‌آگاهی از مسیرهای چندگانه بالادست: هر خوشه سرور RiceGuard چند مسیر ترانزیت بین‌المللی را به صورت هم‌زمان از طریق نشست‌های iBGP با قابلیت ADD-PATH دریافت می‌نماید.
  2. جابجایی مسیر در کمتر از ۵۰ میلی‌ثانیه: با بروز اختلال در کابل‌های فیبر نوری، کارت‌های سخت‌افزاری با استناد به اشاره‌گرهای BGP PIC مسیر داده‌ها را در کسری از ۵۰ میلی‌ثانیه جابجا می‌کنند.
  3. تداوم نشست‌های کاربری: جدول وضعیت پروتکل WireGuard UDP بدون نیاز به فرایند طولانی تبادل کلید مجدد حفظ شده و از قطع ارتباط هنگام تماس‌های صوتی و تصویری جلوگیری می‌شود.

کاربران می‌توانند نرم‌افزارهای کاربردی را از طریق بخش دریافت برنامه VPNRice نصب نموده و از پایداری ترافیک هدایت‌شده در لبه شبکه بهره‌مند شوند.

+-----------------------------------------------------------------------------+
|              معماری تاب‌آوری چندمسیره RICEGUARD ANYCAST                      |
+-----------------------------------------------------------------------------+
[ گره لبه شبکه RiceGuard ]
      |
      +---> مسیر ۱ (ترانزیت Telia) [فعال]     <--- BGP ADD-PATH
      |
      +---> مسیر ۲ (ترانزیت NTT)   [پشتیبان]  <--- BGP PIC (انتقال <50ms)
      |
      +---> مسیر ۳ (نقطه تبادل IX) [آماده]    <--- حفظ پایدار نشست‌ها

برای زیرساخت‌های سازمانی، ترکیب ADD-PATH با معماری جداسازی شبکه در BGP L3VPN VRF و فناوری اتصال چندگانه BGP EVPN چارچوبی مطمئن در برابر قطعی‌های شبکه پدید می‌آورد.

چک‌لیست پیاده‌سازی BGP ADD-PATH در محیط‌های عملیاتی

هنگام استقرار قابلیت BGP ADD-PATH در شبکه‌های سازمانی، اجرای مراحل ارزیابی زیر توصیه می‌شود:

  • بررسی سازگاری تجهیزات: اطمینان یابید که تمامی رفلکتورها و روترهای مرزی از کد مذاکره ۶۹ طبق RFC 7911 برای پروتکل‌های IPv4 و IPv6 پشتیبانی می‌کنند.
  • پیکربندی حالت‌های نامتقارن: رفلکتورها را روی حالت ارسال send و روترهای لبه با منابع محدود را روی حالت دریافت receive تنظیم نمایید.
  • محدودسازی تعداد مسیرها: سیاست‌های add-path best 2 یا best 3 را اعمال کنید تا از رشد مهارگسیخته حافظه RIB جلوگیری به عمل آید.
  • فعال‌سازی قابلیت BGP PIC: ویژگی Prefix Independent Convergence را فعال کنید تا ساختار اشاره‌گر سلسله‌مراتبی در سخت‌افزار تشکیل شود.
  • نظارت بر حافظه سخت‌افزاری TCAM: میزان مصرف حافظه کارت‌های خطی را قبل و بعد از انتشار مسیرهای چندگانه تحت نظر قرار دهید.
  • هماهنگی با پروتکل BFD: نشست‌های BGP را با پایش سریع BFD تلفیق نمایید تا رخداد خطاها با سرعت بالا آشکار شود.
  • بازبینی شاخص‌های تله‌متری: جداول Adj-RIB-In را بررسی کنید تا مطمئن شوید شناسه‌های مسیر ثانویه دارای ویژگی‌های هاپ بعدی استاندارد بوده و جریمه ناپایداری ندارند.