EVPN نوع 2 در برابر نوع 5: چرا یک نشانی IP به معنای دو مسیر است
مسیر نوع 2 بر پایه یک MAC بههمراه یک IP اختیاری کلید میخورد؛ مسیر نوع 5 بر پایه یک پیشوند. پیش از آنکه مسیری را به اندازه میزبان بنامید، کلید را بخوانید، نه ماسک را.
دو مسیر روی یک دستگاه میتوانند به 198.51.100.77 اشاره کنند و در همان حال به پرسشهای متفاوتی پاسخ دهند. یکی توصیف میکند که یک نشانی MAC از کجا قابل دسترسی است و بهصورت اختیاری کدام IP به آن گره خورده است. دیگری پیشوندی را توصیف میکند که از طریق یک گام بعدی تفکیک میشود، حتی وقتی آن پیشوند تنها یک میزبان است. اشتباه گرفتن این دو تیکتی میسازد که شبیه اشکال مسیریابی است، اما در واقع نوع مسیری است که بد خوانده شده.
سریعترین راه تشخیص این دو، خواندن کلیدی است که NLRI پیرامون آن ساخته شده، نه ماسک انتهای آن.
کلید مسیر میگوید مسیر چه ادعایی دارد
نوع 2 مسیر اعلان MAC/IP از RFC 7432 است و کلید آن نشانی 48 بیتی MAC درون NLRI است. پشت این کلید یک فیلد نشانی IP قرار دارد که فیلد طول آن میتواند 0، 32 یا 128 بیت باشد، پس اعلانی که فقط MAC دارد یک مسیر کامل است، نه یک ورودی میزبان با قطعات گمشده. پشته برچسبی که پس از آن میآید به بافت پلزنی اشاره میکند که آن MAC در آن زندگی میکند.
پر بودن فیلد IP آنچه را مسیر بیان میکند تغییر میدهد، نه نوع مسیر را. با طول 32 یا 128 بیت، فرستنده همچنین ادعا میکند که این IP درون یک نمونه EVPN به آن MAC تعلق دارد. با طول صفر، فرستنده هیچ ادعایی درباره IP نمیکند. هیچکدام از دو نسخه نمیگوید که یک پیشوند از طریق یک مسیریاب قابل دسترسی است.
نوع 5 مسیر پیشوند IP از RFC 9136 است و کلید آن پیشوندی است که بهصورت یک طول بههمراه همان تعداد بیت نوشته میشود. طول برای IPv4 از 0 تا 32 و برای IPv6 از 0 تا 128 است.
هر دو انتهای این بازه مجاز است و هیچکدام بر MAC دلالت نمیکند. پیشوند با طول صفر دسترسپذیری را بدون نام بردن میزبان ادعا میکند، در حالی که /32 دقیقاً یک نشانی را نام میبرد. NLRI همچنین یک نشانی IP دروازه حمل میکند که سمت خروج از آن برای ساخت نمایه overlay استفاده میکند، بههمراه یک برچسب برای بافت ارسال. هیچ فیلد MAC برای سوئیچ کردن وجود ندارد، و به همین دلیل گیرنده نوع 5 را مقصدی مسیریابیشده میداند.
مسیر پیشوند /32 یک نوع 2 تغییرنامیافته نیست
پیشوندهای به اندازه میزبان، مسیرهای نوع 5 معمولی هستند. مسیر پیشوند /32 و یک نوع 2 برای همان نشانی میتوانند هر دو در یک نمونه EVPN وجود داشته باشند و اطلاعات ارسال متفاوتی حمل کنند.
198.51.100.77 را در یک نمونه EVPN با VNI 10100 در نظر بگیرید. یک نوع 2 میتواند آن را با MAC 02:00:00:00:00:77 و برچسبی جفت کند که دامنه پلی را که آن MAC در آن آموخته شده مشخص میکند. یک نوع 5 میتواند 198.51.100.0/24 را برای کل زیرشبکه اعلان کند، یا 198.51.100.77/32 را فقط برای همان نشانی، با نشانی دروازهای که به VTEP خروج اشاره میکند. نشانیها عمداً همپوشانی دارند چون مسیرها به پرسشهای متفاوتی پاسخ میدهند.
یک مسیر میگوید که پیوند یک نقطه پایانی وجود دارد و از طریق پل مشخصی قابل دسترسی است. دیگری میگوید پیشوندی از طریق مسیریاب مشخصی قابل دسترسی است، بیآنکه مهم باشد هرگز نقطه پایانی درون آن آموخته شده است یا نه.
همین تفاوت تعیین میکند وقتی ترافیک شکست میخورد اول کجا را نگاه کنید. اگر یک میزبان تنها دسترسناپذیر است در حالی که مسیر زیرشبکهاش سالم به نظر میرسد، نوع 5 هرگز قرار نبوده آن میزبان را حمل کند؛ به دنبال نوع 2 گمشده بگردید. اگر مسیر میزبان وجود دارد اما کل زیرشبکه دسترسناپذیر است، بررسی کنید که آیا نوع 5 اصلاً ایجاد شده است. خواندن فیلدها به ترتیب بهتر از حدس زدن از روی طول ماسک است.
خواندن هر دو مسیر بدون حدس زدن
در NX-OS، show bgp l2vpn evpn route type 2 و show bgp l2vpn evpn route type 5 جدول را دقیقاً در امتداد همین خط تقسیم میکنند، و show l2route evpn mac ip پیوندهای محلی MAC به IP پشت مسیرهای نوع 2 را نشان میدهد. در Junos، show evpn database پیوندهای آموختهشده MAC و IP را فهرست میکند در حالی که show route table bgp.evpn.0 نشان میدهد چه چیزی اعلان و دریافت شده است.
پیش از نتیجهگیری، بر اساس route distinguisher و برچسب Ethernet فیلتر کنید. همان MAC یا پیشوند میتواند در چندین نمونه EVPN ظاهر شود، و مسیری که در یک نمونه غلط به نظر میرسد ممکن است در نمونه دیگری درست باشد.
سپس NLRI را به ترتیب بخوانید: نوع مسیر، کلید، فیلدهای دروازه یا برچسب، و سپس route targetها در ویژگیها. یک نوع 2 که ESI غیرصفر دارد به شما میگوید MAC چندمیزبانه است، و همان مقدار است که اعلانهای مسیریابهای PE مختلف را به هم میبندد. یک نوع 5 که نشانی دروازه دارد به شما میگوید کدام VTEP خروج باید ترافیک را دریافت کند.
اگر مسیری گم شده، پیش از رمزگذاری، ایجاد آن را بررسی کنید. تأیید کنید که منبع، پیوند یا پیشوند را بهصورت محلی دارد، سپس تأیید کنید که route target متصل به آن روی این دستگاه وارد میشود. بیشتر گزارشهای مربوط به نوع 5 خراب به یک سیاست ورود ختم میشوند، نه به قالب NLRI.
بافت را ثبت کنید، نه فقط نوع مسیر
نوع مسیر، نمونه EVPN، route distinguisher، route targetهای وارد و خارجشده و گام بعدی تفکیکشده را با هم بنویسید. نوع 2 بدون نمونهاش مبهم است، و گام بعدی بدون خانواده مسیر به نتیجهگیری اشتباه دعوت میکند.
هر دو مسیر EVPN هستند حتی وقتی بار مفید یک نشانی IPv4 است. خانواده نشانی درون NLRI و خانواده نشانی خود مسیر دو ویژگی جداست، و نوع 5 فقط به این دلیل که پیشوند IPv4 حمل میکند به مسیر IPv4-unicast یا VPN-IPv4 تبدیل نمیشود.
این تمایز در مرز میان صفحه کنترل EVPN و IP-VRF دیده میشود. route target تعیین میکند کدام VRF پیشوند را وارد میکند، در حالی که نشانی دروازه و برچسب تعیین میکنند بسته چگونه به سمت خروج کپسوله میشود. اینها را با هم بخوانید و تصمیم ارسال دیگر دلبخواه به نظر نمیرسد.
دفعه بعد که /32 در جدول EVPN ظاهر شد، پیش از ماسک، کلید را بررسی کنید. کلید MAC با IP اختیاری یک پیوند نوع 2 است؛ کلید پیشوند یک مسیر نوع 5 است، هر طولی که داشته باشد. route target و گام بعدی را کنارش بنویسید و مهندس بعدی لازم نیست کل ماجرا را از نو استخراج کند.