Cisco CCNA · 200-301 v2.0

802.1Q Tag و Native VLAN

Trunk بدون روشی برای تشخیص VLAN هر Frame قابل استفاده نیست. IEEE 802.1Q استانداردی است که اطلاعات VLAN را داخل Ethernet Frame حمل می‌کند. در شبکه Cisco باید بدانی Tag دقیقاً چه هدفی دارد، VLAN ID از کجا می‌آید، Native VLAN چرا معمولاً Untagged است و Native VLAN Mismatch چه خطری ایجاد می‌کند. هدف این درس حفظ کردن نام فیلدها نیست؛ باید بتوانی یک Frame را از Access Port تا Trunk دنبال کنی و بفهمی چه زمانی Tag اضافه یا حذف می‌شود.

در پایان این درس باید بتوانی
  • نقش 802.1Q Tag را توضیح بدهی
  • بدانی VLAN ID داخل Tag چگونه برای تفکیک Frameها استفاده می‌شود
  • رفتار Native VLAN و Frameهای Untagged را توضیح بدهی
  • Native VLAN Mismatch را از روی Log و Output تشخیص بدهی
  • مسیر اضافه و حذف شدن Tag را در یک ارتباط واقعی دنبال کنی

ساختار منطقی 802.1Q Tag

Ethernet Frame عادی Source MAC، Destination MAC، Type/Length، Payload و FCS دارد. هنگام عبور Tagged Traffic از Trunk، 802.1Q یک Header چهار بایتی بین Source MAC و EtherType اصلی قرار می‌دهد. بخشی از این Header شامل VLAN ID است. VLAN ID به Switch مقصد می‌گوید Frame به کدام VLAN تعلق دارد.

نمای ساده Frame
Without 802.1Q tag:
[Dst MAC][Src MAC][Type][Payload][FCS]

With 802.1Q tag:
[Dst MAC][Src MAC][802.1Q Tag][Type][Payload][FCS]

در Tag علاوه بر VLAN ID، بیت‌هایی برای Priority و اطلاعات کنترلی نیز وجود دارد. برای CCNA مهم‌ترین برداشت این است که VLAN ID از ۱۲ بیت استفاده می‌کند؛ بنابراین دامنه نظری ۰ تا ۴۰۹۵ است، اما همه مقادیر برای VLAN عادی قابل استفاده نیستند و در Cisco معمولاً VLANهای ۱ تا ۴۰۹۴ را در بحث VLAN ID می‌بینی.

802.1Q Header چهار بایت است و بخش Tag Control Information شامل Priority Code Point برای Class of Service، یک بیت مرتبط با Drop Eligibility و VLAN Identifier است. برای CCNA لازم نیست همه Bit Positionها را حفظ کنی، اما دانستن اینکه VLAN ID فقط یکی از اطلاعات Tag است کمک می‌کند Frame Tagged را با مفاهیم QoS اشتباه نگیری. افزودن Tag اندازه Frame را نیز تغییر می‌دهد و تجهیزات Ethernet مدرن این وضعیت را پشتیبانی می‌کنند. نکته عملی این است که Capture روی Trunk می‌تواند VLAN ID را به‌صورت فیلد قابل فیلتر نشان دهد و برای اثبات اینکه Frame با VLAN مورد انتظار عبور می‌کند بسیار مفید است.

Tagging و Untagging در مسیر

PC روی Access Port معمولاً Frame بدون Tag می‌فرستد. SW1 با توجه به Access VLAN آن Port، Frame را عضو VLAN 10 می‌داند. اگر Frame باید از Trunk خارج شود و VLAN 10 Native VLAN نباشد، SW1 Tag مربوط به VLAN 10 را اضافه می‌کند. SW2 Tag را می‌خواند، Frame را در VLAN 10 پردازش می‌کند و وقتی Frame از Access Port مقصد خارج می‌شود، Tag را حذف می‌کند. بنابراین Endpoint معمولی لازم نیست 802.1Q را بفهمد.

اضافه و حذف شدن Tag
PC-A -- untagged --> SW1
SW1 classifies frame as VLAN 10
SW1 -- tagged VLAN 10 --> SW2
SW2 identifies VLAN 10
SW2 -- untagged --> PC-B

این رفتار توضیح می‌دهد چرا Capture روی یک Access Port معمولی ممکن است 802.1Q Tag نبینید، ولی Capture روی Trunk یا Interface مجازی مناسب می‌تواند Tag را نشان دهد. محل Capture برای تفسیر Packet بسیار مهم است.

Tagging را در هر جهت جدا تصور کن. وقتی Frame از Access Port وارد SW1 می‌شود، Ingress Classification بر اساس Access VLAN انجام می‌شود. هنگام Egress روی Trunk، Tag اضافه می‌شود؛ در SW2 Tag برای تعیین VLAN خوانده می‌شود و هنگام Egress روی Access Port حذف می‌شود. این چرخه به تو توضیح می‌دهد چرا تغییر Access VLAN یک Port می‌تواند بدون هیچ تغییر IP، Endpoint را وارد Broadcast Domain دیگری کند. همچنین نشان می‌دهد Tag چیزی نیست که همیشه از خود PC آمده باشد؛ Switch می‌تواند آن را هنگام خروج از Trunk اضافه کند.

Native VLAN و Frame بدون Tag

در 802.1Q Trunk معمول Cisco، Frameهای Native VLAN به‌طور پیش‌فرض بدون Tag ارسال می‌شوند. اگر Native VLAN روی Trunk برابر ۹۹ باشد، Frame متعلق به VLAN 99 هنگام خروج معمولاً Untagged می‌رود. در سمت گیرنده، هر Frame Untagged روی آن Trunk به Native VLAN محلی نسبت داده می‌شود. همین رفتار دلیل حساسیت Native VLAN Mismatch است.

Native VLAN هماهنگ
SW1 Gi1/0/24 native VLAN 99
SW2 Gi1/0/24 native VLAN 99

Tagged: VLAN 10,20,30
Untagged on trunk: interpreted as VLAN 99
تنظیم Native VLAN
interface GigabitEthernet1/0/24
 switchport mode trunk
 switchport trunk native vlan 99

بسیاری از طراحی‌ها Native VLAN را از VLANهای کاربری جدا می‌کنند. صرف انتخاب VLAN 999 امنیت را خودکار نمی‌کند؛ مهم‌تر این است که Configuration دو طرف هماهنگ، مستند و با سیاست سازمان سازگار باشد.

Native VLAN باید در دو سمت از منظر Operational Design یکسان باشد، اما بهتر است از کاربرد آن نیز آگاه باشی. بعضی تجهیزات Third-party یا سناریوهای خاص همه VLANها را Tagged می‌خواهند و رفتار Native ممکن است قابل تغییر باشد. در محیط Cisco معمول CCNA، فرض استاندارد این است که Native VLAN Untagged است. پس در Troubleshooting ابتدا Behavior واقعی Platform و Config را تأیید کن و از نسخه‌های مختلف IOS یا Vendorها یکسان‌سازی کورکورانه نکن. اصل ثابت این است که دو سمت Link باید درباره نحوه تفسیر Untagged Traffic توافق داشته باشند.

Native VLAN Mismatch

اگر SW1 Native VLAN 99 و SW2 Native VLAN 999 داشته باشد، Frame Untagged که SW1 آن را عضو VLAN 99 می‌داند، در SW2 به VLAN 999 نسبت داده می‌شود. این یعنی مرز منطقی VLANها در ترافیک Untagged دو طرف هماهنگ نیست. Cisco ممکن است از CDP برای هشدار Native VLAN Mismatch استفاده کند.

نمونه Log
%CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on GigabitEthernet1/0/24 (99), with SW2 GigabitEthernet1/0/24 (999).

در Troubleshooting فقط Log را پاک نکن. show interfaces trunk و show interfaces switchport را روی هر دو سمت مقایسه کن. باید Native VLAN، Trunk State و Allowed VLANها را کنار هم ببینی. اصلاح یک سمت بدون بررسی سمت دیگر می‌تواند وضعیت را بدتر کند.

Native VLAN Mismatch فقط یک Warning تزئینی نیست. اگر Untagged Control یا User Traffic روی Link وجود داشته باشد، هر سمت آن را وارد VLAN متفاوتی می‌کند. حتی وقتی کاربران Tagged VLANها ظاهراً سالم‌اند، این ناسازگاری Design را شکننده می‌کند و می‌تواند در تغییرات بعدی حادثه بسازد. برای رفع آن ابتدا Design Source of Truth را پیدا کن؛ اینکه یک سمت ۹۹ و سمت دیگر ۹۹۹ است به‌تنهایی نمی‌گوید کدام عدد درست است. Configuration درست باید از مستند معتبر یا Standard سازمان استخراج شود، سپس هر دو سمت هماهنگ و دوباره Verify شوند.

Allowed VLAN و Tag در عیب‌یابی

Tagged بودن Frame به‌تنهایی کافی نیست؛ VLAN باید اجازه عبور از Trunk را نیز داشته باشد. اگر VLAN 30 روی SW1 وجود دارد و Frame با Tag 30 آماده خروج است اما VLAN 30 در Allowed List نیست، Switch آن Traffic را از Trunk عبور نمی‌دهد. بنابراین در Incidentهای «یک VLAN خاص قطع است» سه سؤال پشت سر هم بپرس: VLAN وجود دارد؟ Trunk Up است؟ VLAN روی Trunk Allowed و Active است؟

VLAN 30 در Allowed List نیست
SW1# show interfaces trunk
Port      Status      Native vlan
Gi1/0/24  trunking    99

Port      Vlans allowed on trunk
Gi1/0/24  10,20

Port      Vlans allowed and active in management domain
Gi1/0/24  10,20

در محیط واقعی Packet Capture می‌تواند مکمل Output باشد، اما قبل از Capture معمولاً show commands سریع‌تر Scope را مشخص می‌کنند. اگر Config نشان می‌دهد VLAN اصلاً Allowed نیست، نیازی نیست ابتدا سراغ Wireshark بروی.

وقتی فقط یک VLAN روی Trunk مشکل دارد، Packet Capture را بعد از بررسی Outputهای ساده به‌کار ببر. اگر show interfaces trunk می‌گوید VLAN 30 Allow نیست، علت از قبل ثابت شده است. Capture زمانی ارزش بیشتری دارد که Config ظاهراً درست است اما MAC Learning یا Protocol خاص رفتار غیرمنتظره دارد. در Capture روی Trunk می‌توان VLAN ID، Source/Destination MAC و Protocol را مقایسه کرد. این روش به‌خصوص در اتصال Switch به Hypervisor، Firewall یا AP مفید است که ممکن است Mapping یا Tagging در سمت مقابل اشتباه باشد.

سناریوی عملی

روی SW1 Native VLAN برابر ۹۹ و روی SW2 برابر ۱ باقی مانده است. کاربران VLAN 10 و ۲۰ ظاهراً کار می‌کنند چون Traffic آن‌ها Tagged است، اما Logهای CDP پیوسته Mismatch نشان می‌دهند. پشتیبان به‌جای Ignore کردن هشدار، show interfaces trunk دو سمت را مقایسه می‌کند و اختلاف را می‌بیند. سپس بر اساس Design هر دو سمت را روی Native VLAN 99 هماهنگ می‌کند و دوباره Output و Log را بررسی می‌کند. این سناریو نشان می‌دهد یک شبکه ممکن است «تا حدی کار کند» ولی Configuration همچنان اشتباه و پرریسک باشد.

اشتباهات رایج

اشتباه‌های رایج و علت آن‌ها

  • فکر کردن به اینکه همه Frameهای Trunk همیشه Tagged هستند؛ Native VLAN در حالت معمول استثنا است
  • تغییر Native VLAN فقط در یک سمت؛ Mismatch ایجاد می‌کند
  • یکی دانستن VLAN ID داخل 802.1Q Tag با IP Subnet؛ این دو مفهوم در Layerهای متفاوت‌اند
  • تفسیر هر Packet Capture بدون توجه به محل Capture؛ ممکن است Tag قبل یا بعد از نقطه Capture اضافه/حذف شده باشد
تمرین عملی

تمرین عملی

  1. در Packet Tracer Native VLAN را روی دو Switch یکسان کن و show interfaces trunk را ثبت کن
  2. Native VLAN یک سمت را تغییر بده و Log/Output را بررسی کن؛ سپس علت Mismatch را با مسیر Frame توضیح بده
  3. Allowed VLAN را طوری تغییر بده که فقط VLAN 10 عبور کند و اثر را روی VLAN 20 آزمایش کن
  4. یک Diagram رسم کن و روی هر Segment مشخص کن Frame VLAN 10 Tagged است یا Untagged

نکته‌هایی که باید با خودت ببری

  • 802.1Q Tag اطلاعات VLAN را روی Trunk حمل می‌کند
  • Access Endpoint معمولاً Frame بدون Tag می‌فرستد و Switch بر اساس Access VLAN آن را طبقه‌بندی می‌کند
  • Native VLAN روی Trunk معمولاً Untagged حمل می‌شود
  • Native VLAN دو سمت باید هماهنگ باشد
  • Allowed List مشخص می‌کند کدام VLANها مجاز به عبور از Trunk هستند
خودسنجی

خودسنجی

چرا 802.1Q برای حمل چند VLAN روی یک Link لازم است؟

چون روی یک لینک مشترک باید مشخص باشد هر Frame متعلق به کدام VLAN است. 802.1Q با افزودن Tag این هویت VLAN را بین تجهیزات منتقل می‌کند.

Frame Untagged ورودی روی Trunk به کدام VLAN نسبت داده می‌شود؟

به Native VLAN همان Trunk نسبت داده می‌شود؛ به همین دلیل Native VLAN دو سمت باید با طراحی یکسان باشد.

Native VLAN Mismatch چگونه می‌تواند باعث جابه‌جایی منطقی Traffic شود؟

Frameهای Untagged ممکن است در دو سمت به VLANهای متفاوت نسبت داده شوند. نتیجه می‌تواند ارتباط اشتباه، نشت Traffic یا خطاهای بسیار گیج‌کننده در Layer 2 باشد.

اگر VLAN 30 Tag صحیح دارد ولی در Allowed List نیست، چه اتفاقی می‌افتد؟

Switch آن VLAN را روی آن Trunk عبور نمی‌دهد. حتی اگر Tag صحیح باشد، Allowed VLAN List سیاست مجاز بودن عبور VLAN را کنترل می‌کند.

منابع رسمی

منابع مرجع این درس

مطالعه همیشه آزاد است

برای ذخیره پیشرفت وارد حساب شو

حساب کاربری برای آزمون و ثبت مرحله‌ها استفاده می‌شود

ورود یا ثبت‌نام