ویرگول
ورودثبت نام
محمد لباف
محمد لباف
خواندن ۴ دقیقه·۳ سال پیش

چرایی وجود MPLS در شبکه (بخش اول)

توی پست قبلی خیلی کلی و مختصر درباره لایه ۲ و ۳ و عملکردهای سوییچی و روتری صحبت کردیم. البته واضحه که هر دو لایه خیلی جزییات و مباحث مفصلی دارن که در جای خودش میشه درباره‌شون صحبت کرد. اونجا صحبت شد که وقتی درباره شبکه کوچیکی صحبت میشه، میتونیم از لایه ۲ استفاده کنیم و وقتی که نیاز به scaling به وجود میاد، دیگه لایه ۲ پاسخگو نیست و از امکانات لایه ۳ استفاده میکنیم. توی این پست دوست دارم یه قدری درباره MPLS بیشتر صحبت کنیم و سعی کنیم جایگاه MPLS رو در شبکه بهتر بشناسیم.

اگه تو فضای آکادمیک بخوایم فکر کنیم، وقتی صحبت از MPLS (Multi-Protocol Label Switching) میشه، حکمتش وجودیش بیشتر میره سمت سه تا موضوع. یکی موضوع circuit switched و packet switched (موضوعی مهم)، یکی تسریع lookup در جدول مسیریابی لایه ۳ (موضوع مهم‌تر) و یکی پشتیبانی از انواع پروتکل‌ها (موضوع کم‌اهمیت‌تر). در ادامه درباره این سه تا موضوع یه مقداری صحبت میکنیم.

اول موضوع circuit switched و packet switched. اگه بخوام مختصر درباره‌شون توضیح بدم، فضای circuit switched بیشتر توی فضای شبکه‌های TDMی مطرح میشه که مسیر ارسال ترافیک کاملا مشخص هستش و یه circuitی از قبل اختصاص پیدا کرده و قشنگ تضمین ارسال ترافیک وجود داره.

فضای packet switched اینطوری نیست و هر نودی توی شبکه تصمیم میگیره که با این ترافیک چی کار کنه و هیچ مسیر مشخصی از مبدا تا مقصد وجود نداره و نتیجتا تضمینی برای ارسال ترافیک نیست. از اون طرف، از ظرفیت شبکه بهینه‌تر استفاده میشه و انعطاف شبکه خیلی بالاتره و استفاده کردن از شبکه راحت‌تره و ... . کلا درباره تفاوت‌های این دو رویکرد که در واقع تقابل بین شبکه TDM و Ethernetی هستش، میشه خیلی بیشتر از این حرف‌ها صحبت کرد.

حالا کاری که MPLS انجام میده، یه جورایی این هستش که توی شبکه packet switched، امکان circuit switched بودن رو فراهم میکنه. شما میتونی زیرساخت غیر circuit switchedی داشته باشی ولی مدل circuit switchedی از اون استفاده کنی. قطعا این موضوع یکی از مزیت‌های MPLS میشه توی شبکه.

circuit switched vs. packet switched
circuit switched vs. packet switched

سرعت lookup کردن یه مقداری موضوع تاریخی و تکنولوژی هستش. قبل‌ترها پیاده‌سازی جدول مسیریابی توی حافظه‌های معمولی اتفاق میفتاده. مثلا فرض کن که CPU داره یه پروتکل مسیریابی رو اجرا میکنه و نتیجه رو توی حافظه ذخیره میکنه. حالا هر ترافیکی که وارد روتر میشه، نیاز داره برای پیدا کردن مقصد خودش، توی کل این حافظه lookup کنه تا مقصد رو پیدا کنه. همیشه خدا هم که حافظه‌ها محدود کننده بودن و هستن. این از یه طرف، از یه طرف دیگه، اندازه جدول مسیریابی همیشه بزرگ بوده. اگر بخوایم به نرخ روز صحبت کنیم، امروز تعداد prefixهایی که توی دنیا وجود داره برای IPv4 از یک میلیون بیشتر هستش. البته همه این prefixها رو قرار نیست که همه روترها داشته باشن که خودش بحث مجزایی رو میطلبه. در هر صورت، یه روزی باید میرفتی و توی حافظه lookup میکردی ولی واقعیت اینه که با تکنولوژی الان، برای روترهای با ظرفیت بالا، دیگه کسی این کار رو نمیکنه. برای این کار الان از حافظه‌های با تکنولوژی TCAM استفاده میکنن که در یک کلاک، کار lookup رو انجام میده.

داخل پرانتز یه ذره درباره TCAM توضیح بدم، کلا این حافظه‌ها به خاطر قابلیت بالایی که دارن، اول اینکه کلا خیلی استفاده میشن، دوم هم خیلی گرون هستن و خیلی گرما تولید میکنن. البته معمولا به اندازه نیاز استفاده میشن و یه سری قابلیت‌هایی مثل extend کردن و اینها هم برای این حافظه‌ها مطرح هستش. روش عملکردشون هم این طوریه که یه آدرس رو بهش میدی، نتیجه ۰ یا ۱ برمیگردونه که آیا در جدول وجود داره یا نه. دو تا مدل CAM و TCAM هم وجود داره که CAM برای جدول مک و TCAM برای جدول مسیریابی کاربردی هستش. فرقشون در این هستش که TCAM از قابلیت don’t care هم پشتیبانی میکنه و اصطلاحا حالت ternary رو داره. پرانتز رو ببندم.

با توجه به وجود تکنولوژی TCAM دیگه سرعت lookup در جدول مسیریابی بالاست و اصلا توجیهی نداره که به این دلیل، کسی سراغ MPLS بره و اون دوران گذشته.

بحث پشتیبانی از پروتکل‌های مختلف هم هست بالاخره ولی واقعیت اینکه امروزه روز، اغلب ترافیک Ethernetی شده و غیر از این نداریم و اصلا چرا باید داشته باشیم. (حداقل تا جایی که من بلدم و میدونم)

اینها دلایلی بودن که توی فضای آکادمیک برای MPLS مطرح میشن، با این حال، در دنیای صنعتی، سه تا دلیل اصلی برای استفاده از MPLS در شبکه مطرح هستش.

یکی مهندسی ترافیک، یکی برقراری سرویس های VPN و یکی هم امکان حفاظت که سعی میکنم توی پست بعدی درباره این سه تا عامل توضیحات بیشتری رو بیارم.

open networkingnetworkMPLSethernetrouter
شاید از این پست‌ها خوشتان بیاید