در شبکههای مبتنی بر سوئیچ سیسکو ، لینک Trunk برای انتقال ترافیک چند VLAN بین سوئیچها، روترها، فایروالها و سایر تجهیزات شبکه استفاده میشود. بهطور معمول، وقتی یک VLAN روی یک سوئیچ ساخته شده و لینک بین دو دستگاه بهصورت Trunk تنظیم شده باشد، انتظار داریم ترافیک آن VLAN بدون مشکل از لینک عبور کند. اما گاهی اوقات همه VLANها روی Trunk کار میکنند و فقط یک VLAN خاص منتقل نمیشود. در این شرایط این سؤال مطرح میشود که چرا سوئیچ سیسکو یک VLAN را در ترانک عبور نمیدهد؟
این مشکل معمولاً به دلیل Allowed VLAN، وجود نداشتن VLAN روی یکی از سوئیچها، تنظیمات Native VLAN، اشتباه در VLAN ID، وضعیت Spanning Tree یا پیکربندی نادرست پورت ایجاد میشود. در این مقاله مهمترین دلایل را بررسی میکنیم و روش عیبیابی مرحلهبهمرحله را توضیح میدهیم.
وقتی فقط یک VLAN از Trunk عبور نمیکند، اولین موردی که باید بررسی شود تنظیمات خود لینک Trunk است. ممکن است پورت بهدرستی Trunk باشد، اما VLAN موردنظر در لیست VLANهای مجاز برای عبور قرار نگرفته باشد. برای مشاهده وضعیت Trunk روی سوئیچ Cisco از دستور زیر استفاده کنید:
show interfaces trunk
در خروجی این دستور میتوانید ببینید:
اگر VLAN موردنظر در بخش Allowed VLANs دیده نمیشود، مشکل احتمالاً از همین قسمت است.
یکی از رایجترین پاسخها به سؤال چرا سوئیچ سیسکو یک VLAN را در ترانک عبور نمیدهد؟ این است که VLAN موردنظر در لیست Allowed VLANها قرار نگرفته است. برای مثال فرض کنید VLANهای 10، 20 و 30 روی سوئیچ وجود دارند، اما روی Trunk فقط VLANهای 10 و 20 اجازه عبور دارند:
interface GigabitEthernet0/1
switchport mode trunk
switchport trunk allowed vlan 10,20
در این حالت VLAN 30 از این لینک عبور نخواهد کرد. برای اضافه کردن VLAN 30:
interface GigabitEthernet0/1
switchport trunk allowed vlan add 30
یا اگر میخواهید لیست Allowed VLAN را کامل مشخص کنید:
switchport trunk allowed vlan 10,20,30
نکته مهم: هنگام استفاده از دستور switchport trunk allowed vlan دقت کنید که با تغییر لیست، ممکن است VLANهای قبلی از لیست حذف شوند. استفاده از add در بسیاری از مواقع ایمنتر است.
دلیل دیگر این است که VLAN موردنظر اصلاً روی یکی از سوئیچها ساخته نشده است. برای بررسی VLANها از دستور زیر استفاده کنید:
show vlan brief
فرض کنید VLAN 50 روی Switch A وجود دارد اما روی Switch B ساخته نشده است. در این حالت ممکن است Trunk ظاهراً درست باشد، اما VLAN 50 روی مقصد به شکل مورد انتظار پردازش نشود. در صورت نیاز VLAN را ایجاد کنید:
configure terminal
vlan 50
name Servers
exit
سپس دوباره بررسی کنید:
show vlan brief
گاهی تصور میشود که پورت Trunk است، اما تنظیمات واقعی پورت چیز دیگری است. برای بررسی دقیق:
show interfaces GigabitEthernet0/1 switchport
در خروجی باید وضعیتهایی مانند موارد زیر را بررسی کنید:
Administrative Mode: trunk
Operational Mode: trunk
اگر Operational Mode روی Access باشد، ترافیک VLANهای مختلف از آن لینک عبور نمیکند. در صورت نیاز:
interface GigabitEthernet0/1
switchport mode trunk
در برخی مدلها و نسخههای IOS ممکن است نیاز به مشخص کردن Encapsulation نیز وجود داشته باشد:
switchport trunk encapsulation dot1q
switchport mode trunk
در مدلهای جدیدتر معمولاً 802.1Q بهصورت پیشفرض استفاده میشود.
در شبکههای VLAN، عدد VLAN ID اهمیت زیادی دارد. برای مثال VLAN 100 با VLAN 10 یکی نیست. فرض کنید روی Switch A این VLAN ایجاد شده است:
vlan 100
اما روی Switch B یا در تنظیمات تجهیزات دیگر انتظار VLAN 10 وجود دارد. در این شرایط ممکن است ترافیک به VLAN اشتباه ارسال شود. بنابراین در زمان عیبیابی بررسی کنید:
show vlan brief
و مطمئن شوید VLAN ID موردنظر در تمام بخشهای مسیر یکسان است.
در Trunk، Native VLAN ترافیکی را که بدون Tag ارسال میشود مدیریت میکند. اگر Native VLAN دو طرف لینک یکسان نباشد، ممکن است مشکلات ارتباطی ایجاد شود. برای مشاهده Native VLAN:
show interfaces trunk
مثلاً اگر یک طرف:
Native VLAN: 99
و طرف دیگر:
Native VLAN: 1
باشد، پیکربندی دو طرف هماهنگ نیست.
برای تنظیم Native VLAN:
interface GigabitEthernet0/1
switchport trunk native vlan 99
این تنظیم باید با سمت مقابل هماهنگ باشد.
توجه: Native VLAN با Allowed VLAN یکسان نیست. ممکن است یک VLAN در Allowed VLAN قرار داشته باشد ولی به دلیل طراحی شبکه، مسئله اصلی مربوط به Native VLAN یا ترافیک Untagged باشد.
یکی دیگر از دلایلی که باید بررسی شود، Spanning Tree Protocol یا STP است. ممکن است VLAN روی Trunk Allowed باشد، اما STP مسیر خاصی را برای آن VLAN Block کرده باشد. این موضوع بهخصوص در شبکههایی که چند لینک بین سوئیچها وجود دارد اهمیت بیشتری دارد. برای بررسی وضعیت STP برای یک VLAN:
show spanning-tree vlan 50
در خروجی وضعیت پورتها را بررسی کنید. اگر پورت مربوطه برای آن VLAN در وضعیت Blocking باشد، ترافیک از آن مسیر عبور نخواهد کرد. نکته مهم این است که در برخی پیادهسازیها، STP میتواند برای VLANهای مختلف رفتار متفاوتی داشته باشد. بنابراین صرفاً اینکه یک Trunk برای VLANهای دیگر کار میکند، به این معنی نیست که همان مسیر برای VLAN موردنظر نیز Forwarding است.
گاهی مشکل از Trunk مستقیم بین دو سوئیچ نیست. فرض کنید شبکه به این شکل باشد:
Switch A
|
Switch B
|
Switch C
ممکن است VLAN 50 از Switch A به Switch B عبور کند، اما روی Trunk بین Switch B و Switch C اجازه عبور نداشته باشد. در این حالت باید تمام لینکهای Trunk در مسیر بررسی شوند. روی هر سوئیچ اجرا کنید:
show interfaces trunk
و بررسی کنید VLAN موردنظر در تمام Trunkهای مسیر وجود دارد. این یکی از مهمترین نکات عیبیابی است؛ زیرا اضافه کردن VLAN به Allowed List یک لینک، زمانی کافی است که تمام لینکهای موردنیاز در مسیر نیز آن VLAN را مجاز کنند.
در شبکههایی که از VTP یا مکانیزمهای مرتبط با Pruning استفاده میکنند، ممکن است برخی VLANها به دلیل عدم نیاز در یک مسیر مشخص Prune شوند. برای بررسی وضعیت میتوانید از موارد زیر کمک بگیرید:
show interfaces trunk
و در صورت استفاده از VTP:
show vtp status
اگر VLAN در مسیر Pruned شده باشد، باید پیکربندی VTP و وضعیت Trunkها بررسی شود.
فرض کنید VLAN 50 بهدرستی از Trunk عبور میکند، اما دستگاه نهایی همچنان به شبکه دسترسی ندارد. در این شرایط الزاماً مشکل از Trunk نیست. پورت متصل به سیستم، سرور، پرینتر یا Access Point باید در VLAN مناسب قرار داشته باشد.
برای مثال:
interface GigabitEthernet0/10
switchport mode access
switchport access vlan 50
و وضعیت آن را بررسی کنید:
show interfaces GigabitEthernet0/10 switchport
بنابراین باید بین دو مشکل تفاوت قائل شوید:
VLAN از Trunk عبور نمیکند
یا
VLAN عبور میکند اما دستگاه مقصد در VLAN صحیح قرار ندارد.
اگر تنظیمات Trunk درست به نظر میرسند، بررسی MAC Address Table میتواند اطلاعات ارزشمندی بدهد. دستور:
show mac address-table dynamic vlan 50
این دستور نشان میدهد سوئیچ MAC Addressهای مربوط به VLAN 50 را روی کدام پورتها یاد گرفته است. اگر MAC مربوط به دستگاه مقصد یا مبدا در مسیر مورد انتظار دیده نمیشود، باید مسیر ترافیک و تنظیمات VLAN را دوباره بررسی کنید.
اگر با مشکل چرا سوئیچ سیسکو یک VLAN را در ترانک عبور نمیدهد؟ مواجه شدید، بهتر است بهجای تغییر تصادفی تنظیمات، این ترتیب را دنبال کنید:
show vlan brief
مطمئن شوید VLAN موردنظر وجود دارد.
show interfaces trunk
پورت موردنظر باید در وضعیت Trunk باشد.
بررسی کنید VLAN موردنظر در Allowed VLAN List قرار داشته باشد.
show interfaces Gi0/1 switchport
Administrative و Operational Mode را بررسی کنید.
مطمئن شوید Native VLAN دو طرف Trunk مطابق طراحی شبکه تنظیم شده است.
show spanning-tree vlan 50
بررسی کنید پورت موردنظر در وضعیت Forwarding باشد.
اگر چند سوئیچ در مسیر وجود دارد، Allowed VLAN را روی تمام لینکهای Trunk بررسی کنید.
show mac address-table dynamic vlan 50
این کار به شما کمک میکند بفهمید ترافیک VLAN در کدام بخش شبکه متوقف شده است.
در پاسخ به سؤال چرا سوئیچ سیسکو یک VLAN را در ترانک عبور نمیدهد؟ باید گفت که معمولاً یک علت واحد وجود ندارد و باید مسیر VLAN از ابتدا تا انتها بررسی شود. شایعترین دلایل شامل قرار نداشتن VLAN در Allowed VLAN List، ایجاد نشدن VLAN روی سوئیچ، Trunk نبودن پورت، اشتباه در VLAN ID، اختلاف Native VLAN، مسدود شدن مسیر توسط STP و حذف شدن VLAN در یکی از Trunkهای میانی هستند.
بهترین روش عیبیابی این است که ابتدا با show vlan brief وجود VLAN را بررسی کنید، سپس با show interfaces trunk وضعیت Trunk و Allowed VLAN را ببینید و در ادامه STP، Native VLAN و MAC Address Table را بررسی کنید. در شبکههای بزرگ، تغییر مستقیم تنظیمات بدون مشخص کردن محل مشکل میتواند باعث قطع VLANهای دیگر شود. بنابراین بهتر است ابتدا با دستورات show وضعیت واقعی شبکه را مشخص کرده و سپس فقط همان بخش مشکلدار را اصلاح کنید.