فرض کنید یک دیتاسنتر برای اتصال به اینترنت از دو ISP استفاده میکند. اگر مسیر اصلی از دسترس خارج شود، ترافیک باید بدون دخالت دستی از مسیر دوم عبور کند. BGP پروتکلی است که تبادل اطلاعات مسیریابی میان شبکههای مستقل را ممکن میکند و به روترها کمک میکند در چنین شرایطی مسیر مناسب را انتخاب کنند.
در این مقاله از ویپیاس مارکت ابتدا بررسی میکنیم که BGP دقیقاً چه کاری انجام میدهد و چطور مسیرها را انتخاب میکند. سپس تفاوت eBGP و iBGP، کاربرد BGP در دیتاسنتر و VPS، مسائل امنیتی و ساختار تنظیمات آن در MikroTik را بررسی میکنیم. اگر بخشی از زیرساخت شما روی منابع مجازی اجرا میشود، سرور مجازی نیز میتواند در معماری کلی شبکه مطرح باشد.
پروتکل BGP چیست؟
برای پاسخ به این سؤال که Bgp چیست، ابتدا باید بگوییم BGP مخفف Border Gateway Protocol و معادل فارسی آن «پروتکل دروازه مرزی» است. این پروتکل برای تبادل اطلاعات مربوط به دسترسی و مسیر میان Autonomous Systemها یا همان ASها طراحی شده است. هر AS مجموعهای از شبکهها و روترهاست که زیر نظر یک مدیریت واحد و با سیاست مسیریابی مشخص فعالیت میکند. BGP اطلاعات مربوط به Prefixهای شبکه و مسیر رسیدن به آنها را میان این ASها ردوبدل میکند.
دلیل اهمیت BGP را باید در ساختار اینترنت دید. اینترنت از تعداد زیادی شبکۀ مستقل تشکیل شده است و این شبکهها برای رسیدن به یکدیگر باید مسیرهای قابلدسترسی را اعلام کنند و از بین گزینههای موجود، مسیر مناسب را برگزینند.
پروتکل مسیریابی BGP چگونه کار میکند؟
BGP در گروه پروتکلهای Path Vector قرار میگیرد. وقتی یک Route اعلام میشود، علاوه بر مقصد، اطلاعاتی دربارۀ مسیر عبور آن از ASهای مختلف هم منتقل میشود. روتر این اطلاعات را کنار Policyهای تعریفشده قرار میدهد و بر همان اساس دربارۀ مسیر تصمیم میگیرد. RFC 4271 نیز BGP را یک پروتکل مسیریابی میان Autonomous Systemها معرفی میکند. اگر بخواهیم این روند را مرحلهبهمرحله دنبال کنیم، جریان کار BGP به این شکل است:
- دریافت Route: روتر از همسایههای BGP خود، Routeهای مربوط به شبکههای قابلدسترسی را دریافت میکند.
- اعتبارسنجی و اعمال Policy: روتهای دریافتی با توجه به فیلترها، سیاستهای مسیریابی و دسترسیپذیری Next Hop بررسی میشوند.
- مقایسه و انتخاب Best Path: اگر برای یک مقصد چند Route وجود داشته باشد، BGP آنها را با توجه به Attributeها و قواعد انتخاب مسیر مقایسه میکند.
- اعلام Route: روت منتخب، در صورتی که Policy اجازه دهد، به همسایههای مربوط اعلام میشود.
- حفظ Session: پیامهای KEEPALIVE برای حفظ ارتباط میان همسایههای BGP ارسال میشوند. اگر پیامهای لازم دریافت نشوند، Session ممکن است از دسترفته تلقی شود.
BGP چگونه بهترین مسیر را انتخاب میکند؟
در BGP، «بهترین مسیر» الزاماً کوتاهترین مسیر فیزیکی نیست. سیاستهای شبکه بخش مهمی از تصمیمگیری را شکل میدهند و ترتیب دقیق انتخاب مسیر هم ممکن است با توجه به پیادهسازی و تنظیمات متفاوت باشد. بااینحال، چند Attribute معمولاً نقش پررنگتری دارند، از جمله:
- LOCAL_PREF: در یک AS برای مشخصکردن مسیر ترجیحی خروجی به کار میرود و معمولاً مقدار بالاتر آن در انتخاب مسیر اولویت دارد.
- AS_PATH: فهرست ASهایی است که Route از آنها عبور کرده است. کوتاهتر بودن AS_PATH یکی از معیارهای مهم در فرایند انتخاب مسیر است.
- NEXT_HOP: مشخص میکند بسته برای رسیدن به مقصد باید به کدام Next Hop فرستاده شود. یک Route زمانی قابل استفاده است که Next Hop آن نیز در دسترس باشد.
برگردیم به مثال ابتدای مقاله. اگر یک دیتاسنتر به دو ISP متصل باشد، روتر میتواند Routeهای هر دو مسیر را دریافت کند و بر اساس Policy و Attributeهای BGP یکی را در اولویت قرار دهد. اگر آن مسیر از دسترس خارج شود، مسیر دیگر وارد فرایند انتخاب میشود؛ البته نتیجۀ نهایی به تنظیمات شبکه و Policyهای اعمالشده بستگی دارد.
مثالهای واقعی از پروتکل BGP
برای دیدن اثر BGP در دنیای واقعی، کافی است به چند اختلال شناختهشده در اینترنت نگاه کنیم. این رخدادها نشان میدهند که یک تغییر یا خطای مسیریابی میتواند خیلی فراتر از یک شبکۀ محلی اثر بگذارد.
قطعی فیسبوک در اکتبر ۲۰۲۱
در ۴ اکتبر ۲۰۲۱، سرویسهای Facebook ،Instagram و WhatsApp برای مدتی از دسترس خارج شدند. طبق گزارش رسمی Meta، تغییرات پیکربندی روی روترهای Backbone ارتباط میان دیتاسنترهای این شرکت را مختل کرد. پس از آن، Routeهای BGP مربوط به سرویسهای DNS نیز Withdraw شدند و سرورهای DNS شرکت برای بخش بزرگی از اینترنت دیگر قابل دسترسی نبودند.
اهمیت این رخداد در مقیاس اثر آن بود: تغییری داخل یک شبکۀ بزرگ، وقتی بر اعلانهای BGP اثر گذاشت، دسترسی کاربران را در سطح گسترده مختل کرد.
BGP Hijacking یوتیوب در سال ۲۰۰۸
در ۲۴ فوریه ۲۰۰۸، Pakistan Telecom یک Route غیرمجاز برای بخشی از فضای IP مربوط به YouTube، یعنی 208.65.153.0/24، اعلام کرد. این Route از سوی اپراتور بالادستی آن، PCCW Global، منتشر شد و بخشی از ترافیک YouTube در سطح جهان به سمت شبکۀ پاکستان رفت. RIPE NCC این رویداد را بهعنوان یکی از نمونههای مهم BGP Hijacking مستند کرده است.
یک سناریوی ساده: دیتاسنتر با دو ISP
حالا همان سناریوی ابتدای مقاله را کمی دقیقتر بررسی کنیم. فرض کنید یک دیتاسنتر دو اتصال مستقل به اینترنت دارد:
- ISP اول: مسیر اصلی اینترنت
- ISP دوم: مسیر پشتیبان
در این سناریو، دیتاسنتر Routeهای مربوط به Prefixهای خود را از هر دو اتصال اعلام یا دریافت میکند و با Policyهای BGP مشخص میکند کدام مسیر اولویت داشته باشد. اگر اتصال ISP اول قطع شود و Route آن دیگر قابل استفاده نباشد، مسیر ISP دوم میتواند جای آن را بگیرد. این همان چیزی است که BGP را برای شبکههای چنداتصاله کاربردی میکند؛ یعنی مدیر شبکه فقط یک مسیر جایگزین ندارد، بلکه میتواند روی انتخاب مسیرهای ورودی و خروجی هم کنترل دقیقتری داشته باشد.
تفاوت eBGP و iBGP چیست؟
BGP بسته به اینکه تبادل Route میان دو AS متفاوت انجام شود یا داخل یک AS، به دو نوع اصلی به نامهای eBGP و iBGP تقسیم میشود که در جدول زیر با یکدیگر مقایسهشان کردهایم.
|
معیار |
eBGP |
iBGP |
|
مفهوم |
External BGP | Internal BGP |
|
ارتباط |
میان ASهای متفاوت |
داخل یک AS |
|
کاربرد رایج |
ارتباط با ISP یا شبکۀ دیگر |
تبادل مسیر میان روترهای یک سازمان |
| شمارۀ AS | متفاوت |
یکسان |
در عمل، وقتی یک دیتاسنتر با ISP یا شبکهای مستقل Route مبادله میکند، معمولاً با eBGP سروکار داریم. iBGP در سمت دیگر، برای توزیع اطلاعات مسیرهای خارجی میان روترهای همان AS استفاده میشود.
BGP چه تفاوتی با پروتکلهای مسیریابی داخلی دارد؟
BGP و پروتکلهایی مثل OSPF و RIP برای یک محدودۀ یکسان طراحی نشدهاند. OSPF و RIP نمونههایی از IGP یا Interior Gateway Protocol هستند و مسیریابی داخل یک Autonomous System را انجام میدهند. BGP اما برای تبادل اطلاعات مسیریابی میان ASهای مستقل ساخته شده است؛ بنابراین تفاوت فقط به روش انتخاب مسیر برنمیگردد و دامنۀ کاربرد آنها هم متفاوت است. پروتکلهای داخلی مسیر را درون یک شبکه یا AS مدیریت میکنند، در حالی که BGP مرز میان شبکههای مستقل را پوشش میدهد.
به همین دلیل، BGP بیشتر در اپراتورها، دیتاسنترها و شبکههای بزرگی دیده میشود که با چند مسیر اینترنتی یا چند شبکۀ مستقل در ارتباطاند. در جدول زیر تفاوت بین Bgp و OSPF و RIP را به شکل سادهتری متوجه میشوید.
|
معیار |
پروتکل BGP | OSPF |
RIP |
|
نوع اصلی |
بین ASها / EGP | داخل AS / IGP | داخل AS / IGP |
| معیار اصلی مسیر | Policy و Attributeهای BGP | Cost |
تعداد Hop |
|
مقیاس |
بسیار بزرگ، مناسب اینترنت | شبکههای سازمانی و بزرگ |
شبکههای کوچکتر |
|
سرعت همگرایی |
معمولاً کندتر | معمولاً سریعتر |
محدودتر |
|
کاربرد رایج |
اتصال ISPها و شبکههای مستقل | مسیریابی داخلی |
شبکههای ساده و قدیمی |
|
پیچیدگی |
بالا | متوسط تا بالا |
پایینتر |
کاربرد پروتکل BGP در دیتاسنتر
کاربرد عملی این ویژگیها را در دیتاسنترها بهتر میتوان دید. چنین زیرساختهایی به ارتباط پایداری نیاز دارند و معمولاً نمیخواهند تمام ترافیک خود را به یک مسیر وابسته کنند؛ بنابراین ممکن است همزمان از چند Provider یا چند اتصال اینترنتی استفاده کنند.
BGP در اینجا فقط نقش یک مسیر جایگزین را ندارد و دیتاسنتر میتواند با Policyهای مسیریابی مشخص کند ترافیک از کدام مسیر خارج شود یا از چه مسیری وارد شبکه شود و Routeها را با شبکههای دیگر تبادل کند. این سطح از کنترل، بهویژه برای زیرساختهایی که به افزونگی، چند اتصال اینترنتی یا مدیریت دقیقتر مسیرها نیاز دارند، اهمیت دوچندانی پیدا میکند.
آیا پروتکل BGP امن است؟
BGP بهتنهایی سازوکاری رمزنگاریشده برای اثبات مالکیت هر Route ندارد. این محدودیت باعث شده است تا BGP Hijacking و Route Leak از مسائل شناختهشده در امنیت مسیریابی باشند.
- BGP Hijacking: زمانی رخ میدهد که یک شبکه بدون مجوز، Prefix متعلق به شبکۀ دیگری را اعلام کند و بخشی از ترافیک به مسیر اشتباه هدایت شود. رخداد YouTube در سال ۲۰۰۸ یکی از نمونههای شناختهشده این وضعیت است.
- Route Leak: وقتی اتفاق میافتد که یک شبکه Routeهایی را خارج از محدوده مورد انتظار به همسایههای خود اعلام کند؛ مشکلی که معمولاً به Policy یا فیلترگذاری نادرست مربوط است.
- RPKI: زیرساختی رمزنگاریشده است که با استفاده از ROA به شبکهها کمک میکند بررسی کنند آیا یک ASN اجازه دارد یک Prefix را Origin کند یا نه. RPKI و Route Origin Validation میتوانند ریسک Route Hijacking را کاهش دهند، اما تمام خطاها و حملات مسیریابی را بهتنهایی پوشش نمیدهند.
ارتباط BGP با روتر چیست؟
BGP در عمل روی تجهیزات و نرمافزارهای مسیریابی اجرا میشود و روتر یکی از اجزای اصلی این فرایند است. روترهای BGP، روترها را دریافت و پردازش میکنند و نتیجه را در جدولهای مسیریابی خود نگه میدارند. البته این موضوع به آن معنا نیست که هر روتر خانگی برای BGP ساخته شده باشد. این پروتکل بیشتر روی تجهیزات و نرمافزارهای حرفهای شبکه به کار میرود؛ جایی که امکان مدیریت Routeها و Policyهای مسیریابی وجود دارد.
اگر با تجهیزات MikroTik کار میکنید، مطلب میکروتیک چیست؟ میتواند پیشزمینۀ خوبی برای درک بهتر تنظیمات مسیریابی و BGP در این تجهیزات باشد.
استفاده از BGP در سرور و VPS
کاربر معمولی VPS معمولاً مستقیماً با BGP سروکار ندارد. در بیشتر سناریوها، این پروتکل در لایۀ شبکۀ دیتاسنتر یا اپراتور اجرا میشود و VPS فقط بخشی از همان زیرساخت است. در پروژههای حرفهای، ماجرا میتواند متفاوت باشد. اگر یک سازمان VPS یا سرور را جزئی از معماری شبکه خود در نظر بگیرد، مفاهیمی مثل ASN ،Prefixهای IP، BGP Session و Policyهای مسیریابی به بخشی از طراحی تبدیل میشوند.
اگر همین پروژه به منابع سختافزاری اختصاصیتر یا کنترل بیشتری روی شبکه نیاز داشته باشد، سرور اختصاصی هم میتواند بهعنوان گزینهای برای بررسی جدی باشد.
پروتکل BGP در MikroTik RouterOS v7
در RouterOS v7، شیوۀ سازماندهی تنظیمات BGP با نسخههای قدیمیتر MikroTik تفاوتهایی دارد. بهطور مشخص، از RouterOS v7.20، Routing Instanceها در منوی /routing/bgp/instance بهصورت صریح تعریف میشوند و دیگر فقط بر اساس Router ID بهطور خودکار تشخیص داده نمیشوند. برای اینکه ساختار تنظیمات روشنتر باشد، بخشهای اصلی BGP در RouterOS v7 را میتوان در چهار گروه به شکل زیر دید:
- Instance: از RouterOS v7.20 برای تعریف Routing Instance و تنظیمات وابسته به آن استفاده میشود.
- Connection: مشخصات ارتباط BGP با Neighbor و تنظیمات مربوط به اتصال در این بخش قرار میگیرند.
- Session: وضعیت Sessionهای BGP را نشان میدهد. این بخش برای مشاهدۀ وضعیت ارتباط است و نباید آن را با Connection، یعنی محل اصلی تعریف مشخصات Neighbor، اشتباه گرفت.
- Template: برای ساخت الگوهای تنظیمات BGP و اعمال آنها روی Connectionها به کار میرود. در مستندات MikroTik نیز نمونۀ یک eBGP ساده با تعریف Instance و سپس ایجاد Connection با Neighbor نشان داده شده است.
اگر قرار است این زیرساخت مسیریابی را در یک محیط مجازی اجرا کنید، سرور مجازی میکروتیک میتواند یکی از گزینههای قابل بررسی باشد. پیش از اجرا حتماً دقت داشته باشید که نیازهای دقیق BGP و محدودیتهای Provider را هم در نظر بگیرید.
مزایا و محدودیتهای BGP
مزایای پروتکل BGP
- مقیاسپذیری بالا: BGP برای تبادل Route میان شبکههای مستقل و در مقیاس اینترنت طراحی شده است.
- کنترل مسیر: مدیر شبکه میتواند با تعریف Policy روی انتخاب و انتشار Routeها اثر بگذارد.
- پشتیبانی از چند ISP: یک شبکه میتواند همزمان چند مسیر ارتباطی داشته باشد و برای اولویتبندی آنها Policy مشخص کند.
- کنترل بیشتر در دیتاسنتر: در شبکههایی با چند اتصال و مسیر خارجی، BGP امکان مدیریت دقیقتر Routing را فراهم میکند.
محدودیتهای پروتکل BGP
- پیچیدگی تنظیمات: پیکربندی BGP معمولاً از پروتکلهای مسیریابی داخلی پیچیدهتر است و به طراحی دقیقتری نیاز دارد.
- ریسک خطای Routing: اشتباه در Policy یا انتشار Route ممکن است به Route Leak یا اختلال در دسترسی منجر شود.
- نیاز به دانش شبکه: مدیریت BGP به شناخت مفاهیمی مثل ASN ،Prefix ،Policy و Attributeهای مسیریابی نیاز دارد.
- همگرایی متفاوت با IGPها: BGP برای مسیریابی میان شبکههای مستقل و اعمال Policy طراحی شده است؛ بنابراین نباید رفتار آن را با پروتکلهای داخلی مثل OSPF یکسان در نظر گرفت.
آیا BGP برای شبکه خانگی مناسب است؟
برای یک شبکۀ خانگی معمولی، BGP کاربردی ندارد. بیشتر کاربران یک اتصال اینترنتی و یک روتر دارند و مسیریابی موردنیاز آنها در سطح تجهیزات شبکه و ISP انجام میشود. BGP زمانی وارد ماجرا میشود که شبکه با چند اتصال اینترنتی، مدیریت Prefixهای IP، ارتباط میان ASها یا زیرساخت حرفهایتری روبهرو باشد.
پروتکل BGP و اینترنت ایران
اتصال بینالمللی اینترنت ایران به چند مسیر و اپراتور متکی است و از طریق شبکههای مختلف و Carrierهای خارجی برقرار میشود. در گزارش RIPE NCC دربارۀ اینترنت ایران، TIC بهعنوان یکی از اجزای اصلی اتصال بینالمللی IPv4 معرفی شده و از TI Sparkle و Delta Telecom نیز بهعنوان دو مسیر بزرگتر نام برده شده است.
موضوع ASN هم در همین چارچوب قرار میگیرد. ایران در محدودۀ خدمات RIPE NCC است و اطلاعات ASNهای ثبتشده و Routeشده کشور را میتوان در دادههای این رجیستری بررسی کرد. RIPE NCC کد کشور IR را نیز برای ایران در فهرست کشورهای تحت پوشش خود ثبت کرده است. این موضوع به این معنی است که ASN یک شمارۀ دلخواه نیست و تخصیص آن در چارچوب Regional Internet Registryها انجام میشود و وضعیت ثبت یا Route شدن ASNها را میتوان در پایگاههای داده RIRها بررسی کرد.
جمعبندی
BGP برای تبادل مسیر میان شبکههای مستقل ساخته شده است و تصمیمگیری آن فقط بر پایۀ کوتاهترین مسیر انجام نمیشود. Attributeهایی مثل AS_PATH ،LOCAL_PREF و NEXT_HOP در کنار Policyهای شبکه تعیین میکنند کدام Route برای استفاده مناسبتر است.
این ویژگی در دیتاسنترهای چنداتصاله امکان مدیریت چند ISP و کنترل مسیرهای ورودی و خروجی را فراهم میکند، اما همانقدر که قدرت انتخاب مسیر بیشتر میشود، حساسیت پیکربندی هم بالاتر میرود. رخداد YouTube در سال ۲۰۰۸ و اختلال Meta در سال ۲۰۲۱ نمونههایی از پیامدهای گسترده خطاهای مسیریابی هستند.
برای کاهش ریسکهایی مثل Hijack و Route Leak، فیلترگذاری Route، RPKI و Route Origin Validation اهمیت دارند. در RouterOS v7 نیز تنظیمات BGP در بخشهایی مانند Instance، Connection، Session و Template سازماندهی شدهاند (اگر میخواهید یکی از اجزای اصلی این زیرساخت را بهتر بشناسید، مطلب آشنایی با روتر میتواند ادامه مناسبی برای این موضوع باشد).
در عمل، BGP زمانی معنا پیدا میکند که یک شبکه باید میان چند مسیر و چند همسایه، بر اساس Policy مشخص تصمیم بگیرد؛ همان مسئلهای که در دیتاسنترها، اپراتورها و ارتباط میان ASها با آن روبهرو میشویم.
سؤالات متداول
BGP روی چه پورتی کار میکند؟
BGP برای برقراری ارتباط از TCP استفاده میکند و پورت استاندارد آن TCP 179 است.
ASN چیست؟
ASN یا Autonomous System Number، شناسهای عددی برای یک Autonomous System است؛ یعنی شبکهای که زیر نظر یک مدیریت و با سیاست مسیریابی مشخص فعالیت میکند. BGP از ASN برای شناسایی شبکهها و تبادل اطلاعات مسیریابی میان آنها استفاده میکند و تخصیص و ثبت این شناسهها در چارچوب Regional Internet Registryها انجام میشود.
BGP Hijacking چیست؟
BGP Hijacking زمانی رخ میدهد که یک شبکه بدون مجوز، Prefix متعلق به شبکۀ دیگری را اعلام کند و بخشی از اینترنت آن Route را بپذیرد. در این وضعیت ممکن است ترافیک به مسیر اشتباه هدایت شود. رخداد YouTube در سال ۲۰۰۸ یکی از نمونههای مشهور آن است که RIPE NCC مستند کرده است.
Route Leak در BGP چیست؟
Route Leak زمانی رخ میدهد که یک شبکه، Routeها را برخلاف Policy یا خارج از محدودۀ مورد انتظار به شبکه دیگری اعلام کند. این مشکل معمولاً از خطای پیکربندی یا نبود فیلترهای مناسب ناشی میشود و میتواند مسیر بخشی از ترافیک را تغییر دهد. فیلترهای دقیق Import و Export به کاهش این ریسک کمک میکنند.
RPKI چه کمکی به امنیت BGP میکند؟
RPKI به کمک ROA مشخص میکند کدام ASN اجازه دارد یک Prefix را Origin کند. شبکۀ دریافتکننده میتواند با Route Origin Validation وضعیت Route را بررسی کند و اگر Route در وضعیت RPKI-invalid باشد، مطابق Policy آن را رد کند یا با اولویت پایینتری در نظر بگیرد. RPKI در کاهش ریسک Origin Hijacking مؤثر است، اما تمام مشکلات BGP را پوشش نمیدهد.
چرا دیتاسنترها از دو ISP استفاده میکنند؟
داشتن دو ISP وابستگی دیتاسنتر به یک مسیر واحد را کمتر میکند. BGP Routeهای هر دو اتصال را در اختیار شبکه میگذارد تا مسیر مناسب بر اساس Policy انتخاب شود. اگر مسیر اصلی از دسترس خارج شود، Route جایگزین میتواند وارد مدار شود؛ هرچند رفتار نهایی به پیکربندی BGP و وضعیت Routeها بستگی دارد.
آیا BGP روی MikroTik قابل اجرا است؟
بله. RouterOS از BGP پشتیبانی میکند و امکاناتی مثل BGP Session ،eBGP ،iBGP و فیلترهای مسیریابی را در اختیار مدیر شبکه قرار میدهد.
آیا برای VPS معمولی به BGP نیاز داریم؟
معمولاً نه. BGP بیشتر در زیرساخت اپراتورها، دیتاسنترها و شبکههایی به کار میرود که به مدیریت حرفهای Routeها و ارتباط میان ASها نیاز دارند.






