برخی مسیرهای L2VPN پس از افزودن بازتابندههای مسیر ناپدید میشوند
نشستها برپا میمانند اما چند مسیر L2VPN هرگز نمیرسند. شناسههای خوشهٔ بازاستفادهشده، روابط کارخواه و گراف بازتاب این افت گزینشی را توضیح میدهند.
نشستها برپا میمانند، IGP پایدار است و با این حال چند مسیر L2VPN هرگز روی دو تا از چهار لبهٔ ارائهدهنده ظاهر نمیشوند. این الگو به یک مشکل بازتاب تعلق دارد نه به یک مشکل ترابری، زیرا نشست خراب بهطور کامل شکست میخورد در حالی که مرز بازتابِ بازاستفادهشده بهصورت گزینشی شکست میخورد. حلقهٔ فیزیکی هیچ ربطی به آن ندارد؛ گراف توزیع منطقی همان جایی است که آن مسیرها متوقف شدند. یافتن آن نقطه نیازی به بازسازی صفحهٔ کنترل ندارد.
افت گزینشی است و همین جستوجو را باریک میکند
چهار لبهٔ ارائهدهنده روی یک حلقهٔ فیزیکی برای یک مش کامل به شش نشست منطقی نیاز دارند، چون هر مسیریاب با سه مسیریاب دیگر جفت میشود. آن نشستها روی ترابری مسیریابیشده سوار میشوند، پس کابلکشی هیچ چیزی دربارهٔ تعداد مجاورتها یا اینکه کدامیک بازتاب میدهد نمیگوید. وقتی دو لبه مجموعهٔ مشخصی از پیشوندها را از دست میدهند در حالی که بقیهٔ چیزها همگرا میشوند، کابل مظنون نیست.
افت گزینشی به جلوگیری از حلقه، سیاست یا جهت رابطه اشاره میکند، جایی که برخی مسیرها از یک مرز عبور میکنند و برخی دیگر در مسیر دور ریخته میشوند. افت کامل به نشست یا خانوادهٔ نشانی اشاره میکند. تصمیمگیری دربارهٔ اینکه کدامیک از این دو را میبینید نخستین گام سودمند است و تنها یک فرمان میبرد.
بازتاب در واقع چه چیزی را تغییر میدهد
بازتاب مسیر قاعدهای را شل میکند که میگوید یک گویندهٔ iBGP نباید مسیری را که از گویندهٔ iBGP دیگری آموخته دوباره اعلام کند. RFC 4456 این استثنا را از طریق رابطهٔ میان گوینده و منبع مسیر بیان میکند و جهت آن رابطه بیش از آنچه بیشتر خلاصهها القا میکنند اهمیت دارد. مسیری که از یک کارخواه آموخته شده میتواند به کارخواهان دیگر و به غیرکارخواهان بازتاب داده شود، در حالی که مسیری که از یک غیرکارخواه آموخته شده تنها میتواند به کارخواهان بازتاب داده شود. این عدم تقارن را دو بار بخوانید، چون توضیح میدهد چگونه افزودن یک رابطهٔ کارخواه میتواند یک خطای طراحی را پنهان کند: راهی را باز میکند که توپولوژی هرگز قصدش را نداشت.
ویژگی CLUSTER_LIST تاریخچهٔ بازتاب را ثبت میکند و بازتابندهای که شناسهٔ خوشهٔ خودش را در آن فهرست بیابد باید اعلان را نادیده بگیرد. این جلوگیری از حلقه است و همچنین همان سازوکاری است که وقتی شناسهها بهطور تصادفی بازاستفاده شوند مسیرها را حذف میکند. ORIGINATOR_ID نقش مرتبطی دارد و مسیریابی را نام میبرد که نخستین بار مسیر را اعلام کرد.
شناسههای خوشهٔ بازاستفادهشده همان راهی است که مسیرها ناپدید میشوند
شبکهٔ کوچک به یک میانبر دعوت میکند: به هر مسیریاب شناسهٔ خوشهای برابر با loopback آن بدهید، بعداً بازتابندهٔ دیگری بیفزایید و یک loopback موجود را بازاستفاده کنید چون دم دست است. اگر آن شناسه اکنون در دو مرحلهٔ بازتاب مستقل ظاهر شود، مرحلهٔ دوم شناسهٔ خودش را در CLUSTER_LIST میبیند و مسیر را دور میریزد. هیچ چیز خطایی ثبت نمیکند، چون دور ریختن پاسخ درست به یک حلقه است.
بازتابندههای افزونه که به یک خوشه خدمت میکنند استثنای مشروعاند: آنها عمداً یک شناسه را شریک میشوند تا هر یک بتواند به همان کارخواهان خدمت کند. شناسه باید با طراحی بازتاب همخوان باشد نه اینکه نام بدنهها را از هم جدا کند.
پیش از دست زدن به هر پیکربندی، گراف مورد نظر را بکشید: چه کسی پیشوند را میسازد، کدام رابطهٔ کارخواه نخستین بازتاب را مجاز میکند، کدام بازتابنده آن را به مرحلهٔ بعد میبرد و آخرین کارخواه کجاست. هر گام در آن گراف جایی است که یک شناسهٔ بازاستفادهشده، یک رابطهٔ کارخواه گمشده یا یک پالایهٔ سیاست میتواند مسیر را متوقف کند. با کشیده شدن گراف، مسیر گمشده یک مکان دارد نه یک معما.
در برابر وسوسهٔ کارخواه کردن هر همسایه مقاومت کنید
ترمیم سریع یک مسیر گمشده این است که هر همسایه را کارخواه هر بازتابنده کنید. انتشار بازمیگردد و طراحی دیگر هیچ چیزی به شما نمیگوید: مسیرهایی را که هر گوینده حمل میکند چند برابر میکند و در همان حال پنهان میکند که کدام رابطه قرار بود کار را انجام دهد.
شبکهٔ کوچک معمولاً به یکی از دو شکل نیاز دارد. مش کامل iBGP شش نشست برای چهار مسیریاب بدون هیچ بازتابی است و یک جفت بازتابندهٔ تعیینشده که به لبههای باقیمانده خدمت میکند شکل دیگر است. استدلال دربارهٔ هر دو آسانتر از یک مش جزئی است که در آن هر مسیریاب کمی بازتاب میدهد. شکل را بر پایهٔ مقیاس و رفتار خرابی انتخاب کنید، نه بر پایهٔ نمودار کابلکشی.
پیش از سرزنش بازتاب، خانوادهٔ نشانی را بررسی کنید
یک نشست TCP روی درگاه 179 ثابت میکند که دو گوینده میتوانند گفتوگو کنند و هیچ چیزی دربارهٔ اینکه آیا خانوادهٔ نشانی VPN حتی یک مسیر مبادله کرده است نمیگوید. نخست وضعیت نشست را ثابت کنید، سپس خانواده، سپس پیشوند تکی.
vtysh -c "show bgp summary"
vtysh -c "show bgp l2vpn evpn summary"
vtysh -c "show bgp l2vpn evpn"
این سه خروجی یک مشکل مجاورت را از یک مشکل تبادل و از یک مشکل پیشوند گمشده جدا میکنند. اگر خانواده اصلاً هیچ پیشوندی نشان ندهد، پیش از نگاه کردن به بازتاب، وضعیت فعالسازی و سیاست صدور همسایه را بررسی کنید. اگر پیشوندها روی یک لبه ظاهر شوند اما روی لبهٔ دیگر نه، فهرست خوشه و مبدأ را در سمت گیرنده مقایسه کنید و سپس گراف بخش پیشین را بپیمایید.
دسترسپذیری گام بعدی و وضعیت ارسال را بیرون از آن بررسی نگه دارید. مسیر بازتابشده با گام بعدی دسترسناپذیر موجود و بیفایده است، که تا وقتی ستون گام بعدی را نگاه نکنید مانند یک شکست بازتاب به نظر میرسد. گام بعدی را حل کنید، ورودی ارسال را تأیید کنید و تنها پس از آن تصمیم بگیرید که آیا گراف توزیع به بازتابندهٔ دیگری نیاز دارد.