BGP چیست و این پروتکل چگونه کار می کند؟
bgp چیست؟ BGP یک پروتکل دروازه خارجی استاندارد است که برای تبادل اطلاعات مسیریابی و دسترسی بین سیستمهای خودمختار (AS) روی بستر اینترنت ایجاد شده و بهعنوان یک پروتکل بردار مسیر و پروتکل مسیریابی بردار فاصله طبقهبندی میشود.
پروتکل دروازه مرزی bgp دقیقا با ایده راهاندازی یک اداره پست اینترنتی معرفی شده تا درست مثل یک سرویس پستی برای ارسال پیغامها در بستر اینترنت عمل کند. این پروتکل تمام مسیرهای ممکن را بررسی میکند تا در نهایت بهترین گزینه ممکن را برای ارسال داده بیابد و بعد دادهها را به سمت آن هدایت میکند. در این مقاله یاد میگیریم پروتکل bgp چیست و با نحوه عملکرد آن آشنا میشویم. همراه ما باشید.
bgp چیست؟
bgp مخفف عبارت «Border Gateway Protocol» به معنای پروتکل دروازه مرزی است. یک پروتکل مسیریابی که برای انتقال دادهها و اطلاعات بین دروازه هاستهای مختلف، روی اینترنت یا سیستمهای مستقل استفاده میشود.
BGP یک پروتکل Path Vector (PVP) است که مسیرهای هاست، شبکه و دروازه روترها را نگه میدارد و بر اساس آنها تصمیمهای مربوط به مسیریابی را میگیرد. این پروتکل از معیارهای پروتکل دروازه داخلی (IGP) برای مسیریابی استفاده نمیکند، بلکه فقط بر مسیر، خط مشیهای شبکه و مجموعه قوانین آن نگاه میکند.
عدهای به bgp به جای پروتکل دسترسی به چشم پروتکل مسیریابی نگاه میکنند.
انواع پیامهای انتقالی BGP چیست؟
BGP چهار نوع پیام را منتقل میکند که در این بخش با آنها آشنا میشویم.
۱. پیام باز (Open Message)
این پیامی است که بعد از اتصال موفقیتآمیز سیستمهای خودمختار ارسال میشود تا جلسه برقرار شود. این پیام اطلاعات مربوط به سیستمهای خودمختار از جمله نسخه استفاده از BGP، زمان نگهداری، شناسه BGP (آدرس IP)، شماره AS و برخی پارامترهای اختیاری را شامل میشود.
۲. پیام بهروزرسانی (Update Message)
این پیام پس از برقراری جلسه ارسال میشود و اطلاعات مسیریابی را به اشتراک میگذارد. از جمله اطلاعات در مورد روترهایی که دسترسی به آنها امکانپذیر است، روترهایی که دسترسی به آنها امکانپذیر نیست و ویژگیهای مسیر انتخابی.
۳. پیام KeepAlive
این پیام معمولاً قبل از ارسال پیام بهروزرسانی ارسال میشود و کمک میکند از فعال بودن روتر همسایه مطمئن شویم. همسایه به محض دریافت پیام KeepAlive، زمان نگهداری را ریست میکند.
۴. اعلان (Notification)
این پیام هنگام بروز خطا ارسال میشود و شامل کد خطا، کد فرعی خطا و علت آن است.
چه شد که bgp معرفی شد؟
اکنون بیایید ببینیم دلیل معرفی شدن bgp چیست؟
زمانی که مفهوم اینترنت برای اولین بار فرموله شد، اتصال به این شبکه فقط با پرداخت هزینههای گزاف مسیرهای ثابت ممکن بود. یعنی جداول مسیریابی از قبل روی روترها پیکربندی میشد و هیچ تغییر دینامیکی انجامشدنی نبود.
با گسترش اینترنت، مسیرهای ثابت دیگر کافی نبودند. پروتکلهای مختلف روزبهروز بیشتر با نیاز پویایی و گنجاندن مسیرها/تغییرات جدید در مسیرهای موجود بسته به عوامل مختلف مثل سطح ترافیک، تعداد پرش روتر، پهنای باند، قابلیت اطمینان و غیره مواجه میشدند. به مرور زمان مسیریابی پویا به یک نیاز اساسی تبدیل شد و پروتکلهای دیگری برای پاسخ به این نیاز معرفی شدند که یکی از آنها bgp بود.
پروتکل bgp چکار میکند؟
همتایان یا همان (Peer) BGP سه عمکلرد مهم دارد که در این بخش مرور میکنیم:
-
- اولین عملکرد شامل همتاسازی اولیه و احراز هویت است. هر دو طرف یک اتصال TCP ایجاد میکنند و تبادل پیام را انجام میدهند که تضمین میکند هر دو برای برقراری ارتباط با یکدیگر توفق دارند.
- تابع دوم عمدتا اطلاعات دسترسی منفی یا مثبت را ارسال میکند.
- تابع سوم تأیید میکند که هم همتایان bgp و هم اتصال شبکه بین آنها عملکرد درستی دارد.
نحوه عملکرد bgp چیست؟
بیایید در این بخش ببینیم کارکرد bgp چیست و چطور کار میکند. گفتیم که BGP به سیستمهای مستقل یا اصطلاحا سیستمهای خودمختار (Autonomous Systems) اجازه میدهد اطلاعات مسیریابی را به اشتراک بگذارند. دروازههای سیستمهای خودمختار، مسیریابهای مرزی سیستم خودکار (ASBR) نامیده میشوند که مسئول جمعآوری اطلاعات مسیریابی از همسایگان خود، نگهداری جداول مسیریابی BGP و تبلیغ بیشتر آنها برای همتایان هستند.
سیستمهای خودمختار یا (Autonomous Systems)
با افزایش تعداد دستگاههای موجود در اینترنت، تعداد مسیرها نیز افزایش یافت. بهمحض آنکه پیگیری این حجم از مسیرهای مختلف دشوار شد، دنیای شبکه تصمیم گرفت از سیستمهای خودمختار استفاده کند.
مفهوم سیستمهای خودمختار از همان تعریف اصلی اینترنت نشات میگیرد که همه شنیدهایم: «سیستم جهانی شبکههای کامپیوتری بههم پیوسته».
بنابراین یک سیستم خودمختار (AS) در اینترنت، شبکه یا گروهی از شبکهها است که از سیاست مسیریابی مشابهی استفاده میکنند و معمولاً توسط یک ارائهدهنده خدمات اینترنتی ارائه میشوند. به هر سیستم خودمختار یک شماره شناسایی منحصربهفرد به نام شماره سیستم خودکار (ASN) اختصاص داده میشود که پروتکلهای مسیریابی از آن استفاده میکنند.
همتاسازی سیستمهای خودمختار
دو روتر که برای تبادل اطلاعات BGP ارتباط برقرار کردهاند، همتایان BGP نامیده میشوند. این همتایان اطلاعات مسیریابی را از طریق جلسات BGP مبادله میکنند که روی TCP، یک پروتکل قابل اعتماد، اتصالگرا و بدون خطا اجرا میشود. اما روش انتخاب بهترین مسیر در bgp چیست؟
انتخاب بهترین مسیر ممکن
هنگامی که جلسه BGP ایجاد شد، روترها میتوانند لیستی از مسیرهای شبکه تحت دسترسی را تبلیغ کرده و آنها را برای یافتن کوتاهترین مسیر بررسی کنند.
البته تا زمانی که فقط به یک همتا مثل یک ISP متصل باشید، BGP هیچ معنایی ندارد، چون همین اتصال همیشه بهترین مسیر ممکن برای برقراری ارتباط است؛ اما اگر همزمان به چند شبکه متصل باشید، متوجه میشوید که بعضی از مسیرها کوتاهتر، سریعتر یا قابل اعتمادتر از مسیرهای دیگر خواهند بود.
به عنوان مثال، AS15169 گوگل با 270 شبکه دیگر همتاست که یکی از آنها Digital Ocean Inc. AS14061 است. هر دو به ISPهای دیگری هم متصل هستند؛ اما از آنجایی که اکنون با هم همتا شدهاند، قادرند اطلاعات مسیریابی را مبادله کنند و روتر آنها میتواند مسیر کوتاهتری را برای انتقال داده میان این دو انتخاب کند.
اگر این همسایگی به دلایلی از بین برود، روترها جداول مسیریابی خود را مجددا مرتب میکنند تا بهوسیله سیستمهای خودمختار دیگر، به آنها دست پیدا کنند.
ویژگیهای برجسته پروتکل دروازه مرزی (BGP)
بیایید در ادامه این بخش با برخی ویژگیهای برجسته پروتکل دروازه مرزی آشنا شویم.
۱. پیکربندی داخلی سیستم خود مختار
پیکربندی سیستم خود مختار BGP امکان برقراری ارتباط میان دو سیستم کاملا مستقل را فراهم میکند. طوری که بدون این پروتکل، این دو سیستم قادر به اتصال و اشتراکگذاری اطلاعات نخواهند بود.
۲. پشتیبانی از پارادایم Next-hop
پارادایم Next-hop حکم میکند که یک بسته داده، از بین تمام روترهایی موجود به روتر بعدی یا بهینهترین آنها فرستاده شود. پروتکل BGP از Next-hop پشتیبانی میکند؛ از اینرو میتوان اتصالات را طوری بهینهسازی کرد که شبکه عملکرد سریعتری ارائه دهد. بیآنکه بسته داده مجبور به پیمایش نقاط مختلف مسیریابی BGP و وقتکشی باشند. به علاوه به لطف این پشتیبانی، مدیران مجبور به پیکربندی BGP برای اتصالات Next-hop نخواهند بود.
۳. هماهنگی بین چند بلندگوی BGP در یک سیستم خودمختار
پروتکل BGP قبل از آنکه بهترین ایستگاه بعدی داده را انتخاب کند، تمام گزینههای موجود را در نظر بگیرد و اسکن کند. این امر مستلزم امکان هماهنگی میان چند بلندگوی BGP به طور همزمان است.
۴. دستیابی به اطلاعات مسیر
در سیستم تبلیغات BGP بخشی شامل اطلاعات مسیر وجود دارد. این بخش مقصد بعدی و مقصدهای قابل دسترسی را نمایش میدهد.
۵. پشتیبانی از سیاستها
به لطف پروتکل BGP مدیر قدرت طراحی و اجرای سیاستها را بهدست میآورد.. از این روش میتوان برای انتخاب بین مسیرهای داخلی و خارجی سیستم خودمختار استفاده کرد.
۶. قابل اجرا روی پروتکل TCP
از آنجا که BGP روی پروتکل کنترل انتقال (TCP) اجرا میشود، با سایر اجزای اینترنت که از TCP برای برقراری ارتباط استفاده میکنند، سازگار است. با اطمینان پروتکل TCP، بستههای داده در سراسر شبکه ارسال و تحویل داده میشوند. BGP با لایه سوکتهای امن (SSL)، شبکه خصوصی مجازی (VPN) و امنیت لایه انتقال (TLS) هم ارتباط برقرار میکند.
برای مطالعه بیشتر می توانید مقاله TCP/IPچیست را مطالعه نمایید.
۷. حفظ پهنای باند شبکه
حفاظت از پهنای باند شبکه به سازمان اجازه میدهد بیشترین بهره ممکن را از شبکه ببرد. از آنجا که BGP به خوبی از حفظ پهنای باند پشتیبانی میکند، میتوان از آن برای تسهیل انتقال کارآمد شبکه استفاده کرد.
۸. پشتیبانی از CIDR
مسیریابی دامنهای بدون کلاس (CIDR) روشی برای تخصیص آدرسهای پروتکل اینترنت (IP) است تا بتوان از آن برای مسیریابی IP استفاده کرد. خوشبختانه از آنجا که BGP از CIDR پشتیبانی میکند، در نحوه تخصیص یا مدیریت آدرسهای IP تداخلی ایجاد نمیشود.
۹. پشتیبانی از امنیت
BGP هیچ ویژگی امنیتی ذاتی ندارد؛ اما از ابزارها و پروتکلهای امنیتی که شبکههای مختلف استفاده میکنند، بهخوبی پشتیبانی میکند. این یعنی مدیر میتواند در کنار استفاده از BGP، از اقدامات امنیت شبکه نیز بهره ببرد.
وظایف پروتکل دروازه مرزی (BGP)
برخی از مهمترین کارکردهای پروتکل BGP از این قرارند:
احراز هویت اولیه همتا (Peer)
BGP امکان شناسایی، احراز هویت و اتصال همتای مناسب را فراهم میکند و به نوبه خود کمک میکند شبکه به شکل کارآمدتری اجرا شود.
ارسال اطلاعات قابلیت دسترسی منفی یا مثبت
BGP اطلاعاتی ارسال میکند در مورد اینکه آیا یک همتا قابل دسترسی است یا خیر. این اطلاعات با از میان برداشتن اتصالات اشتباه، باعث صرفهجویی در وقت میشوند.
تأیید عملکرد درست همتاها و اتصال شبکه بین آنها
هنگامی که اتصالی برقرار میشود، BGP قادر است سلامت ارتباط را تأیید کند. میتوان گفت این پروتکل اتصالات سازگارتر و قابل اعتمادتری را تسهیل میکند.
توابع مدیریت اطلاعات مسیر BGP
-
- ذخیرهسازی مسیر: BGP اطلاعات خوبی درمورد نحوه اتصال به شبکهها را در مجموعهای از پایگاههای داده نگهداری میکند. همچنین اطلاعات مسیرهایی که توسط BGP قابل دسترسی هستند نیز در دیتابیسها ذخیره میگردد.
- بهروزرسانی مسیر: BGP برای تبلیغ اطلاعات مسیریابی، پیامهای بهروزرسانی ارسال میکند که با ذخیره در یک جدول مسیریابی، پس از راهاندازی سیستم در دسترس قرار میگیرند.
- انتخاب مسیر: بلندگوی BGP که مسیرها را تبلیغ میکند، اطلاعات بهترین مسیر را در اختیار همتایان میگذارد.
- تبلیغات مسیر: زمانی که بیش از یک مسیر وجود دارد، BGP فقط بهترین مسیر را برای همتایان تبلیغ میکند. اینطوری عملکرد شبکه تا حد خوبی بهتر میشود؛ چون فقط مسیرهای قابل اجرا تبلیغ میشوند.
انواع پروتکلهای مسیریابی کداماند؟
دو نوع پروتکل دروازه خارجی و داخلی وجود دارد که در ادامه این بخش به آنها میپردازیم.
پروتکلهای دروازه خارجی
پروتکلهای دروازه خارجی، تبادل اطلاعات مسیریابی را بین سیستمهای مستقل امکانپذیر میکند. BGP خارجی هم دقیقا با همین هدف بکار برده میشود. یکی از رایجترین کاربردهای آن اتصال یک AS به سایر سیستمهای مستقل برای مشاهده محدوده IP توسط اینترنت است. همچنین میتوان از EBGP در ارتباط با شمارههای AS خصوصی نیز استفاده کرد. یک مثال معمولی استفاده از آنها برای اتصال یک ابر خصوصی مجازی به یک روتر ابری است که امکان تبادل مسیر در فضای IP خصوصی و ابر را فراهم میکند.
پروتکلهای دروازه داخلی
پروتکلهای دروازه داخلی اطلاعات مسیریابی را با روترها و سوئیچهای لایه سه روی AS به اشتراک میگذارند. OSPF، ISIS، EGRIP و RIP نمونههایی از پروتکل های دروازه داخلی هستند. از BGP هم میتوان به عنوان یک پروتکل دروازه داخلی استفاده کرد؛ فقط به یک توپولوژی مش کامل نیاز دارد که نگهداشت آن کمی دشوار است.
BGP داخلی یا IBGP زمانی استفاده میشود که چندین مسیر در حال خروج از EGBP باشند. IBGP به روترهای لبه اجازه میدهد تا اطلاعات و ویژگیهای مسیریابی را به اشتراک بگذارند و اتصالات اضافی را فعال میکند. اگر یکی از روترهای خروجی از کار افتاده یا مشکلات خدماتی داشته باشد، بعد از ایجاد یک نسخه پشتیبان، سیاستهای مسیریابی را برای تعیین بهترین مسیر مقصد بهکار میگیرد.
تفاوت بین BGP خارجی و BGP داخلی
مکانیزم BGP داخلی توسط یک توپولوژی مش، اطلاعاتی در مورد روترهای داخلی یک سیستم ارائه میکند. این توپولوژی شامل مسیرهایی است که از همسایگان BGP داخلی دریافت میشوند، بیآنکه برای سایر همسایگان BGP داخلی تبلیغ شوند. به این ترتیب پروتکل BGP داخلی از حلقهها جلوگیری میکند. در حالی که بروز حلقههای مسیریابی در سیستمهای BGP خارجی که از توپولوژی مش استفاده نمیکنند، متداولتر است.
پروکسی چیست؟ برای آشنایی بیشتر می توانید مقاله مورد نظر را مطالعه نمایید.
Bgp چقدر امنیت دارد؟
BGP با این هدف طراحی شد که یک شبکه جهانی از شبکههای مختلف بسازد و امنیت شبکه چندان در اولویت نبود. در نتیجه عجیب نیست اگر این پروتکل به تنهایی نتواند حملات و سوءاستفادههای خارجی را خنثی کند. ربودن مسیر یکی از رایجترین حملات BGP است که در آن مهاجم از BGP برای تبلیغ مسیرهای نادرست استفاده کرده و بهراحتی با ایجاد حملات سایبری، خاموشکردن سرویسها یا ایجاد سایر مشکلات مرتبط، اختلال ایجاد میکند.
برای مشکل امنیت bgp چهکار میشود کرد؟
اما راهکار مقابله با این مشکل امنیتی bgp چیست؟
کارگروه مهندسی اینترنت (IETF) از ارائهدهندگان خدمات اینترنت (ISP ها) و شرکتها درخواست میکند تا برای ایمنسازی BGP وارد یک زنجیره اعتماد شوند. این زنجیره از مرجع شمارههای اختصاص داده شده در اینترنت (IANA) شروع میشود و مسیرهای مجاز را با سیستمهای خودمختار مثل BGP ثبت میکند.
AS 51 و AS 49 قراردادی امضا میکنند که تحت آن، اجازه تبادل مسیرهای نادرست را ندارند. بهعلاوه ISP ها محض احتیاط در ASBR خود بازرس بسته (packet inspector) و فیلترهایی پیکربندی میکنند.
به این ترتیب کنترل bgp روی مسیرهایی که تبلیغ میکند، میپذیرد و به ISP ها ارائه میکند، بیشتر میشود و میتوان گفت در میان سایر پروتکلهای همتا، یکی از اولین انتخابهاست.
پیکربندی اشتباه یا سوء استفاده از BGP
در این بخش به این میپردازیم که منظور از پیکربندی اشتباه یا سوء استفاده از bgp چیست و چطور اتفاق میافتد.
از آنجایی که BGP هسته مطلق اینترنت است، زمانی که به اشتباه پیکربندی شوند یا سوءاستفادهای در آن شکل بگیرد، آسیبهای بزرگی به اینترنت وارد میکند.
در سال ۲۰۰۸ دولت پاکستان سعی کرد یوتیوب را ممنوع کند و از BGP برای هدایت بلوک آدرس یوتیوب (AS36561) به یک سیاهچاله استفاده کرد. اما این اطلاعات به نحوه مسیریابی شد که در نهایت به مخابرات این کشور رسید و از آنجا به سایر نقاط جهان فرستاده شد.
البته جدای از پیکربندی نادرست، بعضی از کاربران مخرب با اهداف سوءاستفادهگرایانه از این پروتکل استفاده میکنند. به این صورت که با همتاسازی ناامن BGP یا عدم تأیید مسیرهایی که همتایان شما اعلام میکنند، محدودههای IP معرفی میکنند که حقیقتا مالک آنها نیستند و با هدایت ترافیک اینترنت به سمت لینکهای خود، یک حمله MITM ایجاد میکنند.
برای مطالعه بیشتر مقاله همه پروتکل های شبکه که باید بدانید را از دست ندهید.
کلام آخر
در این مقاله آموختیم bgp چیست و با نحوه عملکرد آن به طور کامل آشنا شدیم.
دریافتیم BGP پروتکل مسیریابی اینترنت است که برای تسهیل استفاده از اینترنت و مسیریابی ترافیک در سراسر شبکه ها طراحی شده و کاربران اصلی آن مهندسان شبکه شرکتهای بزرگ، ارائهدهندگان خدمات و ISP ها هستند. این پروتکلها به اینترنت کمک میکنند فضای آدرس IP کاربران را پیدا کرده و عملکردهای مسیریابی و اتصالات روتر ابری را نیز ارائه میکند. در پایان لازم به یادآوری است که طراحی مبتنی بر اعتماد BPG ها ذاتاً آسیبپذیر است و مهندسین شبکه تا امروز نتوانستهاند عملیات ارتقاء به یک پروتکل امنتر را بدون دردسر اجرا کنند.
اگر شما عزیزان اطلاعات بیشتری درباره این پروتکل دارید، لطفا نظراتتان را در بخش دیدگاهها با ما به اشتراک بگذارید.
پروتکل دروازه مرزی (BGP) نوعی پروتکل دروازهای است که اینترنت را قادر میسازد اطلاعات مسیریابی را بین سیستمهای خودمختار (AS) مبادله کند.
روتر شبکهای که به چند شبکه دیگر متصل است، به خودی خود نمیداند کدام شبکه را برای ارسال داده انتخاب کند. از این رو تمام همتایان مختلف را در نظر میگیرد و گزینهای را انتخاب میکند که به محل قرارگیری روتر نزدیکتر باشد.
ویژگی های BGP عبارتند از پیکربندی سیستم داخلی خود مختار، پشتیبانی از پارادایم next-hop، هماهنگی بین چند بلندگوی BGP در یک سیستم خودمختار، ارائه اطلاعات مسیر، پشتیبانی از خط مشیها، اجرای پروتکل کنترل انتقال (TCP)، حفظ پهنای باند شبکه، پشتیبانی از (CIDR) و امنیت.
مهمترین کارکردهای BGP شامل ارسال اطلاعات دسترسی منفی یا مثبت، تأیید عملکرد همتایان و اتصال شبکه میان آنها است.
دیدگاهتان را بنویسید