Cisco CCNA · 200-301 v2.0

Trunk و عبور چند VLAN از یک لینک

در فصل قبل VLAN را در محدوده یک Switch ساختی و دیدی Access Port چگونه یک Endpoint را عضو یک VLAN می‌کند. حالا مسئله واقعی‌تر می‌شود: اگر VLAN 10 و VLAN 20 روی دو Switch مختلف وجود داشته باشند، باید ترافیک هر دو VLAN از لینک بین دو Switch عبور کند، بدون اینکه Frameهای دو Broadcast Domain با هم مخلوط شوند. Trunk راه‌حل Layer 2 برای حمل ترافیک چند VLAN روی یک لینک فیزیکی است. در این درس اول منطق Trunk را می‌فهمی، سپس تفاوت آن با Access Port را از دید Frame، VLAN و MAC Table بررسی می‌کنی و در پایان یاد می‌گیری چگونه قبل از هر Configuration تشخیص بدهی یک لینک واقعاً باید Access باشد یا Trunk.

در پایان این درس باید بتوانی
  • تفاوت Access Port و Trunk Port را بر اساس نوع ترافیک و کاربرد توضیح بدهی
  • مسیر یک Frame از PC در VLAN 10 روی SW1 تا PC در VLAN 10 روی SW2 را مرحله‌به‌مرحله دنبال کنی
  • بدانی چرا یک لینک فیزیکی بین Switchها می‌تواند چند Broadcast Domain را هم‌زمان حمل کند
  • با show interfaces trunk وضعیت Trunk را بررسی کنی
  • از روی Topology تشخیص بدهی کدام لینک‌ها باید Trunk باشند و کدام نباید

نیاز به Trunk در شبکه چندسوئیچی

فرض کن واحد مالی در VLAN 10 و واحد فروش در VLAN 20 قرار دارد. بخشی از کاربران روی SW1 و بخشی روی SW2 هستند. اگر بین دو Switch فقط یک کابل وجود داشته باشد، هر دو VLAN باید از همان کابل عبور کنند. اگر آن Port به شکل Access در VLAN 10 تنظیم شود، فقط ترافیک VLAN 10 معنا خواهد داشت و VLAN 20 مسیر Layer 2 بین دو Switch ندارد. ساخت یک کابل جدا برای هر VLAN نیز با زیاد شدن VLANها غیرعملی می‌شود. Trunk اجازه می‌دهد چند VLAN منطقی از یک Link فیزیکی مشترک استفاده کنند.

Topology ساده
PC-FIN-A -- access VLAN 10 -- SW1 == trunk == SW2 -- access VLAN 10 -- PC-FIN-B
PC-SALES-A -- access VLAN 20 -- SW1 == trunk == SW2 -- access VLAN 20 -- PC-SALES-B

در طراحی واقعی، Trunk را باید بخشی از مسیر یک VLAN ببینی، نه یک ویژگی مستقل روی یک Port. اگر VLAN 10 از Access Switch طبقه اول تا Core باید ادامه پیدا کند، همه لینک‌های Layer 2 بین این دو نقطه باید بتوانند VLAN 10 را حمل کنند. کافی است فقط یک Trunk در میانه مسیر VLAN 10 را Allow نکند تا Broadcast Domain در همان نقطه شکسته شود. به همین دلیل Troubleshooting یک VLAN چندسوئیچی را باید با دنبال کردن Path انجام دهی: Access Port مبدأ، Uplink اول، Switch میانی، Uplink بعدی و Access Port مقصد. هر Hop باید VLAN موردنظر را بشناسد و اجازه عبور دهد. این نگاه Path-based از تغییر تصادفی Config روی Switchهایی که اصلاً در مسیر نیستند جلوگیری می‌کند.

Access Port و Trunk Port از دید Frame

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

نکته مهم این است که VLAN همچنان Broadcast Domain جداگانه باقی می‌ماند. Trunk VLANها را با هم Merge نمی‌کند؛ فقط یک مسیر مشترک برای حمل ترافیک آن‌ها فراهم می‌کند. MAC Address Table نیز همچنان MAC را همراه با VLAN نگه می‌دارد. بنابراین اگر MAC یک دستگاه در VLAN 10 از طریق Trunk یاد گرفته شود، آن ورودی در زمینه VLAN 10 ثبت می‌شود.

یک Port، MACهای چند VLAN
SW1# show mac address-table dynamic
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
  10    00a1.b2c3.1001    DYNAMIC     Gi1/0/24
  20    00a1.b2c3.2001    DYNAMIC     Gi1/0/24

وجود MACهای متعلق به VLANهای مختلف روی یک Uplink نشانه طبیعی یک Trunk است. اگر همان Port Access بود، انتظار نداشتی MACهای Dynamic چند VLAN روی آن دیده شوند. این مشاهده در Troubleshooting بسیار مفید است.

Access Port و Trunk فقط دو اسم برای Port نیستند؛ مدل پردازش Frame آن‌ها متفاوت است. روی Access Port، VLAN Membership از Configuration Port به Frame نسبت داده می‌شود. روی Trunk، هویت VLAN باید همراه Frame در مسیر منتقل شود. بنابراین اگر Endpoint معمولی را اشتباهاً به Trunk وصل کنی، ممکن است Frame Untagged آن به Native VLAN نسبت داده شود و دستگاه در Broadcast Domain مورد انتظار قرار نگیرد. برعکس، اگر تجهیزی که چند VLAN تولید می‌کند به Access Port وصل شود، Switch نمی‌تواند چند VLAN را از همان Port به شکل مورد انتظار تفکیک کند. در Change واقعی قبل از تعیین Mode، نوع Peer و مدل Traffic آن را مشخص کن.

مسیر Frame روی دو Switch

PC-A در VLAN 10 روی SW1 می‌خواهد به PC-B در VLAN 10 روی SW2 Frame بفرستد. SW1 Frame را از Access Port دریافت می‌کند و آن را در VLAN 10 طبقه‌بندی می‌کند. سپس Destination MAC را در MAC Table مربوط به VLAN 10 جست‌وجو می‌کند. اگر مقصد از سمت Trunk شناخته شده باشد، Frame به Uplink می‌رود. SW1 هنگام خروج از Trunk اطلاعات VLAN 10 را به شکلی قابل تشخیص روی Frame حمل می‌کند. SW2 Frame را دریافت می‌کند، VLAN را تشخیص می‌دهد و سپس Destination MAC را فقط در همان VLAN بررسی می‌کند.

اگر Destination MAC هنوز ناشناخته باشد، Unknown Unicast فقط در همان VLAN Flood می‌شود؛ Trunk باعث نمی‌شود Frame VLAN 10 روی Access Portهای VLAN 20 پخش شود. همین تفکیک است که مزیت VLAN را در شبکه چندسوئیچی حفظ می‌کند.

مسیر منطقی Frame
1) PC-A -> SW1 Access Port : Frame belongs to VLAN 10
2) SW1 -> Trunk            : VLAN 10 identification carried
3) Trunk -> SW2            : SW2 identifies VLAN 10
4) SW2 -> PC-B Access Port : ordinary Ethernet frame

MAC Learning روی Trunk یک ابزار تشخیصی قوی است. اگر SW1 باید MAC یک PC روی SW2 را از Po1 یا Gi1/0/24 یاد بگیرد ولی آن MAC فقط در SW2 دیده می‌شود، یعنی Frame مبدأ هنوز از مرز بین Switchها عبور نکرده یا در VLAN دیگری طبقه‌بندی شده است. در مقابل، اگر MAC Remote روی Uplink و VLAN درست دیده شود، بخش مهمی از Layer 2 Path تأیید می‌شود. این Evidence از Ping دقیق‌تر است، چون Ping می‌تواند به دلایل Layer 3 یا Firewall شکست بخورد ولی MAC Learning مستقیماً نشان می‌دهد Ethernet Traffic به Switch رسیده است.

بررسی Trunk در Cisco IOS

یکی از کاربردی‌ترین دستورها show interfaces trunk است. این دستور فقط Portهایی را نشان می‌دهد که در حال Trunking هستند و اطلاعاتی مثل Mode، Encapsulation، Native VLAN و VLANهای Allowed/Active را خلاصه می‌کند. اگر Port موردنظر اصلاً در خروجی نیست، اولین سؤال این است که آیا Trunk واقعاً تشکیل شده است یا خیر.

خروجی نمونه show interfaces trunk
SW1# show interfaces trunk

Port        Mode         Encapsulation  Status        Native vlan
Gi1/0/24    on           802.1q         trunking      1

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

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

در این خروجی Status برابر trunking یعنی لینک اکنون Trunk است. Native vlan برابر ۱ به VLAN Native اشاره می‌کند که در درس بعد با رفتار Untagged آن آشنا می‌شوی. بخش Vlans allowed on trunk نشان می‌دهد چه VLANهایی اجازه عبور دارند. بخش allowed and active علاوه بر Allowed List بررسی می‌کند VLAN در Switch محلی نیز وجود و وضعیت فعال داشته باشد.

جزئیات یک Switchport
SW1# show interfaces Gi1/0/24 switchport
Name: Gi1/0/24
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Trunking Native Mode VLAN: 1 (default)
Trunking VLANs Enabled: 10,20,30

Administrative Mode چیزی است که Configuration درخواست کرده و Operational Mode وضعیت واقعی Port است. این دو را همیشه جدا ببین؛ به‌خصوص وقتی DTP درگیر است.

هنگام خواندن show interfaces trunk فقط به کلمه trunking اکتفا نکن. سه List پایین Output معناهای متفاوت دارند: VLANهای مجاز بر اساس Configuration، VLANهای مجاز و Active در VLAN Database و VLANهایی که در وضعیت Forwarding قرار دارند و توسط STP Prune نشده‌اند. ممکن است VLAN در List اول باشد اما به دلیل وجود نداشتن محلی یا وضعیت STP در List نهایی دیده نشود. این تفاوت به تو می‌گوید مشکل Policy است، VLAN Database است یا Forwarding State. اگر Platform Output متفاوتی دارد، Legend همان دستگاه را بخوان و مفهوم را دنبال کن نه ظاهر حفظ‌شده را.

طراحی Trunk و محدوده استفاده

Trunk فقط بین دو Switch نیست. لینک Switch به Router در Router-on-a-Stick، لینک Switch به بعضی Firewallها، Hypervisorها یا Access Pointهای سازمانی نیز ممکن است Trunk باشد؛ شرط مشترک این است که تجهیز سمت مقابل بتواند VLAN Tag را بفهمد و به چند VLAN نیاز داشته باشد. در مقابل، PC معمولی یا Printer معمولاً Access Port می‌خواهد.

قبل از تنظیم Trunk سه سؤال بنویس: کدام VLANها واقعاً باید از این Link عبور کنند؟ Native VLAN چیست؟ سمت مقابل چه نوع Interface و چه Encapsulationی را پشتیبانی می‌کند؟ پاسخ این سه سؤال جلوی Configurationهای کورکورانه مثل Allow کردن همه VLANها یا تکیه بر Negotiation نامشخص را می‌گیرد.

نمونه مستند Uplink
Link: SW1 Gi1/0/24 <-> SW2 Gi1/0/24
Type: 802.1Q Trunk
Allowed VLANs: 10,20,30
Native VLAN: 999
Purpose: Access-Switch uplink

در مستندسازی Trunk علاوه بر دو Interface و Allowed VLAN، نقش Business هر VLAN را ثبت کن. دانستن اینکه VLAN 20 مربوط به Voice یا Guest است در Incident اولویت و ریسک Change را روشن می‌کند. همچنین اگر لینک عضو EtherChannel است، Trunk را با نام Po1 مستند کن و Memberها را جدا زیر آن بنویس. اگر فقط Gi1/0/23 را Uplink معرفی کنی، تکنسین بعدی ممکن است Member دوم را کابل اضافی فرض کند یا روی Member به‌جای Port-Channel Config بزند. Documentation دقیق بخشی از Reliability شبکه است، نه کار اداری جدا از شبکه.

سناریوی عملی

در یک شرکت، کاربران VLAN 20 روی SW1 بدون مشکل کار می‌کنند اما کاربران همان VLAN روی SW2 به Server داخل VLAN 20 نمی‌رسند. Ping بین دو کاربر VLAN 20 که هر دو روی SW2 هستند موفق است. این Evidence نشان می‌دهد VLAN 20 داخل SW2 سالم است و مشکل احتمالاً در مسیر بین Switchها قرار دارد. show interfaces trunk روی Uplink نشان می‌دهد فقط VLANهای ۱۰ و 30 Allowed هستند. افزودن VLAN 20 به Allowed List، بدون تغییر IP کاربران، ارتباط را برمی‌گرداند. مسیر عیب‌یابی از Domain درست شروع شده است.

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

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

  • فرض اینکه هر لینک بین دو Switch خودکار Trunk است؛ ممکن است Port Access باشد یا Negotiation به Trunk نرسیده باشد
  • Allow کردن همه VLANها بدون Design؛ کار می‌کند اما Scope خطا و سطح Broadcast/Attack را بی‌دلیل گسترش می‌دهد
  • تغییر Default Gateway وقتی مشکل فقط بین دو Segment یک VLAN است؛ این مسیر Layer 2 را نادیده می‌گیرد
  • دیدن connected بودن Interface و نتیجه گرفتن که Trunk سالم است؛ Link Up فقط Physical/Layer 1 را ثابت می‌کند
تمرین عملی

تمرین عملی

  1. در Packet Tracer دو Switch و دو VLAN بساز و در هر VLAN یک PC روی هر Switch قرار بده؛ قبل از Trunk رفتار ارتباط را ثبت کن و بعد Trunk را ایجاد کن
  2. روی Trunk فقط VLAN 10 را Allow کن و تفاوت رفتار VLAN 10 و VLAN 20 را تست کن
  3. خروجی show interfaces trunk و show interfaces switchport را ذخیره کن و Administrative/Operational Mode را توضیح بده
  4. MAC Table هر دو Switch را بعد از Ping بررسی کن و توضیح بده چرا روی Uplink MACهای چند VLAN دیده می‌شوند

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

  • Trunk چند VLAN را روی یک Link فیزیکی حمل می‌کند ولی VLANها را با هم ترکیب نمی‌کند
  • Access Port معمولاً Frame بدون Tag از Endpoint می‌گیرد؛ Trunk باید هویت VLAN را بین تجهیزات منتقل کند
  • show interfaces trunk نقطه شروع سریع برای بررسی Trunk State و Allowed VLAN است
  • MAC Table روی Trunk می‌تواند MACهای چند VLAN را روی یک Port نشان دهد
  • قبل از Configuration باید VLANهای لازم، Native VLAN و قابلیت سمت مقابل مشخص باشند
خودسنجی

خودسنجی

اگر Port بین SW1 و SW2 Link Up است ولی در show interfaces trunk دیده نمی‌شود، چه چیزی هنوز ثابت نشده است؟

هنوز ثابت نشده است که Port از نظر Layer 2 واقعاً در حالت Trunk کار می‌کند. Link Up فقط سلامت فیزیکی را نشان می‌دهد؛ باید Operational Mode و خروجی show interfaces trunk را بررسی کنی.

چرا PCهای VLAN 10 روی یک Switch ممکن است با هم کار کنند ولی همان VLAN بین دو Switch قطع باشد؟

چون ارتباط داخل همان Switch ممکن است فقط از Access Portها عبور کند و نیازی به Uplink نداشته باشد. برای رسیدن همان VLAN به Switch دیگر، Uplink باید Trunk باشد و آن VLAN را حمل کند.

وجود MACهای VLAN 10 و ۲۰ روی یک Uplink چه برداشتی درباره نوع لینک ایجاد می‌کند؟

این مشاهده معمولاً نشان می‌دهد Uplink در حال حمل Traffic بیش از یک VLAN است و بنابراین به احتمال زیاد Trunk یا بخشی از یک Port-Channel Trunk است؛ برای اثبات باید تنظیمات و خروجی show interfaces trunk بررسی شود.

در چه شرایطی لینک Switch به AP یا Hypervisor می‌تواند Trunk باشد؟

وقتی AP چند SSID را به VLANهای متفاوت نگاشت می‌کند یا Hypervisor چند شبکه/VLAN را برای ماشین‌های مجازی روی یک NIC حمل می‌کند، لینک سمت Switch معمولاً Trunk می‌شود.

منابع رسمی

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

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

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

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

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