نوشته‌ها

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

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

MPLS LDP-IGP Synchronization :


یک مشکل با شبکه MPLS این است که LDP با IGP شبکه هماهنگ نیست. هماهنگی به این معناست که ارسال بسته به خارج از یک اینترفیس تنها در حالتی اتفاق می افتد که IGP و LDP هر دو قبول کنند که این اینترفیس به عنوان لینک خروجی مورد استفاده قرار گیرد. به طور معمول مشکل زمانی که شبکه MPLS از LDP استفاده می کند رخ می دهد که یک ارتباط LDP در یک لینک از بین رود و IGP هنوز آن لینک را به عنوان لینک خروجی در نظر می گیرد بدین ترتیب بسته ها همچنان روی این لینک ارسال می شوند. این اتفاق به این دلیل اتفاق می افتد که IGP بهترین مسیر را برای هر شبکه در جدول مسیریابی قرار می دهد. بنابراین ترافیک برای یک شبکه با این لینک که ارتباط LDP در آن از بین رفته است بدون label ارسال خواهد شد. این مشکل بزرگی برای شبکه هایی که فقط IPv4-over-MPLS را اجرا کرده اند نیست چون در مقطعی که ارتباط LDP از بین رفته است بسته ها بدون label ارسال می شوند و ترافیک در اینجا به عنوان بسته های IPv4 تا LSR بعدی ارسال می شوند و از آنجا به بعد مجدد با label ارسال می شوند. اما برای حالت های غیر IPv4-over-MPLS این یک مشکل می باشد. در شبکه های (MPLS VPN ، AToM ، Virtual Private LAN Switching (VPLS یا IPv6 over MPLS بسته های در حین ارسال نباید بدون label شوند. اگر این بسته ها بدون label شوند LSR نمی تواند بسته ها را ارسال کند درنتیجه آنها را drop می کند.
بسته ها در حالت MPLS VPN بسته های IPv4 هستند اما باید براساس VRF مسیریابی شوند. این جدول خصوصی برای یک مشتری می باشد و در edge LSR یا روترهای PE ارائه می شوند. بنابراین زمانی که بسته های MPLS VPN در core LSRs (P Router)، بدون label می شوند آنها drop می شوند. مشابه این اتفاق برای ترافیک AToM و IPv6 می افتد و core LSRs نمی تواند آنها را بدون label ارسال کنند. اگر یک ارتباط LDP قطع شود در حالی که همسایگی IGP بین دو LSR همچنان up است می تواند باعث مشکل بزرگی شود چون ترافیک زیادی از بین می رود. تصویر زیر یک ارتباط قطع شده LDP بین دو LSR در MPLS core را نشان می دهد و بسته های label خورده drop می شوند.

Image

LSR زمانی که restart می شود مشابه این مشکل بوجود می آید. IGP می تواند همسایگی را سریعتر نسبت به ارتباط LDP برقرار کند. این به این معناست که IGP ارسال بسته ها را شروع می کند قبل از اینکه LFIB با اطلاعات لازم برای ارسال براساس label تشکیل شود. در این زمان بسته ها به شکل صحیح ارسال نمی شوند (بدون label) یا تا زمان برقراری ارتباط LDP بسته ها drop می شوند.
راه حل برای این مشکلات ، LDP-IGP Synchronization در MPLS است. این ویژگی مطمئن می شود در زمانی که ارتباط LDP قطع است از لینک بدون label استفاده نشود. بنابراین ترافیک از طریق یک لینک دیگر که در آن ارتباط LDP برقرار است ارسال می شود.
این مشکل که به وسیله LDP-IGP Synchronization حل می شود در BGP و label distributionاتفاق نمی افتد. چون BGP از label binding و control plane برای IP routing محافظت می کند و باعث می شود از بروز مشکل ذکر شده جلوگیری شود. همچنین این امکان وجود دارد که همسایگی IGP برقرار باشد در حالی که ارتباط LDP قطع است. اما BGP یا up است یا Down. به این معناست که قرار گرفتن بهترین مسیر در جدول مسیریابی توسط BGP به label binding مرتبط است.

LDP-IGP Synchronization چگونه کار می کند :


زمانی که LDP-IGP synchronization برای یک اینترفیس فعال می گردد IGP آن لینک را تا زمانی که synchronization انجام شود یا ارتباط LDP در آن اینترفیس برقرار گردد با حداکثر متریک اعلام می کند. حداکثر متریک برای لینک در OSPF برابر 65536 می باشد. هیچ مسیری از این اینترفیس (جایی که ارتباط LDP قطع شده) استفاده نمی کند مگر اینکه تنها مسیر موجود باشد. بعد از اینکه ارتباط LDP برقرار شد و label bindings مبادله شد IGP لینک را با متریک نرمال آن اعلام می کند. در این لحظه ترافیک به صورت label switch در اینترفیس می باشد. در واقع OSPF قبل از برقراری ارتباط LDP روی این لینک همسایگی برقرار نمی کند (OSPF روی این لینک بسته های Hello ارسال نمی کند).
تا زمانی که ارتباط LDP برقرار است یا تا زمانی که تایمر synchronization منقضی نشده باشد همسایگی OSPF برقرار نخواهد شد. در اینجا منظور از Synchronized این است که label binding های local روی ارتباط LDP برای جفت LDP ارسال می شوند. اما زمانی که synchronization در روتر A فعال می گردد و این روتر تنها یک لینک به روتر B دارد و هیچ ارتباط IP دیگری با روتر B از طریق لینک دیگری ندارد (به این معنا که از طریق هیچ روتر دیگری این ارتباط وجود ندارد) همسایگی OSPF هرگز up نخواهد شد. OSPF منتظر می ماند تا ارتباط LDP برقرار شود اما ارتباط LDP برقرار نمی شود چون روتر A نمی تواند مسیری در جدول مسیریابی خود برای LDP router ID روتر B داشته باشد. همسایگی OSPF و LDP در این وضعیت می تواند برای همیشه down باشد اگر روتر A فقط روتر B را به عنوان همسایه خود داشته باشد LDP router ID روتر B در دسترسی نخواهد بود به این معناست که مسیری برای آن در جدول مسیریابی روتر A وجود ندارد. در این حالت LDP-IGP synchronization تشخیص می دهد که جفت در دسترس نیست و اجازه می دهد که همسایگی OSPF برقرار شود. در این حالت لینک با حداکثر متریک اعلام می شود تا زمانی که synchronization انجام شود. این باعث می شود مسیر از طریق این لینک اخرین گزینه باشد.
در بعضی مواردی مشکل ارتباط LDP همیشگی است بنابراین جالب نیست که منتظر باشیم تا همسایگی IGP برقرار شود. راه حل برای این مشکل ، تنظیم Holddown تایمر برای synchronization است. اگر قبل از اینکه ارتباط LDP برقرار شود تایمر منقضی شود همسایگی OSPF برقرار خواهد شد. اگر همه چیز در رابطه با LDP در لینک درست باشد LDP ارتباط خود را در لینک برقرار می کند. تا زمانی که LDP synchronizes شود OSPF منتظر است تا همسایگی آن تشکیل شود و تا آن زمان وضعیت OSPF در حالت down است و OSPF روی آن لینک بسته های hello ارسال نمی کند.

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

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

شما نمی توانید روی label های ارسالی توسط LDP برای شبکه های LC-ATM به وسیله دستور mpls ldp advertise-labels کنترل داشته باشید. چون شبکه های LC-ATM از DoD بجای UD برای ارسال label ها استفاده می کند. DoD دستور خاص خودش را برای محدود کردن ارسال label ها توسط LDP را دارد. برای شبکه های LC-ATM از دستور mpls ldp request-labels بجای mpls ldp advertiselabels استفاده می شود.
در تصویر زیر یک شبکه را می بینید. روتر سیدنی تنها شبکه loopback 0 خود را و شبکه 10.200.254.3 را از روتر روم به جفت LDP خود یعنی روتر مادرید با router ID 10.200.254.5 ارسال می کند.

Image

تنظیمات مورد نیاز برای اینکار در تصویر نمایش داده شده است. استفاده از دستور no mpls ldp advertise-label را فراموش نکنید اگر تنها دستور mpls ldp advertiselabels for prefix-access-list to peer-access-list را استفاده کنید LSR سیدنی همچنان label های تمام شبکه ها را توسط LDP ارسال خواهد کرد.

Image

تنها شبکه های 10.200.254.3 و 10.200.254.4 به جفت LDP یعنی روتر مادرید ارسال خواهد شد. در تصویر زیر binding در روتر سیدنی بعد از اعمال فیلترینگ نمایش داده شده است.

Image

به مثال زیر توجه کنید تمام دیگر شبکه هایی که از روتر سیدنی به روتر مادرید ارسال شده اند دارای remote binding نیستند.

Image

در LFIB روتر مادرید دو شبکه 10.200.254.3 و 10.200.254.4 دارای label خروجی درست هستند و برای سایر شبکه ها No label به عنوان label خروجی برای آنها مشخص شده است. LFIB در روتر مادرید را در مثال زیر می توانید مشاهده کنید.

Image

IOS سیسکو در پیاده سازی LDP این اجازه را می دهد که بیشتر از یک دستور mpls ldp advertiselabels for prefix-access-list to peer-access-list را استفاده کنید. این ویژگی باعث انعطاف پذیری بیشتر می شود جایی که به وسیله آن می توانید مشخص کنید که کدام label binding به کدام جفت LDP ارسال شود.
تصویر زیر همانند مثال قبل است با این تفاوت که یک دستور mpls ldp advertiselabels for prefix-access-list to peer-access-list به آن اضافه شده است و باعث می شود که روتر سیدنی تنها label های مربوط به دو شبکه 10.200.254.3 و 10.200.254.4 را به 10.200.254.5 ارسال کند و به سایر جفت های LDP خود تمام label binding ها را ارسال کند.

Image

 

فیلترکردن Label Binding ورودی :


شما می توانید label binding های ورودی از یک همسایه LDP خود را فیلتر کنید. در واقع این ویژگی برخلاف کنترل ارسال label هاست که در آن از ارسال label جلوگیری می شد که در بخش قبلی مورد بحث قرار گرفت. زمانیکه شما نمی توانید روی ارسال label ها توسط یک LDP کنترل داشته باشید می توانید از فیلترکردن Label Binding ورودی برای آن LDP استفاده کنید. این ویژگی این امکان را به ما می دهد که تعداد label bindings که در LIB روتر ذخیره می شوند را محدود کنیم. به طور مثال شما می توانید همه label binding های دریافتی از جفت های LDP را فیلتر کنید غیر از label binding که مربوط اینترفیس loopback روترهای PE در یک شبکه MPLS VPN است. معمولا این اینترفیس های loopback دارای آدرس BGP next-hop IP هستند و LSR ها با استفاده از label اختصاص یافته به این شبکه ها می تواند ترافیک VPN مشتری را ارسال کند.
برای فعال کردن فیلترینگ label های ورودی از دستور زیر استفاده می کنیم :

mpls ldp neighbor [vrf vpn-name] nbr-address labels accept acl

در تصویر زیر نشان می دهد که LSR مادرید فیلترینگ label های ورودی برای جفت LDP خود با ID 10.200.254.4 انجام داده است. این باعث می شود که تنها label binding برای شبکه های 10.200.254.3 و 10.200.254.4 که مربوط به شبکه های loopback روترهای PE است را قبول کند. با دستور show mpls ldp bindings شما می توانید ببینید که LSR فقط از جفت LDP مشخص ، برای شبکه هایی که توسط access list اجازه پیدا کرده اند remote label bindings دارد. نتیجه اجرای فیلترینگ ورودی برای label ها مشابه کنترل ارسال label ها است که در قسمت قبلی توضیح داده شد.

Image

 

LDP Autoconfiguration :


LDP در اینترفیس با استفاده از دستور mpls ip که در اینترفیس زده می شود فعال می گردد. در یک LSR معمولا LDP روی تمام اینترفیس های IGP فعال می گردد. استفاده از Autoconfiguration برای فعال کردن LDP در IGP بسیار راحت تر از استفاده از دستور mpls ip روی همه اینترفیس ها است. استفاده از Autoconfiguration باعث می شود LDP برای تمام اینترفیس های IGP فعال گردد. برای فعال کردن LDP Autoconfiguration در روتری که OSPF را اجرا کرده است از دستور زیر استفاده می کنیم :

mpls ldp autoconfig [area area-id]

همانطور که می بینید LDP رو می توان در یک OSPF area مشخص فعال کرد. همینطور می توان آنرا در یک اینترفیس خاص غیر فعال کرد. برای غیر فعال کردن LDP Autoconfiguration در یک اینترفیس از دستور زیر استفاده می شود :

no mpls ldp igp autoconfig

به تصویر زیر توجه کنید Interface config نشان می دهد که LDP به وسیله دستور mpls ip فعال شده است. IGP config نشان می دهد که LDP به وسیله دستور mpls ldp autoconfig فعال شده است.
Image

 

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

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

Label Withdrawing :


زمانی یک جفت LDP برای یکدیگر label binding را ارسال می کنند این label binding را تا زمانی نگه داری می کنند که ارتباط LDP وجود داشته باشد یا درخواست پس گرفتن برای آن دریافت نکنند. اگر local label تغییر کند احتمال پس گرفتن آن وجود دارد. احتمال تغییر local label وجود دارد به طور مثال ، یک اینترفیس با یک شبکه مشخص down شود اما یک LSR دیگر هنوز در حال اعلام آن شبکه است. بنابراین local label برای آن شبکه باید از implicit NULL به یک non-reserved label تغییر کند. اگر این اتفاق بیافتد implicit NULL label بلافاصله با ارسال پیام Label Withdraw به جفت LDP پس گرفته می شود و label جدید توسط label mapping اعلام می شود. در مثال زیر اینترفیس Ethernet با آدرس شبکه 10.200.210.0/24در LSR لندن down می شود . به همین دلیل روتر لندن این شبکه را با label implicit NULL پس می گیرد. LSR نیویورک همچنان این شبکه را اعلام می کند با فرض وجود یک سوئیچ لایه دو بین لندن و نیویورک ، این نتیجه حاصل می شود که نیویورک سمت دیگر لینک Ethernet است و همچنان up است. LSR لندن یک label جدید به این شبکه اختصاص می دهد (در اینجا label 27 در نظر گرفته شده است) و این label را با استفاده از پیام label mapping به LSR مادرید اعلام می کند.

Image

در IOS های قدیمی تر سیسکو (نسخه های قبل از 12.0(21)ST) به صورت پیش فرض قبل از ارسال label جدید برای FEC پیام Label Withdraw برای پس گرفتن label ارسال نمی شود. Label جدید که اعلام می شود یک implicit label withdraw می باشد. اگر بخواهید رفتار قدیمی را حفظ کنید باید از دستور mpls ldp neighbor neighbor implicit-withdraw استفاده شود. در تصویر زیر نشان می دهد که چه اتفاقی در زمان ارسال label جدید برای شبکه 10.200.210.0/24 با تنظیمات implicitwithdraw در جفت LDP لندن می افتد. پیام label withdraw از خروجی debug حذف می شود. مزیت استفاده از این دستور این است که از ارسال پیام Label Withdraw اجتناب می کند که باعث می شود سربار کمتری ایجاد شود.

Image

 

Housekeeping by Means of Notification :


پیام های Notification برای نگه داری از ارتباط های LDP مورد نیاز است. پیام های notification رویدادهای قابل توجهی برای جفت LDP می باشند. این رویدادها می توانند خطاهای رخ داده یا اطلاعات ساده مشاوره ای باشد. اگر یک خطا رخ دهد بلافاصله LSR ارسال کننده و دریافت کننده این رویداد ارتباط LDP را قطع می کنند. Notifications مشاوره ای برای ارسال اطلاعات در مورد ارتباط LDP یا دریافت پیام از جفت استفاده می شود. رویدادهای زیر را با استفاده از پیام های notification می توان اعلام کرد :

  • Malformed protocol data unit (PDU) or message
  • (Unknown or malformed type-length-value (TLV
  • Session keepalive timer expiration
  • Unilateral session shutdown
  • Initialization message events
  • Events resulting from other messages
  • Internal errors
  • Loop detection
  • Miscellaneous events

 

ارتباط هدف دار LDP :


به طور معمول ، ارتباط LDP بین LSR هایی که به صورت مستقیم به یکدیگر متصل هستند تنظیم می شود. در شبکه هایی که مسیرهای IGP نیاز به label خوردن دارد این عمل برای آنها کافی است چون label switching برای بسته هاپ به هاپ انجام می شود. بنابراین اگر label bindings به صورت هاپ به هاپ برای مسیرهای IGP اعلام شود LSP تشکیل می شود. اما در بعضی شرایط نیاز به ارتباط LDP هدف دار یا remote است. این ارتباط LDP بین LSR هایی برقرار می شود که به صورت مستقیم به یکدیگر متصل نیستند. نمونه این ارتباط هدف دار LDP در شبکه های AToM و TE tunnel در یک شبکه MPLS VPN می باشد. در حالت AToM یک ارتباط LDP باید بین هر جفت روتر PE وجود داشته باشد. این ارتباط LDP به صورت remote زمانی تشکیل می شود که از دستور xconnect در روترهای PE شبکه AToM استفاده شود. در حالت TE tunnel در یک شبکه MPLS VPN ، در روترهای P که نقطه پایانی TE tunnel می باشند نقطه ابتدایی و پایانی TE tunnel نیاز به یک ارتباط هدف دار LDP دارد تا بتواند ترافیک MPLS VPN را با label درست از طریق شبکه MPLS VPN دریافت کند. برای همسایه هایی که به صورت مستقیم به یکدیگر متصل هستند تنها کاری که شما باید برای آنها انجام دهید این است که ip mpls را در اینترفیس مورد نظر فعال کنید سپس این همسایه ها یکدیگر را پیدا می کنند و ارتباط LDP از نوع TCP بین آنها ایجاد می گردد. همسایگی LDP در حالتی که آنها به صورت مستقیم به یکدیگر متصل نیستند باید به صورت دستی در هر دو روتر با استفاده از دستور mpls ldp neighbor targeted انجام شود.
Syntax دستور به صورت زیر است :

mpls ldp neighbor [vrf vpn-name] ip-addr targeted [ldp | tdp]

در اینجا VRF به (Carrier’s Carrier (CsC اشاره دارد که کدام ارتباط LDP از طریق اینترفیس VRF برقرار است.

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

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

MPLS Maximum Receive :


(Maximum receive unit (MRU پارامتری است که توسط IOS سیسکو مورد استفاده قرار می گیرد و برای LSR مشخص می کند که بسته های label خورده مربوط به یک FEC با چه سایزی می توانند توسط LSR دریافت شوند و بتوانند بدون تکه تکه شدن ارسال شوند.این مقدار برای هر FEC یا شبکه مشخص می شود و فقط براساس اینترفیس نمی باشد و دلیل آن labelهایی است که در LSR به بسته اضافه یا حذف می شوند.
به عنوان مثال یک روتر را که MTU همه اینترفیس های آن برابر 1500 است را در نظر بگیرد. که به این معناست بزرگترین بسته ای که می تواند روی یک اینترفیس ارسال و دریافت شود 1500 بایت می باشد و با فرض اینکه بسته حداکثر می تواند دو label داشته باشد در نتیجه MPLS MTU بسته 1508 می شود که در کلیه اینترفیس ها این مقدار یکسان می باشد. و بسته های label خورده با سایز 1508 بایت می توانند روی همه لینک ها ارسال شوند. اگر عمل pop برای بسته دریافتی در نظر گرفته شده باشد بسته باید 4 بایت یا یک label بزرگتر باشد(1512 بایت) چون بسته قبل از ارسال باید یک label آن حذف شود اگر عمل push برای بسته در نظر گرفته شده باشد و یک label به بسته اضافه خواهد شد بسته دریافتی باید 1504 بایت باشد تا با اضافه شدن label اندازه آن 1508 بایت شود.
همین طور که دیدید عملیات روی label ها در تعیین MRU نقش دارند. چون عملیات روی label ها براساس FEC یا شبکه مشخص می شود MRU نیز براساس FEC یا شبکه مشخص می شود. به تصویر زیر توجه کنید که در آن MRU براساس شبکه و نسبت به عملی که روی بسته می خواهد انجام شود تغییر می کند. مقدار MRU را به ازای هر شبکه در تصویر زیر می بینید.

Image

MRU برای شبکه 10.200.254.2/32 برابر 1512 می باشد. بسته دریافتی می تواند 1512 بایت باشد چون بسته قبل از ارسال pop خواهد شد. MRU برای شبکه 10.200.254.3 برابر 1508 می باشد و اندازه بسته تغییر نخواهد کرد چون عمل swap روی بسته انجام می شود. MRU برای شبکه 10.200.254.4 برابر 1504 می باشد چون بسته دریافتی 1504 بایت خواهد بود و یک label به آن push خواهد شد و اندازه بسته 4 بایت افزایش خواهد یافت.

Fragmentation of MPLS Packets :


اگر LSR یک بسته label خورده دریافت کند که اندازه آن برای ارسال در data link بزرگ باشد بسته باید تکه تکه شود. این تکه کردن مشابه بسته های IP است. اگر یک بسته label خورده دست LSR برسد و LSR متوجه شود که این بسته نسبت به MTU آن بزرگ است باید آنرا تکه تکه کند که در ابتدا label stack را از روی بسته بر می دارد بسته IP را تکه تکه می کند بعد از اینکه روی label stack عمل مورد نیاز(pop , push , swap) را انجام داد. این label stack را به تمام تکه ها اضافه می کند و این تکه ها را ارسال می کند. تنها در صورتی که فیلد (Don’t Fragment (DF در هدر IP استفاده شده باشد LSR آنرا تکه نخواهد کرد و بسته را Drop کرده و یک پیام ICMP error با محتوای اینکه بسته نیاز به تکه تکه شدن دارد و از فیلد (Don’t Fragment (DF استفاده نشود (ICMP type 3, code 4) به مبدا بسته ارسال می کند. همانند پیام (ICMP message “time exceeded” (type 11, code 0 که در زمان انقضای TTL تولید و براساس LSP ارسال میشد این پیام نیز براساس LSP ارسال می شود تا به مبدا خود برسد.
در طور معمول تکه تکه کردن یا fragmentation روی کارایی اثر منفی می گذارد و باید از آن اجتناب کرد. یک روش برای اجتناب از تکه تکه کردن استفاده از Path MTU Discover است که در ادامه آنرا شرح می دهیم.

Path MTU Discovery :


یک روش برای اجتناب از fragmentation استفاده از Path MTU Discovery می باشد. در این روش فیلد (Don’t Fragment (DF در بسته های IP مورد استفاده قرار می گیرد و بسته ها ارسال می شود. زمانی که بسته به یک روتر برسد که آن روتر بسته را بدون fragmentation نتواند ارسال کند روتر بسته را drop می کند و یک پیام (ICMP error message Fragmentation needed and do not fragment bit set (ICMP type 3, code 4 به فرستنده بسته مبنی بر عدم استفاده از فیلد DF ارسال می کند. فرستنده بسته IP اینبار بسته را با سایز کوچکتری ارسال می کند و اگر دوباره این مشکل بوجود آمد مجدد سایز بسته را کم کرده و آنرا ارسال می کند. اینکار تا زمانی که مبدا ، پیام ICMP error دریافت نکند ادامه می یابد. اندازه اخرین بسته که با موفقیت ارسال شده است به عنوان اندازه بسته در نظر گرفته می شود و از آن برای ارسال بسته ها بین این مبدا و مقصد استفاده می شود. از این رو به آن MTU مسیر گفته می شود.
نکته : تضمینی برای اینکه Path MTU Discovery در همه شرایط کار کند وجود ندارد. در بعضی مواقع پیام های ICMP error به مبدا بسته برگشت داده نمی شوند. نرسیدن پیام های ICMP error به مبدا بسته می تواند علل مختلف داشته باشد که می توان به وجود فایروال ، استفاده از Access Control List و یا مشکلات مسیریابی اشاره کرد.

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

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

TTL Expiration :


زمانی که یک بسته label خورده با TTL 1 دست LSR می رسد LSR آنرا drop می کند و یک بسته ICMP با پیام time exceede به مبدا بسته ارسال می کند. رفتار نسبت به بسته label خورده که TTL آن صفر شده با رفتار نسبت به یک بسته IP که TTL آن صفر شده است یکسان است. هرچند که پیام ICMP بلافاصله به مبدا بسته ارسال نمی شود چون این امکان وجود دارد که LSR مسیر رسیدن به آدرس مبدا بسته IP را نداند. در نتیجه پیام ICMP را براساس LSP که بسته را روی آن دریافت کرده است ارسال می کند.
در تصویر زیر نحوی ارسال پیام ICMP به آدرس میدا بسته IP در یک شبکه IP نمایش داده شده است.

Image

در تصویر زیر نحوی ارسال پیام ICMP را براساس LSP به سمت مبدا بسته نمایش داده شده است.

Image

دلیل ارسال پیام ICMP براساس LSP مربوط به بسته که TTL آن منقضی شده است این است که LSR نمی داند چگونه پیام ICMP را به مبدا بسته برساند. یک نمونه آن در شبکه MPLS VPN ، روترهای P اطلاعی از اینکه پیام ICMP را چگونه به مبدا بسته ارسال کنند ندارد چون هیچ مسیری برای ارسال پیام ICMP به مبدا بسته ندارد.(به طور معمولا روترهای P مسیرهای VPN را در خود نگه داری نمی کنند) از این رو P Router پیام ICMP براساس LSP بسته ارسال می کند. زمانی که این پیام به انتهای LSP برسد می تواند به سمت مبدا بسته برگشت داده شود. در شبکه های MPLS VPN پیام ICMP توسط egress PE یا CE که به PE متصل است برگشت داده می شود چون این روترها مسیر درست به مبدا بسته را دارند.
در P Router جایی که TTL بسته منقضی می شود ضروری است که بداند که MPLS payload چیست. payload بسته توسط P Router چک می شود که بسته IPv4 یا IPv6 هست یا خیر . اگر بسته IPv4 یا IPv6 باشد پیام ICMP را برای آن ایجاد می کند و براساس LSP آنرا ارسال می کند. اما اگر payload بسته IPv4 یا IPv6 نبود P Router نمی تواند بسته ICMP برای آن ایجاد کند. بنابراین در همه حالت ها P router بسته را drop می کند و پیام ICMP تولید نمی کند غیر از حالت IPv4 یا IPv6. حالتی که LSR بسته با TTL منقضی را فقط drop می کند AToM است. MPLS payload در AToM یک فریم لایه دو است نه یک بسته IP ، از این رو اگر TTL یک بسته AToM در یک P Router منقضی شود تنها کاری که P Router می تواند نسبت به آن انجام دهد drop کردن آن است چون نمی تواند برای آن IP lookup انجام دهد. همچنین تنها در صورتی که P Router از نسخه های جدید IOS سیسکو (IOS که از IPv6 پستیبانی کند) استفاده کنند می توانند ICMP IPv6 تولید کنند و به مبدا بسته آنرا برگشت دهند در غیر اینصورت بسته را drop می کند.

MPLS MTU :


با (Maximum transmission unit (MTU به عنوان یک پارامتر در دنیای IP آشنا هستید. MTU حداکثر سایز یک بسته IP را که امکان ارسال آن بدون تکه تکه کردن وجود دارد را مشخص می کند. در شبکه MPLS نیز یک MTU مشخص برای بسته های label خورده وجود دارد. در یک شبکه MPLS که روی یک شبکه IPv4 اجرا شده است هر بسته IPv4 یک یا چند label دارد که باعث می شود که بسته های label خورده از بسته های IP کمی بزرگتر باشند. چون برای هر label ، 4 بایت به بسته اضافه می شود بنابراین اگر n تعداد label ها باشد مقدار n*4 به سایز بسته زمانی که label می خورد اضافه می شود.
دستور MTU در اینترفیس مشخص می کند که یک بسته می تواند حداکثر چه سایزی داشته باشد و بدون تکه تکه کردن بتواند در data link ارسال شود. در Ethernet به صورت پیش فرض مقدار MTU برابر 1500 است. به هر حال زمانی که label به تعداد n به بسته اضافه می شود و سایز بسته به مقدار n*4 بایت افزایش پیدا می کند و باعث می شود که اندازه بسته از مقدار MTU مشخص شده بیشتر شود و بسته نیاز به تکه تکه شدن داشته باشد.
در IOS سیسکو با استفاده از دستور mpls mtu در اینترفیس مورد نظر خود می توانیم حداکثر اندازه بسته label خورده را مشخص کنیم. به طور مثال اگر بدانیم که بسته در هنگام ارسال در شبکه MPLS حداکثر دو عدد label خواهد داشت می توانیم با دستور بالا مقدار mtu را 1508 مشخص کنیم. در نتیجه همه بسته ها با حداکثر دو label می توانند بودن نیاز به تکه تکه شدن ارسال شوند. مقدار پیش فرض MPLS MTU با MTU اینترفیس برابر است.
در تصویر زیر نحوی تغییر MTU نمایش داده شده است:

Image

زمانی که بسته label می خورد به همان نسبت حجم آن افزایش پیدا می کند. اگر بسته IP از حداکثر میزان MTU استفاده کرده باشد در زمان ارسال با توجه به اینکه به بسته label می خورد حجم بسته کمی افزایش پیدا می کند. در نتیجه فریم لایه دو به یک فریم بزرگ تر تبدیل می شود و نیاز به تکه شدن دارد. به این فریم ها Baby Giant Frames گفته می شود.
به طور مثال در Ethernet : بسته می تواند که حداکثر 1500 بایت باشد و اگر بسته از کل 1500 بایت استفاده کرده باشد و label به آن اضافه شود. بسته برای ارسال کمی بزرگ می باشد. این امکان وجود دارد این چند بایت نادیده گرفته شود و بسته ارسال شود با اینکه اینکار با مشخصات Ethernet مطابقت ندارد و این بسته ها باید drop شوند. این کار تنها در صورتی امکان پذیر است که کلیه روترها و سوئیچ های در شبکه Ethernet امکان ارسال و دریافت بسته هایی با چند بایت بیشتر از حداکثر ظرفیت را MTU داشته باشند.
در Ethernet در LSR شما می توانید که MPLS MTU را برابر 1508 بایت قرار دهید که به شما اجازه می دهد بسته IP با سایز 1500 و حداکثر دو label داشته باشید. در این حالت اگر روتر این سایز از بسته را پشتیبانی نکند و یا یک سوئیچ در بین راه وجود داشته باشد بسته drop خواهد شد. در اینصورت با کم کردن MTU به 1492 قادر به ارسال بسته خواهید بود.
نکته : در برخی از نسخه های سیسکو شما نمی توانید MPLS MTU را از MTU اینترفیس بزرگتر در نظر بگیرد.
در سوئیچ می توان تغییراتی در MTU اعمال کرد که بتواند فریم های بزرگتر را حمل کند. در تصویر زیر نحوی فعال سازی jumbo Ethernet frames نمایش داده شده است.

Image