پروتکل LISP و ویژگی‌های آن

پروتکل lisp

یکی از معضلات مراکز داده در سازمانها بحث Datacenter Mobility است که از راههای برطرف کردن این مشکل استفاده از پروتکل LISP (Locator ID Separation Protocol) می باشد. هدف این پروتکل ارتباط بین چند مرکز داده در راستای Workload Mobility می باشد.

هدف و نیازی که این پروتکل را به وجود آورده است چیست؟

برای جواب به این سوال تصور کنید که زمانی نیاز است که درsite مشتری Application های مورد استفاده همراه تمام اعضای آن بین دو datacenter در دو مکان فیزیکی مجزا توزیع شود. این نیاز با توجه به توسعه روزافزون application ها و ارتباطات زیرساختی بسیار حیاتی به حساب می‌آید. در موضوع ارتباطات بین دو مرکزداده شاید راهکارهای Lan Extension همچون OTV ،VPN MPLS ، VPLS ، ٍEVPN در نگاه اول به نظر بیاید، اما نیازی که مطرح شد فراتر از وظایفLan Extension است.
فرض کنید SAN نیز Extension پیدا کند و داده ای بخواهد روی یکی از database ها کپی شود. این فرایند تا زمانی که روی هر دو سایت تکمیل نشود،کسی نمی تواند تا پایان فرایند کپی شدن به Data ها دسترسی داشته باشد. مثال دیگر زمانی است که clustering بین دو سایت اکتیو وجود دارد و بخواهیم اعضای سایت را distribute کنیم. همه اینها نشاندهنده نیاز به مکانیزمی، جهت رفع این مشکلات می باشد. برای بررسی مفهوم LISP در ابتدا به ماهیت IP address توجه کنید. IP address ها دو رکن اساسی را نشان می دهند:
۱- Location
۲- Identity
نیاز است که راهکاری مطرح شود که بتواند این دو رکن را بصورت یکتا از هم در زمانی که مکان فیزیکی تغییر می کند، معرفی شود. به بیان ساده تر یک نود در مکان های مختلف IP address یکسان داشته باشد. پروتکل LISP برای این کار ساخته شده است و Identity هر نود را به مجموعه‌ای از attribute های آن مرتبط می کند. بیشترین attribute که در این ساختار نیاز به مرتبط کردن دارد IP address مربوط به روتر Gateway می‌باشد که نقطه اول مسیریابی به حساب می‌آید.
برای توضیح بیشتر تصور کنید یک نود از مرکزداده اول به مرکز داده دوم انتقال پیدا می‌کند. در این جایجایی نیاز است که Identity نود ثابت بماند. یعنی به مکانیزمی جهت مرتبط کردن IP Address نود به Gateway مرکز داده دوم نیاز است.

پروتکل

به نظر شما این اتفاق چگونه رخ می دهد؟

راهکاری که LISP در نظر گرفته به این صورت است که آدرس Endpoint ها دیگر در Routing Infrastructure هایی که بین مراکز داده وجود دارد advertise نمی‌شود. ارتباط بین شعبات در جابجایی Endpoint که با Tag مشخص می شود بر عهده LISP است. در این حالت نود ها از Routing Infrastructure جدا می شوند و زمانی کهConvergence داخل Routing Infrastructure رخ دهد که لینک های ارتباطی یا transport لینک ها دچار مشکل بشود اختلالی در ارتباط از طریق LISP به وجود نمی آید.
در اینجا میخواهیم S که Source است را از داخل یک Datacenter به D که یک Datacenter دیگر است متصل بشود. در ابتدا Source یک سری arp request را در لایه دو انجام می دهد و آدرس gateway خودش را پیدا می کند. بعد از آن باید یک DNS Request را بفرستد تا بتواند FQDN خودش را به IP Address سرور داخل سایت D ، Resolve کند. این کار را DNS سرور انجام می دهد و Reply را برمیگرداند و بعد از آن اتفاقی که می افتد به Gateway به آدرس ۱٫۱٫۱٫۱ می رسد. (روتری که نقش gateway را ایفا می کند و برای پروتکل LISP فعال شده است و به همین جهت(ITR) ingress tunnel router نام دارد. )
در این فرآیند ITR عمل Encapsulation مربوط به LISP را انجام می دهد و در سمت مقابل Egress tunnel router(ETR) عمل decapsulation را انجام می دهد. نام های ITR و ETR با توجه به traffic pattern مشخص می شود و روتر سمت مقابل، میتواند هم نقش ITR و هم ETR را برعهده داشته باشد. در ادامه با توجه به اینکه اشاره شد که routing مربوط به Infrastructure کاملا جدا از موضوع reachability مربوط به Endpoint ها می باشد روتر ITR در داخل جدول Routing خود آدرس روتر ETR را پیدا نمی کند و از آنجا که پروتکل LISP فعال گردیده است یک بسته LISP request به سمت Mapping server ارسال می کند.

شاید به این فکر می کنید که نقش Mapping Server چیست و چرا باید بسته به سمت Mapping Server ارسال شود؟

برای جواب به این سوال باید به این توجه کنید که در بخش قبل گفته شد زمانی که یک Endpoint از یک نقطه به نقطه دیگر نقل مکان می کند تنها اتفاقی که رخ می دهد تغییر attribute مربوط به first hop gateway می باشد. به همین جهت به ساختاری نیاز است که Mapping و Remapping را انجام دهد و در واقع نشان دهد که سرور از نقطه اول به نقطه دوم نقل مکان کرده است . در این فرآیند Mapping و Remapping ، آدرس سرور ثابت می ماند و فقط نقطه دسترسی اولیه به شبکه تغییر پیدا می کند. پس نیاز است که مخزنی از اطلاعات در مورد Endpoint ها و نقاط دسترسی آنها به شبکه فراهم شود که هر زمان Mobility رخ دهد آن را تغییر بدهد و آپدیت کند.

به نظر شما این مخزن اطلاعات در کجا قرار دارد؟

این مخزن Mapping سرور است که خودش هم میتواند cluster باشد و در سراسر جاهایی که نیاز است قرار گیرد و Distribute شود و بتواند Request های مربوط به LISP را جواب بدهد . این سرور نگاشت‌های مختلف را در خود دارد ولی بصورت Default این جواب بصورت مستقیم داده نمی شود.Mapping server مکان اول را به مکان دوم redirect می کند.

شاید یک سوال در ذهن شکل گیرد که اگر از راهکارهای multi homing در مکان دوم استفاده شود و دو روتر در این مکان به عنوان gateway حضور داشته باشند به کدام روتر redirect می شود؟

برای جواب این سوال هم باید به این توجه شود که دو روتر با چه پارامترهایی Endpoint ها را در Mapping Server مربوطه register کرده‌اند. برای این قضیه باید بیان کرد که هر روتر ETR، زمانی که یک Endpoint ID (EID) را می خواهد در داخل Map Server مربوطه Register کند به پارامتر‌هایی برای این کار نیاز دارد. این پارامتر هابا عنوان priority و Weight شناخته می شوند و با این دو ابزار عمل register صورت می پذیرد. هدف از استفاده از این دو پارامتر عمل Traffic engineering است که در داخل پروتکل LISP انجام می شود. اگر این دو پارامتر در هر دو روتر برابر باشند آنگاه ترافیک می تواند بین دو روتر Load Balance شود.

حال فرآیند Load Balance به چه صورت است؟

دو پارامتر Priority و Weight با Header مربوط به Packet تشکیل Hashing می دهند. زمانی که این Hash فرستاده می شود، شامل عددی است که نشان می دهد ترافیک را به کدام روتر ارسال کند. اگر این عدد برای هر دو روتر برابر بود per flow load balancing خواهیم داشت.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *