BGP مخفف Border Gateway Protocol یا «پروتکل دروازه مرزی» است و وظیفه مسیریابی و تبادل اطلاعات مسیر میان شبکههای مستقل در اینترنت را بر عهده دارد. این پروتکل را میتوان به سامانه توزیع مرسولات پستی تشبیه کرد؛ همانطور که یک سامانه پستی با توجه به مقصد و مسیرهای موجود، مسیر مناسبی را برای رساندن بسته انتخاب میکند، پروتکل BGP نیز با استفاده از سیاستهای مسیریابی و ویژگیهای مسیر، بهترین مسیر قابل دسترس را برای انتقال ترافیک میان شبکههای مختلف انتخاب خواهد کرد.
BGP امکان برقراری ارتباط میان شبکههای مستقل یا Autonomous System (AS) را فراهم میکند و اطلاعات مربوط به مسیرهای شبکه را میان آنها تبادل مینماید. در نتیجه، ترافیک داده میتواند از میان هزاران شبکه مستقل عبور کند و به مقصد نهایی خود برسد.
تاریخچه و تکامل BGP
طراحی پروتکل BGP به اواخر دهه ۱۹۸۰ میلادی بازمیگردد و همچنان یکی از مهمترین ارکان زیرساخت اینترنت محسوب میشود. نخستین نسخه BGP در سال ۱۹۸۹ با هدف جایگزینی Exterior Gateway Protocol (EGP) معرفی شد؛ زیرا EGP با رشد سریع و گسترده اینترنت، دیگر توانایی لازم برای مدیریت مؤثر مسیریابی میان شبکههای مستقل را نداشت. BGP با ارائه روشی انعطافپذیرتر و مقیاسپذیرتر، تبادل اطلاعات مسیریابی میان شبکههای مستقل را به شکل قابلتوجهی بهبود بخشید.

تصویر(1)
نسخه BGP-4 که همچنان پایه استاندارد پروتکل BGP محسوب میشود، در دهه ۱۹۹۰ معرفی شد. یکی از مهمترین قابلیتهای این نسخه، پشتیبانی Classless Inter-Domain Routing (CIDR) بود. CIDR توسط پیشوندهای با طول متغیر و قابلیت تجمیع مسیرها، به کاهش رشد جدولهای مسیریابی جهانی و استفاده کارآمدتر از فضای آدرسدهی IP کمک می کند.
در سالهای بعد، قابلیتهای متعددی به BGP افزوده شد تا نیازهای جدید شبکههای اینترنتی را پوشش دهد. یکی از مهمترین ویژگیهای BGP، انعطافپذیری و مقیاسپذیری بالای آن است. با گذشت حدود سه دهه از معرفی این پروتکل، همچنان بخش عمده مسیریابی میان شبکههای مستقل در اینترنت بر پایه BGP انجام میشود. اگرچه طی این سالها بروزرسانیها، توسعهها و بهینهسازیهای متعددی در پروتکل BGP انجام شده اما ساختار اصلی آن همچنان کارآمد و قابل اتکا باقی مانده است.
اهمیت پروتکل BGP در معماری اینترنت
Border Gateway Protocol نقش اساسی در انتخاب مسیر برای انتقال ترافیک میان سیستمهای مستقل یا Autonomous Systems (AS) ایفا میکند. هر سیستم مستقل مجموعهای از شبکههای IP و روترها است که تحت یک مدیریت واحد قرار دارد و سیاستهای مسیریابی مشخصی را برای ارتباط با سایر شبکهها اعمال میکند.
پروتکل BGP امکان تبادل اطلاعات مسیریابی میان این سیستمهای مستقل را فراهم میکند و به همین دلیل یکی از اجزای حیاتی معماری اینترنت محسوب می شود. بدون وجود سازوکاری مانند BGP، مدیریت مسیریابی میان شبکههای مستقل در مقیاس جهانی امکانپذیر نخواهد بود.
علاوه بر انتخاب مسیر، BGP توسط سازوکارهایی مانند AS Path از ایجاد حلقههای مسیریابی جلوگیری میکند، امکان ایجاد افزونگی را فراهم میسازد و با پشتیبانی از تجمیع مسیرها به مقیاسپذیری زیرساخت مسیریابی اینترنت کمک میکند. این قابلیتها مدیریت مسیرهای اینترنتی را کارآمدتر میکنند.

تصویر(2)
پروتکل BGP چگونه کار میکند؟
Border Gateway Protocol با تبادل اطلاعات مسیریابی میان روترهای BGP در شبکههای مختلف یا داخل یک سیستم مستقل فعالیت میکند. عملکرد این پروتکل را میتوان در چند مرحله اصلی خلاصه کرد.
-
ایجاد ارتباط: روترهای BGP که با عنوان BGP Speaker شناخته میشوند، از طریق پروتکل TCP (Transmission Control Protocol) با یکدیگر ارتباط برقرار میکنند. این ارتباط که BGP Session نام دارد، بستر اصلی تبادل اطلاعات مسیریابی میان همتایان پروتکل BGP را تشکیل میدهد.
-
تبادل اطلاعات مسیریابی: پس از برقراری Session، هر روتر اطلاعات مربوط به مسیرهای قابل دسترس را برای همتای خود ارسال میکند. روتر BGP این اطلاعات را در ساختارهایی مانند Routing Information Base (RIB) نگهداری کرده و از آنها برای اجرای فرآیند تصمیمگیری مسیریابی استفاده میکند.
-
انتخاب بهترین مسیر: برخلاف تصور رایج، BGP همیشه کوتاهترین مسیر را انتخاب نمیکند. این پروتکل با بررسی مجموعهای از ویژگیهای مسیر و اعمال سیاستهای مسیریابی، مسیر مناسب را انتخاب خواهد کرد. در این فرآیند عواملی مانند Local Preference، AS Path، MED، Origin و سایر ویژگیهای مسیر بر تصمیمگیری تأثیر میگذارند.
-
اعلام مسیرهای منتخب: پس از انتخاب مسیر مناسب، روتر BGP مسیرهای منتخب خود را مطابق با سیاستهای مسیریابی به همتایان مربوطه اعلام میکند. این فرآیند باعث میشود اطلاعات مسیرها در میان شبکههای مرتبط منتشر گردد و روترهای دیگر نیز بتوانند جدولهای مسیریابی خود را بروزرسانی کنند.
-
هدایت ترافیک: پروتکل BGP به طور مستقیم وظیفه ارسال تکتک بستههای داده را بر عهده ندارد بلکه مسیرهای قابل استفاده برای رسیدن به شبکههای مقصد را در اختیار سیستم مسیریابی قرار میدهد. سپس روترها توسط اطلاعات حاصل از BGP و جدولهای مسیریابی، بستهها را در مسیر مناسب به سمت مقصد هدایت میکنند.
ویژگیهای مسیر در BGP چیست؟
Border Gateway Protocol برای انتخاب مسیر مناسب، مجموعهای از ویژگیهای مسیر یا Attributes را استفاده میکند. این ویژگیها اطلاعات لازم را برای مقایسه مسیرهای مختلف و اعمال سیاستهای مسیریابی فراهم میکنند.
-
AS Path: ویژگی AS Path فهرستی از سیستمهای مستقلی را نشان میدهد که یک مسیر BGP از میان آنها عبور کرده است. در بسیاری از سناریوها، مسیر دارای AS Path کوتاهتر ترجیح داده میشود؛ بااینحال، کوتاهتر بودن AS Path به تنهایی تضمین نمیکند که مسیر از نظر تأخیر، پهنای باند یا فاصله جغرافیایی بهترین مسیر باشد.
-
Next Hop: ویژگی Next Hop آدرس روتر بعدی را برای رسیدن به یک مقصد مشخص نشان میدهد. این ویژگی به روتر کمک میکند تا بداند ترافیک مسیر اعلامشده باید به کدام روتر ارسال شود.
-
Local Preference: ویژگی Local Preference عمدتاً در داخل یک Autonomous System استفاده میشود و در شرایطی که چند مسیر برای رسیدن به یک مقصد وجود داشته باشد، برای تعیین مسیر خروجی ترجیحی به کار میرود. مقدار بالاتر Local Preference معمولاً نشاندهنده اولویت بیشتر مسیر است.
-
Multi-Exit Discriminator یا MED: ویژگی MED به یک Autonomous System امکان میدهد در شرایطی که چند مسیر ورودی میان دو سیستم مستقل وجود دارد، ترجیح خود را درباره مسیر ورودی اعلام کند. سیستم مستقل مقابل میتواند با توجه به سیاستهای خود از این ویژگی در فرآیند انتخاب مسیر استفاده نماید.
شماره پورت BGP
Border Gateway Protocol بر بستر پروتکل TCP فعالیت میکند و برای برقراری ارتباط BGP از پورت ۱۷۹ استفاده مینماید. این پورت برای ایجاد BGP Session میان روترهای BGP و تبادل اطلاعات مسیریابی مورد استفاده قرار میگیرد. TCP، قابلیتهایی مانند تحویل مرتب دادهها، کنترل خطا و ارسال مجدد دادههای ازدسترفته را در اختیار ارتباط BGP قرار میدهد. این ویژگیها به حفظ پایداری و صحت تبادل اطلاعات مسیریابی کمک میکنند.

تصویر(3)
انواع BGP: خارجی در برابر داخلی
Border Gateway Protocol در دو نوع اصلی eBGP و iBGP مورد استفاده قرار میگیرد که هر یک کاربرد متفاوتی دارند.
External BGP یا eBGP
eBGP برای تبادل اطلاعات مسیریابی میان Autonomous System های مختلف استفاده میشود. برای مثال، زمانی که دو ارائهدهنده خدمات اینترنت (ISP) قصد تبادل اطلاعات مسیر یا ترافیک میان شبکههای خود را داشته باشند، معمولاً از eBGP استفاده میکنند. ویژگی اصلی eBGP، ایجاد ارتباط مسیریابی میان سیستمهای مستقلی است که معمولاً تحت مدیریت سازمانهای متفاوت قرار دارند.
Internal BGP یا iBGP
iBGP برای تبادل اطلاعات مسیریابی در داخل یک Autonomous System به کار میرود. هدف اصلی iBGP، انتشار مسیرهای BGP میان روترهای داخل یک AS و فراهم کردن امکان اعمال سیاستهای مسیریابی یکپارچه در آن سیستم مستقل است. در حالی که eBGP برای تبادل مسیر میان AS های مختلف استفاده میشود، iBGP به روترهای داخل یک AS امکان میدهد از مسیرهای BGP دریافتی و سیاستهای مرتبط با آنها آگاه شوند.
ارتباط پروتکل BGP با DNS
در نگاه نخست، DNS و Border Gateway Protocol دو فناوری مستقل به نظر میرسند اما در برخی معماریهای زیرساخت اینترنت ارتباط نزدیکی با یکدیگر دارند.
Anycast DNS
یکی از مهمترین کاربردهای پروتکل BGP در زیرساخت DNS، پیادهسازی Anycast DNS است. در معماری Anycast، یک آدرس IP یکسان از چند موقعیت جغرافیایی مختلف اعلام میشود. BGP با در نظر گرفتن مسیرهای موجود و سیاستهای مسیریابی، ترافیک کاربران را به یکی از نقاط ارائهدهنده سرویس هدایت میکند. این روش میتواند با کاهش فاصله مسیریابی و توزیع بار میان نقاط مختلف، زمان پاسخگویی DNS و دسترسپذیری سرویس را بهبود دهد.
هدایت ترافیک DNS
پروتکل BGP میتواند در معماریهای توزیعشده DNS برای کنترل مسیر دسترسی به نقاط مختلف ارائه سرویس مورد استفاده قرار گیرد.
با تغییر سیاستهای مسیریابی و ویژگیهایی مانند AS Path و Local Preference، اپراتور شبکه میتواند مسیر ترجیحی ترافیک را میان نقاط مختلف تعیین نماید. البته این فرآیند مستقیماً وضعیت لحظهای DNS یا میزان تأخیر را اندازهگیری نمیکند و تصمیمگیری بر اساس سیاستها و اطلاعات مسیریابی BGP انجام میشود.
مقابله با حملات DDoS
پروتکل BGP میتواند در برخی معماریهای مقابله با حملات DDoS نیز مورد استفاده قرار گیرد. در زمان وقوع حمله، میتوان توسط تغییر مسیرهای BGP، ترافیک یک پیشوند IP را به زیرساختهای تخصصی مقابله با حملات، مانند مراکز پاکسازی ترافیک (Scrubbing Centers)، هدایت کرد. این روش میتواند بخشی از ترافیک مخرب را قبل رسیدن به زیرساخت اصلی سرویس فیلتر کند.
مشکلات رایج BGP و روشهای رفع آنها
با وجود اهمیت بالای BGP، این پروتکل نیز چالشهایی دارد که میتوانند عملکرد، پایداری و امنیت شبکه را تحت تأثیر قرار دهند.
Route Leak
Route Leak زمانی رخ میدهد که مسیرهای BGP برخلاف سیاست مورد انتظار و محدوده مجاز خود به سیستمهای مستقل دیگری اعلام شوند. این مشکل میتواند باعث انتخاب مسیرهای نامناسب، انحراف ترافیک یا ایجاد اختلال گسترده در دسترسی به سرویسها شود. استفاده از Route Filtering، تعریف سیاستهای دقیق مسیریابی و به کارگیری سازوکارهای اعتبارسنجی مسیر میتواند احتمال وقوع و اثرگذاری Route Leak را کاهش دهد.

تصویر(4)
BGP Hijacking
در حمله BGP Hijacking، یک سیستم مستقل یا روتر، پیشوند IP متعلق به شبکه دیگری را بدون مجوز اعلام میکند و در نتیجه ممکن است بخشی از ترافیک به سمت مسیر غیرمجاز هدایت شود. استفاده از Resource Public Key Infrastructure (RPKI) برای اعتبارسنجی منشأ مسیرها، در کنار اعمال فیلترهای مناسب و سیاستهای دقیق مسیریابی، از مهمترین راهکارهای کاهش خطر این نوع حمله محسوب میشود.
کندی همگرایی (BGP Convergence)
Convergence به فرآیندی گفته میشود که طی آن روترهای BGP پس از وقوع تغییر در وضعیت شبکه، اطلاعات مسیریابی خود را بروزرسانی میکنند و به وضعیت پایدار جدید میرسند. اگر این فرآیند بیش از حد طولانی شود، ممکن است برای مدتی ترافیک با مسیرهای نامناسب هدایت گردد یا برخی بستهها از دست بروند. تنظیم مناسب پارامترهای BGP، طراحی صحیح توپولوژی و استفاده از سازوکارهای مناسب برای کنترل انتشار مسیرها، میتواند به کاهش زمان همگرایی کمک کند.
حملات DDoS
اگرچه پروتکل BGP میتواند در برخی معماریها برای کاهش اثر حملات DDoS مورد استفاده قرار گیرد اما به تنهایی یک سامانه کامل برای تشخیص یا مقابله با این حملات محسوب نمیشود. به کارگیری سامانههای پایش ترافیک، تشخیص حمله و واکنش خودکار، در کنار زیرساختهای پاکسازی ترافیک، میتواند سطح امنیت و پایداری شبکه را مقابل حملات DDoS افزایش دهد.

تصویر(5)
مزایا و محدودیتهای BGP چیست؟
پروتکل Border Gateway Protocol یکی از مهمترین پروتکلهای مسیریابی در اینترنت است اما مانند هر فناوری دیگری مزایا و محدودیتهای خاص خود را دارد.
مزایای BGP:
-
مقیاسپذیری بالا و امکان مدیریت حجم بسیار زیادی از مسیرها
-
امکان پیادهسازی سیاستهای سفارشی برای مدیریت مسیرهای ورودی و خروجی
-
افزایش افزونگی شبکه توسط مسیرهای جایگزین هنگام بروز اختلال
-
پشتیبانی از Multihoming و امکان اتصال یک شبکه به چند ارائهدهنده خدمات اینترنت
-
امکان اجرای مهندسی ترافیک (Traffic Engineering) برای کنترل و بهینهسازی مسیرهای ترافیک
محدودیتهای BGP:
-
پیکربندی نسبتاً پیچیده و نیاز به دانش تخصصی شبکه
-
همگرایی کندتر نسبت به بسیاری از پروتکلهای مسیریابی داخلی
-
آسیبپذیری در برابر خطاهای پیکربندی و تهدیداتی مانند BGP Hijacking و Route Leak
-
انتخاب مسیر بر اساس سیاستها و ویژگیهای BGP، بدون در نظر گرفتن مستقیم معیارهایی مانند پهنای باند، تأخیر یا فاصله فیزیکی
مقایسه پروتکل BGP و OSPF
پروتکلهای BGP و Open Shortest Path First (OSPF) هر دو برای مسیریابی استفاده میشوند اما اهداف و حوزه عملکرد آنها متفاوت است.
BGP برای تبادل اطلاعات مسیریابی میان Autonomous Systems های مختلف طراحی شده است و در مقیاس اینترنت و شبکههای بزرگ بینسازمانی مورد استفاده قرار میگیرد. این پروتکل به جای تکیه صرف بر معیارهای فنی مسیر، امکان اعمال سیاستهای مسیریابی را نیز فراهم میکند.
در مقابل، OSPF یک Interior Gateway Protocol (IGP) است که برای مسیریابی در داخل یک Autonomous System به کار میرود. OSPF با استفاده از الگوریتم کوتاهترین مسیر و اطلاعات وضعیت لینکها، مسیر مناسب را در داخل شبکه محاسبه میکند و معمولاً در شبکههای سازمانی و مراکز داده مورد استفاده قرار میگیرد.

تصویر(5)
مهمترین تفاوت این دو پروتکل در حوزه عملکرد، روش تصمیمگیری و مقیاس استفاده آنها می باشد. BGP برای تبادل مسیر میان سیستمهای مستقل و اعمال سیاستهای مسیریابی در مقیاس بزرگ طراحی شده است، در حالی که OSPF برای محاسبه و انتشار سریع مسیرهای داخلی درون یک سیستم مستقل مورد استفاده قرار میگیرد.
نتیجهگیری
شناخت پروتکل BGP برای متخصصان شبکه، مدیران زیرساخت و افرادی که با اینترنت و شبکههای گسترده سروکار دارند، اهمیت بالایی دارد. اگرچه این پروتکل در نگاه نخست پیچیده به نظر میرسد اما شناخت اصول عملکرد، ویژگیهای مسیر، انواع BGP و نحوه کار با آن در معماریهایی مانند Anycast DNS میتواند درک عمیقتری از ساختار مسیریابی اینترنت ایجاد کند.
همچنین، آگاهی از چالشهایی مانند Route Leak، BGP Hijacking و فرآیند Convergence میتواند به طراحی و مدیریت شبکههای پایدارتر و ایمنتر کمک نماید. تسلط بر مفاهیم BGP در کنار شناخت پروتکلهایی مانند OSPF، نقش مهمی جهت مدیریت، بهینهسازی و افزایش قابلیت اطمینان زیرساختهای شبکه ایفا میکند.