Posts

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

با یکی دیگه از سری مقالات MPLS در خدمت شما دوستان عزیز هستیم و امیدوارم که تاکنون این مقالات در یادگیری این تکنولوژی به شما کمک کرده باشد.

Label Distribution Protocol :


داستان کلی MPLS به بسته های label خورده که توسط (label switching router (LSR ارسال می شوند برمی گردد و به این معناست که در همه حالت ها ، label ها باید پخش و توزیع شوند. که می توان به دو روش اینکار را انجام داد : سوارکردن label ها روی پروتکل مسیریابی موجود یا استفاده از یک پروتکل جدید برای توزیع label . اگر بخواهید (Interior Gateway Protocol (IGP مانند OSPF ، ISIS یا EIGRP را برای حمل label ها تنظیم کنید باید اینکار را برای همه پروتکل های مسیریابی انجام دهید چون همه این پروتکل ها در شبکه های امروزی مورد استفاده قرار می گیرند. اگر از ابتدا یک پروتکل جدید بنویسید باید بتواند به صورت مستقل مسیریابی کند و همچنین بتواند با IGP کار کند. دلیل اصلی به وجود آمدن (Label Distribution Protocol (LDP حمل label ها مربوط (Forwarding Equivalence Classes (FECs در شبکه MPLS می باشد.
به عنوان یک استثناء پروتکل مسیریابی (Border Gateway Protocol (BGP می تواند label ها را برای ما حمل کند چون BGP مسیرهای خارجی را حمل می کند و استفاده از آن برای حمل labelها کارامدتر است. دلیل دیگر انتخاب BGP برای حمل label ها این است که BGP تنها پروتکلی است که می تواند مسیرها را بین (autonomous systems (AS حمل کند که باعث می شود به عنوان یک پروتکل مورد اعتماد بین کمپانی های مختلف مورد استفاده قرار گیرد.
این مواردی که عنوان شد دلایلی هستند که در IOS سیسکو از LDP برای پخش label های مربوط به شبکه های IGP استفاده می شود از پروتکل BGP برای پخش label های مربوط به شبکه های BGP استفاده می شود. در بخش های قبلی به صورت خلاصه به LDP و نحوی تبادل label ها پرداختیم و همچنین دلایل نیاز به (label information base (LIB و (label forwarding information base (LFIB و نحوی ایجاد آنها گفته شد. برخی از اصول مانند عملیات روی label نیز شرح داده شد. اما لازم است که عملیات LDP به صورت دقیق تر و عمیق تر مورد بررسی قرار گیرد.
به تصویر زیر توجه کنید این شبکه در این بخش مورد استفاده قرار می گیرد :

Image

 

LDP Overview :


برای دریافت بسته ها در همه (label switched path (LSP ها در شبکه MPLS باید همه LSR ها LDP را اجرا کنند و label ها را مبادله کنند. زمانی که همه LSR ها برای همه FEC ها label داشته باشند بسته ها می توانند در LSP ها به وسیله label switching توسط هر LSR ارسال شوند. عملیات روی label ها مانند swap ، push و pop نیز با استفاده از LFIB مشخص می شود. LFIB اطلاعات برای ارسال بسته ها را از LIB بدست می آورد و LIB اطلاعات و label ها را از طریق LDP ، Resource Reservation Protocol (RSVP) ، MP-BGP یا از طریق label هایی که به صورت static مشخص شده اند بدست می آورد. با توجه به اینکه از RSVP برای پخش label های در MPLS TE استفاده می شود و همچنین MP-BGP برای پخش label های مربوط به شبکه های BGP مورد استفاده قرار می گیرد در نتیجه برای شبکه های داخلی (IGP Route) باید از LDP برای پخش label ها استفاده کنید. بنابراین LSR هایی که به صورت مستقیم به هم متصل هستند باید رابطه همسایگی LDP با یکدیگر برقرار کنند و با استفاده از این رابطه همسایگی بسته های LDP را بین یکدیگر منتقل می کنند. label mapping یا label binding اختصاص label برای یک FEC می باشد. FEC مجموعه ای از بسته ها است که به یک LSP مشخص تعلق دارند و روی این LSP در شبکه MPLS ارسال می شود. در این بخش می خواهیم به label bindings برای شبکه های IGP پردازیم. LDP دارای چهار بخش اصلی است :

  • پیدا کردن LSR هایی که LDP را اجرا کرده اند.
  • برای ارتباط و نگه داری از آن
  • ارسال label mappings
  • نگه داری از اطلاعات

زمانی که دو LSR که LDP را اجرا کرده اند و بین آنها یک یا چند لینک وجود دارد برای پیدا کردن یکدیگر از مفهوم بسته های Hello استفاده می کنند. مرحله دوم برای آنها برقراری یک ارتباط TCP بین آنهاست. در این ارتباط TCP ، بسته های label mapping توسط LDP بین این LSR ها ارسال می شوند. این بسته های label mapping برای جمع آوری و تغییر label binding مورد استفاده قرار می گیرد. LDP ها می توانند به وسیله ارسال و اعلام برخی بسته های خطا به همسایه های خود هشدار دهد.

با توجه به اهمیت پروتکل LDP در بخش بعدی مقاله چهار بخش اصلی LDP که در اینجا مطرح را به صورت دقیق و عمیق مورد بررسی قرار می دهیم تا با عملکرد این پروتکل بیشتر آشنا شویم. موفق ، پیروز و itpro باشید.

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

در مقالات قبلی با MPLS و ویژگی های آن آشنا شدیم و در این مقاله می خواهیم نحوی عملکرد آن را مورد بحث قرار دهیم.

Label Switch Router :


یک Label Switch Router یا LSR روتری است که از MPLS پشتیبانی می کند. این روترها قادر هستند که Label های MPLS را درک کنند و بسته های label زده را در لایه دو (دیتا لینک) ارسال یا دریافت کنند. در شبکه MPLS چند نوع LSR داریم که به شرح زیر هستند :

  • Ingress LSR : این نوع روترهای LSR ، بسته هایی که دارای Label نیستند را دریافت می کنند و به آنها label می زنند و آنها را در شبکه MPLS ارسال می کنند. این روترها در لبه شبکه MPLS قرار دارند.
  • Egress LSR : این نوع روترهای LSR ، بسته هایی که دارای label هستند را از شبکه MPLS دریافت می کنند و سپس آنها را ارسال می کنند. این روترها در لبه شبکه MPLS قرار دارند.
  • Intermediate LSR : این نوع LSR ، بسته های label زده شده را دریافت می کند عملیاتی را روی آن انجام می دهد سپس آنرا ارسال می کند. این نوع LSR ، روترهای میانی شبکه MPLS می باشند.

نکته : روترهای ingress LSR و egress LSR به عنوان Edge LSR شناخته می شوند.
نکته : در MPLS VPN روترهای egress LSR و ingress LSR به عنوان provider edge (PE) Router معرفی می شوند. روترهای میانی به عنوان Provider (P) Router معرفی می شوند. این نام ها خیلی معروف شده اند به همین خاطر حتی در شبکه های MPLS از این نام ها استفاده می شود.
نکته : یک بسته می تواند چند label داشته باشد و آنها را در label sack قرار می دهد. Label stack یک پشته است.

LSRها باید بتوانند سه عمل زیر را انجام دهند :

  • Pop : حذف label را pop گویند.
  • Push : اضافه کردن label را push گویند.
  • Swap : جایگزینی label جدید با label که در بالای label stack قرار دارد را swap گویند.

روترهای LSR باید بتوانند قبل از ارسال بسته ها ، label را pop کنند همچنین باید بتوانند به بسته های دریافتی یک label را push کنند. اگر بسته دریافتی دارای label باشد LSR ، label مورد نظر را به label stack اضافه می کند و بعد آنرا ارسال می کند. همچنین اگر بسته label نداشت LSR این label stack را ایجاد می کند و label مورد نظر را به آن push می کند. غیر از موارد فوق LSR باید بتواند swap را نیز انجام دهد. زمانی که یک بسته label زده به دست روتر LSR برسد label که در بالای label stack قرار دارد با label جدید جایگزین می شود.
LSR که به بسته ای که هنوز label نخورده label بزند imposing LSR گفته می شود چون اولین LSR است که label را به بسته می زند. اینکار توسط ingress LSR انجام می شود. LSR که label های یک بسته را خالی می کند و بسته بدون label می کند را disposing LSR گفته می شود. اینکار توسط egress LSR انجام می گیرد.

Label Switched Path :


Label Switched Path یا LSP رشته ای از LSR ها است که بسته label زده را از میان شبکه MPLS عبور می دهند. در واقع LSP مسیری است از میان شبکه MPLS که بسته ها آنرا طی می کنند. اولین LSR برای LSP همان ingress LSR می باشد و همچنین اخرین LSP برای LSP نیز egress LSR می باشد و تمام LSR های بین ingress LSR و egress LSR در LSP همان Intermediate LSR می باشند.
نکته : LSP یکطرفه می باشند به همین خاطر بین دو edge LSR دو LSP می توانند مسیرهای متفاوتی از یگدیگر داشته باشند.
در شکل زیر ، فلش بالای تصویر جهت LSP را از چپ به راست نشان می دهند.

Image

Ingress LSR در یک LSP همیشه به عنوان اولین روتر که به بسته label زده نمی تواند باشد و شاید قبلا توسط یک LSR دیگر label زده شده باشد. نمونه آن LSP تو در تو یا همان nested LSP می باشد که یک LSP در LSP دیگر قرار می گیرد. در شکل زیر نمونه آنرا در شبکه MPLS می بینید. نقطه شروع LSP دوم از سومین LSR می باشد و نقطه پایان آن LSR ماقبل آخر است در نتیجه زمانی که بسته به ingress LSR این LSP برسد از قبل label خورده است. ingress LSR در LSP دوم دومین label را به بسته push می کند و باعث می شود که label stack ما در اینجا دارای دو label باشد. Label بالایی متعلق به LSP دوم یا همان LSP تودرتو و label پایینی متعلق به LSP اول می باشد.

Image

 

Forwarding Equivalence Class :


Forwarding Equivalence Class یا به اختصار FEC گروهی یا جریانی از بسته ها هستند که به یک مسیر خاص متعلق دارند و دارای شرایط یکسانی هستند. همه بسته های که به یک FEC تعلق دارند دارای label یکسان هستند. اما داشتن label یکسان دلیل بر یکسان بودن FEC نمی باشد. چون مقادیر و عوامل دیگری برای تعیین FEC یکسان وجود دارد. شرایط و رفتار متفاوت در ارسال نیاز به داشتن FEC های متفاوت است. روتری که تصمیم می گیرد که هر بسته به کدام FEC تعلق دارد ingress LSR می باشد چون ingress LSR است که به بسته های ورودی label می زند و آنها را دسته بندی می کند.
برخی از نمونه های FEC به شرح زیر هستند :

  • بسته هایی که آدرس لایه سه مقصد آنها یعنی IP Address با یک شبکه خاص یکی است. مقصد همه آنها یک شبکه است.
  • بسته های Multicast که به یک گروه خاص تعلق دارند.
  • بسته های دارای DSCP یکسان
  • فریم های لایه دو که روی یک VC یا Subinterface در ingress LSR دریافت می شوند و در شبکه MPLS منتقل می گردند و از طریق یک VC یا Subinterface در egress LSR حمل می شوند.
  • بسته هایی که IP Address مقصد آنها با یک شبکه که متعلق به BGP است مطابقت پیدا می کنند و همه آنها دارای BGP next hop یکسانی هستند.

نمونه آخر که برای FEC نام برده شد در رابطه با BGP است و یک نمونه قابل توجه است به همین خاطر آنرا بررسی می کنیم. همانطور که گفتیم در ingress LSR تمام بسته هایی که IP Address مقصد آنها با یک مسیر در جدول مسیریابی مربوط به BGP مطابقت پیدا کند و BGP next hop یکسانی داشته باشد به یک FEC تعلق دارد. به این معنی که همه بسته های ورودی به شبکه MPLS براساس BGP next hop خود label می خورند. در شکل زیر یک شبکه MPLS را نشان می دهد که Edge LSR های آن iBGP را اجرا کرده اند.

Image

IP Address مقصد بسته ها هنگام ورود به ingress LSR بررسی می شود. آدرس مقصد همه این بسته ها به شبکه های که توسط BGP شناخته شده اند تعلق دارند. بسیاری از این شبکه ها دارای BGP next hop یکسانی هستند یا به عبارتی دارای egress LSR یکسانی هستند. همه بسته هایی که دارای BGP next hop یکسانی هستند در یک FEC قرار می گیرند و همینطور که قبلا گفته شد همه بسته هایی که به یک FEC تعلق دارند به آنها label یکسانی در ingress LSR تعلق می گیرد.

در قسمت بعدی سایر مباحث مربوط به عملکرد MPLS را تشزیح خواهیم کرد. موفق ، پیروز و itpro باشید.