آشنایی با سیسکو VXLAN

آشنایی با سیسکو VXLAN

اگر هنوز برای هر سرویس و هر مشتری یک VLAN تازه می‌سازید و کم‌کم به سقف ۴۰۹۴ نزدیک می‌شوید، اگر برای جابه‌جا کردن یک VM بین دو رک باید لایه ۲ را تا هسته بکشید و با STP و لینک‌های blocked کنار بیایید، یا اگر سایت DR دارید و نمی‌دانید subnet را چطور بین دو دیتاسنتر امن و تمیز باز کنید، وقت آن رسیده که VXLAN را جدی بگیرید. اینجا دیگر بحث یک فیچر روی سوئیچ نیست؛ بحث شکل تازه‌ای از ساختن شبکه است.

در ده سال اخیر دیتاسنترها و حتی شبکه‌های پردیس عوض شده‌اند. به‌جای چند سرور فیزیکی، صدها و هزاران ماشین مجازی و کانتینر روی تعداد محدودی host نشسته‌اند و بیشتر ترافیک دیگر شمال–جنوب (کاربر به سرور) نیست، بلکه شرق–غرب است: سرور با سرور، اپلیکیشن با دیتابیس، backup با storage. شبکه‌ای که بر پایه VLAN و Spanning Tree ساخته شده، برای این دنیا طراحی نشده بود.

در این راهنما سیسکو VXLAN را از پایه تا اجرا با هم مرور می‌کنیم: اینکه دقیقاً چه مشکلی را حل می‌کند، پکتش بایت‌به‌بایت چه شکلی دارد، underlay و overlay چه فرقی دارند، چرا امروز همه سراغ BGP EVPN می‌روند، Anycast Gateway و Symmetric IRB چطور کار می‌کنند، Multi-Site و اتصال دو دیتاسنتر چطور ساخته می‌شود، روی کدام Nexus و Catalyst با چه لایسنسی اجرا می‌شود، کانفیگ کامل leaf و spine، عیب‌یابی از پایین به بالا، و در آخر اینکه چطور از شبکه قدیمی بدون قطعی به فابریک VXLAN مهاجرت کنیم. همه اعداد و تصاویر از منابع رسمی سیسکو است: Configuration Guideها، Verified Scalability Guide، White Paperها و اسلایدهای Cisco Live.

اگر قبلاً مطلب آشنایی با سیسکو NX-OS را خوانده‌اید، اینجا لایه بعدی همان داستان Nexus است. تصویر بزرگ‌تر SDN و ACI را هم در مطلب سیسکو SDN ببینید.

آشنایی با سیسکو VXLAN

آشنایی با سیسکو VXLAN ؛ از محدودیت VLAN تا فابریک overlay

VXLAN در یک نگاه

نام کامل Virtual eXtensible Local Area Network
استاندارد RFC 7348 (داده‌پلن) + RFC 7432 و RFC 8365 (کنترل‌پلن EVPN)
روش کار MAC-in-UDP: فریم لایه ۲ داخل UDP/IP
پورت UDP 4789 (تخصیص IANA)
شناسه سگمنت VNI بیست‌وچهار بیتی؛ حدود ۱۶ میلیون سگمنت
سربار ۵۰ بایت روی IPv4 (۵۴ با 802.1Q بیرونی) ؛ ۷۰ بایت روی IPv6
کنترل‌پلن پیشنهادی سیسکو MP-BGP EVPN
پلتفرم‌های اصلی سیسکو Nexus 9000 (NX-OS) ، Catalyst 9300/9400/9500/9600 (IOS XE)

فهرست مطالب

  1. VXLAN چیست و از کجا آمد؟
  2. چرا VXLAN؟ پنج محدودیت شبکه لایه ۲
  3. اصطلاحات کلیدی
  4. Underlay و Overlay
  5. VTEP و نقش Leaf ، Spine و Border
  6. ساختار پکت VXLAN و مسئله MTU
  7. مسیر گام‌به‌گام یک فریم
  8. ترافیک BUM: Multicast یا Ingress Replication
  9. کنترل‌پلن: Flood & Learn در برابر BGP EVPN
  10. Route Typeهای EVPN و RD/RT
  11. Anycast Gateway و Symmetric IRB
  12. طراحی Spine-Leaf ، vPC و Multi-Homing
  13. VXLAN EVPN Multi-Site و اتصال دیتاسنترها
  14. تجهیزات، مقیاس و لایسنس
  15. کانفیگ کامل روی Nexus (NX-OS)
  16. کانفیگ روی Catalyst 9000 (IOS XE)
  17. عیب‌یابی از پایین به بالا
  18. مهاجرت از شبکه قدیمی به VXLAN EVPN
  19. امنیت در VXLAN
  20. مقایسه با FabricPath ، OTV ، Geneve و بقیه
  21. کی سراغ VXLAN برویم؟ چک‌لیست شروع
  22. پرسش‌های متداول

VXLAN چیست و از کجا آمد؟

Virtual eXtensible LAN یا همان VXLAN یک فناوری overlay است: یک شبکه لایه ۲ مجازی را روی یک شبکه لایه ۳ معمولی می‌سازد. ایده‌اش ساده است؛ فریم اترنت اصلی را برمی‌دارد، یک هدر ۸ بایتی VXLAN جلویش می‌گذارد، بعد همه را داخل UDP و IP می‌فرستد. سیسکو به این روش می‌گوید MAC-in-UDP. نتیجه اینکه می‌توانید یک VLAN منطقی را روی یک هسته کاملاً IP، حتی بین دو ساختمان یا دو دیتاسنتر، بکشید، بدون اینکه کل هسته را به یک دامنه بزرگ لایه ۲ با STP تبدیل کنید.

یک تشبیه ساده: underlay یک بزرگراه IP است و هر فریم اترنت یک محموله. VXLAN محموله را داخل یک کانتینر استاندارد می‌گذارد، برچسب VNI رویش می‌زند و آدرس فرستنده و گیرنده را روی کانتینر می‌نویسد. سوئیچ‌ها و روترهای بین راه فقط برچسب بیرونی را می‌خوانند و کاری به محتوای کانتینر ندارند.

بر اساس بخش Overview راهنمای VXLAN در Nexus 9000، سه نکته اصلی این‌هاست:

  • شناسه سگمنت VXLAN (VNID یا VNI) ۲۴ بیتی است؛ یعنی تا حدود ۱۶ میلیون سگمنت، در برابر سقف ۴۰۹۶ برای VLAN دوازده‌بیتی.
  • پکت‌های VXLAN روی underlay با هدر لایه ۳ جابه‌جا می‌شوند و از ECMP استفاده می‌کنند؛ دیگر هیچ لینکی برای جلوگیری از loop بلاک نمی‌شود.
  • دستگاهی که کپسوله و دکپسوله می‌کند VTEP (VXLAN Tunnel End Point) نام دارد. روی Nexus 9000 این کار در سخت‌افزار و با سرعت line-rate انجام می‌شود، نه با CPU سوئیچ.

تاریخچه و استاندارد

VXLAN فناوری انحصاری سیسکو نیست. نویسندگان RFC 7348 از Cisco ، VMware ، Arista ، Broadcom ، Intel ، Red Hat و چند شرکت دیگر بودند و سند در اوت ۲۰۱۴ منتشر شد. وضعیت رسمی‌اش Informational است، اما امروز استاندارد عملی صنعت است و تقریباً همه سازنده‌های سوئیچ، هایپروایزرها و حتی هسته لینوکس پشتیبانی‌اش می‌کنند.

نکته‌ای که خیلی‌ها جا می‌اندازند: RFC 7348 فقط داده‌پلن و یادگیری مبتنی بر flood را توضیح می‌دهد. کنترل‌پلن مدرن، یعنی BGP EVPN، بعداً در RFC 7432 و RFC 8365 آمد و سیسکو آن را پایه همه فابریک‌های دیتاسنتری و پردیسی خودش گذاشت.

سند عنوان نقش
RFC 7348 Virtual eXtensible Local Area Network داده‌پلن و فرمت پکت
RFC 7432 BGP MPLS-Based Ethernet VPN پایه کنترل‌پلن EVPN و Route Typeها
RFC 8365 A Network Virtualization Overlay Solution Using EVPN EVPN روی VXLAN (NVO)
RFC 9135 / 9136 Integrated Routing and Bridging / IP Prefix Advertisement in EVPN Symmetric IRB و Route Type 5

چرا VXLAN؟ پنج محدودیت شبکه لایه ۲

قبل از اینکه دستور feature nv overlay را بزنید، باید بدانید VXLAN دقیقاً برای چه آمده. بخش Problem Statement در RFC 7348 پنج مشکل مشخص را نام می‌برد. همان‌ها را سیسکو در اسلاید زیر با زبان عملیاتی خلاصه کرده است: همگرایی کند STP، لینک‌های بلااستفاده، مسیر غیربهینه، هزینه ارتقای شاسی‌های بزرگ و مقیاس محدود.

چالش‌های دیتاسنتر سنتی STP و vPC و FabricPath

Cisco Live BRKDCN-2951: چالش‌های معماری‌های قدیمی دیتاسنتر؛ STP ، vPC و FabricPath

  1. سقف VLAN. شناسه VLAN در هدر 802.1Q فقط ۱۲ بیت است. در محیط چندمستأجری یا مجازی‌سازی‌شده که هر سرویس چند سگمنت می‌خواهد، این سقف زود پر می‌شود.
  2. STP و لینک‌های بلااستفاده. Spanning Tree برای جلوگیری از loop لینک‌های افزونه را بلاک می‌کند. یعنی پول پورت و فیبر را داده‌اید اما ترافیکی از آن‌ها رد نمی‌شود.
  3. پر شدن جدول MAC. با مجازی‌سازی، به‌جای یک MAC برای هر سرور، ده‌ها و صدها MAC داریم. اگر جدول MAC سوئیچ هسته پر شود، فریم‌ها flood می‌شوند. در VXLAN هسته فقط IP تونل‌ها را می‌بیند، نه MAC تک‌تک ماشین‌ها را.
  4. چندمستأجری و همپوشانی آدرس. مشتری‌ها یا واحدهای مختلف ممکن است MAC و IP تکراری داشته باشند. هر VNI دامنه جدای خودش را دارد و هر VRF جدول مسیریابی جدا.
  5. جابه‌جایی VM بین رک و pod. vMotion به لایه ۲ مشترک نیاز دارد. کشیدن لایه ۲ با VLAN بین رک‌ها یعنی ریسک broadcast storm و دامنه خرابی بزرگ. VXLAN لایه ۲ را روی یک زیرساخت لایه ۳ پایدار گسترش می‌دهد.
معیار VLAN (IEEE 802.1Q) VXLAN
طول شناسه ۱۲ بیت ۲۴ بیت
تعداد سگمنت حدود ۴۰۹۴ حدود ۱۶ میلیون
بستر انتقال اترنت لایه ۲ UDP/IP لایه ۳
جلوگیری از loop STP با بلاک کردن لینک مسیریابی با ECMP ؛ همه لینک‌ها فعال
گستره محدود به دامنه لایه ۲ هر جا IP برسد، حتی بین دیتاسنترها
یادگیری MAC Flood & Learn Flood & Learn یا BGP EVPN
چندمستأجری محدود VNI برای لایه ۲ + VRF/L3VNI برای لایه ۳
دامنه خرابی کل دامنه لایه ۲ محدود به هر VNI ؛ underlay مثل هر شبکه مسیریابی‌شده

کتاب رسمی سیسکو A Modern, Open, and Scalable Fabric: VXLAN EVPN صریح می‌گوید VXLAN به‌تنهایی نصف راه‌حل است. بدون یک کنترل‌پلن هوشمند، همان flood-and-learn دوباره مقیاس را می‌خورد. نصف دیگر راه‌حل MP-BGP EVPN است.

اصطلاحات کلیدی

این واژه‌ها را یک بار با حوصله بخوانید؛ در ادامه مدام با آن‌ها سروکار داریم. تعریف‌ها بر پایه RFC 7348 و راهنمای پیکربندی VXLAN سیسکو است.

اصطلاح معنی نکته عملی
VNI / VNID شناسه ۲۴ بیتی هر سگمنت overlay معادل VLAN ID ، اما سراسری در کل فابریک
VTEP نقطه شروع و پایان تونل VXLAN کپسوله و دکپسوله می‌کند؛ سخت‌افزاری یا نرم‌افزاری
NVE Network Virtualization Edge ؛ اینترفیس منطقی VTEP در NX-OS و IOS XE با interface nve1 ساخته می‌شود
Underlay شبکه فیزیکی IP که پکت‌های VXLAN را حمل می‌کند تنها وظیفه‌اش رساندن VTEPها به هم است
Overlay شبکه مجازی روی underlay تونل‌ها + کنترل‌پلن + VNIها و VRFهای مستأجر
L2VNI VNI متناظر با یک VLAN (bridge domain) برای bridging داخل یک subnet
L3VNI VNI متناظر با یک VRF برای routing بین subnetها در Symmetric IRB
BUM Broadcast ، Unknown unicast ، Multicast ترافیکی که باید به چند VTEP کپی شود
Flood & Learn یادگیری MAC از روی ترافیک داده روش اولیه RFC 7348 ؛ وابسته به multicast
MP-BGP EVPN کنترل‌پلن مبتنی بر BGP برای پخش MAC و IP روش استاندارد و توصیه‌شده امروز
Anycast Gateway گیت‌وی با IP و MAC یکسان روی همه leafها اولین hop هر سرور، leaf محلی خودش است
Border Leaf / BGW leaf متصل به بیرون فابریک / گیت‌وی بین سایت‌ها ورود و خروج north-south و DCI

Underlay و Overlay ؛ دو لایه که باید جدا فکر کنید

اگر این دو را قاطی کنید، کل طراحی می‌لرزد.

Underlay شبکه فیزیکی IP است: لینک‌های leaf به spine، آدرس loopbackها، OSPF یا IS-IS یا eBGP، و MTU. طبق سند سیسکو کار underlay این است که دسترسی بین VTEPها را اعلام کند و حمل مطمئن ترافیک کپسوله‌شده را فراهم کند. underlay را ساده و سریع طراحی کنید؛ هیچ VLAN ، MAC یا مستأجری داخلش نیست.

Overlay شبکه مجازی روی همان underlay است: تونل‌های VXLAN به‌علاوه کنترل‌پلنی که می‌گوید کدام MAC و IP پشت کدام VTEP است. از دید سرور و ماشین مجازی هیچ چیز عوض نشده؛ همان VLAN و subnet همیشگی است.

Underlay در VXLAN

Cisco Live BRKDCN-1621: VTEP روی لبه، underlay فقط حمل IP

ملاحظات اصلی طراحی underlay طبق راهنمای طراحی VXLAN BGP EVPN سیسکو:

موضوع توصیه سیسکو چرا
پروتکل مسیریابی OSPF یا IS-IS در underlay ؛ iBGP برای overlay (طراحی تمام eBGP هم پشتیبانی می‌شود) جدا بودن وظایف؛ خرابی یکی دیگری را نمی‌خواباند
آدرس‌دهی لینک‌ها /30 ، /31 یا ip unnumbered unnumbered آدرس کمتری مصرف می‌کند و کانفیگ را یکدست می‌کند
نوع شبکه OSPF point-to-point حذف انتخاب DR/BDR و LSA نوع ۲
MTU ۹۰۰۰ تا ۹۲۱۶ روی تمام لینک‌های مسیر؛ دو سر لینک یکسان VXLAN حدود ۵۰ بایت سربار دارد و fragment نمی‌شود
Loopbackها loopback0 برای Router-ID و BGP ؛ loopback1 برای VTEP جداسازی نقش‌ها؛ الزام در vPC و Multi-Site
Multicast (اختیاری) PIM ASM با Anycast RP روی spineها، یا BiDir ؛ یا بدون multicast با Ingress Replication برای ترافیک BUM
نکته میدانی: VTEPها خودشان عضو underlay هستند. اگر loopback1 در IGP اعلام نشده باشد، تونل هیچ‌وقت بالا نمی‌آید، حتی اگر کانفیگ nve1 بی‌نقص باشد. اولین چیزی که در عیب‌یابی چک می‌کنیم همین است.
اجزای overlay در VXLAN: VNI و VTEP

Cisco Live BRKDCN-1999: سگمنت VXLAN ، VNID و VTEP

موضوع Underlay Overlay
ماهیت شبکه فیزیکی IP شبکه‌های مجازی لایه ۲ و ۳
آدرس‌ها Loopbackها و لینک‌های P2P MAC و IP سرورها و VMها
پروتکل‌ها OSPF / IS-IS / eBGP ؛ در صورت نیاز PIM VXLAN + MP-BGP EVPN
تغییرات نادر؛ فقط هنگام افزودن سوئیچ مداوم؛ با هر VM ، VLAN یا مستأجر جدید
دامنه خرابی کوچک، مثل هر شبکه مسیریابی‌شده محدود به هر VNI

VTEP و نقش Leaf ، Spine و Border

هر VTEP دو رو دارد: یک طرف اینترفیس لایه ۲ به سمت سرورها و endpointهای محلی، طرف دیگر یک IP یکتا (معمولاً loopback) به سمت شبکه IP. همین IP آدرس مبدأ و مقصد تونل می‌شود. VTEP داخل یک VNI فریم را bridge می‌کند و برای ترافیک بین VNIها route می‌کند.

VTEP و نگاشت VLAN به VNI

Cisco Live BRKDCN-1621: VTEP با یک IP یکتا شناخته می‌شود و VLAN را به VNI نگاشت می‌کند

در فابریک leaf/spine سیسکو نقش‌ها این‌طور تقسیم می‌شوند:

نقش VTEP است؟ کار اصلی
Leaf بله اتصال سرور، storage و فایروال؛ Anycast Gateway
Spine معمولاً خیر اتصال leafها به هم در underlay ؛ Route Reflector برای EVPN ؛ RP برای multicast
Border Leaf بله خروج فابریک به اینترنت، WAN یا روتر لبه (VRF-lite)
Service Leaf بله اتصال فایروال، Load Balancer و سرویس‌های لایه ۴ تا ۷
Border Gateway (BGW) بله اتصال چند فابریک در معماری Multi-Site
نقش‌های VTEP در leaf spine

Cisco Live BRKDCN-1621: Leaf و Border Leaf به‌عنوان VTEP ؛ Spine برای اتصال leafها

ساختار پکت VXLAN و مسئله MTU

این بخش را دقیق نگه دارید؛ در عمل همان چیزی است که در Wireshark یا Ethanalyzer می‌بینید. بسته VXLAN همان فریم اترنت اصلی است که چهار هدر جدید جلویش نشسته است.

فرمت پکت VXLAN

Cisco Live BRKDCN-1621: کپسوله MAC-in-UDP با سربار ۵۰/۵۴ بایت

فیلد اندازه معنی عملی
Outer Ethernet (MAC SA/DA) ۱۴ بایت فریم فیزیکی hop فعلی روی underlay
Outer 802.1Q (اختیاری) ۴ بایت اگر لینک underlay تگ‌دار باشد
Outer IP (SA/DA) ۲۰ بایت (IPv4) / ۴۰ بایت (IPv6) IP VTEP مبدأ و مقصد
Outer UDP ۸ بایت پورت مقصد 4789 ؛ پورت مبدأ از هش هدر داخلی
VXLAN Header ۸ بایت Flags + VNI ۲۴ بیتی
Inner Ethernet Frame متغیر فریم اصلی مستأجر؛ معمولاً بدون تگ VLAN
هدر VXLAN و فیلد VNI

Cisco Live BRKDCN-1621: هدر ۸ بایتی VXLAN ؛ بیت I و VNI بیست‌وچهار بیتی

داخل هدر ۸ بایتی VXLAN (RFC 7348):

  • Flags ، یک بایت با الگوی RRRRIRRR ؛ بیت I باید ۱ باشد تا VNI معتبر حساب شود.
  • سه بایت Reserved.
  • VNI ، سه بایت (۲۴ بیت)؛ از ۱ تا ۱۶٬۷۷۷٬۲۱۵.
  • یک بایت Reserved پایانی. بعدها افزونه‌هایی مثل VXLAN-GPO از بیت‌های رزرو برای حمل برچسب گروه امنیتی (SGT) استفاده کردند.

پورت مبدأ UDP از هش هدر داخلی ساخته می‌شود (RFC بازه ۴۹۱۵۲ تا ۶۵۵۳۵ را توصیه می‌کند) تا جریان‌های مختلف روی مسیرهای مختلف ECMP پخش شوند. اگر همه ترافیک یک پورت مبدأ ثابت بگیرد، ECMP عملاً تک‌مسیر می‌شود. این دقیقاً همان چیزی است که وقتی می‌پرسند «چرا فقط یکی از uplinkها داغ است» باید چک کنید. چک‌سام UDP در IPv4 معمولاً صفر ارسال می‌شود.

محاسبه سربار و MTU

جزء Underlay IPv4 Underlay IPv6
Outer Ethernet 14 14
Outer IP 20 40
Outer UDP 8 8
VXLAN Header 8 8
مجموع سربار (بایت) 50 70
حداقل MTU لینک underlay برای فریم ۱۵۰۰ بایتی مستأجر 1550 1570
هشدار RFC: طبق RFC 7348 ، VTEP پکت VXLAN را fragment نمی‌کند و VTEP مقصد می‌تواند قطعه‌های fragment‌شده را بی‌صدا دور بریزد. پس MTU ناکافی در underlay یعنی گم شدن بی‌صدای بسته‌های بزرگ. علامت کلاسیکش را حفظ کنید: ping کوچک جواب می‌دهد، اما انتقال فایل، HTTPS یا backup قطع می‌شود. به همین دلیل سیسکو MTU ۹۲۱۶ را روی کل مسیر توصیه می‌کند.
داده‌پلن VXLAN

Cisco Live BRKDCN-1999: فریم اصلی داخل تونل VXLAN و پورت UDP 4789

مسیر گام‌به‌گام یک فریم: Host-A تا Host-B

فرض کنید Host-A پشت Leaf-1 و Host-B پشت Leaf-2 است. هر دو در VLAN 10 هستند و این VLAN روی هر دو leaf به VNI 10010 نگاشت شده. آدرس VTEP روی Leaf-1 برابر 10.0.1.11 و روی Leaf-2 برابر 10.0.1.12 است.

مسیر پکت در VXLAN EVPN

Cisco Live BRKDCN-1999: VTEP مبدأ با اطلاعات EVPN فریم را با VNI کپسوله و به VTEP مقصد می‌فرستد

گام کجا چه اتفاقی می‌افتد
۱ Host-A یک فریم معمولی اترنت به MAC-B می‌فرستد. سرور هیچ خبری از VXLAN ندارد.
۲ Leaf-1 (VTEP مبدأ) از روی VLAN ورودی VNI 10010 را پیدا می‌کند و در جدولش می‌بیند MAC-B پشت 10.0.1.12 است.
۳ Leaf-1 هدر VXLAN با VNI 10010 ، هدر UDP با پورت مقصد 4789 ، هدر IP از 10.0.1.11 به 10.0.1.12 و در آخر اترنت بیرونی را اضافه می‌کند.
۴ Spine فقط بر اساس IP مقصد بیرونی مسیریابی می‌کند؛ هش پورت مبدأ UDP جریان‌ها را روی ECMP پخش می‌کند.
۵ Leaf-2 (VTEP مقصد) VNI را چک می‌کند، هدرهای بیرونی را برمی‌دارد و فریم اصلی را روی VLAN 10 به Host-B تحویل می‌دهد.
۶ یادگیری در Flood & Learn ، Leaf-2 همین‌جا یاد می‌گیرد MAC-A پشت 10.0.1.11 است. در EVPN این اطلاعات از قبل با BGP رسیده است.

اگر مقصد هنوز ناشناخته باشد چه؟ Host-A اول یک ARP Request (broadcast) می‌فرستد که باید به همه VTEPهای عضو VNI 10010 برسد. اینجاست که بحث ترافیک BUM پیش می‌آید.

ترافیک BUM: Multicast یا Ingress Replication

BUM یعنی Broadcast ، Unknown unicast و Multicast ؛ ترافیکی که باید به همه VTEPهای یک VNI برسد. حتی با BGP EVPN هم به روشی برای رساندن این ترافیک نیاز داریم. دو راه داریم.

روش ۱ — Multicast در underlay: هر VNI به یک گروه multicast نگاشت می‌شود و VTEPهای عضو آن VNI به گروه join می‌شوند. VTEP مبدأ فقط یک نسخه می‌فرستد و خود underlay آن را روی درخت multicast تکثیر می‌کند. رایج‌ترین گزینه PIM ASM با RP روی spineها و Anycast RP برای افزونگی است.

روش ۲ — Ingress Replication (Head-End Replication): underlay هیچ multicastی ندارد. VTEP مبدأ به ازای هر VTEP عضو آن VNI یک نسخه unicast جدا می‌سازد. فهرست VTEPها یا دستی تعریف می‌شود یا در EVPN به‌طور خودکار از Route Type 3 ساخته می‌شود. همان‌طور که اسلاید سیسکو مثال می‌زند، ۱۰ مگابیت ترافیک BUM برای ۲۰ VTEP یعنی ۲۰۰ مگابیت روی uplink مبدأ.

Ingress Replication در VXLAN

Cisco Live BRKDCN-1621: در Ingress Replication برای هر VTEP ریموت یک کپی unicast ساخته می‌شود

معیار Multicast در Underlay Ingress Replication
نیاز به PIM و RP بله خیر
نسخه‌هایی که VTEP مبدأ می‌فرستد یک به تعداد VTEPهای مقصد
مصرف پهنای باند uplink مبدأ کم با تعداد VTEP رشد می‌کند
پیچیدگی عملیاتی بیشتر (PIM ، RP ، نگاشت گروه‌ها) کمتر
مناسب برای فابریک بزرگ یا BUM و multicast سنگین مستأجر فابریک کوچک و متوسط، یا جایی که multicast ممکن نیست
سقف تأییدشده روی Nexus 9000 (NX-OS 10.5) 512 VTEP مستقل در هر فابریک 1000 VTEP مستقل (با حداقل 32GB حافظه)
قاعده سرانگشتی ما: اگر تعداد leafها کم است و ARP Suppression در EVPN فعال است، Ingress Replication ساده‌ترین انتخاب است. در فابریک بزرگ یا جایی که مستأجرها multicast واقعی دارند (IPTV ، دوربین، بازار بورس)، multicast در underlay بهتر است. تغییر روش در فابریک در حال کار پیچیده و همراه با قطعی است؛ پس این تصمیم را از روز اول درست بگیرید.

کنترل‌پلن: Flood & Learn در برابر BGP EVPN

VXLAN به‌خودی‌خود فقط داده‌پلن است. سؤال اصلی این است: VTEP از کجا بفهمد MAC ریموت پشت کدام VTEP است؟ سیسکو دو روش را پشتیبانی می‌کند.

دو حالت VXLAN: Flood and Learn و EVPN

Cisco Live BRKDCN-1621: دو حالت VXLAN ؛ Flood & Learn در برابر VXLAN EVPN

۱) Flood & Learn

مدل اولیه RFC 7348 است و هیچ پروتکل کنترلی جداگانه‌ای ندارد. کشف VTEPهای دیگر و یادگیری MACهای دوردست از روی خود ترافیک داده انجام می‌شود، درست مثل یک سوئیچ معمولی. روی کاغذ ساده است؛ در عمل در مقیاس بزرگ flooding و وابستگی به multicast دردسر عملیاتی می‌آورد، گیت‌وی باید متمرکز باشد و جابه‌جایی VM بهینه نیست.

۲) MP-BGP EVPN (مسیر توصیه‌شده)

در EVPN یادگیری MAC و IP میزبان‌ها از داده‌پلن به کنترل‌پلن منتقل می‌شود. هر VTEP میزبان‌های محلی خودش را یاد می‌گیرد و آن‌ها را در BGP با address-family l2vpn evpn اعلام می‌کند. بقیه VTEPها این مسیرها را می‌گیرند و مستقیم در جدول forwarding نصب می‌کنند، بدون flood.

مقایسه کنترل‌پلن Flood and Learn با EVPN

Cisco Live BRKDCN-1621: مقایسه کنترل‌پلن RFC 7348 با EVPN (RFC 8365)

معیار Flood & Learn (RFC 7348) BGP EVPN (RFC 7432 / 8365)
کشف VTEPها از روی ترافیک و multicast از BGP (Route Type 3)
یادگیری MAC ریموت داده‌پلن، بعد از اولین flood کنترل‌پلن، پیش از اولین بسته (Route Type 2)
ARP flood در کل VNI ARP Suppression ؛ پاسخ محلی leaf
گیت‌وی پیش‌فرض متمرکز (HSRP/VRRP) Distributed Anycast Gateway روی همه leafها
مسیریابی بین subnetها خارج از overlay یا VRF-lite دستی Symmetric IRB با L3VNI
چندمستأجری محدود VRF + RD/RT مثل MPLS L3VPN
امنیت کنترل‌پلن هر VTEP عضو گروه multicast پذیرفته می‌شود فقط VTEPهای شناخته‌شده در BGP ؛ احراز هویت MD5 نشست‌ها
جایگاه امروز آزمایشگاه یا مهاجرت موقت استاندارد فابریک‌های Nexus و Catalyst
EVPN کنترل‌پلن VXLAN

Cisco Live BRKDCN-1621: EVPN با MP-BGP به‌عنوان کنترل‌پلن و VXLAN به‌عنوان داده‌پلن

Route Typeهای EVPN و RD/RT

EVPN اطلاعاتش را در قالب چند نوع مسیر (Route Type) منتقل می‌کند. در فابریک VXLAN روزمره بیشتر با Type 2 ، 3 و 5 سروکار دارید؛ Type 1 و 4 وقتی به کار می‌آیند که Multi-Homing استاندارد با ESI راه بیندازید.

Route Typeهای BGP EVPN

Cisco Live BRKDCN-1621: Route Typeهای ۱ تا ۵ در RFC 7432 و Draft مربوط به IP Prefix

Route Type نام کاربرد در VXLAN
1 Ethernet Auto-Discovery Multi-Homing با ESI ، همگرایی سریع و aliasing
2 MAC/IP Advertisement اعلام هر میزبان با MAC و IP ؛ پایه ARP Suppression و host routing
3 Inclusive Multicast Ethernet Tag اعلام عضویت VTEP در هر VNI ؛ ساخت فهرست Ingress Replication
4 Ethernet Segment انتخاب Designated Forwarder در Multi-Homing
5 IP Prefix اعلام subnetها و مسیرهای خارجی، مثلاً از Border Leaf
6 ، 7 ، 8 SMET و IGMP Join/Leave Sync بهینه‌سازی multicast مستأجر (TRM و IGMP snooping)

فرق دو Route Type پرکاربرد را این اسلاید سیسکو خوب نشان می‌دهد: Type 2 حامل MAC (و در صورت وجود IP /32) با L2VNI و در صورت نیاز L3VNI است؛ Type 5 حامل prefix با طول متغیر، L3VNI و Router MAC است و از redistribute یا پروتکل مسیریابی می‌آید.

EVPN Route Type 2 و Route Type 5

Cisco Live BRKDCN-2951: فیلدهای اجباری و اختیاری Route Type 2 و Route Type 5

RD و RT ؛ چندمستأجری به سبک L3VPN

EVPN سازوکار آشنای MPLS L3VPN را به ارث برده است. Route Distinguisher (RD) مسیرهای یکسان در VRFهای مختلف را از هم جدا می‌کند. Route Target (RT) به‌صورت BGP Extended Community حمل می‌شود و تعیین می‌کند هر مسیر وارد کدام VRF یا MAC-VRF شود. به همین دلیل send-community extended روی همه peerهای EVPN الزامی است.

VRF و RD و RT در MP-BGP EVPN

Cisco Live BRKDCN-1621: VRF ، Route Distinguisher و Route Target در MP-BGP

در NX-OS می‌شود RD و RT را خودکار ساخت: RD از Router-ID و VNI ، و RT به شکل ASN:VNI. توصیه سیسکو: در فابریک تمام‌سیسکو با iBGP از حالت خودکار استفاده کنید. در طراحی eBGP با ASهای مختلف یا محیط چندبرندی، RT را دستی تنظیم کنید یا از rewrite-evpn-rt-asn کمک بگیرید.

Anycast Gateway و Symmetric IRB

تا اینجا درباره bridging داخل یک subnet حرف زدیم. اما سرورها باید با subnetهای دیگر و بیرون فابریک هم حرف بزنند. EVPN این را با سه ابزار حل می‌کند: Distributed Anycast Gateway ، مدل Symmetric IRB و Border Leaf.

Distributed Anycast Gateway

در شبکه سنتی گیت‌وی هر subnet روی یک یا دو سوئیچ هسته می‌نشیند (HSRP یا VRRP) و همه ترافیک مسیریابی‌شده باید تا آنجا برود و برگردد. در EVPN همه leafهایی که آن subnet را دارند، با IP و MAC مجازی کاملاً یکسان گیت‌وی هستند. ترافیک هر سرور در اولین hop ، یعنی leaf محلی خودش، مسیریابی می‌شود. وقتی VM به leaf دیگری می‌رود، گیت‌وی همان است و حتی لازم نیست جدول ARP خودش را عوض کند.

Distributed Anycast Gateway

Cisco Live BRKDCN-1999: IP و MAC یکسان Anycast Gateway روی همه VTEPهای یک VNI

Symmetric در برابر Asymmetric IRB

در Symmetric IRB دو مفهوم جدید داریم. اول L3VNI: هر VRF یک VNI اختصاصی دارد که روی همه VTEPهای آن VRF یکسان است و به VTEP مقصد می‌گوید بسته را در کدام VRF مسیریابی کند. دوم Router MAC: هر VTEP یک MAC سیستمی دارد که با BGP اعلام می‌شود و در بسته‌های مسیریابی‌شده MAC مقصد داخلی می‌شود. تصویر زیر از راهنمای رسمی Catalyst 9000 فرق مسیر ترافیک داخل subnet (L2VNI) و بین subnetها (L3VNI) را نشان می‌دهد.

ترافیک L2VNI و L3VNI در BGP EVPN VXLAN

راهنمای رسمی Catalyst 9300: ترافیک داخل subnet از L2VNI و بین subnetها از L3VNI

مسیر یک بسته بین دو subnet در Symmetric IRB:

  1. سرور بسته را به MAC مجازی Anycast Gateway روی leaf محلی می‌فرستد.
  2. Leaf مبدأ در VRF مستأجر lookup لایه ۳ انجام می‌دهد، MAC مقصد داخلی را به Router MAC leaf مقصد تغییر می‌دهد و بسته را با L3VNI کپسوله می‌کند.
  3. Leaf مقصد بعد از دکپسوله می‌بیند MAC مقصد مال خودش است، در VRF مشخص‌شده با L3VNI دوباره lookup می‌کند و بسته را به سرور تحویل می‌دهد.
معیار Asymmetric IRB Symmetric IRB
Lookup در VTEP مبدأ Routing و Bridging Routing و Bridging
Lookup در VTEP مقصد فقط Bridging Routing و Bridging
VNI داخل بسته مسیریابی‌شده L2VNI مقصد L3VNI مخصوص VRF
آنچه هر VTEP باید داشته باشد همه L2VNIهای فابریک فقط VNIهای محلی + L3VNI
مقیاس جدول ARP/MAC ضعیف خوب
پیاده‌سازی سیسکو — مدل استاندارد NX-OS و IOS XE

Border Leaf و اتصال به بیرون

Border Leaf داخل فابریک مثل هر VTEP دیگری EVPN صحبت می‌کند و در هر VRF مستأجر با روتر یا فایروال لبه با eBGP یا OSPF مسیر رد و بدل می‌کند؛ معمولاً VRF-lite با یک subinterface برای هر مستأجر. مسیرهای بیرونی به‌صورت Route Type 5 وارد فابریک می‌شوند. توصیه سیسکو: مسیرهای بیرونی تا حد ممکن summarize شوند یا فقط یک default وارد فابریک شود، و در جهت مخالف فقط prefixها (نه host routeهای /32) به بیرون بروند.

Border Leaf و Border Spine در فابریک EVPN

راهنمای رسمی Catalyst 9300: اتصال فابریک به شبکه بیرونی از Border Leaf و Border Spine

طراحی Spine-Leaf ، vPC و Multi-Homing

فابریک VXLAN BGP EVPN معمولاً یک Clos سه‌مرحله‌ای است (Leaf و Spine) و در مقیاس خیلی بزرگ با لایه Super-Spine پنج‌مرحله‌ای می‌شود. هر leaf به همه spineها وصل است و هیچ leafی مستقیم به leaf دیگر وصل نیست؛ پس هر دو leaf دقیقاً دو hop از هم فاصله دارند.

توپولوژی spine leaf و نیاز به overlay

Cisco Live BRKDCN-1621: تکامل دیتاسنتر و نیاز به overlay روی spine/leaf

  • Spine هیچ اطلاعاتی از VLAN ، MAC ، ARP یا VRF مستأجرها ندارد و فقط مسیرهای EVPN را منعکس می‌کند. کانفیگش ساده و پایدار است.
  • پورت بیشتر می‌خواهید؟ leaf اضافه کنید. پهنای باند بیشتر؟ spine اضافه کنید؛ هر spine یک مسیر ECMP تازه و oversubscription کمتر می‌آورد.
  • برای اضافه کردن امن spine جدید در OSPF از max-metric router-lsa on-startup و در IS-IS از set-overload-bit on-startup استفاده کنید تا سوئیچ قبل از آماده شدن کامل وارد مسیر ترافیک نشود.
  • سیسکو توصیه می‌کند نقش Border و BGW را از spine جدا کنید تا طراحی ماژولار بماند و ریسک تغییرات کم شود.

vPC و Anycast VTEP در برابر EVPN Multi-Homing

برای اتصال دوطرفه سرور یا فایروال به دو leaf دو راه داریم:

معیار vPC با Anycast VTEP EVPN Multi-Homing (ESI)
سازوکار دو leaf یک IP مشترک (secondary روی loopback1) دارند و برای بقیه فابریک یک VTEP دیده می‌شوند استاندارد EVPN با Route Type 1 و 4 ؛ بدون peer-link
peer-link و keepalive لازم است (یا vPC Fabric Peering) ندارد
چندبرندی مخصوص سیسکو استاندارد
تجربه میدانی بسیار رایج و جاافتاده روی Nexus رو به رشد؛ پیش از استفاده Platform Matrix را چک کنید
نکته حیاتی نگاشت VLAN/VNI و آدرس secondary روی دو عضو باید یکسان باشد، وگرنه NVE روی secondary خاموش می‌شود ESI و LACP system-id روی همه اعضای segment یکسان
advertise-pip: در vPC ، مسیرهای Type 5 و میزبان‌هایی که فقط پشت یکی از دو عضو هستند باید با IP اختصاصی همان سوئیچ (PIP) اعلام شوند، نه IP مشترک؛ وگرنه نیمی از ترافیک به عضو اشتباه می‌رود و از peer-link رد می‌شود. دستورهای advertise-pip زیر BGP و advertise virtual-rmac زیر nve1 را در طراحی vPC فراموش نکنید.

VXLAN EVPN Multi-Site و اتصال دیتاسنترها

وقتی دیتاسنتر دوم یا سایت DR اضافه می‌شود، وسوسه اول این است که فابریک را «بکشیم» و یک فابریک بزرگ با دو سر بسازیم. سیسکو برای این کار معماری VXLAN EVPN Multi-Site را طراحی کرده که به گفته White Paper رسمی Multi-Site، «سلسله‌مراتب را به شبکه overlay برمی‌گرداند»: هر سایت فابریک مستقل خودش را دارد و سایت‌ها فقط از طریق Border Gateway (BGW) به هم وصل می‌شوند.

VXLAN EVPN Multi-Site و Border Gateway

White Paper رسمی سیسکو: معماری EVPN Multi-Site ؛ overlay داخل سایت و بین سایت‌ها از طریق BGW

  • BGW بین شبکه داخلی سایت و شبکه بین سایت‌ها (DCI) می‌نشیند و VTEPهای داخلی را پنهان می‌کند. در شبکه بین سایت‌ها فقط IP خود BGWها دیده می‌شود.
  • بین سایت‌ها eBGP استفاده می‌شود و هر سایت AS خودش را دارد؛ یعنی دامنه خرابی و کنترل هر سایت جدا می‌ماند.
  • BGWها برای BUM بین سایت‌ها همیشه Ingress Replication استفاده می‌کنند، اما داخل هر سایت می‌توانید multicast یا IR داشته باشید. پس شبکه بین سایت‌ها به multicast نیازی ندارد؛ فقط IP و MTU بزرگ.
  • با Multi-Site می‌شود فابریک‌های قدیمی (STP ، vPC ، FabricPath) را هم به فابریک جدید وصل کرد.

Anycast BGW ؛ همه فعال، بدون وابستگی

در مدل Anycast ، همه BGWهای یک سایت یک Virtual IP مشترک دارند که برای همه ترافیک داده بین سایت‌ها استفاده می‌شود. به کمک ECMP همه BGWها هم‌زمان فعال‌اند و اگر یکی بیفتد، بقیه بلافاصله بار را برمی‌دارند. هر BGW یک IP اختصاصی (PIP) هم دارد که برای BUM و انتخاب Designated Forwarder استفاده می‌شود.

Anycast Border Gateway و Virtual IP

White Paper رسمی سیسکو: Anycast BGW با Virtual IP مشترک و PIP اختصاصی هر BGW

مشخصه (NX-OS 10.5) مقدار رسمی سیسکو
تعداد BGW در هر سایت تا 6 عدد در حالت Anycast (روی 9332C/9364C تا 4) ؛ 2 عدد در حالت vPC BGW
تعداد سایت تا 128 سایت (با CloudSec تا 10 سایت)
پلتفرم‌های BGW Nexus 9300-EX/FX/FX2/FX3/GX/GX2 و 9500 با کارت‌های EX/FX/GX و مدل‌های جدیدتر طبق Release Notes
Anycast و vPC BGW در یک سایت هم‌زمان پشتیبانی نمی‌شود
سرویس لایه ۲ محلی روی Anycast BGW پشتیبانی نمی‌شود؛ فایروال و L4-L7 را پشت یک leaf معمولی بگذارید
لایسنس Multi-Site در DCN Advantage ؛ رمزنگاری CloudSec با add-on امنیتی

هسته کانفیگ یک Anycast BGW روی NX-OS بر اساس راهنمای رسمی Multi-Site:

evpn multisite border-gateway 100
  delay-restore time 300

interface loopback100
  description Multi-Site Virtual IP (same on all BGWs of site)
  ip address 10.111.111.1/32
  ip router ospf UNDERLAY area 0.0.0.0

interface nve1
  no shutdown
  host-reachability protocol bgp
  source-interface loopback1
  multisite border-gateway interface loopback100
  member vni 10010
    multisite ingress-replication
    ingress-replication protocol bgp
  member vni 50000 associate-vrf

interface Ethernet1/1
  description DCI link
  evpn multisite dci-tracking

interface Ethernet1/49
  description to Spine (site-internal)
  evpn multisite fabric-tracking

router bgp 65001
  neighbor 172.16.0.2
    remote-as 65002
    update-source loopback0
    ebgp-multihop 5
    peer-type fabric-external
    address-family l2vpn evpn
      send-community
      send-community extended
      rewrite-evpn-rt-asn
VXLAN Multi-Site یا OTV؟ OTV راهکار قدیمی DCI سیسکو روی Nexus 7000 بود. برای پروژه جدید، سیسکو صراحتاً EVPN Multi-Site را جایگزین آن معرفی می‌کند: یک فناوری واحد داخل و بین دیتاسنترها، کنترل‌پلن استاندارد، و BUM کنترل‌شده.

تجهیزات، مقیاس و لایسنس

قبل از خرید همیشه Platform Support Matrix همان نسخه NX-OS یا IOS XE را چک کنید. جدول زیر تصویر کلی است، نه مجوز خرید کورکورانه.

خانواده مدل‌ها / سیستم‌عامل نقش رایج در VXLAN
Nexus 9300 EX ، FX ، FX2 ، FX3 ، GX ، GX2 و نسل‌های H ؛ NX-OS Leaf ، Border Leaf ، BGW ، Spine کوچک ؛ کپسوله line-rate
Nexus 9500 / 9800 شاسی با کارت‌لاین Cloud Scale ؛ NX-OS Spine بزرگ و Route Reflector ؛ BGW
Nexus 9000 در ACI mode همان سخت‌افزار با سیستم‌عامل ACI و کنترلر APIC فابریک مبتنی بر VXLAN داخلی؛ CLI کلاسیک VXLAN ندارد
Catalyst 9300 / 9300X IOS XE ، لایسنس Network Advantage Leaf پردیس و اتاق سرور کوچک
Catalyst 9400 / 9500 / 9600 IOS XE ، لایسنس Network Advantage Spine ، Border و هسته پردیس
روترهای IOS XE ASR 1000 ، Catalyst 8000 اتصال فابریک به WAN و DCI (امکانات بسته به نسخه)
Nexus 7000 / 5600 نسل قدیمی NX-OS فابریک‌های قدیمی؛ برای پروژه جدید پیشنهاد نمی‌شود
Nexus Dashboard Fabric Controller نرم‌افزار (NDFC) ساخت و مدیریت خودکار فابریک NX-OS با قالب‌های آماده
سوئیچ سیسکو نکسوس 93180YC-FX3 به‌عنوان VXLAN Leaf
Cisco Nexus 93180YC-FX3 ؛ یکی از رایج‌ترین leafهای VXLAN EVPN (تصویر دیتاشیت رسمی)

برای Access اداری و PoE همان مسیر سوئیچ سیسکو سری ۹۲۰۰ کافی است؛ Catalyst 9200 از BGP EVPN VXLAN پشتیبانی نمی‌کند و جای ToR دیتاسنتر نیست. هسته شاسی‌دار پردیس را در سوئیچ سیسکو سری ۹۶۰۰ و leaf محبوب دیتاسنتر را در معرفی کامل Nexus 93180 ببینید.

مقیاس تأییدشده: Nexus 9300 در برابر Catalyst 9300

اعداد زیر از Verified Scalability Guide نسخه NX-OS 10.5(4)M و راهنمای مقیاس BGP EVPN VXLAN در Catalyst 9300 (IOS XE 17.15) است. این‌ها تست تک‌بعدی سیسکو هستند، نه ترکیب هم‌زمان همه سقف‌ها.

پارامتر Nexus 9300 (Cloud Scale) Catalyst 9300
تعداد VTEP / Leaf در فابریک 1000 VTEP مستقل با IR ، یا 350 جفت vPC 500 Leaf
Layer 2 VNI 3900 1024 (روی 9300X: 750)
Layer 3 VNI / VRF 2000 256
MAC در EVPN 96,000 32,000 ریموت (محلی تا 64,000 بسته به مدل)
IPv4 Host Route 471,000 32,000 (روی UB/UBX تا 48,000)
همسایه EVPN روی Spine — 250

لایسنس: کدام فیچر در کدام سطح؟

قابلیت Nexus 9000 (NX-OS) Catalyst 9000 (IOS XE)
VXLAN BGP EVPN پایه DCN Essentials Network Advantage
VXLAN EVPN Multi-Site (BGW) DCN Advantage —
Tenant Routed Multicast (TRM) DCN Advantage Network Advantage (طبق Feature Navigator)
CloudSec (رمزنگاری بین سایت‌ها) add-on امنیتی جداگانه —

منبع: Cisco NX-OS Licensing Options Guide و Cisco Feature Navigator. روی کاغذ لایسنس Essentials برای شروع کافی است؛ در عمل اگر دیتاسنتر دوم در افق طرح‌تان است، از روز اول Advantage را در بودجه ببینید.

کانفیگ کامل روی Nexus (NX-OS)

یک فابریک کوچک ولی کامل می‌سازیم: دو Spine به‌عنوان Route Reflector ، دو Leaf به‌عنوان VTEP ، یک L2VNI با Anycast Gateway و یک VRF مستأجر با L3VNI. الگو بر پایه راهنمای طراحی و راهنمای پیکربندی VXLAN BGP EVPN سیسکو است. این کانفیگ برای آموزش و لابراتوار است؛ پیش از شبکه عملیاتی، نسخه نرم‌افزار، ظرفیت‌ها و الزامات امنیتی خودتان را چک کنید.

مؤلفه مقدار
BGP AS (iBGP) 65000
Underlay OSPF ، لینک‌های IP unnumbered ، area 0 ، MTU 9216
loopback0 / loopback1 Router-ID و BGP / آدرس VTEP (منبع NVE)
Spine-1 / Spine-2 Lo0: 10.0.0.1 / 10.0.0.2
Leaf-1 Lo0 10.0.0.11 ، Lo1 10.0.1.11
Leaf-2 Lo0 10.0.0.12 ، Lo1 10.0.1.12
VLAN 10 ↔ L2VNI 10010 ؛ شبکه 192.168.10.0/24 ؛ گیت‌وی 192.168.10.1
VRF ↔ L3VNI TENANT-A ↔ 50000 (VLAN 3900)
BUM Ingress Replication با BGP (بدون multicast)

Leaf-1 روی Nexus 9000

! ===== 1) Features =====
feature ospf
feature bgp
feature interface-vlan
feature vn-segment-vlan-based
feature nv overlay
feature fabric forwarding
nv overlay evpn

! ===== 2) Underlay =====
router ospf UNDERLAY
  router-id 10.0.0.11

interface loopback0
  description Router-ID / BGP
  ip address 10.0.0.11/32
  ip router ospf UNDERLAY area 0.0.0.0

interface loopback1
  description VTEP (NVE source)
  ip address 10.0.1.11/32
  ip router ospf UNDERLAY area 0.0.0.0

interface Ethernet1/49
  description to Spine-1
  no switchport
  mtu 9216
  medium p2p
  ip unnumbered loopback0
  ip ospf network point-to-point
  ip router ospf UNDERLAY area 0.0.0.0
  no shutdown
! Ethernet1/50 to Spine-2: same config

! ===== 3) Tenant VRF + L3VNI =====
vlan 3900
  vn-segment 50000

vrf context TENANT-A
  vni 50000
  rd auto
  address-family ipv4 unicast
    route-target both auto
    route-target both auto evpn

interface Vlan3900
  no shutdown
  mtu 9216
  vrf member TENANT-A
  ip forward

! ===== 4) L2VNI + Distributed Anycast Gateway =====
fabric forwarding anycast-gateway-mac 2020.0000.00aa

vlan 10
  vn-segment 10010

interface Vlan10
  no shutdown
  vrf member TENANT-A
  ip address 192.168.10.1/24
  fabric forwarding mode anycast-gateway

evpn
  vni 10010 l2
    rd auto
    route-target import auto
    route-target export auto

! ===== 5) VTEP (NVE) =====
interface nve1
  no shutdown
  host-reachability protocol bgp
  source-interface loopback1
  member vni 10010
    suppress-arp
    ingress-replication protocol bgp
  member vni 50000 associate-vrf

! ===== 6) Overlay: iBGP EVPN to Spines (RR) =====
router bgp 65000
  router-id 10.0.0.11
  neighbor 10.0.0.1
    remote-as 65000
    update-source loopback0
    address-family l2vpn evpn
      send-community
      send-community extended
  neighbor 10.0.0.2
    remote-as 65000
    update-source loopback0
    address-family l2vpn evpn
      send-community
      send-community extended
  vrf TENANT-A
    address-family ipv4 unicast
      advertise l2vpn evpn

! ===== 7) Server port =====
interface Ethernet1/1
  switchport
  switchport mode access
  switchport access vlan 10
  no shutdown

Leaf-2 دقیقاً همین کانفیگ را دارد و فقط آدرس‌ها عوض می‌شوند: loopback0 = 10.0.0.12 و loopback1 = 10.0.1.12. گیت‌وی و MAC مجازی Anycast Gateway روی هر دو یکسان است.

Spine-1 به‌عنوان Route Reflector

feature ospf
feature bgp
nv overlay evpn

router ospf UNDERLAY
  router-id 10.0.0.1

interface loopback0
  ip address 10.0.0.1/32
  ip router ospf UNDERLAY area 0.0.0.0

interface Ethernet1/1
  description to Leaf-1
  no switchport
  mtu 9216
  medium p2p
  ip unnumbered loopback0
  ip ospf network point-to-point
  ip router ospf UNDERLAY area 0.0.0.0
  no shutdown
! link to Leaf-2: same config

router bgp 65000
  router-id 10.0.0.1
  address-family l2vpn evpn
  template peer VTEP-PEERS
    remote-as 65000
    update-source loopback0
    address-family l2vpn evpn
      send-community
      send-community extended
      route-reflector-client
  neighbor 10.0.0.11
    inherit peer VTEP-PEERS
  neighbor 10.0.0.12
    inherit peer VTEP-PEERS

روی spineی که فقط نقش spine دارد، feature nv overlay لازم نیست؛ nv overlay evpn برای فعال شدن address-family مربوط به EVPN کافی است.

دستور کاربرد
feature vn-segment-vlan-based امکان نگاشت VLAN به VNI
feature nv overlay فعال‌سازی VXLAN و اینترفیس NVE
nv overlay evpn فعال‌سازی کنترل‌پلن EVPN
vn-segment 10010 نگاشت VLAN 10 به VNI 10010
vni 50000 زیر vrf context تعیین L3VNI برای VRF
ip forward روی Vlan3900 مسیریابی روی SVI مربوط به L3VNI بدون آدرس IP
fabric forwarding mode anycast-gateway فعال کردن Distributed Anycast Gateway روی SVI
host-reachability protocol bgp استفاده از EVPN به‌جای Flood & Learn
suppress-arp پاسخ محلی به ARP از روی اطلاعات EVPN
ingress-replication protocol bgp کپی BUM بر اساس فهرست VTEPهای Route Type 3
member vni 50000 associate-vrf اتصال L3VNI به NVE
send-community extended ارسال Route Target ؛ بدون آن هیچ مسیری import نمی‌شود
TCAM Carving: روی بعضی پلتفرم‌های Nexus ، قابلیت‌هایی مثل ARP Suppression به تخصیص منطقه TCAM و ریبوت سوئیچ نیاز دارند (مثلاً hardware access-list tcam region arp-ether). قبل از پنجره تغییرات، راهنمای پیکربندی مدل خودتان را بخوانید.

کانفیگ روی Catalyst 9000 (IOS XE)

در پردیس همین منطق روی Catalyst 9000 با نحو کمی متفاوت پیاده می‌شود. نمونه زیر بر پایه راهنمای رسمی BGP EVPN VXLAN برای Catalyst 9300 است.

hostname C9300-LEAF-1
!
vrf definition TENANT-A
 rd 10.0.0.21:1
 !
 address-family ipv4
  route-target export 65000:50000
  route-target import 65000:50000
  route-target export 65000:50000 stitching
  route-target import 65000:50000 stitching
 exit-address-family
!
ip routing
system mtu 9198
!
l2vpn evpn
 replication-type ingress
 router-id Loopback0
 default-gateway advertise
!
l2vpn evpn instance 10 vlan-based
 encapsulation vxlan
!
vlan configuration 10
 member evpn-instance 10 vni 10010
vlan configuration 3900
 member vni 50000
!
interface Loopback0
 ip address 10.0.0.21 255.255.255.255
 ip ospf 1 area 0
!
interface Vlan3900
 description L3VNI core SVI
 vrf forwarding TENANT-A
 ip unnumbered Loopback0
 no autostate
!
interface Vlan10
 description L2VNI 10010 gateway
 mac-address 2020.0000.00aa
 vrf forwarding TENANT-A
 ip address 192.168.10.1 255.255.255.0
!
interface nve1
 no ip address
 source-interface Loopback0
 host-reachability protocol bgp
 member vni 10010 ingress-replication
 member vni 50000 vrf TENANT-A
!
router bgp 65000
 bgp router-id interface Loopback0
 no bgp default ipv4-unicast
 neighbor 10.0.0.1 remote-as 65000
 neighbor 10.0.0.1 update-source Loopback0
 !
 address-family l2vpn evpn
  neighbor 10.0.0.1 activate
  neighbor 10.0.0.1 send-community both
 exit-address-family
 !
 address-family ipv4 vrf TENANT-A
  advertise l2vpn evpn
  redistribute connected
 exit-address-family
موضوع Nexus (NX-OS) Catalyst 9000 (IOS XE)
نگاشت VLAN به VNI vlan 10 → vn-segment vlan configuration → member evpn-instance … vni
EVPN Instance زیر evpn با vni … l2 l2vpn evpn instance … vlan-based
SVI مربوط به L3VNI ip forward ip unnumbered + no autostate
Anycast Gateway fabric forwarding mode anycast-gateway MAC یکسان روی SVIها یا default-gateway advertise
RT برای VRF route-target both auto evpn کلیدواژه stitching
کنترل‌پلن Flood & Learn یا EVPN فقط BGP EVPN ؛ بدون host-reachability protocol bgp تونل بالا نمی‌آید
Underlay OSPF ، IS-IS ، eBGP OSPF ، IS-IS ، BGP ؛ GRE در underlay پشتیبانی نمی‌شود

عیب‌یابی از پایین به بالا

عیب‌یابی VXLAN همیشه از پایین به بالا است: اول underlay ، بعد BGP EVPN ، بعد تونل‌ها و در آخر میزبان‌ها. تا underlay سالم نباشد، نگاه کردن به لایه‌های بالا وقت تلف کردن است.

مرحله دستور (NX-OS) انتظار
۱. Underlay show ip ospf neighbors همسایگی FULL با همه spineها
۱. Underlay show ip route 10.0.1.12 مسیر به loopback VTEP مقابل؛ ترجیحاً چند مسیر ECMP
۱. Underlay ping 10.0.1.12 source 10.0.1.11 packet-size 8972 df-bit پاسخ موفق یعنی MTU مسیر برای jumbo کافی است
۲. Overlay show bgp l2vpn evpn summary نشست EVPN با هر RR در وضعیت Established
۲. Overlay show bgp l2vpn evpn وجود مسیرهای Type 2 ، 3 و 5
۳. تونل show nve peers peerها Up با LearnType برابر CP
۳. تونل show nve vni VNIها Up ؛ CP یعنی کنترل‌پلن، DP یعنی Flood & Learn
۴. میزبان show l2route evpn mac-ip all MAC و IP میزبان‌های محلی و دوردست
۴. میزبان show ip arp suppression-cache detail ورودی‌های ARP Suppression
۴. میزبان show ip route vrf TENANT-A مسیر /32 میزبان‌های دوردست از طریق BGP
vPC show vpc و show vpc consistency-parameters global peer adjacency برقرار و consistency موفق

معادل‌های Catalyst: show nve peers ، show l2vpn evpn mac ، show l2vpn evpn evi detail و show bgp l2vpn evpn summary.

علامت علت محتمل راه‌حل
ping کوچک موفق، ترافیک بزرگ قطع MTU ناکافی یا ناهمسان در underlay MTU 9216 روی کل مسیر؛ دو سر هر لینک یکسان
show nve peers خالی است نشست BGP برقرار نیست یا loopback VTEP در underlay اعلام نشده بررسی OSPF ، BGP و مسیر به loopback1
BGP برقرار است ولی مسیر import نمی‌شود Extended Community ارسال نمی‌شود یا RT مطابقت ندارد send-community extended و بررسی RT دو طرف
RT خودکار با eBGP کار نمی‌کند RT خودکار به شکل ASN:VNI است و ASها فرق دارند RT دستی یا rewrite-evpn-rt-asn
میزبان بعد از جابه‌جایی به گیت‌وی نمی‌رسد MAC مجازی Anycast Gateway روی leafها یکسان نیست یک anycast-gateway-mac واحد در کل فابریک
مسیریابی بین subnetها کار نمی‌کند L3VNI ، VLAN یا SVI آن روی یکی از leafها تعریف نشده L3VNI یکسان روی همه VTEPهای آن VRF
NVE روی یکی از اعضای vPC خاموش است ناهمسانی نگاشت VNI یا آدرس secondary یکسان‌سازی کانفیگ دو عضو vPC
BUM به بعضی VTEPها نمی‌رسد روش replication در VTEPها یکسان نیست یک روش (multicast یا IR) و نگاشت گروه یکسان در کل سایت
فقط یکی از uplinkها ترافیک دارد آنتروپی کم پورت مبدأ UDP یا هش نامناسب بررسی load-balance hash و تعداد جریان‌ها

مهاجرت از شبکه قدیمی به VXLAN EVPN

کمتر پیش می‌آید فابریک را روی زمین خالی بسازیم. معمولاً یک شبکه سه‌لایه با STP یا vPC در حال کار است و باید سرویس‌ها را بدون قطعی جدی منتقل کنیم. جلسه Cisco Live با عنوان Migrate from your existing network to VXLAN EVPN (BRKDCN-2951) مسیر رسمی سیسکو را سه مرحله می‌داند: ساخت فابریک جدید، اتصال لایه ۲ و ۳ بین قدیم و جدید، و انتقال تدریجی workloadها.

اتصال لایه ۲ شبکه کلاسیک به VXLAN EVPN در مهاجرت

Cisco Live BRKDCN-2951: اتصال لایه ۲ بین Aggregation شبکه کلاسیک و Border فابریک VXLAN

گام کار نکته عملی
۱ پیدا کردن مرز L2/L3 در شبکه قدیمی معمولاً سوئیچ‌های Aggregation که HSRP دارند
۲ ساخت اتصال لایه ۳ بین دو شبکه از Border Leaf ، per-VRF با eBGP یا OSPF
۳ ساخت اتصال لایه ۲ یک Port-Channel دوطرفه (vPC به vPC) بین Aggregation و Border Leafها ؛ بدون loop
۴ هم‌تراز کردن MAC گیت‌وی MAC مجازی HSRP قدیمی و Anycast Gateway جدید باید یکی شوند تا جدول ARP سرورها عوض نشود
۵ تعیین محل گیت‌وی (FHRP) در دوره گذار گیت‌وی تا انتقال آخرین میزبان در شبکه قدیمی بماند، یا از ابتدا به فابریک منتقل شود؛ از NX-OS 10.2(3) هم‌زیستی HSRP و Anycast Gateway ممکن است
۶ انتقال workloadها با vMotion یا جابه‌جایی کابل؛ EVPN با Sequence Number جابه‌جایی را تشخیص می‌دهد
۷ جمع کردن اتصال‌های موقت بعد از انتقال کامل هر subnet ، SVI و اتصال لایه ۲ قدیمی حذف می‌شود
سه اشتباه رایج در مهاجرت: (۱) BPDU را نمی‌توان از روی تونل VXLAN عبور داد؛ پس اتصال لایه ۲ بین قدیم و جدید باید از نظر فیزیکی بدون loop باشد و Root STP در سمت شبکه قدیمی بماند. (۲) پیش از NX-OS 10.2(3) ، HSRP و Anycast Gateway برای یک subnet نمی‌توانستند هم‌زمان فعال باشند. (۳) هم‌تراز نکردن MAC گیت‌وی باعث می‌شود سرورهایی که ARP cache قدیمی دارند تا چند دقیقه قطع شوند.

امنیت در VXLAN

مهم‌ترین نکته امنیتی را همین اول بگوییم: VXLAN به‌خودی‌خود هیچ رمزنگاری یا احراز هویتی ندارد. RFC 7348 صراحتاً می‌گوید حمل ترافیک لایه ۲ روی IP سطح حمله را بزرگ‌تر می‌کند. هر کسی که بتواند یک بسته UDP با پورت مقصد 4789 به IP یک VTEP برساند، در تئوری می‌تواند فریم جعلی را داخل یک VNI تزریق کند. حملات کلاسیک لایه ۲ مثل ARP spoofing و DHCP جعلی هم داخل هر VNI همچنان ممکن است.

لایه اقدام ابزار سیسکو
Underlay ایزوله کردن کامل؛ هیچ مسیری از بیرون به loopbackهای VTEP نباشد طراحی شبکه، VRF مدیریت جدا
لبه فابریک مسدود کردن UDP/4789 ورودی از بیرون ACL روی Border و فایروال
کنترل‌پلن فقط VTEPهای شناخته‌شده در BGP ؛ احراز هویت نشست‌ها EVPN ، BGP MD5 / TCP-AO
بین سایت‌ها رمزنگاری ترافیک DCI CloudSec در Multi-Site ، MACsec روی لینک‌ها
داخل هر VNI جلوگیری از جعل ARP و DHCP DHCP Snooping ، Dynamic ARP Inspection ، First Hop Security
بین گروه‌ها micro-segmentation VXLAN GPO و SGT ، Cisco SD-Access
بین مستأجرها عبور ترافیک بین VRFها از فایروال، نه route leaking آزاد Service Leaf + فایروال
یک اصل را همیشه در ذهن داشته باشید: VRF و VNI ابزار جداسازی هستند، نه سیاست امنیتی. تصمیم اینکه چه کسی با چه کسی حرف بزند باید در فایروال یا سیاست گروه‌محور (SGT و GPO) گرفته شود.

کاربردهای واقعی

سناریو مسئله راهکار VXLAN در سیسکو
دیتاسنتر leaf/spine و ابر خصوصی رشد سرورها، VLAN زیاد، STP Nexus 9000 با VXLAN BGP EVPN و NDFC
جابه‌جایی زنده VM لایه ۲ مشترک بین رک و pod کشیدن subnet روی کل فابریک با Anycast Gateway
چندمستأجری و Colocation هر مستأجر شبکه و آدرس مستقل می‌خواهد L2VNI + VRF/L3VNI با RD و RT
DCI و سایت DR اتصال چند سایت با حفظ ایزولاسیون خرابی EVPN Multi-Site با BGW ؛ جایگزین OTV و VPLS
پردیس نرم‌افزارمحور سگمنت کاربران، IoT و مهمان Cisco SD-Access با داده‌پلن VXLAN-GPO و کنترل‌پلن LISP ، یا BGP EVPN روی Catalyst
مهاجرت از شبکه قدیمی سرورهای موجود روی VLAN هستند نگاشت VLAN به VNI روی leaf ؛ Border Leaf پل می‌زند
کانتینر و Kubernetes شبکه pod بین nodeها VTEP نرم‌افزاری روی node و اتصال به فابریک با BGP

کجا VXLAN نسازید؟ دفتر بیست‌نفره با یک سوئیچ Access و PoE. آنجا Catalyst و VLAN معمولی کاملاً کافی است. VXLAN پیچیدگی underlay ، MTU و عملیات می‌آورد و فایده‌اش وقتی است که واقعاً مقیاس، ترافیک east-west یا چند مستأجر دارید.

مزایا و محدودیت‌ها

مزیت محدودیت / هزینه
حدود ۱۶ میلیون سگمنت به‌جای ۴۰۹۴ سربار ۵۰ بایتی و حساسیت شدید به MTU
ECMP و استفاده از همه لینک‌ها؛ خداحافظی با STP در هسته تیم باید BGP ، VRF ، RD/RT و EVPN را بلد باشد
همگرایی سریع پروتکل مسیریابی وابستگی به ASIC ؛ همه سوئیچ‌ها VTEP سخت‌افزاری نیستند
جابه‌جایی آزاد workload بدون تغییر IP هر میزبان یک ورودی MAC ، ARP و BGP مصرف می‌کند؛ ظرفیت را قبل از خرید حساب کنید
گیت‌وی در اولین hop با IR ، ترافیک BUM سنگین به تعداد VTEPها کپی می‌شود
استاندارد باز و چندبرندی بدون رمزنگاری ذاتی
خودکارسازی آسان با NDFC یا Ansible ابزارهای مانیتورینگ قدیمی فقط هدر بیرونی را می‌بینند

مقایسه با FabricPath ، OTV ، Geneve و بقیه

فناوری لایه انتقال شناسه سگمنت کنترل‌پلن وضعیت امروز
VLAN (802.1Q) لایه ۲ ۱۲ بیت STP پایه شبکه دسترسی؛ برای فابریک بزرگ ناکافی
QinQ (802.1ad) لایه ۲ دو تگ ۱۲ بیتی STP کاربرد اپراتوری؛ مشکلات STP پابرجاست
FabricPath / TRILL لایه ۲ مسیریابی‌شده VLAN IS-IS نسل قبل؛ جایش را به VXLAN داده
OTV MAC-in-IP بین دیتاسنترها VLAN IS-IS DCI قدیمی سیسکو؛ جایگزین: EVPN Multi-Site
VPLS MPLS VLAN / VPN LDP یا BGP DCI اپراتوری؛ نیاز به MPLS
VXLAN + EVPN UDP/IP ۲۴ بیت MP-BGP EVPN استاندارد غالب دیتاسنتر و پردیس
NVGRE (RFC 7637) GRE/IP ۲۴ بیت تعریف‌نشده عملاً کنار گذاشته؛ ECMP ضعیف‌تر
Geneve (RFC 8926) UDP/IP ، پورت 6081 ۲۴ بیت + TLV متغیر رایج در مجازی‌سازی نرم‌افزاری

VXLAN جایگزین VLAN نیست، بلکه آن را گسترش می‌دهد؛ سرور همچنان روی VLAN وصل می‌شود و leaf آن را به VNI نگاشت می‌کند. FabricPath و TRILL مشکل STP را حل کردند اما به سخت‌افزار و پروتکل مخصوص لایه ۲ وابسته بودند، در حالی که VXLAN روی هر شبکه IP کار می‌کند. Geneve هدر انعطاف‌پذیرتری دارد، اما در دنیای سوئیچ‌های سخت‌افزاری و فابریک‌های چندبرندی، VXLAN EVPN پشتیبانی بسیار گسترده‌تری دارد.

کی سراغ VXLAN برویم؟ چک‌لیست شروع

سراغ VXLAN بروید وقتی:

  • دیتاسنتر یا اتاق سرورتان در حال رشد است و VLANها، STP و وابستگی به توپولوژی گلوگاه شده‌اند.
  • ماشین‌های مجازی باید آزادانه بین رک‌ها، podها یا دیتاسنترها جابه‌جا شوند.
  • به جداسازی واقعی بخش‌ها، مستأجرها یا تجهیزات حساس نیاز دارید.
  • می‌خواهید سایت DR را با یک overlay یکپارچه و کنترل‌شده به سایت اصلی وصل کنید.
  • در پردیس به سگمنت مبتنی بر هویت و سیاست گروه‌محور (SD-Access) فکر می‌کنید.
تصمیم پیشنهاد ما برای شروع
کنترل‌پلن از روز اول BGP EVPN ؛ Flood & Learn فقط برای لاب
Underlay OSPF point-to-point یا IS-IS ، IP unnumbered ، MTU 9216 ، loopback0 و loopback1 جدا
Overlay iBGP با دو spine به‌عنوان Route Reflector
BUM Ingress Replication برای فابریک کوچک؛ multicast با Anycast RP برای فابریک بزرگ
گیت‌وی Distributed Anycast Gateway با یک MAC مجازی در کل فابریک
سخت‌افزار دیتاسنتر Nexus 9300 Cloud Scale برای leaf ؛ Nexus 9300/9500 برای spine
سخت‌افزار پردیس Catalyst 9300/9500 با Network Advantage
سایت دوم EVPN Multi-Site با Anycast BGW و لایسنس DCN Advantage
عملیات NDFC یا قالب استاندارد + مستندسازی آدرس‌ها و VNIها از روز اول

قدرت واقعی VXLAN وقتی دیده می‌شود که با کنترل‌پلن MP-BGP EVPN همراه شود: ARP Suppression ، Anycast Gateway ، Symmetric IRB و چندمستأجری واقعی. امروز این زبان مشترک دیتاسنتر و پردیس مدرن است. اگر درست و از پایین (underlay) طراحی شود، زیرساختی می‌سازد که سال‌ها بدون بازطراحی بنیادین رشد می‌کند.

پرسش‌های متداول

آیا VXLAN جای VLAN را می‌گیرد؟
نه. سرورها همچنان روی VLAN به leaf وصل می‌شوند؛ VLAN فقط محلی به همان leaf می‌شود و leaf آن را به VNI سراسری نگاشت می‌کند.

آیا برای VXLAN حتماً multicast لازم است؟
نه. با BGP EVPN و Ingress Replication هیچ multicastی در underlay لازم نیست. multicast فقط یک انتخاب برای بهینه کردن ترافیک BUM در فابریک‌های بزرگ است.

روی Catalyst 9200 می‌شود VXLAN راه انداخت؟
BGP EVPN VXLAN روی Catalyst 9300 ، 9400 ، 9500 و 9600 با لایسنس Network Advantage پشتیبانی می‌شود. سری ۹۲۰۰ برای این نقش طراحی نشده است.

ACI هم VXLAN است؟
بله. فابریک ACI در داخل از VXLAN استفاده می‌کند، اما کنترل‌پلن و مدیریت آن با APIC است و CLI کلاسیک NX-OS برای VXLAN در آن معنی ندارد. آنچه در این مطلب کانفیگ کردیم حالت NX-OS مستقل (Standalone) است.

MTU دقیقاً چند بگذاریم؟
حداقل ۵۰ بایت بیشتر از بزرگ‌ترین فریم مستأجر (با underlay IPv4). توصیه سیسکو ۹۲۱۶ روی لینک‌های underlay است تا حتی فریم‌های jumbo مستأجر هم بدون مشکل رد شوند.

منابع رسمی برای ادامه مطالعه

مشاوره و پیاده‌سازی با آکانت

آکانت Akanet

آکانت (Akanet) با بیش از بیست سال سابقه در شبکه‌های مبتنی بر سیسکو، کنار سازمان‌هایی ایستاده که از Access پردیس تا دیتاسنتر leaf/spine و فابریک‌های بزرگ سازمانی را طراحی و اجرا می‌کنند. مشاوره معماری، انتخاب بین Nexus و Catalyst ، طراحی underlay و overlay ، کانفیگ VXLAN EVPN ، مهاجرت از VLAN کلاسیک، سگمنت امنیتی، اتصال سایت‌ها و DR بخشی از کار روزمره ماست. طراحی شبکه‌ای مثل آنچه خواندید فقط دانستن دستورها نیست؛ تجربه میدانی، تصمیم درست از روز اول و پشتیبانی مطمئن بعد از اجرا می‌خواهد.

تلفن: 09121308444  |  ایمیل: aka@aka.ir  |  aka.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *