پروتکل Border Gateway Protocol یا به اختصار BGP یک پروتکل مسیریابی سیستمی مستقل (Autonomous System)، مابین پروتکلهای مسیریابی دیگر است. سیستم خودمختار یا Autonomous، شبکه یا گروهی از شبکهها است که زیر نظر یک مدیریت مشترک، دارای Policyهای Routing مشترک است. از BGP برای تبادل اطلاعات مسیریابی در اینترنت استفاده میشود و پروتکلی است که بین ارائهدهندگان سرویس اینترنت (ISPها) مورد استفاده قرار میگیرد. شبکههای مصرفکننده، مانند دانشگاهها و شرکتهای بزرگ و سازمانها، برای تبادل اطلاعات مسیریابی درون شبکههای خود، معمولا از یک پروتکل مسیریابی داخلی (Interior Gateway Protocol (IGP مانند RIP یا OSPF استفاده میکنند. مشتریان به ISPها متصل میشوند و ISPها برای تبادل مسیرهای مشتری، از BGP استفاده میکنند. وقتی که BGP بین سیستمهای خودمختار (AS) مورد استفاده قرار میگیرد، BGP خارجی یا به اختصار EBGP خوانده میشود. اگر ارائهدهندهی یک سرویس برای تبادل مسیرها درون یک AS از BGP استفاده کند، این پروتکل BGP داخلی یا به اختصار IBGP خوانده میشود.
BGP یک پروتکل مسیریابی بسیار قدرتمند و انعطافپذیر است و به کارگیری BGP در اینترنت گواهی بر این امر میباشد. در جداول Internet BGP Routing بیش از 90.000 مسیر ثبت شده است. BGP برای دستیابی به مقیاسپذیری در این سطح از پارامترهای مسیریابی بسیاری که Attribute نامیده میشوند، استفاده میکند تا Policyمسیرهایی را تعریف کرده و محیط مسیریابی باثباتی را حفظ نماید.
بعلاوه در Attributeهای BGP، مسیریابی بین دامین Classless یا به اختصار CIDR توسط BGP مورد استفاده قرار میگیرد تا اندازهی جداول مسیریابی اینترنت را کاهش دهد. برای مثال فرض میکنیم که یک ISP صاحب Block آدرس IP : 195.10.x.x از فضای آدرس Class C است. این Block شامل 256 آدرس Class C از 195.10.0.1 تا 195.10.255.254 است. فرض میکنیم که ISP برای هرکدام از مشتریانش یک بلاک از Class C را معین مینماید. بدون CIDR، ISP برای آدرسهای BGP خود 256 آدرس کلاس C را منتشر میکرد. با CIDR، BGP میتواند فضای آدرس را Supernet کرده و یک Block به IP:195.10.x.x را منتشر نماید. اندازهی این بلاک با یک آدرس کلاس B قدیمی یکسان است. تمایزات بین کلاسهای IP توسط CIDR منسوخ شدهاند و اندازه جداول BGP Routing را بسیار کاهش داده است.
وقتی که برای اولین بار اتصال TCP بین همسایهها تعیین شود، همسایههای BGP اطلاعات کامل مسیریابی را با هم تبادل مینمایند. زمانی که تغییرات در جدول Routing شناسایی شوند، روترهای BGP تنها مسیرهایی را به همسایههایشان میفرستند که تغییر کردهاند. Routerهای BGP بروزرسانیهای Routing دورهای را ارسال نمیکنند و بروزرسانیهای BGP Routing تنها مسیر بهینه به یک شبکهی مقصد را تبلیغ میکنند.
بررسی ویژگیهای BGP
مسیرهایی که از طریق BGP یافته شدهاند دارای ویژگیهای مرتبط به یکدیگر هستند که برای تعیین بهترین مسیر به یک مقصد، زمانی که چندین مسیر رو به یک مقصد خاص وجود داشته باشد، مورد استفاده قرار میگیرند. این ویژگیها Attributeهای BGP نامیده میشوند و درک چگونگی تاثیرAttributeهای BGP در انتخاب مسیر برای طراحی شبکههای قدرتمند مورد نیاز است. این بخش Attributeهایی را که BGP برای فرایند انتخاب Route از آنها استفاده میکند، شرح میدهد:
مشخصه وزن (Weight)
وزن (Weight) یک مشخصه تعریف شده توسط سیسکو است که برای یک روتر، Local میباشد و به روترهای مجاور منتسب نمیشود. اگر روتر در مورد بیش از یک Route به مقصدی یکسان اطلاعات کسب کند، مسیری که دارای بالاترین وزن است، ارجحیت دارد. در شکل زیر Attribute وزن BGP، روتر A در حال دریافت اطلاعاتی برای شبکهی 172.16.1.0 از روترهای B و C است. وقتی که روتر A اطلاعات را از روتر B دریافت میکند، وزن مربوطه 50 تنظیم شده است. وقتی که روتر A اطلاعات را از روتر C دریافت میکند، وزن مربوطه 100 تنظیم شده است. هر دو مسیر برای شبکهی 172.16.1.0، با وزنهای مربوط به خود، در جدول BGP Routing خواهند بود. Route دارای بالاترین وزن در جدول IP Routing نصب خواهد شد.
مشخصه Local Preference
مشخصهLocal Preference برای انتخاب بین یک نقطهی خروج از Local AS مورد استفاده قرار میگیرد. برخلاف مشخصه وزن، مشخصهLocal Preference در سرتاسر Local AS پخش شده است. اگر چندین نقطهی خروج از AS وجود داشته باشد، مشخصهLocal Preference برای انتخاب نقطهی خروج یک Route مشخص مورد استفاده قرار میگیرد. در شکل زیر، AS 100 دو مسیر برای شبکهی 172.16.1.0 از AS 200 دریافت میکند. وقتی که روتر A اطلاعات را برای شبکهی 172.16.1.0 دریافت میکند، Local Preference مربوطه50 تنظیم شده است. وقتی که روتر B اطلاعات را برای شبکهی 172.16.1.0 دریافت میکند، Local Preference مربوطه100 تنظیم شده است. این ترجیحات Local بین روترهای A و B تبادل میشوند. از آن جایی که روتر B ترجیح Local بالاتری نسبت به روتر A دارد، روتر B به عنوان نقطهی خروج از AS 100 برای رسیدن به شبکهی 172.16.1.0 در AS 200 مورد استفاده قرار میگیرد.