Posts

MPLS چگونه کار می کند؟ – بخش شانزدهم

در ادامه مباحث MPLS در خدمت شما عزیزان هستیم.

تعداد LDP Sessions :


شاید شما فکر کنید که یک ارتباط LDP برای یک جفت LSR برای اینکه کار خود را انجام دهند کافی است. در اکثر موارد حق با شما است زمانی که per-platform label space به عنوان تنها label space بین یک جفت LSR مورد استفاده قرار می گیرد یک ارتباط LDP کافی است. به این دلیل است که تنها یک مجموعه از Label binding بین دو LSR مبادله می شود و مهم نیست چندتا لینک بین آنها وجود دارد. اساسا ، زمانیکه از per-platform label space استفاده می شود اینترفیس ها می توانند یک مجموعه یکسان از label ها را به اشتراک بگذارند و دلیل آن این است که همه label binding مربوط به تمام لینک های بین این دو LSR است چون آنها به label space یکسان تعلق دارند زمانی اینترفیس ها به per-platform label space تعلق دارند که اینترفیس در حالت frame mode قرار دارد. اینترفیس هایی که در حالت frame mode قرار ندارند مانند اینترفیس های LC-ATM ، دارای per-interface label space هستند. در per-interface label space هر label binding تنها به آن اینترفیس ارتباط دارد. بنابراین برای هر اینترفیس که دارای per-interface label space است یک ارتباط LDP بین یک جفت LSR نیاز است. به تصویر زیر توجه کنید در این تصویر تعداد ارتباط های LDP بین یک جفت LSR نمایش داده شده است.

Image

برای همه لینک های frame mode تنها یک ارتباط LDP نیاز است که label ها را در per-platform label space مبادله کند. برای هر لینک LC-ATM یک ارتباط LDP برای تبادل label ها در per-interface label space نیاز است. در بخش 1 تصویر بالا شما سه لینک frame بین دو LSR می بینید که تنها به یک ارتباط LDP بین دو LSR نیاز است. در بخش 2 تصویر بالا شما یک لینک frame و یک لینک LC-ATM بین دو LSR می بینید چون لینک LC-ATM ارتباط LDP خاص خودش را نیاز دارد درنتیجه به دو ارتباط LDP نیاز است. در بخش 3 تصویر بالا سه لینک LC-ATM وجود دارد بنابراین تعداد ارتباط های LDP مورد نیاز سه می باشد. در بخش 4 تصویر بالا دو لینک frame و سه لینک LC-ATM وجود دارد که برای دو لینک frame یک ارتباط LDP و برای سه لینک LC-ATM سه ارتباط LDP نیاز است در نتیجه برای این بخش چهار ارتباط LDP نیاز است.

Advertising of Label Mappings :


تبلیغ(اعلام) label mappings یا label bindings هدف اصلی LDP می باشد. در قسمت های قبلی سه بخش اصلی مربوط به عملیاتی که LSR ها روی label ها انجام می دهد را توضیح دادیم که شامل Advertisement ، label retention و LSP control mode می باشد. که هر بخش دارای دو احتمال است ، که منجر به حالت های زیر می شود :

  • (Unsolicited Downstream (UD در مقابلDownstream-on-Demand (DoD) advertisement mode
  • (Liberal Label Retention (LLR در مقابل Conservative Label Retention (CLR) mode
  • Independent LSP Control در مقابل Ordered LSP Control mode

مهم نیست که یک جفت LDP در چه حالتی عمل می کنند چون هدف تبلیغ label binding است. در حالت UD ، به صورت ناخواسته LDPها label binding را برای LDP دیگر منتشر می کنند. Label binding مجموعه ای از LDP Identifier و label به ازای هر شبکه است. یک روتر LDP چند label binding برای هر شبکه دریافت می کند. تمام این label bindings در LIB ذخیره می گردند و از بین آنها تنها یک LSR به عنوان LSR پایین دست (next hop) برای آن شبکه در نظر گرفته می شود ، هرچند اگر load balancing وجود داشته باشد امکان داشتن چند LSR پایین دست وجود دارد.
LSR پایین دست را با استفاده از Next hop موجود در جدول مسیریابی برای آن شبکه ، می توان پیدا کرد. تنها remote binding که مرتبط با next hop LSR است برای LFIB قابل استفاده است. به این معناست که تنها یک label از بین تمام label هایی که توسط همسایه ها برای آن ارسال شده است توسط LSR به عنوان label خروجی برای آن شبکه در LFIB مورد استفاده قرار می گیرد. مشکلی که وجود دارد این است که label binding که ارسال می شود بدون آدرس IP اینترفیس است. به این معنا است که برای پیدا کردن label خروجی برای یک شبکه خاص شما باید LDP Identifier را به ادرس IP اینترفیس در LSR پایین دست map کنید. شما تنها در صورتی می توانید اینکار را انجام دهید که جفت های LDP تمام آدرس های IP خود را اعلام کرده باشند. این آدرس های IP توسط جفت LDP به وسیله Address messages و Withdraw Address messages اعلام می شود. شما می توانید این آدرس ها را با نگاه کردن به جفت LDP پیدا کنید. این آدرس ها را bound addresses برای جفت LDP می نامند. در تصویر زیر bound addresses برای جفت 10.200.254.2 (london) در LSR نیویورک نمایش داده شده است.

Image

هر LSR برای هر شبکه IGP که در جدول مسیریابی خود دارد یک label لوکال در نظر می گیرد. این لوکال label binding است. این local binding در LIB روتر نگه داری می شود. هر یک از این label ها و شبکه های مربوط به آنها توسط LDP به تمام جفت های LDP اعلام می شوند. این label bindings در جفت LDP به عنوان remote binding در LIB نگه داری می شوند. تصویر زیر LIB را در یک LSR نمایش می دهد.

Image

همانطور که می بینید برای هر شبکه ، LSR همیشه یک local binding و یک remote binding به ازای هر جفت LDP دارد.
در تصویر زیر با استفاده از یک دستور دیگر محتوای LIB را در LSR می بینیم. مقدار in label به local binding اشاره دارد. و مقدار out label به remote binding اشاره دارد. شما می توانید label و LDP Identifier مربوط به LSR که این remote bindings را ارسال کرده است را ببینید.

Image

مزیت استفاده از دستور show mpls ip binding این است که نشان می دهد کدام label از بین تمام remote binding های موجود برای ارسال ترافیک استفاده می شود. Inuse نشان می دهد که کدام label برای آن شبکه در LFIB مورد استفاده قرار می گیرد.
به تصویر زیر توجه کنید تا ارتباط میان RIB ، bound addresses از جفت LSR ، LIB و LFIB را ببینید.

Image

تصویر بالا یک مثال برای ساخت LFIB را برای FEC مرتبط به شبکه 10.200.254.4/32 را نشان می دهد. Label های local برای شبکه ها به صورت مستقیم در LIB وجود دارد اما label خروجی را از طریق RIB ، bound addresses از جفت LDP و LIB می توان یافت.
توجه داشته باشید LDP به تمام شبکه ها local label اختصاص می دهد و آنها را به تمام جفت های LDP خود اعلام می کند. در اینجا مفهوم split horizon وجود ندارد. یک جفت LDP برای یک شبکه local label خود را اختصاص می دهند و آنرا به جفت LDP خود اعلام می کند. حتی اگر جفت LDP صاحب آن شبکه باشد یا آن LDP به عنوان LSR پایین دست باشد. به تصویر زیر توجه کنید که در آن یک شبکه ساده با دو LSR نمایش داده شده است. روتر لندن صاحب شبکه 10.200.254.2 است که مرتبط به loopback 0 می باشد. این روتر label binding خود را برای این شبکه به روتر روم اعلام می کند. Label اعلام شده از نوع label implicit NULL می باشد. روتر لندن نیز به نوبه خود برای شبکه 10.200.254.2 از روتر روم remote binding دریافت می کند حتی اگر روتر لندن صاحب این شبکه باشد.

Image

به تصویر زیر توجه کنید که در آن label binding برای شبکه 10.200.254.2 در روتر های لندن و روم نمایش داده شده است.

Image

MPLS چگونه کار می کند؟ – بخش پنجم

در ادامه مباحث MPLS در خدمت شما هستیم.

Label Distrbution :


اولین label که توسط ingress LSR به بسته زده می شود به یک LSP تعلق دارد و همچنین مسیری که بسته از میان شبکه MPLS طی می کند مربوط به یک LSP است. Ingress LSR یک یا چند label به بسته می زند و LSR های میانی label بالایی بسته دریافتی را با یک label دیگر swap می کنند و سپس آنرا ارسال می کنند و در نهایت label های LSP توسط egress LSR حذف شده و بسته را ارسال می کند.
به طور مثال IPv4 over MPLS را به عنوان یک نمونه ساده از شبکه MPLS در نظر بگیرد. IPv4 over MPLS شبکه ای است که LSR های آن یک پروتکل مسیریابی IGP مانند EIGRP یا OSPF را اجرا کرده اند. Ingress LSR به آدرس IP مقصد بسته نگاه می کند و براساس مقصد به آن label زده و آنرا ارسال می کند. LSR بعدی و سایر LSR های میانی ، بسته label خورده را دریافت کرده label آنرا به یک label جدید swap می کنند و سپس آنرا ارسال می کنند و در انتها egress LSR بسته را دریافت می کند label آن را pop می کند و سپس روی لینک خروجی خود آنرا ارسال می کند. برای اینکه این شبکه کار کند باید LSR های مجاور قبول کنند که برای هر شبکه IGP از چه label استفاده کنند. بنابراین هر LSR میانی بتواند تشخیص دهد label هر بسته ورودی با چه label باید swap شود. این به این معنی است که باید ماکنیزمی داشته باشیم که به روترهای بگویم برای یک بسته از کدام label استفاده کند. Label ها به صورت محلی بین هر جفت روتر مجاور تعیین می شوند و چیزی به عنوان Golobal label در سرتاسر شبکه نداریم. برای این روترهای مجاور سر اینکه برای هر شبکه از چه label استفاده شود توافق کنند باید یک ارتباط بین آنها تشکیل شود. به عبارت دیگر روترها نمی دانند که برای ارسال هر بسته که دریافت کرده اند از چه label استفاده کنند و این باعث می شود به پروتکل های label distribution نیاز پیدا کنیم.
به دو روش امکان پخش کردن label ها وجود دارد :

  • سوار کردن label ها روی پروتکل مسیریابی موجود
  • داشتن پروتکل مستقل برای پخش label ها

 

سوار کردن label ها روی پروتکل مسیریابی موجود :


مزیت اول روش این است که شما نیاز به یک پروتکل جدید در LSR ها ندارید اما پروتکل مسیریابی موجود برای حمل label ها نیاز به گسترش دارند و همیشه این کار آسانی نیست. مزیت بزرگ حمل label ها توسط پروتکل مسیریابی این است که همیشه مسیریابی و label distribution با هم sync هستند و به این معنی است که که شما هیچ وقت labelی ندارید که شبکه آن از بین رفته یا برعکس همیشه برای همه شبکه ها ، label دارید. اجرای پروتکل های مسیریابیdistance vector ساده است. چون هر روتر برای هر شبکه ، به همسایه خود مسیر اعلام می کند و روتر برای هر شبکه یک label در نظر می گیرد.
پروتکل مسیریابی link state مانند OSPF به این صورت عمل نمی کنند. در پروتکل های link state به جای اعلام مسیر ، وضعیت لینک ها اعلام می شود و روترها براساس این اطلاعات به صورت مستقل برای انتخاب مسیر تصمیم گیری می کنند و این باعث می شود که برای عملکرد MPLS مشکل ایجاد شود. بنابراین پروتکل های link state نیاز دارند که برای هر شبکه یک label تولید کنند و برای اینکار نیاز به بهینه سازی دارد. از استفاده از یک پروتکل مستقل برای پخش label ها نسبت به این روش ارجحیت دارد.
BGP به عنوان یک پروتکل مسیریابی قادر است که پخش label ها را انجام دهد. از این پروتکل عمدتا جهت پخش label ها در MPLS VPN استفاده می شود.

داشتن پروتکل مستقل برای پخش label ها :


در روش دوم برای پخش label ها از یک پروتکل مستقل استفاده می شود و مزیت آن مستقل بودن از پروتکل های مسیریابی است. در این روش هر پروتکل مسیریابی می تواند استفاده شود چه بتواند label را پخش کند یا نتواند ، چون یک پروتکل مستقل وظیفه پخش label ها را برعهده دارد و پروتکل مسیریابی وظیفه پخش شبکه ها را برعهده دارد. تنها عیب این روش نیاز به اجرای یک پروتکل جدید در LSR ها می باشد.
پروتکلی که پخش label ها را برای ما انجام می دهد label distribution protocol یا به اختصار LDP نام دارد. البته این تنها پروتکل برای پخش label نیست. چند نمونه از پروتکل های label به شرح زیر هستند :

  • (Tag Distribution Protocol (TDP
  • (Label Distribution Protocol (LDP
  • (Resource Reservation Protocol (RSVP

TDP که از LDP قدیمی تر است و اولین پروتکل برای پخش label می باشد که توسط سیسکو بکار گرفته شد و اختصاصی این شرکت می باشد. بعدا LDP توسط IETF ارائه شد و به لحاظ عملکرد شبیه TDP است اما دارای قابلیت های بیشتری است. LDP به سرعت توسط سیسکو جایگزین TDP شد و باعث شد TDP منسوخ گردد به همین خاطر در این تنها به LDP اشاره خواهیم کرد.RSVP تنها در MPLS TE بکار می رود.

پخش Label ها با LDP :


برای هر شبکه IGP که در جدول مسیریابی وجود دارد هر LSR برای آن به صورت local یک label در نظر می گیرد. سپس LSR این label ها را برای همسایه های LDP خود ارسال می کند. سپس همسایه که این label ها را دریافت کرده است label های local و remote را در یک جدول مخصوص به نامlabel information base (LIB) نگه داری می کند. هر LSR برای هر شبکه تنها یک label به صورت local دارد یا برای هر شبکه و اینترفیس یک label به صورت Local دارد. اما LSR به طور معمولا بیشتر از یک همسایه دارد در نتیجه بیشتر از یک remote label خواهد داشت.
برای هر شبکه می توان چندین remote label داشت اما LSR باید از بین آنها یکی را برای ارسال انتخاب کند که جدول مسیریابی تعیین می کند hop بعدی برای این شبکه کدام است. از remote label ارسالی توسط LSR که در جدول مسیریابی به عنوان hop بعدی برای این شبکه مشخص شده است استفاده می شود. از این اطلاعات برای ساخت جدول label forwarding information base استفاده می شود با استفاده از این جدول label برای بسته ها مشخص می گردد. در شکل زیر نحوی پخش label ها توسط LDP بین LSR ها برای شبکه 10.0.0.0/8 نمایش داده شده است.

Image

به شکل زیر توجه کنید یک بسته IPv4 به مقصد شبکه 10.0.0.0/8 توسط ingress LSR وارد شبکه MPLS می شود و به آن label 129 می زند و به LSR بعدی ارسال می کند. LSR دوم label 129 بسته دریافتی را با label 17 عوض کرده و آنرا به سمت LSR سوم ارسال می کند. LSR سوم label 17 بسته دریافتی را با label 33 عوض کرده و آنرا به سمت LSR سوم ارسال می کند و اینکار تا خروج بسته از شبکه MPLS ادامه پیدا می کند.

Image

 

(Label Forwarding Instance Base (LFIB :


از جدول LFIB جهت label زدن بسته ها و ارسال آنها استفاده می شود. این جدول با label های ورودی و خروجی سروکار دارد. بسته ورودی دارای یک label از نوع local می باشد که توسط LSR همسایه مورد استفاده قرار گرفته است. بسته با یک remote label از بین remote label های موجود توسط LSR ارسال می شود. تمام remote label ها در LIB قرار دارند که از بین تمام label های موجود در LIB تنها یک label انتخاب و در LFIB قرار می گیرد و انتخاب label به بهترین مسیر موجود در جدول مسیریابی بستگی دارد.
در مثال IPv4 over MPLS برای هر شبکه IPv4 یک label در نظر گرفته شده است. همچنین LFIB می تواند با label هایی کار کند که توسط LDP مشخص نشده باشند به طور مثال در MPLS TE که توسط پروتکل RSVP اینکار انجام می شود یا MPLS VPN که پخش label ها توسط BGP انجام می شود. اما در کل LFIB همیشه برای label بسته ها مورد استفاده قرار می گیرد و مهم نیست به چه روشی این LFIB ایجاد شده است.
نکته : LFIB در هنگام فعال شدن MPLS ایجاد می گردد و از آن به بعد برای ارسال بسته از LFIB استفاده می شود.

تکنولوژی MPLS چیست ؟ – بخش سوم

در ادامه مباحث MPLS در خدمت دوستان هستیم و در این بخش می خواهیم Peer to Peer VPN را مورد بحث قرار دهیم.

Peer-to-Peer VPN Model :


روترهای Service Provider در مدل Peer to Peer VPN داده های مشتری را در شبکه خود حمل می کنند و همچنین در مسیریابی ترافیک مشتری شرکت می کند. در تعریف دیگر ، روترهای Service Provider برای مسیریابی ترافیک با روترهای مشتری همکاری می کنند که نتیجه آن ایجاد یک رابطه همسایگی بین روترهای مشتری و Service Provider است. در شکل زیر نمونه این شبکه نمایش داده شده است :

Image

قبل از اینکه MPLS به وجود آید برای ایجاد شبکه Peer to Peer VPN ، مسیریابی IP با Peer کردن روترهای مشتری و Service Provider انجام می گرفت. همچنین این شبکه نیاز داشت که حریم خصوصی و ایزوله کردن را برای مشتریان انجام دهد که این کار توسط فیلتر کردن بسته (ACL) برای کنترل داده های مشتریان انجام می شد. راه دیگر برای اینکار استفاده از فیلتر کردن Routeها بود یا هر دو روش در کنار هم مورد استفاده قرار می گرفت.
قبل از ارائه MPLS استفاده از مدل Overlay VPN توسط Service Providerها معمول تر از مدل Peer to Peer VPN بود. مدل Peer to Peer VPN نیاز به تدارکات زیادی داشت چون اضافه کردن یک سایت مشتری نیاز به تنظیمات فراوانی در بسیاری از سایت ها به وجود می آورد. یکی از کاربرد های MPLS VPN این است که باعث می شود مدل Peer to Peer VPN به سادگی پیاده سازی گردد.
با استفاده از MPLS امکان حذف و اضافه کردن سایت های مشتری به سادگی قابل تنظیم است و نتیجه آن کاهش زمان و حجم تنظمیات است. در MPLS VPN یک روتر مشتری که به آن روتر ( (CE گفته می شود با حداقل یک روتر Service Provider که به آن (Provider Edge (PE گفته می شود در لایه سوم با هم Peer می شوند.
حریم خصوصی در MPLS VPN با استفاده از (Virtual routing/forwarding (VRF و ارسال بسته ها در Backbone شبکه Service Provider با استفاده از label بدست می آید. با استفاده VRF از جدا نگه داشتن اطلاعات مسیریابی مشتریان مختلف از یکدیگر اطمینان حاصل پیدا می کنیم و در Backbone شبکه مطمئن می شویم که ارسال بسته ها براساس اطلاعات label صورت می گیرد نه اطلاعات آدرس IP.
شکل زیر مفهوم VRF و ارسال براساس Label در Backbone شبکه در MPLS VPN نمایش داده شده است :

Image

در شکل زیر شبکه Peer to Peer VPN در MPLS VPN نمایش داده شده است :

Image

در MPLS VPN برای اضافه کردن یک سایت مشتری ، فقط روتر PE با CE باید Peer شوند و دیگر نیاز به ایجاد Virtual Circuit در مدل Overlay VPN یا فیلتر کردن بسته ها یا Routeها در مدل Peer to Peer VPN نیست این یک مزیت بزرگ برای Service Provider ها محسوب می شود.
اکثر مشتریان Service Provider ها نیاز به یک شبکه Hub and Spoke دارند و بعضی از مشتریان نیاز به یک شبکه full mesh دارند و بعضی دیگر یک شبکه بین این دو حالت نیاز دارند. مزیت MPLS VPN برای مشتری زمانی ملموس می شود که مشتری دارای یک شبکه Full Mesh است.
دو تصویر زیر را با یکدیگر مقایسه کنید. در تصویر اول مشتری یک شبکه full mesh روی بستر frame relay دارد و تصویر دوم مشتری یک شبکه full mesh روی بستر MPLS VPN دارد.

Image

 

Image

در تصویر اول هر روتر لبه مشتری باید به همه روترهای لبه دیگر خود Peer شود که تعداد آن n-1 می شود اما در تصویر دوم هر روتر لبه مشتری تنها با یک روتر لبه Service Provider باید Peer شود.
مزیت دیگر برای Service Provider این است که تنها باید یک link بین روتر PE و CE ایجاد کند در صورتی که Service Provider در مدل Overlay باید بین همه سایت های مشتری link یا virtual circuit ایجاد کند. در روش MPLS VPN پیش بینی ترافیک و فراهم کردن پهنای باند مورد نیاز برای ترافیک برای یک سایت خیلی راحت تر از پیش بینی ترافیک برای کل سایت ها انجام می شود.
تنها معایب روش Peer to Peer VPN نسبت به روش Overlay VPN به شرح زیر است :

  • مشتری باید در مسیریابی با Service Provider شریک شود.
  • دستگاه های لبه Service Provider بار بیشتری را متحمل می شوند.

اولین عیب روش Peer to Peer VPN این است که باعث می شود که مشتری برای مسیریابی با Service Provider باید Peer شود و این باعث می شود که مشتری کنترل کاملی روی شبکه خودش نداشته باشد در اینجا منظور مسیریابی در لایه سوم است چون بخشی از این کار توسط Service Provider انجام می گیرد و مشتری روی آن کنترلی ندارد.
دومین عیب این روش به Service Provider برمی گردد افزایش بار برای شبکه Service Provider باعث اضافه شدن وظایف روترهای PE می شود. Service Provider در قابل گسترش و تبادل اطلاعات مسیریابی مشتریان مسئول است و این روترهای PE هستند که وظیفه حمل بموقع دیتا مشتریان را دارند.

برداشت اشتباه :


یکی از دلایل اولیه برای استفاده از label switching نیاز به سرعت بیشتر بوده است چون سرعت IP switching نسبت به label switching پایین تر است. در IP switching روتر بسته های IP را با استفاده از آدرس مقصد بسته که در header بسته قرار دارد و پیدا کردن بهترین مسیر از جدول مسیریابی خود برای آن مقصد ارسال می کند. اجرای این مراحل به برند و عملکرد روتر بستگی دارد. به هر حال چون آدرس IP می تواند به صورت unicast یا multicast باشد و از چهار octets تشکیل شده است بررسی آن می تواند پیچیده باشد. منظور از پیچیده ، این است که تصمیم گیری برای ارسال بسته های IP می تواند زمانبر باشد.
اگرچه برخی از مردم تصور می کنند که بررسی یک برچسب ساده نسبت به آدرس بررسی IP می تواند خیلی سریعتر باشد اما در واقع اشتباه است و روتر برای ارسال بسته از ASICs استفاده می کند که باعث می شود سرعت ارسال همانند label سریع باشد. در نتیجه سرعت بالاتر MPLS یک برداشت اشتباه می باشد.
نکته : قبل از MPLS ، معروفترین پروتکل WAN را می توان ATM و Frame Relay نام برد.
نکته : اندازه فیلدی که در فریم ، label را نگه داری می کند 32 بیت است.