پروتکل Border Gateway Protocol یا به اختصار BGP یک پروتکل مسیریابی سیستمی مستقل (Autonomous System) است. سیستم خودمختار یا Autonomous، شبکه یا گروهی از شبکهها است که زیر نظر یک مدیریت، دارای Policyهای Routing مشترک است.
از BGP برای تبادل اطلاعات مسیریابی در اینترنت استفاده میشود و پروتکلی است که بین ارائهدهندگان سرویس اینترنت (ISP) مورد استفاده قرار میگیرد.
مشتریان به ISPها متصل میشوند و ISPها برای تبادل مسیرهای مشتری، از BGP استفاده میکنند. وقتی که BGP بین سیستمهای Autonomous (AS) مورد استفاده قرار میگیرد، BGP خارجی یا به اختصار EBGP خوانده میشود. اگر ارائهدهندهی یک سرویس برای تبادل مسیرها درون یک AS از BGP استفاده کند، این پروتکل BGP داخلی یا به اختصار IBGP خوانده میشود.
این پروتکل ویژگی های بسیار زیادی دارد،از ویژگی های شاخص آن میتوان به موارد زیر اشاره کرد :
ـ مقیاس پذیری : پروتکل های دسته ی IBGP برای داخل سازمان ها طراحی شده اند و برای شبکه های بسیار بزرگ، مثل اینترنت مناسب نیستند ، چراکه ممکن است میلیون ها و شاید میلیارد ها مسیر برای مسیریابی وجود داشته باشد و آن پروتکل ها از پس این مقیاس بر نمی آیند. BGP پروتکلی است که برای این مقیاس طراحی شده است و میتواند اینگونه مسیریابی ها را به خوبی Handle کند.
ـ ساختار AS های مستقل: این پروتکل به پروتکل داخلی و اجرایی در سطح AS شما کاری ندارد و به راحتی می تواند با پروتکل های IBGP ترکیب شود.
ـ مسیریابی بر اساس Policy مورد نظر شما: شما می توانید در این پروتکل متریک را کنار گذاشته و بر اساس سیاست های دلخواه خودتون مسیریابی را انجام دهید، شاید بخواهید مسیر را از Service Provider ارزان تر انتخاب کنید، این انتخاب می تواند بر اساس خواسته ی شما باشد.
وقتی دو سیستم اقدام به برقراری ارتباط و تبادل اطلاعات با یکدیگر میکنند، معمولاً از پروتکل BGP برای مسیریابی استفاده میکنند. از دیدگاه مسیریابی، محیط اینترنت از تعداد زیادی AS تشکیلشده است که با راههای ارتباطی اصلی به هم متصل شدهاند. هر AS دارای یک شمارهی مستقل است که به آن (Autonomous System Number)ASN میگویند. ASN ها برای استفاده در مسیریابی بیرونی اختصاص داده شدهاند. BGP میتواند تمام ASهای مختلف را ببیند، هر ASN را شناسایی و بهترین مسیر (طبق سیاست سیستم) را انتخاب کند.
بهصورت خلاصه میتوان گفت روترها برای ارتباط با یکدیگر ایجاد همسایگی میکنند که به این همسایگی peer میگویند. پس از آن هر روتر اطلاعات کامل مسیر تا یک مقصد را به روترهای همسایهی خود ارسال میکنند. هر peer تمام مسیرهایی که برای هر شبکه میشناسد، مدیریت میکند و انتشار آن اطلاعات را به AS مجاور خود گسترش میدهد. مکانیزم تصمیمگیری BGP به این صورت است که همهی دادههای بهدستآمده را تجزیه و تحلیل میکند و یکی از همسایههای خود را برای ارسال بستهها برای یک مقصد خاص تعیین مینماید.
پس وقتی حجم مسیرها و مسیریابی بسیار زیاد است برای مسیریابی در بین مراکز، از پروتکل BGP استفاده میشود. BGP بهطور خاص برای تبادل اطلاعات مسیریابی بین تمام ارائهدهندگان خدمات اینترنتی مورداستفاده قرار میگیرد. به این صورت که اگر شرکتی از بیش یک شرکت ارائهدهندهی خدمات اینترنتی پهنای باند دریافت کند، در صورت down شدن یکی از سرویسها 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) فیلتر کند و اینترنت را از نظر کندی عملکرد کنترل کند که می تواند نشتی را نشان دهد. این موارد می توانند تا حدی موثر باشند.
محققان دانشگاه MIT حداقل یک سال است که از یادگیری ماشین برای تجزیه و تحلیل اعلامیه های مسیریابی BGP استفاده می کنند و این سیستم های یادگیری ماشین قادر به شناسایی BGP مشکوک هستند.
یک شکل کلیدی دفاع سایبری در برابر حمله DDoS استفاده از BGP برای هدایت ترافیک مخرب یک وب سایت به یک سیاهچاله است، اما ابتکار MIT ممکن است همراه با RPKI و اقدامات دیگر در کمک به ما انسانها در پرورش BGP است.
بیشتر بخوانید: ده فاکتور تأثیر گذار بر روی عملکرد WiFi