Border Gateway Protocol، پروتکلی است که برای مسیریابی ترافیک در اینترنت بین سیستمهای خودمختار (AS) استفاده میشود. به عبارت ساده، BGP به روترها میگوید که چگونه بستههای داده را به مقصد خود برسانند. پروتکل BGP نقشی حیاتی در عملکرد اینترنت دارد و به عنوان «label» اینترنت شناخته میشود. BGP بسیار پیچیده است و میتواند مستعد مشکلات امنیتی و ناپایداری باشد. در ادامه این متن، به بررسی خصوصیات پروتکل BGP، مشکلات احتمالی و قابلیتهای آن خواهیم پرداخت. برای اطلاعات بیشتر در مورد این پروتکل در ادامه با ما همراه باشید.
BGP چیست؟
پروتکل دروازهای مرزی (BGP)، همانند سرویس پستی برای اینترنت عمل میکند. فرض کنید شما یک نامه را در صندوق پستی قرار دادهاید؛ سرویس پستی این نامه را بررسی کرده و راهی سریع و موثر برای رساندن آن به دست گیرنده پیدا میکند.
به همین ترتیب، وقتی شما اطلاعاتی را در اینترنت ارسال میکنید، BGP وظیفه دارد تا از بین همه راههای ممکن برای انتقال دادهها، بهترین مسیر را انتخاب کند. این معمولا به معنای جابهجایی دادهها بین مجموعههای مختلف و مستقل از یکدیگر است.
در واقع، BGP دلیل اصلی کارکرد اینترنت است و با کمک آن، انتقال دادهها ممکن میشود. برای مثال، وقتی که شخصی در ایران سعی در دسترسی به وبسایتی دارد که سرورهای آن در ترکیه قرار دارند، پروتکل مسیریابی BGP است که این ارتباط را به شکلی سریع و راحت فراهم میکند.
سیستم خودمختار (AS) در پروتکل مسیریابی BGP چیست؟
اینترنت شبکهای از شبکههاست. این شبکهی غولآسا به صدها هزار شبکهی کوچکتر به نام «سیستمهای خودمختار» (AS) تقسیم میشود. هر یک از این سیستمها اساساً مجموعهای بزرگ از مسیریابها است که توسط یک سازمان واحد اداره میشود.
اگر همچنان BGP را به عنوان پست اینترنت در نظر بگیریم، سیستمهای خودمختار مانند شعباتِ جداگانهی پست هستند. یک شهر ممکن است صدها صندوق پستی داشته باشد، اما نامههای موجود در آن صندوقها باید قبل از ارسال به مقصد دیگری، از طریق شعبهی پست محلی هدایت شوند. مسیریابهای داخلی درون یک سیستم خودمختار همانند صندوقهای پستی عمل میکنند. آنها بستههای خروجی خود را به سیستم خودمختار ارسال میکنند، که سپس از مسیریابی BGP برای رساندن این بستهها به مقصد نهایی استفاده میکند.
شکل بالا نسخهی سادهسازیشدهای از BGP را نشان میدهد. در این مدل، تنها شش سیستم خودمختار در اینترنت وجود دارند. فرض کنید AS1 نیاز به مسیریابی یک بسته به AS3 داشته باشد. در این حالت، دو گزینه برای این کار وجود دارد:
- پرش به سیستم خودمختار شماره ۲ (AS2) و سپس به سیستم شماره ۳ (AS3):
- AS2 → AS3
- پرش به سیستم خودمختار شماره ۶ (AS6)، سپس به سیستم شماره ۵ (AS5)، سیستم ۴ (AS4) و در نهایت به سیستم شماره ۳ (AS3):
- AS6 → AS5 → AS4 → AS3
در این مدل سادهشده، تصمیمگیری آسان به نظر میرسد. مسیر AS2 به پرشهای کمتری نسبت به مسیر AS6 نیاز دارد، بنابراین سریعترین و کارآمدترین مسیر است. حال تصور کنید که صدها هزار سیستم خودمختار وجود دارد و تعداد پرش تنها بخشی از یک الگوریتم پیچیدهی انتخاب مسیر است. این واقعیت مسیریابی BGP در اینترنت است.
ساختار اینترنت دائماً در حال تغییر است و سیستمهای جدید راهاندازی شده و سیستمهای موجود از دسترس خارج میشوند. به همین دلیل، هر سیستم خودمختار باید با اطلاعات مربوط به مسیرهای جدید و همچنین مسیرهای منسوخ شده بهروز شود. این کار از طریق جلسات تبادل اطلاعات (peering sessions) انجام میشود، جایی که هر سیستم خودمختار با سیستمهای همجوار خود به منظور به اشتراک گذاشتن اطلاعات مسیریابی، از طریق یک اتصال TCP/IP ارتباط برقرار میکند. با استفاده از این اطلاعات، هر سیستم خودمختار برای مسیریابی صحیح انتقالات داده خروجی که از درون آن سیستم نشأت میگیرند، مجهز میشود.
در اینجا بخشی از قیاس ما ناکارآمد میشود. برخلاف شعبات پست، سیستمهای خودمختار همگی بخشی از یک سازمان واحد نیستند. در واقع، آنها اغلب متعلق به شرکتهای رقیب هستند. به همین دلیل، مسیرهای BGP گاهی اوقات ملاحظات تجاری را نیز در نظر میگیرند. سیستمهای خودمختار اغلب برای جابهجایی ترافیک در سراسر شبکههایشان از یکدیگر هزینه دریافت میکنند و قیمت دسترسی میتواند عاملی در انتخاب نهایی مسیر باشد.
چه کسانی سیستمهای خودمختار BGP را مدیریت میکنند؟
سیستمهای خودمختار (AS) معمولا متعلق به ارائهدهندگان خدمات اینترنتی (ISPها) یا سایر سازمانهای بزرگ مانند شرکتهای فناوری، دانشگاهها، سازمانهای دولتی و مؤسسات علمی هستند. هر سیستمی که مایل به تبادل اطلاعات مسیریابی است، باید یک شمارهی سیستم خودمختار ثبتشده (ASN) داشته باشد.
مسئولیت واگذاری ASNها بر عهدهی مقام ثبت اعداد اختصاصیافته اینترنت (IANA) است که آنها را به ثبتهای منطقهای اینترنت (RIR) واگذار میکند و سپس RIRها این شمارهها را به ارائهدهندگان خدمات اینترنتی (ISP) و شبکهها اختصاص میدهند. ASNها اعداد 16 بیتی بین یک تا 65534 و یا 32 بیتی بین 131072 و 4294967294 هستند. تا سال 2018، حدود 64 هزار شمارهی سیستم خودمختار در سراسر جهان مورد استفاده قرار میگرفت. این ASNها فقط برای BGP خارجی مورد نیاز هستند.
تفاوت بین پروتکل BGP خارجی و پروتکل BGP داخلی چیست؟
تبادل مسیرها و انتقال دادهها در اینترنت از طریق پروتکل BGP خارجی (eBGP) صورت میگیرد. سیستمهای خودمختار همچنین میتوانند از نسخه داخلی پروتکل BGP برای هدایت ترافیک در شبکههای داخلی خود استفاده کنند که به آن BGP داخلی (iBGP) گفته میشود.
لازم به ذکر است که استفاده از BGP داخلی الزامی برای استفاده از BGP خارجی نیست. سیستمهای خودمختار میتوانند از بین چندین پروتکل داخلی برای اتصال روترها در لایه های شبکه داخلی خود حق انتخاب داشته باشند.
BGP خارجی مانند پست بینالمللی عمل میکند. استانداردها و دستورالعملهای خاصی وجود دارند که هنگام ارسال یک مرسوله پستی به خارج از کشور باید رعایت شوند. زمانی که این مرسوله به کشور مقصد میرسد، باید از طریق سرویس پست محلی کشور مقصد برای رسیدن به مقصد نهایی خود عبور کند.
هر کشور سرویس پست داخلی خود را دارد که لزوما دستورالعملهای مشابهی با سایر کشورها را دنبال نمیکند. به طور مشابه، هر سیستم خودمختار میتواند پروتکل هدایت داده داخلی خود را برای هدایت دادهها در شبکه خود داشته باشد.
ویژگیهای پروتکل مسیریابی BGP چیست؟
همانطور که اشاره شد، هدف اصلی BGP پیدا کردن کارآمدترین مسیر برای ترافیک شبکه است. با این حال، تعداد پرش (hop count) تنها عاملی نیست که مسیریاب های BGP برای یافتن این مسیرها در نظر می گیرند. BGP برای هر مسیر ویژگی هایی (attribute) اختصاص می دهد و این ویژگی ها به مسیریاب ها کمک می کنند تا در صورت وجود چندین گزینه، مسیری را انتخاب کنند. بسیاری از مسیریاب ها به مدیران شبکه اجازه می دهند تا با سفارشی کردن این ویژگی ها، کنترل دقیق تری بر نحوه جریان ترافیک در شبکه خود داشته باشند. برخی از نمونه های ویژگی های BGP عبارتند از:
- وزن (Weight): این یک ویژگی اختصاصی سیسکو است که به مسیریاب مسیرهای محلی ترجیحی را نشان می دهد.
- ترجیح محلی (Local Preference): این ویژگی به مسیریاب مسیر خروجی مورد نظر برای انتخاب را نشان می دهد.
- ایجاد کننده (Originate): این ویژگی به مسیریاب دستور می دهد تا مسیرهایی را که خود به BGP اضافه کرده است انتخاب کند.
- طول مسیر AS (AS Path Length): مشابه با مثال نمودار بالا، این ویژگی به مسیریاب دستور می دهد تا مسیرهای کوتاهتر را ترجیح دهد.
ویژگی های BGP دیگری نیز وجود دارد. همه این ویژگی ها برای مسیریاب های BGP بر اساس اولویت مرتب شده اند – به این ترتیب که، برای مثال، یک مسیریاب BGP ابتدا بررسی می کند که کدام مسیر بالاترین وزن را دارد، سپس ترجیح محلی را بررسی می کند، سپس بررسی می کند که آیا مسیریاب خود مسیر را ایجاد کرده است یا خیر، و به همین ترتیب. (بنابراین، اگر همه مسیرهای دریافتی وزن مساوی داشته باشند، مسیریاب مسیری را بر اساس ترجیح محلی انتخاب می کند.)
آسیبپذیریهای BGP و روشهای مقابله با آنها
پروتکل BGP، اگرچه ستون اصلی مسیریابی اینترنت است، خالی از آسیب نیست. در طول سالها، چندین مورد از سوءاستفادههای مخرب از این پروتکل رخ داده است که منجر به قطعیهای گسترده یا حملات سایبری شده است. در ادامه به برخی از این آسیبپذیریها و روشهای مقابله با آنها اشاره میکنیم:
سوءاستفاده از مسیریابی (BGP Hijacking):
یکی از آسیبپذیریهای اصلی BGP، امکان «سوءاستفاده از مسیریابی» است. این اتفاق زمانی رخ میدهد که یک عامل مخرب، با جعل هویت یک سازمان دیگر، مسیرهای نادرست را به سایر سیستمهای خودمختار (AS) تبلیغ کند. این مسیرهای جعلی میتوانند ترافیک اینترنت را به سمت سرورهای تحت کنترل مهاجم هدایت کنند و منجر به چندین سناریوی مخرب شوند، از جمله:
- فیشینگ و مهندسی اجتماعی: هدایت کاربران به وبسایتهای تقلبی برای سرقت اطلاعات شخصی
- حملات منع سرویس (DoS): هدایت ترافیک به سرورهای جعلی و خارج کردن آنها از دسترس
- حمات میانی (On-path attacks): تغییر و دستکاری دادههای در حال انتقال برای اهداف مخرب
- جعل هویت: استراق سمع مکالمات و تبادل اطلاعات
چند نمونه از این سوءاستفادهها در سالهای اخیر اتفاق افتاده است:
- در سال ۲۰۰۴، یک ارائهدهندهی خدمات اینترنتی در ترکیه به اشتباه مسیرهای نادرستی را تبلیغ کرد و باعث ایجاد اختلال گسترده در اینترنت شد.
- در سال ۲۰۰۸، یک ارائهدهندهی خدمات اینترنتی در پاکستان تلاش کرد با استفاده از BGP، دسترسی کاربران خود به یوتیوب را مسدود کند. این اقدام به دلیل اشتباه، منجر به قطع دسترسی کاربران سراسر جهان به یوتیوب برای چندین ساعت شد.
- در سال ۲۰۱۹، یک شرکت کوچک در پنسیلوانیا به اشتباه به عنوان مسیر اصلی برای هدایت ترافیک شبکهی Verizon انتخاب شد که منجر به قطعی اینترنت برای بسیاری از کاربران در سراسر جهان به مدت چند ساعت شد.
- در سال ۲۰۱۸، مهاجمان به صورت عمدی مسیرهای نادرستی را برای هدایت ترافیک به سرویس DNS آمازون ایجاد کردند و با این کار توانستند بیش از ۱۰۰ هزار دلار ارز دیجیتال سرقت کنند.
این اتفاقات نشان میدهد که عملکرد BGP بر پایهی اعتماد بین سیستمهای خودمختار استوار است. زمانی که همسایگان در BGP، اطلاعات مسیریابی نادرستی را به اشتراک بگذارند (چه به عمد و چه سهوا)، ترافیک اینترنت به مسیر اشتباه هدایت میشود و میتواند منجر به نتایج مخربی شود.
راهکارهای مقابله با آسیبپذیریهای BGP:
خوشبختانه راهکارهایی برای مقابله با این آسیبپذیریها وجود دارد. برخی از این راهکارها عبارتند از:
- ایجاد استانداردهای امنیتی: سازمانهای مرتبط در حال توسعهی استانداردهای امنیتی برای BGP هستند تا از انتشار مسیرهای نادرست جلوگیری شود.
- استفاده از پروتکلهای احراز هویت: با استفاده از پروتکلهای احراز هویت، سیستمهای خودمختار میتوانند از صحت هویت همسایگان خود اطمینان حاصل کنند.
- مانیتورینگ و گزارشدهی: راهاندازی سیستمهای مانیتورینگ و گزارشدهی برای شناسایی سریع سوءاستفادههای BGP و واکنش مناسب به آنها ضروری است.
- بهبود کارکرد مسیریابی: با بهبود الگوریتمهای مسیریابی میتوان مسیرهای بهینهتری انتخاب کرد و احتمال سوءاستفاده از BGP را کاهش داد.
ایمنسازی BGP یک فرایند مستمر است و نیاز به همکاری گستردهی سازمانهای مرتبط، از جمله ارائهدهندگان خدمات اینترنتی، شرکتهای فناوری و نهادهای دولتی دارد. با پیادهسازی راهکارهای مناسب، میتوان از اینترنت در برابر سوءاستفادههای مخرب و قطعیهای گسترده محافظت کرد.
چگونه پروتکل BGP را امن کنیم؟
همانطور که اشاره شد، پروتکل BGP علیرغم مزایای فراوان، از آسیبپذیریهایی نیز برخوردار است. خوشبختانه، در سالهای اخیر اقداماتی برای ایمنسازی BGP صورت گرفته است.
۱. زیرساخت کلید عمومی منابع (RPKI):
یکی از مهمترین پیشرفتها در راستای ایمنسازی BGP، معرفی چارچوب امنیتی به نام «زیرساخت کلید عمومی منابع» (RPKI) در سال ۲۰۰۸ است. RPKI با استفاده از رکوردهای امضاشدهی رمزنگاری به نام «مجوز تایید منشأ مسیر» (ROA) این امکان را فراهم میکند تا تایید شود کدام اپراتور شبکه مجاز است تا آدرسهای IP یک سازمان را با استفاده از BGP اعلام کند. این فرآیند اطمینان میدهد که تنها طرفهای مجاز اقدام به اعلام پیشوندهای (prefixes) یک سازمان میکنند.
با وجود راهاندازی RPKI، برای ایمنسازی کامل BGP به مشارکت گستردهتر نیاز است. عدم رعایت شیوههای امنیتی BGP توسط شبکههای بزرگ میتواند منجر به گسترش حملات سوءاستفاده در ابعاد وسیع شود. در حال حاضر، بیش از ۵۰ درصد از ارائهدهندگان برتر اینترنت تا حدودی از RPKI پشتیبانی میکنند، اما برای ایمنسازی کامل BGP نیاز به مشارکت تعداد بیشتری از این ارائهدهندگان است.
۲. راهکارهای امنیتی برای شبکهها:
اپراتورهای شبکه میتوانند با اجرای RPKI و استفاده از فناوریهای هشدار شبکهای نظیر «تشخیص نشت مسیر کلودفلیر» (Cloudflare Route Leak Detection) از شبکههای خود محافظت کنند. این ویژگی با هشدار به مشتریان در صورت تبلیغ پیشوندهای آنها توسط طرفهای غیرمجاز، به جلوگیری از حملات سوءاستفاده از BGP کمک میکند.
ایمنسازی BGP یک فرآیند مداوم است که نیازمند همکاری تمامی ذینفعان، از جمله ارائهدهندگان خدمات اینترنتی، شرکتهای فناوری و نهادهای دولتی است. با پیادهسازی راهکارهای مناسب، میتوان از اینترنت در برابر سوءاستفادههای مخرب و اختلالات گسترده محافظت کرد.
جمعبندی
پروتکل مسیریابی (BGP) یک استاندارد برای انتقال دادهها و اطلاعات در اینترنت است که اجازه میدهد ارتباط بین شبکههای مختلف (AS) به صورت کارآمد و مطمئن برقرار شود.
این پروتکل با استفاده از اطلاعات مسیریابی دقیق، به شبکهها کمک میکند تا بهترین مسیرها را برای انتقال دادهها انتخاب کنند. BGP برای تضمین ثبات و کارایی شبکههای بزرگ و اینترنت حیاتی است. این پروتکل همچنین قابلیت انعطافپذیری بالایی در مواجهه با تغییرات شبکه را فراهم میآورد.
اگر سوالی در مورد پروتکل BGP دارید، لطفا آن را در بخش کامنتها بنویسید تا کارشناسان ما در آقای وب به شما پاسخ دهند.
نوشته پروتکل BGP؛ چگونه داده ها در اینترنت مسیریابی میشوند؟ اولین بار در مجله آقای وب. پدیدار شد.