پروتکل دروازه مرزی (BGP) نقش بسیار مهمی در هدایت دادهها بین شبکههای مختلف ایفا میکند. اگر با این موضوع آشنایی نداشته باشید، در ابتدا ممکن است درک آن دشوار به نظر برسد. با این حال، توسط راهنمایی مناسب، میتوان اصول پروتکل BGP را درک کرد و اهمیت آن را در تضمین اتصال مؤثر اینترنتی متوجه شد. در این مقاله، هرآنچه را که باید درباره “پروتکل دروازه مرزی” بدانید، از مفاهیم پایه تا نحوه تعامل با DNS و همچنین مشکلات رایجی که ممکن است با آنها مواجه شوید، گامبهگام بررسی خواهد شد.
پروتکل BGP چیست؟
Border Gateway Protocol یا اختصارا BGP، مسئول هدایت دادهها بین شبکههای مختلف در اینترنت است. میتوان BGP را به خدمات پستی اینترنت تشبیه کرد یعنی همانطور که این خدمات بهترین مسیر را برای تحویل نامهها انتخاب میکند، پروتکل BGP نیز کارآمدترین مسیر را برای انتقال دادهها در فضای وب تعیین مینماید. این پروتکل امکان برقراری ارتباط میان شبکههای مختلف یا سامانههای مستقل (Autonomous Systems یا AS) را فراهم میسازد و تبادل اطلاعات مسیردهی بین آنها را ممکن میسازد تا بستههای داده به مقصد موردنظر برسند.
تاریخچه و سیر تکامل پروتکل BGP
این پروتکل که در اواخر دهه ۱۹۸۰ ایجاد شد، همچنان با اینترنت امروزی سازگاری دارد. مهندسان، BGP را در سال ۱۹۸۹ به عنوان جایگزینی برای پروتکل قدیمیتر EGP (Exterior Gateway Protocol) معرفی کردند زیرا EGP دیگر توانایی هماهنگی با رشد عظیم اینترنت را نداشت. BGP شیوهای هوشمندتر و مقیاسپذیرتر برای ارتباط بین شبکهها ارائه داد.
نسخهای که امروزه از آن استفاده میشود، BGP-4 است که در دهه ۱۹۹۰ به استاندارد تبدیل شد. این نسخه بهبودهای مهمی مانند CIDR (مسیریابی بیندامنهای بدون کلاس) را معرفی کرد که به کاهش حجم جداول مسیریابی جهانی و افزایش کارایی کمک نمود. از آن زمان تاکنون، توسعهدهندگان قابلیتهایی مانند پشتیبانی IPv6، مهندسی ترافیک و ویژگیهای پیشرفتهای مانند DNS مبتنی بر Anycast را به BGP اضافه نموده اند.
با گذشت بیش از ۳۰ سال، این پروتکل همچنان ستون فقرات مسیریابی در اینترنت باقی مانده است. مهندسان بارها پروتکل BGP را اصلاح، گسترش و ارتقاء دادهاند اما طراحی اصلی آن همچنان پابرجا می باشد.
تصویر(۱)
اهمیت پروتکل BGP در معماری اینترنت
پروتکل دروازه مرزی، نقش حیاتی در تعیین بهترین مسیر ممکن برای عبور داده از میان سامانههای مستقل (AS) ایفا میکند. سامانه های مستقل در واقع مجموعهای از شبکههای IP و روترها می باشند که تحت کنترل سازمانی واحد قرار دارند و یک سیاست مسیریابی مشترک را به اینترنت ارائه میدهند. BGP همان پروتکلی است که ارتباط میان این سامانههای مستقل را ممکن میسازد و به همین دلیل برای عملکرد بیوقفه اینترنت کاملاً حیاتی است.
در نبود آن، اینترنت همانند شکل کنونی خود قادر به فعالیت نبود. این پروتکل از بروز حلقههای مسیریابی جلوگیری مینماید، قابلیت افزونگی را فراهم کرده و با امکان تجمیع پیشوندهای IP، مقیاسپذیری اینترنت را تضمین میکند. این تجمیع باعث کاهش حجم جدول مسیریابی جهانی شده و مدیریت و کارایی اینترنت را افزایش میدهد.
نحوه عملکرد پروتکل BGP
پروتکل دروازه مرزی، با تبادل اطلاعات مسیریابی میان شبکهها یا سامانههای مستقل (AS) کار میکند. در ادامه یک روند ساده شده از نحوه عملکرد آن آورده شده است:
- برقراری اتصال: روترهای BGP که با عنوان BGP speakers شناخته میشوند توسط پروتکل TCP (پروتکل کنترل انتقال) با یکدیگر ارتباط برقرار میکنند. این ارتباط بهعنوان “BGP session” شناخته میشود.
- تبادل اطلاعات مسیریابی: پس از برقراری سشن، BGP speaker ها اطلاعات مرتبط با شبکههایی که میتوانند به آنها دسترسی داشته باشند را با یکدیگر تبادل میکنند. این اطلاعات در پایگاه دادهای به نام RIB یا Routing Information Base ذخیره میشود.
- انتخاب بهترین مسیر: BGP صرفاً مسیر کوتاهتر را انتخاب نمیکند بلکه با استفاده از ویژگیهای مختلف، مسیر بهینه را بر اساس عواملی مانند سیاست مسیریابی، طول مسیر و پایداری شبکه تعیین مینماید.
- گزارش مسیرها: پس از انتخاب مسیر بهینه، BGP speaker ها این اطلاعات را به همتایان خود اعلام میکنند تا شبکههای دیگر نیز بتوانند جداول مسیریابی خود را بروز نمایند.
- مسیریابی داده: نهایتا، BGP از مسیرهای انتخابشده برای هدایت بستههای داده در شبکه و رسیدن به مقصد استفاده میکند.
تصویر(۲)
ویژگیهای پروتکل BGP
پروتکل BGP از ویژگیهای مختلفی برای انتخاب بهترین مسیر استفاده میکند. این ویژگیها نقشی حیاتی در تصمیمگیریهای مسیریابی ایفا میکنند. مهمترین آنها عبارتند از:
- مسیر AS یا AS Path: این ویژگی فهرستی از سامانههای مستقلی است که داده باید برای رسیدن به مقصد از آنها عبور کند. مسیرهای AS کوتاهتر، معمولاً ترجیح داده میشوند زیرا تعداد گرههای کمتری را در بر میگیرند.
- گام بعدی (Next Hop): این ویژگی نشان میدهد که داده باید به کدام روتر بعدی ارسال شود تا به مقصد برسد. این گزینه برای ادامه صحیح فرآیند مسیریابی بسیار حیاتی است.
- اولویت محلی (Local Preference): عمدتاً در داخل یک سامانه مستقل استفاده میشود و به تعیین نقطه خروج ترجیحی هنگام وجود مسیرهای متعدد برای یک مقصد، کمک میکند.
- تعیینکننده چند ورودی (Multi-Exit Discriminator – MED): این ویژگی به یک سامانه مستقل اجازه میدهد تا تصمیمگیری سامانه مستقل دیگر در مورد انتخاب مسیر را تحت تأثیر قرار دهد، خصوصا زمانی که ورودیهای متعددی به یک AS وجود داشته باشد.
شماره پورت BGP
پروتکل BGP از TCP برای برقراری ارتباط استفاده میکند و شماره پورت آن ۱۷۹ است. این پورت برای برقراری سشن های BGP بین روترها و تبادل اطلاعات مسیریابی، اهمیت حیاتی دارد. استفاده از TCP باعث میشود که سشن های BGP از قابلیتهای ارسال مجدد داده ها و کنترل خطای این پروتکل بهرهمند شوند که برای حفظ پایداری و دقت جداول مسیریابی در سراسر اینترنت، ضروری است.
انواع پروتکل BGP: خارجی و داخلی
پروتکل BGP به دو نوع اصلی یعنی BGP خارجی (eBGP) و BGP داخلی (iBGP) تقسیم میشود. درک تفاوت میان این دو نوع، برای شناخت عملکرد کلی پپروتکل BGP در مقیاس جهانی ضروری است.
- BGP خارجی (eBGP): این نوع BGP، برای ارتباط بین سامانههای مستقل مختلف استفاده میشود. برای مثال، زمانی که یک ارائهدهنده خدمات اینترنتی (ISP) نیاز دارد ترافیک را به ISP دیگری هدایت کند، از eBGP استفاده میشود. مشخصه اصلی eBGP این است که طراحی آن برای مسیریابی میان شبکههای متعلق به سازمانهای مختلف می باشد.
- BGP داخلی (iBGP): در مقابل، iBGP برای مسیریابی درون یک سامانه مستقل استفاده میشود. این نوع BGP، تضمین میکند که تمام روترهای درون یک AS سیاستهای مسیریابی یکسانی داشته باشند. در حالی که eBGP ترافیک را بین AS ها هدایت میکند، iBGP کمک خواهد کرد تا ترافیک داخل AS به مقصد نهایی خود برسد.
تصویر(۳)
تعامل BGP و DNS
سامانه نام دامنه (DNS) و پروتکل BGP ممکن است در نگاه اول جدا از یکدیگر به نظر برسند اما در مدیریت زیرساخت اینترنت نقاط اشتراک زیادی دارند. در ادامه به نحوه ارتباط آنها اشاره میشود:
- DNS مبتنی بر Anycast: پروتکل BGP نقش مهمی در پیادهسازی DNS مبتنی بر Anycast ایفا میکند. Anycast تکنیکی برای مسیریابی است که طی آن یک آدرس IP یکسان از چندین مکان مختلف تبلیغ میشود. BGP با استفاده از سیاستهای خود ترافیک را به نزدیکترین مکان هدایت میکند و در نتیجه باعث افزایش سرعت پاسخگویی DNS و ایجاد افزونگی (Redundancy) میشود.
- هدایت ترافیک DNS: این روش برای هدایت ترافیک براساس شرایط شبکه (مانند ازدحام یا قطعی) استفاده میشود. با تغییر ویژگیهای BGP مانند AS-Path و Local Preference، ارائهدهندگان میتوانند جریان ترافیک سرورهای DNS خود را کنترل کرده و عملکرد را بهینهسازی کنند.
- کاهش اثر حملات DDoS: پروتکل BGP در کاهش اثر حملات DDoS نیز بسیار مؤثر است. با توزیع مجدد ترافیک از طریق تغییرات مسیریابی BGP، شبکههای DNS میتوانند اثرات حملات را خنثی کرده و دسترسی به خدمات را حفظ نمایند.
مشکلات رایج پروتکل BGP و راهکارهای رفع آنها
با وجود اهمیت BGP، این پروتکل بدون چالش نیست. اپراتورهای شبکه اغلب با مسائلی مواجه میشوند که میتوانند پایداری و امنیت پروتکل BGP را تحت تأثیر قرار دهند. در ادامه به برخی از این مشکلات و راهکارهای آنها اشاره میشود:
- نشتیهای مسیر (Route Leaks): زمانی رخ میدهد که پیشوندهای (Prefixes) مربوط به یک محدوده خاص، ناخواسته در کل اینترنت منتشر میشوند. چنین حالتی میتواند منجر به بروز اختلال در مسیریابی یا حتی سرقت ترافیک گردد. برای پیشگیری از اینگونه اختلالات، لازم است ات مکانیزمهای فیلترینگ مسیرهای BGP استفاده شود.
- سرقت BGP یا BGP Hijacking: در این حالت، مهاجم با اعلام جعلی پیشوندهای IP شبکهای دیگر، ترافیک را به سمت خود منحرف میکند. استفاده از روشهایی مانند RPKI یا Resource Public Key Infrastructure (یک چارچوب امنیتی برای تایید اعتبار اطلاعات مسیریابی در اینترنت) و فیلتر پیشوندها میتواند از این رخداد جلوگیری نماید.
- همگرایی BGP: به فرآیندی اشاره دارد که طی آن روترهای BGP پس از تغییر در شبکه، روی بهترین مسیر توافق میکنند. همگرایی کُند میتواند باعث از دست رفتن بستهها یا افزایش تاخیر شود. برای بهبود زمان همگرایی، می توان تایمرهای BGP را بهینه کرده و فرآیند انتخاب مسیر را منسجم تر نمود.
- حملات DDoS: همانطور که پیشتر اشاره شد، BGP میتواند در کاهش حملات DDoS مؤثر باشد. بدون نظارت مناسب و پاسخ سریع، این حملات همچنان میتوانند باعث از کار افتادن شبکهها شوند. پیاده سازی سامانههای خودکار تشخیص و پیشگیری DDoS، برای مقابله با آنها ضروری است.
تصویر(۴)
تفاوت پروتکل BGP و OSPF
BGP اغلب با پروتکل مسیریابی دیگری به نام OSPF یا Open Shortest Path First مقایسه میشود. اگرچه هر دو برای مسیریابی استفاده میشوند اما کاربردها و اهداف متفاوتی دارند:
- BGP عمدتاً برای مسیریابی بین سامانههای مستقل در اینترنت (مسیریابی بیندامنهای) استفاده میشود. این پروتکل جهت مدیریت شبکههای بزرگ طراحی شده و برای اتصال جهانی اینترنت حیاتی است.
- OSPF درون یک سامانه مستقل استفاده میشود (مسیریابی دروندامنهای). این پروتکل یک پروتکل دروازهای داخلی (IGP) است که سریعا به تغییرات در شبکه پاسخ میدهد و برای شبکههای محلی و کوچکتر مناسبتر است.
تفاوت اصلی بین پروتکل BGP و OSPF، در گستردگی، پیچیدگی و نحوه پردازش مسیرها می باشد. BGP پیچیدهتر و مقیاسپذیرتر است، در حالی که OSPF سریعتر و سادهتر بوده و برای مسیریابی داخلی ایدهآل می باشد.
نتیجهگیری
درک پروتکل BGP برای هر فردی که در زمینه شبکه فعالیت دارد، بهویژه در ارتباط با شبکههای بزرگ یا ارائهدهندگان خدمات اینترنتی، ضروری می باشد. اگرچه در ابتدا ممکن است پیچیده به نظر برسد اما آشنایی با اصول اولیه BGP میتواند درک بهتری از نحوه انتقال دادهها در اینترنت و حفظ امنیت و کارایی آن ارائه دهد. چه در حال رفع مشکلات رایج BGP باشید یا مقایسه آن با پروتکلهایی مانند OSPF، این دانش به شما کمک خواهد کرد تا عملکرد شبکه خود را بهصورت مؤثرتری مدیریت و بهینهسازی نمایید.