دو مستأجر شعبه خود را با همان 10.50.0.0/24 شماره‌گذاری می‌کنند و پس از یک تغییر، مسیر یکی از آن‌ها از لبه ارائه‌دهنده ناپدید می‌شود در حالی که دیگری به کار ادامه می‌دهد. ساده‌سازی پشت این تیکت معمولاً کنار گذاشتن تمایزدهنده مسیر (RD) است، به این بهانه که «برچسب از قبل مشتری را شناسایی می‌کند». چنین نمی‌کند. RD و برچسب به دو پرسش متفاوت پاسخ می‌دهند و این شکاف تنها زمانی دیده می‌شود که آدرس‌های همپوشان آن را تحمیل کنند.

یک مسیر آنجا که باید دو تا باشد

یونیکست ساده IPv4 دو مسیر به یک پیشوند را مقایسه می‌کند و مسیر بهتر را نصب می‌کند. 10.50.0.0/24 از مستأجر A و 10.50.0.0/24 از مستأجر B یک کلید هستند، پس یکی برنده می‌شود و دیگری فقط به‌عنوان مسیر پشتیبان زنده می‌ماند. پروتکل همان کاری را کرد که به او گفته شده بود؛ از صفحه کنترل خواسته شد دو مسیر متفاوت را زیر یک شناسه ذخیره کند.

نتیجه بیشتر شبیه مسیر گم‌شده است تا خطا: PE‌ای که رقابت را باخته هنوز مستأجر خود را به‌صورت محلی ارسال می‌کند، بنابراین پینگ درون‌سایتی موفق و آزمون میان‌سایتی ناموفق می‌شود. پیش از دست زدن به هر سیاستی، تعداد ورودی‌های آن پیشوند را در جدول VPNv4 بشمارید.

RD یک کلید را به دو کلید تبدیل می‌کند

یک تمایزدهنده مسیر هشت‌بایتی به ابتدای پیشوند IPv4 افزوده می‌شود و شیئی که BGP حمل می‌کند به‌جای پیشوند IPv4 یک نشانی VPN-IPv4 می‌شود. دو مستأجر می‌توانند همان 32 بیت را داشته باشند چون 64 بیت جلویی متفاوت است. انواع قالبی برای RD مبتنی بر AS و RD مبتنی بر نشانی وجود دارد و انتخاب به PE مبدأ تعلق دارد. RD مبتنی بر AS رایج است وقتی PEها یک AS مشترک دارند، و RD مبتنی بر نشانی وقتی ندارند.

RD را برچسب عضویت نخوانید. هدف‌های مسیر واردات و صادرات را اداره می‌کنند و تعیین می‌کنند کدام VRF‌ها می‌توانند مسیر را نصب کنند؛ RD تنها تضمین می‌کند که مسیر هویت خودش را داشته باشد. دادن RD مستقل به هر VRF رویه رایج است، چون آن نگاشت را در نمای مسیرها خوانا نگه می‌دارد.

برچسب یک دستور ارسال محلی است

هر اعلامیه یک برچسب MPLS نیز حمل می‌کند و معنای آن به همان مسیریابی که آن را تخصیص داده محدود است. PE دیگر می‌تواند همان شماره را برای مقصدی بی‌ربط صادر کند. دقیقاً به همین دلیل برچسب نمی‌تواند جای هویت مشتری را بگیرد: شماره تنها در کنار پرش بعدی و وضعیت ارسالی که آن را نصب کرده درست است.

ریزایی تخصیص بسته به پیاده‌سازی و طراحی متفاوت است: برخی سکوها برای هر VRF یک برچسب تخصیص می‌دهند، برخی برای هر پیشوند، و برچسب می‌تواند کنشی برای ارسال را مشخص کند، نه یک مشتری. دو برچسب متفاوت که به یک مقصد می‌رسند تناقض نیستند، و یک شماره برچسب در دو PE هم تناقض نیست.

FieldWhere it livesScopeIf you remove it
RDVPNv4 NLRIPer advertised routeOverlapping prefixes collide
Route targetExtended communityImport and export policyRoute lands in the wrong VRF
LabelLabeled NLRI and forwarding statePer allocating routerNo instruction for the data plane
Next hopPath attributePer pathThe label cannot be resolved

چرا یکی نمی‌تواند جای دیگری را بگیرد

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

تقابل مرتب میان صفحه کنترل و صفحه داده یک ابزار آموزشی است، نه توصیف کدگذاری. RFC 8277 برچسب را درون NLRI برچسب‌خورده قرار می‌دهد، پس خود اعلامیه پیوند را حمل می‌کند؛ استفاده از آن برای ارسال گام بعدی و جداگانه است.

وقتی مسیر یک مستأجر گم می‌شود، به این ترتیب بررسی کنید: دو ورودی VPNv4 برای پیشوند، هدف مسیر درست روی هر یک، پرش بعدی قابل تجزیه، و برچسبی که PE گیرنده برای آن وضعیت دارد. درست کردن هویت با یک مقدار ارسال، یا برعکس، یک بررسی را می‌گذراند و در بعدی شکست می‌خورد.

مقالات مرتبط