مبانی پروتکل BGP همراه با دانلود رایگان مقاله
فایل WORD این مقاله در پایان به صورت رایگان قابل دانلود می باشد
مقدمه
یک داده زمانی که میخواهد از جایی به جای دیگر انتقال پیدا کند این بسته پس از بستهبندی[1] از طریق پروتکلهای مسیریابی شروع به پیدا کردن مسیر میکند تا به مقصد برسد.اما بسته به اینکه بسته هدایت شده مقصدش درون AS [2] باشد یا بیرون آن نوع مسیریابی متفاوت است.زمانی که مقصد داخلی باشد از پروتکلهای مسیریابی درونی مانند RIP، OSPF استفاده میکنیم. اما زمانی که مسیر آن خارج از مرز AS باشد، از پروتکلهای مسیریابی برونی مانند BGP استفاده میکنیم.
[1] capsulation
[2] Autonomous system
پروتکل BGP در واقع یک پروتکل مسیریابی برونی است که به کمک آن میتوانیم بر اساس خیلی از پارامترها از جمله پرداخت حق اشتراک، امنیت و سیاست مسیریابی کنیم.
در این تحقیق به طور مفصل به پروتکل مسیریابیBGP پرداختهایم و همچنین راههای اعمال سیاست توسط این پروتکل را بررسی کردهایم.
Routing protocols & Routed protocols
اصطلاح Routing protocols اشاره به پروتکلهایی مثل OSPF و RIP و... دارد که برای انتخاب بهترین مسیر درلایه سوم شبکهها مورد استفاده قرار میگیرد. اما اصطلاح Routed protocols اشاره به پروتکلهایی مانند IPX و IP و... داشته که به طور کلی نوع ارسال و دریافت پیامها را تعیین کرده و طرز آدرسدهی شبکه را تعیین مینمایند. هر یک از پروتکل های Routed از تعدادی پروتکل Routing برای انجام وظایف خود بهره میگیرند. جدول زیر برخی از پروتکلهای Routing مربوط به پروتکلهای Routed را نشان میدهد.
Routing protocols |
Protocols Routed |
RIP،IGRP،OSPF،EIGRP، IS -IS |
IP |
RIP،NLSP، EZ6RP |
IPX |
RMTP،AVRP،EIGRP |
AppleTalk |
الگوریتمهای مسیر یابی و پروتکلهای مسیریابی[1]
هر روتر با توجه به پروتکل مسیریابی خود در حافظه خود دارای جدول مسیریابی[2] است که ساختار این جدول برای هر پروتکل متفاوت است.
الگوریتم مسیر یابی، یک فرمول یا پرسهی ریاضی است که با اعمال آن بر روی جدول مسیریابی «مطلوبیت» یا «میزان بهینگی» مسیرهای مختلف محاسبه شده و براساس آن مطلوبترین و بهینهترین مسیر بدست میآید. این کدها نیز در حافظه روتر ذخیره شدهاند و برای هر پروتکل نیز متفاوت است.
انواع الگوریتمهای مسیریابی
الگوریتمهای مسیر یابی را با دو دیدگاه میتوان دسته بندی کرد:
الف) از دیدگاه روش تصمیم گیری و میزان هوشمندی
ب) از دیدگاه چگونگی جمع آوری و پردازش اطلاعات زیر ساخت ارتباطی شبکه
از دیدگاه اول الگوریتمها به دو دسته تقسیم میشوند:
- ایستا
- پویا
از دیدگاه دوم نیز به دو دسته زیر تقسیم می شوند:
- سراسری متمرکز (LS)
- غیر متمرکز توزیع شده (DV)
پروتکلهای OSPF ،IS-IS از الگوریتم های LS استفاده می کنند.
پروتکلهای RIP، IGRP،IIGRP وBGP از DV استفاده میکنند.
شبکههای خودمختار(AS )
یک AS شامل گروهی از دستگاههاست که به طور واحد مدیریت میشود. این گروه میتواند شامل دستگاههای موجود در یک کمپانی و یا چند کمپانی باشد. ISPها خود نیز یک ASهستند.
یک AS دارای سیاستها و خطمشی مربوط به خود در مسیریابی است که می تواند با دیگر AS ها متفاوت باشد. این AS می تواند دارای یک شبکه باشد یا اینکه چندین شبکه که همه این شبکه ها دارای یک مدیر مشترک هستند.
برای مشخص کردن یک AS از بین دیگر ASها آنها را میتوان به وسیله اعداد 0 تا 65535 شمارهگذاری
کرد. که به این اعداد ASN می گویند. سازمان IANA مسئول تعیین کردن این شماره هاست.
دو نوع شماره AS وجود دارد:
- Private
- Public
اگر به محیط اصلی اینترنت که به وسیله پروتوکول BGP اداره می شود دسترسی داشته باشید و بخواهید که Routeهای پروتکلBGP اینترنت را دریافت کنید نیاز به شمارههای ASN عمومی دارید. اما اگر شبکه داخلی خود را به چند AS مختلف تقسیم نمایید نیاز به استفاده از شماره های private دارید.
در جدول زیر محدودههای ASN آورده شده است.
توضیحات |
ASN |
Reserve |
صفر |
Public |
64495-1 |
برای استفاده در مثالها و سندسازی رزرو شده است |
64511-64496 |
Private |
65534-64512 |
Reserve |
65535 |
اینترنت چیست
از دیدگاه مسیریابی محیط اینترنت تشکیل شده از تعداد زیادی AS است که با شاهراه های ارتباطی به هم متصل شدهاند. در هر AS تعدادی روتر که در یک مرز مدیریتی و مسیریابی قرار دارد، واقع شده است که جهت برقراری ارتباط و مسیریابی بین AS از پروتکل مسیریابی BGP استفاده خواهد شد.
مسیریابی درونی و بیرونی
به مسیریابی روترها در داخل یک AS مسیریابی درونی( IGP) گفته میشود. برای مسیریابی درونی می توان از پروتکلهای زیر استفاده کرد.
- RIP
- DSPF
- IS_IS
- IGRP
- EIGRP
به مسیریابی بین روترهای مرزی ASها که باعث میشود اطلاعات بین AS ها ردوبدل شود مسیریابی برونی(EGP)گویند. BGP یک پروتکل مسیریابی برونی است.
مسیریابی درونی و برنی |
مسیریابهای BGP باید حافظه بسیار بزرگی و پردازه بسیار قدرتمندی داشته باشد. هر مسیریابی از BGP پشتیبانی نمی کند.
|
در حال حاضر برای مسیریابی بین AS ها در اینترنت یا از default route که نوعی مسیریابی ایستا است، استفاده میکنیم یا از BGP.
مسیریابی بستههای IP در درون شبکه خود مختار بیشتر تابع پارامترهای قابل اندازهگیری[3] مانند سرعت، قابل اعتماد بودن و... است. ولی مسیریابی بستههای اطلاعاتی بر روی شاهراههایی که شبکه های AS را به هم متصل کرده مسائلی کاملا متفاوت با مسیریابی در درون یک شبکه خود مختار دارد. در مسیریابی بین شبکههای AS مسائلی نظیر امنیت، پرداخت حق اشتراک و سیاست نیز میتواند در انتخاب بهترین مسیر دخیل باشد. در ادامه درباره چگونگی به کاربردن این policyها بیشتر صحبت می کنیم.
مبانی پروتکل BGP
پروتکل [4]BGP مسئول انتقال اطلاعات و انتخاب بهترین مسیرهای منتهی به مقاصد مختلف در محیط اینترنت می باشند. زمانی که دو AS اقدام به برقراری ارتباط با یکدیگر می کنند به طور معمول از BGP برای تبادل اطلاعات routing استفاده می کنند.
در حال حاضر جدیدترین نسخه این پروتکل BGP4 است که این نسخه از ادرسدهی classless پشتیبانی می کند.
این پروتکل برای ردوبدل کردن پیامهای خود بین روترها از یک اتصال قابل اعتماد استفاده میکند برای
این کار از پروتکل TCP و پورت 179 استفاده میکند.
پروتکل BGP یک پروتکل مسیریابی مسیر (Path Vector Protocol)است. یعنی هر روتر اطلاعات کامل مسیر تا یک مقصد خاص را به روتر همسایهی خود میفرستد.به عنوان مثال به شکل زیر نگاه کنید در این شکل تمام همسایههای مسیریاب F اطلاعات کامل مسیرهای خود را تا تمامی مقصدها مثلا روتر D برای آن میفرستند. حال مسیریاب F ابتدا مسیر EFGCD وIFGCD را به دلیل اینکه خود درون این مسیرها است را حذف میکند (تا در حلقه نیفتد) سپس از بین مسیر BCD و GCD بر اساس پارامترها و صفتهای BGP یکی را انتخاب میکند و بسته را به روتر همسایه میفرستد. درباره این کار در روتر بعدی انجام میشود تا بالاخره بسته به مقصد D برسد.
BGP از دو پروتکل مکمل EBGP و IBGP تشکیل شده است. قبل از اینکه این دو تا تفاوتشان را بیان کنیم باید بدانید که شبکهها از نظر ارتباط با مسیریابهای BGP سه دسته اند:
- شبکههای stub: این شبکهها فقط با یک مسیریاب BGP در ارتباطند بنابراین فقط دریافتکننده یا ارسالکننده اولیهاند و در توزیع ترافیک اینترنت و مسیریابی در اینترنت نقشی ندارند.
شبکههای STUB |
- شبکههای multihome: در این شبکهها چند اتصال با یک یا چند مسیریاب BGP که در یک AS دیگر وجود دارد در ارتباطند پس ترافیک اینترنت میتوانند از داخل این شبکهها عبور کند.
شبکههای multihome |
- شبکههای ترانزیت: این شبکهها دارای چندین مسیریاب مرزی هستند که نقش عمدهای در ترافیک اینترنت دارند.
شبکههای ترانزیت |
IBGP
ارسال اطلاعات به سمت اینترنت در شرایطی که تنها یک روتر در مرز بین سازمان و اینترنت قرار دارد کاری بسیار اسان است. در این شرایط کافی است که روتر مرزی یک default route را از طریق پروتکل مسیریابی درونی(IGP) برای دیگر دستگاههای داخلی ارسال کند تا آنها تمامی پیامهای مقصد خارجی را برای روتر مرزی بفرستند.
اما در صورت استفاده از چندین روتر مختلف برای برقراری ارتباط با اینترنت مسائل مختلفی را باید مد نظر قرار داد. بهمنظور برطرف کردن مشکل احتمالی و همچنین بهرهگیری از امکانات بیشتر می توان از IBGP[5] در بین روترهای مرزی استفاده کرد.
در واقع IBGP برای این است که مسیریابهای مرزی درون یک As بتوانند اطلاعات خود را ردوبدل کنند و بهاین ترتیب همه مسیریابها از تمام راههای مرزی مطلع هستند و میتوانند بهترین راه خروجی راپیدا کنند.
EBGP
ایده ای که در پشت عملکرد BGP قرار دارد شبیه به پروتکل های IGP مانند OSPF و EIGRP است. بدین ترتیب BGP نیز شبیه دو پروتکل یاد شده، در ابتدا سعی در برقراری رابطه مجاورت مابین روترها در ASهای مختلف می کند سپس، روترهای همسایه اطلاعات مورد نظر خود را از یکدیگر کسب کرده و انها را داخل جدول BGP قرار می دهند سپس پروتکل BGP اطلاعات موجود در جدول BGP را آنالیز کرده و اقدام به شناسایی بهترین مسیر منتهی به هر مقصد می نماید این route ها در داخل جدول routing روترها قرار دارد.
زمانی که روترهای همسایه در ASهای جداگانه باشند برای برقراری ارتباط و ردوبدل کردن اطلاعات مسیریابی از پروتکل EBGP استفاده میکنند.
هریک از routerهای، BGP از سه جدول برای نگهداری اطلاعات پروتکل BGPاستفاده میکند که این جدول ها به شرح زیر میباشند: Routing table: شامل اطلاعاتی است که باید طی پیام Update مبادله شود. Neighbor table: همسایههای روتر در این جدول نگهداری میشوند. BGP table: اطلاعات دریافتی از بقیه مسیریابها و نیز دیگر path attributeها در این جدول ذخیره میشوند.
|
پیکربندی ارتباط EBGP و IBGP
منظور از پیکربندی روتر این است که شماره ASN را برای روتر تعیین کنیم و نیز همسایههای مجاورش را به آن بشناسانیم.بعد از این پیکربندی روترها شروع به برقراری ارتباط از طریق پروتکل BGP میکنند. برای پیکربندی باید با دستورات روتر آشنا باشیم. مثلا در شکل زیر میخواهیم روتر A که از نوع روترهای شرکت سیسکو است را پیکربندی کنیم.
پیامهای پروتکل BGP
روترهای مرزی پس از پیکربندب شروع به برقرای ارتباط و ردوبدل کردن اطلاعات خود میکنند برای این کار از پیام های زیر استفاده میکنند.
- Open
- KeepAlive
- Notification
- Update
هریک از این پیام ها کاربرد خاص خود و نیز قالب مخصوصی دارد.
قالب پیام open |
پیام Open
روترها در صورتی می توانند اطلاعات Routing table خود را ردوبدل کنند که بین آنها رابطه مجاورت برقرار شود رابطه مجاورت خود یک پروسه است که از سه مرحله تشکیل شده است. مرحله اول: یک روتر سعی ذر برقراری ارتباط TCP با دستگاهی خواهد کرد که به عنوان همسایهی روتر تعریف شده است. در این بین پورت 179 به کار برده میشود مرحله دوم: در صورت آماده بودن اتصال TCP اولین پیام BGPبه نام open فرستاده می شود. این پیام شامل انواع پارامترهای مختلفی می باشد که در ارتباط مجاورت مورد بررسی خواهند گرفت. مرحله سوم: بعد از تبادل پیام های open ما بین روترهای همسایه و در صورت وجود داشتن تمامی پیششرطها پیام KeepAlive فرستاده میشود در این مرحله رابطه مجاورت بین دو روتر BGP ایجاد شده و وضعیت انها به صورت Establish گزارش خواهد شد.
قالب این پیام به شکل زیر است.
پیام KeepAlive
پیام KeepAlive به صورت پیشفرض هر 60 ثانیه یکبار (در روترهای سیسکو) به صورت مکرر به همسایگان BGP یا به عبارتی؛ BGP Peerها برای نگهداری رابطه مجاورت روترها ارسال میشود. این پیامها مانع از انقضای زمان Hold Time در پیام Openخواهد شد.
پیام Notification
در صورتی که error در اتصال BGP رخ دهد یک پیام Notification ارسال خواهد شد و رابطهی مجاورت قطع می شود.
پیام Update
قالب پیام update |
زمانی که رابطه مجاورت مابین دو روتر BGP در وضعیت Establish قرار گرفت. آن دو روتر اقدام به ارسال پیام های Update به سمت یکدیگر میکنند. روتر دریافت کننده پیام Update صرف نظر از آنکه مسیر مزبور به عنوان بهترین مسیر بوده و یا نه، اقدام به قرار دادن prefix ها (ادرسIP و ماسک[6] آن) در داخل جدول BGP می نماید این کار BGP شبیه به پروتکل OSPF و EIGRP میباشد که در آن تمامی اطلاعات در داخل جدول BGP قرار داده می شوند. سپس روتر با بررسی و آنالیز انها اقدام به شناسایی مسیرهای مناسب به سمت هر مقصد می کند. قالب این پیام هدف از ارسال آن را بیان می کند.
با بررسی قالب Update می توان دریافت که BGP از منطق distance vector استفاده می کند هر پیام Update شامل path attributeهای(بعدا توضیح میدهیم) مختلف بوده و لیست تمامی prefix هایی که از آن PA[7]ها استفاده می کند را نیز بیان میکند. به دلیل آنکه BGP با استفاده از ترکیب اطلاعات مختلفی که در داخل پیام های Update گنجانده میشوند اقدام به بررسی و انتخاب بهترین مسیرهای مختلف به سمت هر مقصد مینماید. میتوان ان را به عنوان پروتکل path vector دانست.
پروتکل BGP از پیامهای Update هم به منظور انتشار مسیر[8] هم حذف آنها استفاده میکند. به عنوان مثال زمانی که یکی از روترهای واقع در جدول BGP معیوب و غیرقابل دسترسی گردد، روتر اقدام به ارسال یک پیام Update کرده و بدین ترتیب این مسئله را به روترهای دیگر اطلاع میدهد با توجه به شکل فوق که ساختار پیام update را نمایش میدهد در خواهید یافت که دو فیلد بالایی برای routeهای معیوب است.
باتوجه به اینکه اگر هر روتر بخواهد اطلاعات تمام مسیرها را در جدول مسیریابی خود نگهداری کند حجم حافظه زیادی را باید داشته باشد، که این خود نیز باعث افزایش قیمت روترها میشود سه روش برای پیامهای Update دارد:
- Default route only: فقط اطلاعات مسیرهای معین منتقل میشود.
- Full update: اطلاعات تمام مسیرهای ممکن ارسال میشود.
- Partial update: از بین همهی مسیرها، اطلاعات مسیرهایی که خوب به نظر میرسند، منتقل میشود.
پیامهای BGP
فیلتراسیون و پیام update
پروتکل BGP امکان اعمال فیلتر بر روی پیامهای Update را در روی تمامی روترها فراهم ساخته است برای این کار می توان کلید روترها را مجبور به بررسی آدرسها و ماسکهای مربوط به پیامهای ورودی و یا خروجی نمود. مهمترین تفاوت پروسه فیلتراسیون در BGP و IGP در نحوه انتخاب مواردی است که باید تحت تاثیر فیلتر قرار گیرند. این پروتکل علاوه بر آنکه به بررسی آدرس و ماسک های مربوط به پیامها میپردازد امکان بررسی PAهای مختلف را نیز در اختیار مدیر شبکه قرار می دهد. برای نمونه میتوان یک فیلتر را در روی یک روتر BGP به گونه ای تنظیم نمود که پیام های زیر بلوکه گردند:
- اولین ASN برابر 4 باشد.
- آخرین ASN برابر 567 نباشد.
- پیامها حد اقل باید از سه AS مختلف عبور کرده باشند.
انتخاب routeهای مورد نظر برای فیلتراسیون براساس مقدار PAها، تنها مختص BGP است.
صفتهای مسیرBGP ( BGP Path Attribute )
همانطور که قبلا ذکر شد پروتکل BGP بر اساس یکسری Attribute قادر به تعیین بهترین مسیر برای هر مقصد میباشد.Attribute های پروتکل BGP شامل موارد زیر است:
- AS – Path
- Next –Hop
- Origin
- Local preference
- MED
- Wight
AS – Path
نمایش AS-Path |
این Attribute شامل لیست کلیه AS هایی می باشد که بسته اطلاعاتی update از آنها عبور کرده است.
Next - hop
اینAttribute ادرس Next-hop مربوط به مقصد را مشخص می کند و در پروتکل BGP ادرس Next-hop برابر با ادرس روتر As بعد می باشد در حقیقت به طور پیشفرض در پروتکل BGP ادرس As بعدی به عنوان Next-hop تعیین خواهد کرد. شما قادر به تغییر شرایط پیشفرض هستید.
Origin
این Attribute که همراه پیام update وجود دارد و تعیین کننده مبدا اصلی شبکه به دست آمده میباشد.
در واقع تععسن کننده آن است که این شبکه به چه شکل و فرمی توسط روتر آموخته شده است. حالت های مختلف برای origin attribute به شرح زیر است:
i: این علامت بیانگر آن است که این پیام از داخل همان AS به دست آمده است.
e: این علامت بیانگر ان است که این پیام از یک AS دیگر با پروتکل EBGP به دست آمده است.
?: این علامت بیانگر آن است که این پیام توسط یک مبدا ناشناس ارسال شده است. ممکن است پیام در داخل پروتکل BGP انتشار یا Redistribute شده باشد.
Local Preference
از این Attribute برای شناسایی مسیر خروجی پیام از یک AS در زمان ارسال به روترهای BGP همسایه درAs های دیگر استفاده خواهد شد که این Attribute به صورت پیشفرض بر روی روترهای شرکت سیسکو برابر با 100 می باشد در صورتی که یک مسیر دارای local preference بزرگتری باشد به عنوان بهترین مسیر برای خروج پیام از یک As به سایر As ها استفاده خواهد شد.
دستور تغییر مقدار Local preference |
البته این صفت نیز قایل تغییر است. به دستور زیر توجه کنید.
Multi Exit Discriminator (MED)
As های همسایه از MED Attribute استفاده خواهند کرد که بهترین نقطه برای ارسال اطلاعات به یک As را تشخیص دهند در صورتی که یک As چندین نقطه ورودی داشته باشد با استفاده از خصوصیات MED قادر خواهید بود ارسال پیامها از سایر ASها به یک As را مدیریت کنید
MED Attribute بر روی روترها پیکربندی خواهد شد و این Attribute فقط به روترهای همسایهExternal BGP ارسال خواهند شد و هر چه مقدار پارامتر MED Attribute مربوط به روتر کوچکتر باشد. توسط روترهای همسایه External BGP به عنوان بهترین مسیر برای دسترسی به ان As استفاده خواهد شد.
Weight
نمایش صفت Weight |
صفت weight مخصوص شرکت سیسکو می باشد و این خصوصیات به صورت Local روی روترها استفاده میشود و به هیچ روتر یا As دیگری به وسیله پروتکل BGP انتقال نمی یابد و از این خصوصیات بر روی روترهای شرکت سیسکو برای شناسایی بهترین نقطه خروجی As بر روی یک روتر استفاده خواهد شد مسیری که دارای weight بزرگتری باشد مسیر مناسبتری میباشد و دارای اولویت بالاتری می باشد.
انتخاب بهترین مسیر در پروتکل BGP
پروتکل مسیریابی BGP برای هر مقصد بهترین مسیر را شناسایی و تعیین خواهد کرد.در حقیقت پروتکل مسیریابی BGP بعد از بررسی Attributeهای پیامهای update دریافتی بر اساس آنها بهترین مسیر را برای هر مقصد شناسایی و در جدول مسیریابی قرلر میدهد.
در پروتکل BGP مراحل انتخاب مسیر به شرح زیر میباشد:
- مسیری که مفدار weight بالاتری داشته باشد به عنوان بهترین مسیر انتخاب میشود.
- در صورت یکسان بودن مقدار Weight و یا سِت نشدن این مقدار از Local Preference استفاده خواهد شد و مسیری که Local Preference بالاتری داشته باشد به عنوان بهترین مسیر انتخاب میشود.
- در صورتی که مسیرها دارای Local Preference یکسان باشند مسیری که دارای ASهای کمتری باشد انتخاب خواهد شد در این حالت مسیری که برای رسیدن به مقصد از ASهای کمتری عبور کند،به عنوان بهترین مسیر به وسیله BGP تعیین خواهد شد.
- در صورت یکسان بودن تعداد ASها از خصوصیت Origin استفاده میشود. در این حالت ابتدا مسیر i معادل IGP و سپس مسیر e معادل EBP و سپس ?، اولویت خواهند داشت.
- در صورت یکسان بودن کلیه موارد فوق از خصوصیات MED استفاده خواهد شد. هر مسیری که MED کمتری داشته باشد، به عنوان بهترین مسیر انتخاب میشود.
- در صورت یکسان بودن MED مسیرهای EBGP نسبت به مسیرهای IBGP اولویت بیشتری دارد.
- در صورت یکسان بودن کلیه موارد بالا مسیرهای قدیمیتر انتخاب میشود.
سیاستهای مسیریابی
صفتهای BGP علاوه بر تعیین بهترین مسیر خروجی، میتواند برای اعمال سیاستهای مسیریابی و کنترل ترافیک خروجی و ورودی نیز به کار رود.
برای کنترل ترافیک خروجی میتوانیم از سه صفت زیر استفاده کنیم،و با تغییر آنها بسته را در مسیر مورد نظر هدایت کنیم.
- AS – Path
- Local preference
- Wight
برای کنترل ترافیک ورودی ودریافت بستهها از مسیر مورد نظر صفت MED را طوری تغییر میدهیم که بسته از روتر مورد نظر عبود کند.
منابع
مسعود حسینقلیپور، آموزش علمی کاربردی CCNP Route،انتشارات کیا رایانه سبز، 1389
http://freesoft.org/CIE/RFC/1771/index.htm
www. forum.irdoc.net
[1] Routing protocols
[2] Routing table
[3] metric
[4] Border Gateway Protocol
[5] Interior Border Gateway Protocol
[6] Mask
[7] Path Attribute
[8] route
محصولات پیشنهادی
راه های پیشگیری از نفوذ در شبکه(پروژه ی مقطع کارشناسی)