ARP با دروازه های Anycast در EVPN نامتقارن IRB « وبلاگ ipSpace.net

در پستهای وبلاگ قبلی، من مشکلات مربوط به ARP را در محیطهای EVPN شرح دادم، از مسیریابی متمرکز و سپس با IRB نامتقارن با دروازههای unicast (روی یک سوئیچ برگ) اولین هاپ. البته، هیچ فروشنده محترمی به شما نمی گوید که این کار را انجام دهید. دروازههای anycast این روزها همهگیر شدهاند.
مثل همیشه، دروازه های anycast بسته به مستندات فروشنده ای که می خوانید، می توانند معانی مختلفی داشته باشند.
- VRRP فعال-فعال (یک دستگاه دروازه VRRP فعال است، اما همه دستگاه ها به آدرس VRRP MAC گوش می دهند).
- آدرس MAC+IP به اشتراک گذاشته شده به آدرسهای MAC و IP unicast مخصوص دستگاه.
- آدرس MAC+IP مشترک بدون آدرس IP خاص PE.
تنها تفاوت بین (1) و (2) مکانیسم مورد استفاده برای استخراج آدرس MAC/IP مشترک، پروتکل صفحه کنترل (VRRP) یا پیکربندی استاتیک است.
تفاوت اصلی بین (1+2) و (3) تعداد آدرس های IP در رابط های VLAN هر دستگاه PE است. در دو مورد اول، دستگاه PE دارای یک آدرس IP منحصر به فرد است و می تواند با دستگاه های متصل مستقیم ارتباط برقرار کند. به عنوان مثال، می تواند یک پروتکل مسیریابی را با آنها اجرا کند. در مورد دوم، آدرس IP مشترک بیشتر می تواند به عنوان یک هدف برای درخواست های ARP استفاده شود (گاهی اوقات حتی پینگ ها کار نمی کنند).
این پست وبلاگ سناریوی دوم را شرح می دهد:
ارسال بسته در طراحی IRB نامتقارن EVPN با دروازه های anycast
- هر دستگاه PE دارای یک آدرس IP (کادر زرد روی نمودار) در هر VLAN (نمونه EVPN MAC-VRF) است.
- دستگاه های PE دارای یک آدرس MAC و IP مشترک (جعبه قرمز در نمودار) در هر VLAN هستند.
- هر میزبان از دروازه مشترک VLAN anycast به عنوان دروازه اولین هاپ خود استفاده می کند.
همه دستگاه های PE به آدرس MAC مشترک گوش می دهند. بسته هایی با یک آدرس MAC مشترک به عنوان آدرس MAC مقصد هرگز از طریق VXLAN ارسال نمی شوند. آنها توسط دستگاه PE محلی رهگیری می شوند.
در توپولوژی کوچک ما، HB1 استفاده می کند پسر.1 به عنوان دروازه پیش فرض و HR1 استفاده می کند قرمز.1.
وضوح ARP سمت فرستنده
اینگونه است که HB1 اولین بسته را به HR1 ارسال می کند:
- HB1 یک درخواست ARP برای دروازه پیش فرض خود ارسال می کند (پسر.1). هنگامی که L1 یک درخواست ARP دریافت می کند، با آدرس MAC مشترک پاسخ می دهد.
- HB1 بسته HR1 را به L1 ارسال می کند.
را درخواست ARP را ارسال می کند بخش در حال حاضر بد بو است. درخواست HB1 ARP به عنوان یک بسته پخش ارسال می شود، اما من نتوانستم آن را به بخش VXLAN ارسال کنم. به نظر می رسد Arista EOS پخش های ARP را برای آدرس های IP محلی رهگیری می کند (که منطقی است، اما آن چیزی نیست که انتظار می رود).
برخی از پیادهسازیها (به عنوان مثال Arista EOS) هر چند ثانیه یک بار ARPهای رایگان را برای آدرس MAC/IP مشترک ارسال میکنند (به نظر میرسد پیشفرض Arista EOS 30 ثانیه است) تا اطمینان حاصل شود که میزبانهای متصل از آدرس MAC صحیح استفاده میکنند. اتفاقی که پس از ارسال درخواست ARP توسط HB1 رخ می دهد جالب تر است:
وضوح ARP سوئیچ ورودی
HB1 بسته در نظر گرفته شده برای HR1 را به L1 ارسال کرد. اکنون L1 باید کار خود را انجام دهد و اولین گام حل آدرس دیگری است – باید آدرس MAC HR1 را بداند.
اگر خوش شانس باشیم، L1 کش ARP خود را از مسیرهای EVPN MAC+IP پر کرده است و به سادگی می تواند بسته را به HR1 ارسال کند. در غیر این صورت باید ارسال شود مسئول درخواست ARP از طریق VXLAN.
برخی از پیاده سازی ها این قسمت را اشتباه گرفته و درخواست ARP را ارسال می کنند از طریق VXLAN از آدرس MAC/IP anycast. فقط یک مشکل کوچک وجود دارد – پاسخ هرگز باز نمی گردد (به یاد داشته باشید که سوئیچ نزدیک به میزبان تمام ترافیک ارسال شده به آدرس MAC anycast مشترک را می گیرد).
برخی از دستگاهها میتوانند این عارضه را مدیریت کنند، اما (مثل همیشه) همه چیز در یک محیط تک فروشنده بهترین کار را دارد و هنگام مخلوط کردن فروشندهها میتواند به طرز جالبی پیچیده شود. بیشتر در مورد آن در یک پست وبلاگ دیگر.
ساده ترین راه برای کار کردن دروازه های anycast در این سناریو این روش پیکربندی آدرس های IP unicast در دستگاه های PE است. سپس دستگاههای PE باید از آدرسهای IP unicast برای همه ارتباطات سطح کنترل (از جمله درخواستهای ARP) استفاده کنند.
آخرین پیچ: پاسخ ARP از میزبان هدف به آدرس MAC دستگاه PE ورودی ارسال می شود. اگر دستگاه PE ورودی آدرس MAC خود را در یک مسیر EVPN تبلیغ نکند، پاسخ ARP به همه دستگاههای PE که در یک نمونه MAC VRF شرکت میکنند سرازیر میشود (برای جزئیات بیشتر به پست وبلاگ نامتقارن IRB مراجعه کنید). لزوماً یک فاجعه نیست، اما قطعاً چیزی است که باید در نظر داشت.
آن را امتحان کنید
توپولوژی آزمایشگاهی که در این پست وبلاگ استفاده کردم در مخزن نمونه های netlab GitHub است. اگر می خواهید آن را امتحان کنید:
- محیط آزمایشگاه خود را تنظیم کنید (می توانید از فضای کدهای رایگان GitHub استفاده کنید)
- تغییر دایرکتوری به
EVPN/asymmetric-anycast - اعدام
netlab up - اعدام
netlab config --limit pe add_anycastبرای پیکربندی دروازه های anycast.
در حالی که netlab از دروازه های anycast پشتیبانی می کند، من راه حلی می خواستم که سناریوهای (2) یا (3) را از لیست بالا پیکربندی کند.



