پروتکل BGP پروتکل مسیریابی پیچیدهای است که به معنای واقعی کلمه باعث میشود اینترنت کار کند. این آموزش شما را با نحوه عملکرد BGP آشنا خواهد کرد. در مقاله دیگری به بررسی راهکارهای عیب یابی BGP خواهیم پرداخت.
ارائه دهندگان خدماتی که با شبکههای IP کار میکنند میدانند که پروتکل BGP پیچیدهترین و سختترین پیکربندی پروتکل اینترنت است. با این حال، تأکید آن بر امنیت و مقیاسپذیری، استفاده از آن را ضروری میکند.
BGP چیست؟
بهترین تعریف این است که BGP یک پروتکل مسیریابی است که باعث میشود اینترنت کار کند. این پروتکل با استفاده از مسیریابها و جداول مسیریابی که به زبان BGP صحبت میکنند، اطلاعات مسیریابی را در سراسر اینترنت مبادله میکند.
از آنجایی که تخصیص آدرس در اینترنت به اندازه طرح شماره تلفن سلسله مراتبی نیست، بیشتر مسیریابها در شبکههای اصلی ارائه دهندگان خدمات، نیاز به تبادل اطلاعات در مورد چند صد هزار پیشوند IP دارند.
با وجود گذشت زمان، BGP هنوز هم قادر به انجام این کار است، که نشان میدهد یک پروتکل مسیریابی بسیار مقیاسپذیر است.اطلاعات مسیریابی BGP معمولاً بین نهادهای تجاری رقیب در قالب ارائه دهندگان خدمات اینترنتی (ISP) در یک محیط باز اینترنت عمومی رد و بدل میشود.
BGP تمرکز زیادی بر امنیت دارد. به عنوان مثال، تمام مسیریابهای مجاور باید به صورت دستی براساس سیاستهای مسیریابی پیکربندی شوند. پیادهسازیهای مناسب BGP، مجموعهای ارزشمند از فیلترهای مسیر را فراهم میکنند که ISPها را قادر میسازد از شبکههای خود دفاع کرده و آنچه را که برای رقبای خود تبلیغ میکنند، کنترل کنند.
نحوه عملکرد BGP
در BGP، یک دامنه مسیریابی مستقل (که تقریباً همیشه به معنای شبکه ISP است)، یک سیستم مستقل نامیده میشود. BGP همیشه به عنوان پروتکل مسیریابی انتخابی بین ISPهای مختلف استفاده میشود که به عنوان BGP خارجی شناخته میشود.
ISPهای بزرگ نیز از BGP به عنوان پروتکل مسیریابی اصلی در شبکههای خود استفاده میکنند که به آن BGP داخلی میگویند. برای اجازه دادن به انتقال اطلاعات مسیریابی بین ISPهای مجاور، BGP به توافق نامههای متناظر نیاز دارد که شامل شرایط و ضوابط لازم برای تبادل ترافیک است.
پروتکل BGP به این توافقنامهها پایبند بوده و جداول مسیریابی و اطلاعات را در طول مسیرهای متعدد بین ISPها ارزیابی میکند.
BGP این کار را با استفاده از یک الگوریتم انتخاب انجام میدهد که بهترین مسیر برای هدایت ترافیک را براساس دستورات و ویژگیهای مشخص شده تعیین میکند. هرچند بهترین مسیر ممکن است همیشه کوتاهترین راه نباشد.
تمام پروتکلهای مسیریابی دیگر صرفاً به یافتن مسیر بهینه به سمت همه مقاصد شناخته شده تاکید دارند. BGP نمیتواند این رویکرد ساده را اتخاذ کند زیرا توافقنامههای متناظر بین ISPها تقریباً همیشه منجر به سیاستهای مسیریابی پیچیدهای میشود.
برای کمک به اپراتورهای شبکه برای اجرای این سیاستها، BGP با هر پیشوند IP تعداد زیادی ویژگی را حمل میکند، از جمله موارد زیر:
- مسیر سیستم مستقل (AS) مسیر کاملی است که ثبت میکند یک بسته برای رسیدن به مقصد باید از کدام سیستمهای مستقل عبور کند.
- اولویت محلی، ارزش داخلی یک مقصد است که برای اطمینان از پایداری در سراسر AS استفاده میشود.
- تشخیص دهنده چند خروجی به ISPهای مجاور این توانایی را میدهد که یک نقطه متناظر را بر دیگری ترجیح دهند.
- اجتماعات مجموعهای از برچسبهای عمومی است که میتواند خطمشیهای مدیریتی مختلف را بین مسیریابهای BGP نشان دهد.
از آنجایی که BGP این فاکتورها و موارد دیگری را مد نظر میگیرد، ممکن است ترافیک را به سمتی هدایت کند که یک مسیر را به عنوان رفت و مسیری دیگر را به عنوان برگشت خود طی کند و در نتیجه مسیریابی نامتقارن ایجاد شود.
این از نظر مسیریابی اولیه خیلی مشکل ساز نیست، اما میتواند در مسیرهایی با فایروالها و VPNها مشکلاتی ایجاد کند. تمرکز طراحی و پیادهسازی BGP همیشه بر امنیت و مقیاسپذیری بوده، بنابراین پیکربندی آن نسبت به سایر پروتکلهای مسیریابی سختتر و پیچیدهتر است.
زمانی که پیکربندی خطمشیهای مسیریابی مختلف و دستورات شبکه را شروع میکنید درخواهید یافت که BGP یکی از کندترین پروتکلهای مسیریابی همگرا است.
همگرایی کند BGP طراحی دو پروتکلی یک شبکه ISP را الزامی میکند:
- یک پروتکل مسیریابی داخلی که معمولا Open Shortest Path First (OSPF) یا Intermediate System to Intermediate System (IS-IS) است و برای دستیابی به همگرایی سریع برای مسیرهای داخلی، از جمله آدرسهای IP مسیریابهای BGP استفاده میشود.
- BGP برای تبادل مسیرهای اینترنتی استفاده میشود.
همگرایی سریع OSPF یا IS-IS به دور زدن سریع خرابی در شبکه اصلی کمک میکند، درحالیکه BGP در بالای پروتکل مسیریابی داخلی، مقیاسپذیری، امنیت و الزامات سیاستی را برآورده میکند.
حتی اگر تمام مسیرهای مشتری خود را به BGP منتقل کنید، مشکلات مشتری مانند اتصال flapهای بین مسیریاب و مسیریاب مشتری بر پایداری شبکه اصلی شما تأثیری نخواهد گذاشت.
به دلیل پیچیدگی ذاتی BGP، مشتریان و ISPهای کوچک اغلب BGP را فقط در جاهایی که نیاز است اجرا میکنند، مثلا در نقاط متناظر و روی حداقل زیرمجموعهای از مسیریابهای اصلی (آنهایی که بین نقاط متناظر هستند).
مسیریابهایی که به زبان BGP صحبت میکنند نیز باید یک مسیر پیش فرض به پروتکل مسیریابی داخلی ایجاد کنند تا ترافیک مقاصد اینترنتی ناشناخته را برای سایر مسیریابهای شبکه شما جذب کنند.
چرا از BGP استفاده میشود؟
همانطور که کسب و کار ISP شما رشد میکند، مشتریان شما نیز نیازمند اتصال به BGP میشوند. هر مشتری که میخواهد به اینترنت مازاد دست یابد، باید سیستم مستقل خود را داشته باشد و اطلاعات BGP را با ISPهای خود مبادله کند.
به این ترتیب، شما باید هرچه بیشتر BGP را روی مسیریابهای اصلی و حاشیه مستقر کنید، بنابراین بهتر است BGP را در آن مسیریابها به عنوان بخشی از طراحی اولیه شبکه خود قرار دهید.
اگرچه ممکن است با استقرار اولیه شبکه، BGP را در همه جا مستقر نکنید، اما داشتن یک نقشه ساخت مناسب در زمانی که مجبور هستید بخش زبان BGP شبکه خود را مقیاس کنید، کمک کننده خواهد بود.
BGP به یک شبکه کامل از جلسات BGP داخلی نیاز دارد (جلسات بین مسیریابها در یک سیستم مستقل). میتوان از بازتابندههای مسیر BGP یا کنفدراسیونها برای مقیاسپذیر کردن شبکه استفاده کرد.
دلیل دیگر استقرار BGP در سراسر شبکه این است که VPNهای مبتنی بر MPLS، استقرار کیفیت خدمات در مقیاس بزرگ یا انجام ذخیرهسازی وب متمایز در مقیاس بزرگ برای انتقال اطلاعات مورد نیاز خود به BGP متکی هستند.
بدون شک BGP پیچیدهترین پروتکل مسیریابی IP است که در حال حاضر در اینترنت مستقر شده است. این پیچیدگی در درجه اول بخاطر تمرکز آن بر روی سیاستهای امنیتی و مسیریابی است.
ارائه دهندگان خدمات رقیب از BGP برای تبادل اطلاعات مشارکتی در مورد مسیرهای اینترنتی استفاده میکنند و پروتکل نیز باید هر آنچه که در قراردادهای متناظر بین ارائه دهندگان توافق شده است را اجرا کند. این قراردادها معمولا ارتباط چندانی با خدمات فنی بهینه ندارند.