آنچه در این مقاله می خوانید:
پروتکل BGP چیست و چه کاربردی دارد؟
پروتکل BGP چیست؟
فهرست محتوا
پروتکل BGP که مخفف Border Gateway Protocol است، یکی از پروتکلهای مسیریابی است که در اینترنت استفاده میشود. BGP برای تبادل اطلاعات مربوط به مسیریابی بین شبکههای مختلف استفاده میشود و به شبکهها کمک میکند تا بهترین مسیر را برای انتقال بستههای داده انتخاب کنند.
BGP در لایه 4 مدل OSI (مدل استاندارد ارتباطات شبکه) قرار دارد و در لایه شبکه اینترنت (لایه 3 در مدل OSI) استفاده میشود. دو نسخه اصلی BGP شامل BGP-4 و BGP-5 است که BGP-4 بیشتر در اینترنت استفاده میشود.
عمده وظیفه پروتکل BGP تعیین مسیر بهترینها (best path) برای انتقال دادهها در شبکههای اینترنتی است. این پروتکل اطلاعات مربوط به شبکهها، زیرشبکهها و مسیرها را مبادله میکند تا شبکهها بتوانند ترافیک خود را در بهترین مسیرها هدایت کنند.
BGP برای مسیریابی بین شبکههای مستقل (Autonomous System) استفاده میشوند. هر Autonomous System (AS) میتواند شامل یک یا چند شبکه باشد که توسط یک مدیریت مشخص اداره میشود. BGP اطلاعات مربوط به مسیریابی بین این Autonomous Systems را تبادل میکند.
با استفاده از پروتکل BGP، اطلاعات مربوط به مسیریابی شبکهها از طریق پیامهای BGP تبادل میشود. این پیامها شامل اطلاعاتی مانند شناسه شبکه (Network ID)، آدرس IP، متریک (Metric) و وضعیت شبکه (Network Status) است. BGP اطلاعات دریافتی را تحلیل کرده و بهترین مسیر را برای ارسال ترافیک تعیین میکند. BGP یکی از پروتکلهای پیچیده و قدرتمند است که در اینترنت استفاده میشود و توسط توسعهدهندگان و مدیران شبکه برای تنظیم مسیریابی و ارتباطات شبکه استفاده میشود.
ویژگی های پروتکل BGP:
این پروتکل ویژگی های بسیار زیادی دارد، از ویژگی های شاخص آن می توان به موارد زیر اشاره کرد :
ـ مقیاس پذیری : پروتکل های دسته ی IBGP برای داخل سازمان ها طراحی شده اند و برای شبکه های بسیار بزرگ مثل اینترنت مناسب نیستند، چرا که ممکن است میلیون ها و شاید میلیاردها مسیر برای مسیریابی وجود داشته باشد و آن پروتکل ها از پس این مقیاس بر نمی آیند. پروتکل BGP برای این مقیاس طراحی شده است و میتواند اینگونه مسیریابی ها را به خوبی Handle کند.
ـ ساختار AS های مستقل: این پروتکل به پروتکل داخلی و اجرایی در سطح AS شما کاری ندارد و به راحتی می تواند با پروتکل های IBGP ترکیب شود.
ـ مسیریابی بر اساس Policy مورد نظر شما: شما می توانید در این پروتکل متریک را کنار گذاشته و بر اساس سیاست های دلخواه خودتون مسیریابی را انجام دهید، شاید بخواهید مسیر را از Service Provider ارزان تر انتخاب کنید، این انتخاب می تواند بر اساس خواسته ی شما باشد.
پروتکلBGP چگونه کار میکند:
وقتی دو سیستم اقدام به برقراری ارتباط و تبادل اطلاعات با یکدیگر میکنند، معمولاً از پروتکل BGP برای مسیریابی استفاده میکنند. از دیدگاه مسیریابی، محیط اینترنت از تعداد زیادی AS یا Autonomous System تشکیل شده است که با راههای ارتباطی اصلی به هم متصل شدهاند. هر AS دارای یک شمارهی مستقل است که به آن (Autonomous System Number)ASN میگویند. ASN ها برای استفاده در مسیریابی بیرونی اختصاص داده شدهاند. BGP میتواند تمام ASهای مختلف را ببیند، هر ASN را شناسایی و بهترین مسیر (طبق سیاست سیستم) را انتخاب کند.
بهصورت خلاصه میتوان گفت روترها برای ارتباط با یکدیگر ایجاد همسایگی میکنند که به این همسایگی peer میگویند. پس از آن هر روتر اطلاعات کامل مسیر تا یک مقصد را به روترهای همسایهی خود ارسال میکنند. هر peer تمام مسیرهایی که برای هر شبکه میشناسد، مدیریت میکند و انتشار آن اطلاعات را به AS مجاور خود گسترش میدهد. مکانیزم تصمیمگیری BGP به این صورت است که همهی دادههای بهدستآمده را تجزیه و تحلیل میکند و یکی از همسایههای خود را برای ارسال بستهها برای یک مقصد خاص تعیین مینماید.
پس وقتی حجم مسیرها و مسیریابی بسیار زیاد است برای مسیریابی در بین مراکز، از پروتکل BGP استفاده میشود. BGP بهطور خاص برای تبادل اطلاعات مسیریابی بین تمام ارائهدهندگان خدمات اینترنتی مورد استفاده قرار میگیرد. به این صورت که اگر شرکتی از بیش یک شرکت ارائهدهندهی خدمات اینترنتی پهنای باند دریافت کند، درصورت down شدن یکی از سرویسها BGP بهطور خودکار، ترافیک موردنیاز را از بستر پروایدر بکآپ عبور میدهد.
پروتکل BGP به دو دسته تقسیم می شود:
ـ Internal (Internal BGP = iBGP)
ـ External (External BGP = eBGP)
در تعریف ساده، eBGP برای استفاده و پیاده سازی در بین AS ها می باشد و iBGP برای استفاده در داخل AS ها می باشد. در بحث AS_PATH ها، بسته های آپدیت فقط می بایستی از پروتکل BGP عبور کند، با هربار عبور از eBGP ها عدد AS یا همان ASN به AS_PATH اضافه می شود که در انتها مشخص می شود.
اما در iBGP فقط بسته در داخل AS عبور داده می شود و از Edge Router اینطرف، تا Edge Router طرف دیگر بسته رسانده می شود و تغییری در AS_PATH ایجاد نمی شود، ولی بسته در قالب پروتکل BGP و در داخل سازمان انتقال پیدا کرده است. بیش از سی سال است که BGP به داده ها کمک می کند تا بهترین مسیر را برای رفتن از یک مکان به مکان دیگر در اینترنت پیدا کنند. این یک شاهکار بسیار چشمگیر است.
همان طور که گفته شد، این سیستم ها به سیستم های خودمختار (AS) و ISP موجود در شبكه متكی هستند كه مسیرها را به بلوك های آدرس IP صحیح اعلام می كنند. اما گاهی اوقات، نشتی در مسیر BGP وجود دارد. این نشت یا به دلیل خطای پیکربندی و یا به عنوان یک ترفند عمدی برای ربودن ترافیک می باشد. هنگامی که نشتی از مسیر رخ می دهد، می تواند منجر به تغییر مسیر ترافیکی شود که ممکن است استراق سمع یا آنالیز ترافیک را امکان پذیر کند و ممکن است منجر به اضافه بار یا “سیاهچاله” شود.
یک مثال معروف از یک اشتباه این است که Pakistan Telecom در سال 2008 با تغییر مسیرهای BGP خود برای سایت ویدیویی Google سعی در سانسور بازدید YouTube از آن کشور داشت. این امر منجر به این شد که تمام ترافیک گوگل در یک سیاهچاله در پاکستان به پایان برسد و این سرویس در سراسر جهان غیرقابل دسترس شود.
یک ارائه دهنده روسی گروهی از آدرس های IP را اعلام کرد که در واقع متعلق به سرورهای DNS آمازون در سال 2018 بود. نتیجه این شد که مشتریان یک سایت ارز رمزنگاری شده به یک سایت جعلی هدایت می شدند و پولشان را از دست می دادند.
متاسفانه اقدامات برای تقویت BGP بسیار پیچیده و کند می باشد. یکی از اقدامات طرح زیرساخت کلید عمومی منبع (RPKI) است. این یک روش رمزنگاری برای امضای سوابق است که یک اعلامیه مسیر BGP را با شماره درست AS مبدأ مرتبط می کند.
RPKI در RFC6480 تعریف شده است. اما RPKI هنوز پیشرفت چندانی نکرده است. AS همچنین می تواند اعلامیه های مسیر را بر اساس قوانینی از سیستم رجیستری مسیریابی اینترنتی (IRR) فیلتر کند و اینترنت را از نظر کندی عملکرد کنترل کند که می تواند نشتی را نشان دهد. این موارد می توانند تا حدی موثر باشند.
تفاوت BGP و MPLS:
BGP (Border Gateway Protocol) و MPLS (Multiprotocol Label Switching) دو پروتکل مختلف در دو لایه مختلف از مدل OSI هستند و برای هدایت ترافیک در شبکهها استفاده میشوند. در ادامه، به تفاوتهای اصلی بین این دو پروتکل میپردازیم:
- نوع پروتکل: BGP یک پروتکل مسیریابی بین دامنهها (Interdomain Routing Protocol) است و برای تبادل اطلاعات مسیریابی بین شبکههای مختلف استفاده میشود. در مقابل، MPLS یک پروتکل برچسبگذاری چندپروتکلی است که برای برچسبگذاری و هدایت ترافیک درون دامنه (Intradomain Traffic Engineering) استفاده میشود.
- نحوه عملکرد: BGP بر اساس اطلاعات مربوط به بهترین مسیرها (best path) بین شبکهها تصمیمگیری میکند و با استفاده از اطلاعات مانند AS Path و متریکها، بهترین مسیر را برای انتقال ترافیک تعیین میکند. در عوض، MPLS با استفاده از برچسبها (Labels) بر روی بستههای داده، ترافیک را به صورت سریع و کارآمد درون شبکه هدایت میکند. این برچسبها توسط مسیریابها قبل از ارسال بسته به سرآیند (Label Switch Path) برچسبگذاری میشوند و سپس براساس این برچسبها ترافیک هدایت میشود.
- محدوده استفاده: BGP بیشتر برای مسیریابی بین دامنهها (Interdomain) استفاده میشود، به طوری که شبکهها و شرکتهای مختلف از آن برای تبادل اطلاعات مربوط به مسیریابی و اتصال به یکدیگر استفاده میکنند. در عین حال، MPLS معمولاً درون دامنه (Intradomain) و در محدوده محلی شبکه استفاده میشود، به منظور بهبود عملکرد و کنترل بهتر ترافیک درون شبکه.
- استفاده همزمان: BGP و MPLS میتوانند همزمان در یک شبکه استفاده شوند. در واقع، MPLS میتواند به عنوان یک روش هدایت ترافیک درون شبکه (Intradomain Traffic Engineering) در کنار BGP برای مسیریابی بین دامنهها استفاده شود.
بیشتر بخوانید: MPLS چیست و چه کاربردی دارد؟
چگونه MPLS و BGP میتوانند همزمان در یک شبکه استفاده شوند؟
MPLS (Multiprotocol Label Switching) و BGP (Border Gateway Protocol) میتوانند در یک شبکه همزمان استفاده شوند به منظور بهبود عملکرد شبکه و هدایت بهتر ترافیک. در زیر توضیح میدهیم چگونه این دو پروتکل میتوانند در کنار یکدیگر استفاده شوند:
- BGP برای مسیریابی بین دامنهها (Interdomain Routing): BGP برای تبادل اطلاعات مسیریابی بین شبکههای مختلف استفاده میشود. با استفاده از BGP، شبکهها میتوانند به یکدیگر اطلاعات مربوط به مسیریابی را ارسال کنند و بهترین مسیرها برای ترافیک بین دامنهها را تعیین کنند. BGP بر اساس اطلاعاتی مانند AS Path و متریکها تصمیمگیری میکند که چه مسیرهایی برای رسیدن به شبکههای مقصد استفاده شود.
- MPLS برای هدایت ترافیک درون دامنه (Intradomain Traffic Engineering): MPLS با استفاده از برچسبها (Labels) بر روی بستههای داده، ترافیک را به صورت سریع و کارآمد درون شبکه هدایت میکند. در MPLS، برچسبها توسط مسیریابها قبل از ارسال بسته به سرآیند برچسبگذاری میشوند و سپس براساس این برچسبها ترافیک هدایت میشود. با استفاده از MPLS، میتوان ترافیک را به صورت کنترل شده و با بهرهگیری از ویژگیهایی مانند Quality of Service (QoS) و Virtual Private Networks (VPNs)، کارایی شبکه را افزایش داد.
حالا سؤال این است که چگونه MPLS و BGP در کنار یکدیگر استفاده میشوند:
- MPLS درون شبکه استفاده میشود: MPLS بیشتر درون یک دامنه (Intradomain) و در محدوده محلی شبکه استفاده میشود. بنابراین، مسیریابها درون شبکه با استفاده از MPLS بستههای داده را برچسبگذاری کرده و درون شبکه هدایت میکنند. این برچسبها به صورت محلی درون شبکه تعریف میشوند و تنها درون شبکه اعمال میشوند.
- BGP برای مسیریابی بین دامنهها استفاده میشود: پروتکل BGP بیشتر برای مسیریابی بین دامنهها استفاده میشود. شبکهها و شرکتها با استفاده از BGP اطلاعات مسیریابی را با یکدیگر تبادل میکنند و بهترین مسیرها را برای ترافیک بین دامنهها تعیین میکنند.
بنابراین، در یک شبکه که همزمان از MPLS و BGP استفاده میشود، MPLS برای هدایت ترافیک درون دامنه و بهبود کارایی شبکه استفاده میشود، در حالی که BGP برای مسیریابی بین دامنهها و تعیین مسیرهای بهتر استفاده میشود. این دو پروتکل با همکاری، شبکه را بهبود میبخشند و ترافیک را به صورت بهینه هدایت میکنند.
QoS و VPNs در MPLS توضیح دهید؟
- Quality of Service (QoS) در MPLS:
QoS در MPLS به معنای قابلیت شبکه برای ارائه سطوح مختلفی از خدمات به ترافیک مختلف است. با استفاده از QoS در MPLS، شما میتوانید اولویتبندی کنید، ترافیک را تنظیم کنید و سرویسهای ویژه را ارائه دهید. برای این کار، در MPLS از برچسبهای ترافیک (Traffic Labels) استفاده میشود که اطلاعات مربوط به QoS را حمل میکنند.
با استفاده از QoS در MPLS، میتوانید پارامترهایی مانند پهنای باند، تاخیر، از دست رفتن بستهها (packet loss) و جیتر (jitter) را کنترل کنید. برچسبهای ترافیک در MPLS به عنوان ابزاری برای اولویتبندی ترافیک استفاده میشوند. با تعیین اولویتهای مختلف برای بستهها، میتوانید ترافیک حساس به تاخیر (real-time traffic) مانند صدا و ویدئو را با کیفیت بالا ارسال کنید، در حالی که ترافیک کمتر حساس به تاخیر را به صورت معمولی ارسال کنید.
- Virtual Private Networks (VPNs) در MPLS:
VPNها در MPLS به معنای ایجاد شبکههای خصوصی مجازی بین شبکهها هستند. با استفاده از MPLS و VPNها، شرکتها و سازمانها میتوانند شبکههای خصوصی مجازی را بر روی زیرساخت اشتراکی اینترنت ایجاد کنند. این شبکههای خصوصی مجازی، امنیت بیشتری نسبت به ارتباطات اینترنت عمومی فراهم میکنند. در MPLS، برای ایجاد VPNها از برچسبهای VPN (VPN Labels) استفاده میشود. برچسبهای VPN به بستههای داده اضافه میشوند و با استفاده از آنها، ترافیک مربوط به یک شبکه خصوصی در MPLS از سایر شبکهها جدا میشود.
این بدان معناست که ترافیک یک شبکه خصوصی مجازی از ترافیک سایر شبکهها محافظت میشود و امکان ارتباطات مستقیم بین شبکههای مختلف را ندارند. با استفاده از VPNها در MPLS، شما میتوانید شبکههای خصاصوصی مجازی را برای شرکتها و سازمانها ایجاد کنید. این به شرکتها امکان میدهد ترافیک خود را از ترافیک دیگران جدا کنند و امنیت بیشتری را برای ارتباطاتشان فراهم کنند.
بیشتر بخوانید: (QoS (Quality of service یا کیفیت خدمات سرویس چیست؟
نحوه پیادهسازی QoS در MPLS:
در زیر به برخی از روشهای اصلی پیادهسازی QoS در MPLS اشاره میکنم:
- برچسبگذاری پکتها (Packet Labeling): در MPLS، پکتها با برچسبهای MPLS (MPLS labels) برخوردار میشوند. این برچسبها به پکتها افزوده میشوند تا مسیریابها بتوانند پکتها را بر اساس برچسبها هدایت کنند. برچسبها MPLS میتواند اطلاعات مربوط به QoS را نیز شامل شود. به عنوان مثال، میتوانید برچسبها را بر اساس مراحل اولویت بندی ترافیک QoS تنظیم کنید.
- اصطلاحها (Traffic Conditioning): در MPLS، شما میتوانید اصطلاحها را برای مدیریت و کنترل ترافیک استفاده کنید. اصطلاحها مجموعهای از قوانین و شرایط هستند که برای کنترل و تنظیم ترافیک استفاده میشوند. میتوانید اصطلاحهایی را تعریف کنید که بر اساس نوع ترافیک، پهنای باند و تاخیر محدودیتهایی اعمال کنند. به عنوان مثال، میتوانید اصطلاحهایی تعریف کنید که ترافیک صوتی ویدئویی را با اولویت بالا و تاخیر کمتر ارسال کنند.
- صفبندی (Queuing): در MPLS، میتوانید صفهای مختلفی برای مدیریت ترافیک تعریف کنید. صفبندی به شما امکان میدهد تا ترافیک را بر اساس اولویتها و نوع سرویسها دستهبندی کنید. به این ترتیب، میتوانید ترافیک با اولویت بالا را در صفی با پهنای باند بیشتر قرار دهید تا اولویت برنامهها و سرویسهای حساس به تاخیر را تضمین کنید.
- تخصیص پهنای باند (Bandwidth Allocation): در MPLS، میتوانید پهنای باند مشخصی را به سرویسها و برنامههای مختلف تخصیص دهید. با تخصیص پهنای باند، میتوانید به برنامهها و سرویسهایی که نیاز به پهنای باند بالا دارند، پهنای باند کافی را اختصاص دهید تا بتدر ادامه توضیح میدهم:
- تحلیل ترافیک (Traffic Engineering): MPLS امکاناتی را برای تحلیل و مدیریت ترافیک فراهم میکند. با استفاده از این قابلیت، میتوانید مسیردهی بهتری برای ترافیک انجام دهید و از امکانات شبکه بهینهتر استفاده کنید. با تحلیل ترافیک، میتوانید مسیرهایی را با ترافیک کمتر و تاخیر کمتر برای سرویسها و برنامههای حساس به تاخیر اختصاص دهید.
- تعیین اولویت (Prioritization): با استفاده از MPLS، میتوانید ترافیک را بر اساس اولویتها دستهبندی کنید. با اختصاص اولویت به ترافیک، میتوانید سرویسها و برنامههای حساس به تاخیر را با اولویت بالاتری ارسال کنید و تضمین کنید که این ترافیکها در شبکه با تاخیر کمتری روبرو شوند.
- تعیین سرعت انتقال (Traffic Shaping): میتوانید در MPLS سرعت انتقال ترافیک را محدود کنید. با تنظیم سرعت انتقال، میتوانید ترافیک را در محدودههای مشخصی نگه دارید و جلوی افزایش ناگهانی ترافیک را بگیرید.
محققان دانشگاه MIT چند سالی است از یادگیری ماشین برای تجزیه و تحلیل اعلامیه های مسیریابی BGP استفاده می کنند و این سیستم های یادگیری ماشین قادر به شناسایی BGP مشکوک هستند.
یک شکل کلیدی دفاع سایبری در برابر حمله DDoS استفاده از پروتکل BGP برای هدایت ترافیک مخرب یک وب سایت به یک سیاهچاله است، اما ابتکار MIT ممکن است همراه با RPKI و اقدامات دیگر در کمک به ما انسانها در پرورش BGP است.
بیشتر بخوانید: ده فاکتور تأثیر گذار بر روی عملکرد WiFi