به دسته ای از میزبان ها که با استفاده از Switch های مشترک به هم متصل هستند را یک Subnet فیزیکی میگویند اما یک Subnet منطقی به دسته ای از میزبان ها گفته می شود که از سوئیچ های فیزیکی به صورت مشترک استفاده می کنند و به صورت منطقی از یکدیگر جدا شده اند هر Subnet منطقی به صورت کاملا مجزا از دیگر Subnetها کار میکنند . به این روش VLAN گفته می شود و در واقع یک شبکه بزرگ را می توانیم به شبکه های کوچکتر تقسیم کنیم. یکی از مزایای این روش کاهش Broadcast می باشد.عضوهای هر VLAN را می توانیم براساس پورت های فیزیکی ، MAC Address و یا براساس یوزر تعیین کنیم.
به طور کلی دو نوع VLAN داریم :
End-to-End VLan: در این حالت اعضای هر ویلن در سرتاسر شبکه پراکنده هستند. این حالت برای اشتراک منابع و اعمال سیاست ها و پراکندگی میزبان مورد استفاده قرار می گیرد. در این حالت خطایابی پیچیده تر می باشد چون ترافیک ویلن های مختلف در سراسر شبکه در حال انتقال است.
Local VLAN: در این حالت میزبان ها براساس موقعیت فیزیکی خود در ویلن ها قرار می گیرند. به طور مثال یک طبقه از یک ساختمان این طراحی مقیاس پذیرتر و خطایابی در آن ساده تر می باشد چون نحوی جریان ترافیک مشخص است. برای اشتراک منابع در این روش نیاز routing داریم.
پارامترهایی که قبل از اجرای ویلن باید مورد توجه قرار گیرد :
- طراحی و انتخاب شماره ویلن ها ، نام و IP Address
- نوع ویلن مورد نیاز Local یا End-to-End
- نیاز به Trunk داریم؟ و کجا؟
- VTP به چه صورت تنظیم و مورد استفاده واقع شود؟
بررسی و تست طرح
نکته: به طور پیش فرض تمامی پورت ها عضو ویلن یک هستند.
ایجاد ویلن ها بسیار ساده است تنها کافیست در Config Mode دستور زیر را وارد کنید:
Switch(Config)#vlan 15
بسته به نوع نرم افزار عددی که برای ویلن می توان در نظر گرفت بین ۱ تا ۱۰۰۵ یا بین ۱ تا ۴۰۹۴ می باشد.همچنین بهتر است یک نام برای هر ویلن در نظر گرفت با دستور زیر:
Switch(config-vlan)#name itpro
جهت حذف یک ویلن از دستور زیر استفاده می کنیم:
Switch(Config)#no vlan 15
جهت اختصاص یک پورت به یک ویلن از دستور زیر استفاده می کنیم:
وارد اینترفیس مورد نظر شوید.
Switch(Config)#interface fastEthernet 0/1
اینترفیس را در حالت Access قرار می دهیم.
Switch(config-if)#switchport mode access
با دستور زیر اینترفیس را عضو VLAN 15 می کنیم
Switch(config-if)#switchport access vlan 15
جهت دیدن لیست VLAN و portهای اختصاص یافته به ان از دستور زیر استفاده می کنیم:
Switch#show VLan
خروجی این دستور به شکل زیر است:
نکته : اگر پورتی در این دستور نمایش داده نشد ان پورت Trunk می باشد.
نکته: اطلاعات VLan در فایل vlan.dat در حافظه فلش ذخیره می شود.
انواع mode های قابل استفاده برای هر پورت :
Access: این حالت جهت ارتباط سوئیچ و میزبان یا به عبارتی End Device ها کاربرد دارد و فریم به صورت untag (بدون تگ) ارسال می شوند.
Trunk: معمولا این حالت جهت ارتباط سوئیچ ها با یکدیگر استفاده می شود و فریم به صورت tag شده ارسال می شوند.
Dynamic: در این حالت به صورت مذاکره با طرف مقابل نوع Access یا Trunk انتخاب می شود
VLan Trunking چیست ؟
یک لینک یا پورت Trunk توانایی حمل ترافیک چندین VLan را دارد و به طور معمول جهت ارتباط سوئیچ ها مورد استفاده قرار می گیرد.Trunk می تواند از دو پروتکل جهت حمل ترافیک VLan استفاده کند.
Inter-Switch Link-ISL : پروتکل اختصاصی سیسکو که سایز Header که جهت انتقال VLan ها اضافه می کند ۲۶ بایت می باشد و البته در حال حاضر زیاد مورد استفاده قرار نمی گیرد.
۸۰۲٫۱Q : پروتکل استاندارد و عمومی می باشد سایز Header که اضافه می شود ۴ بایت می باشد و دارای قابلیت Native VLan می باشد.
سوئیچ زمانی که یک Frame را روی پورت Access دریافت می کند شماره VLan ان پورت را در Header مربوط به Frame قرار می دهد و به اصلاح Tag می شود و سپس مسیر را طی می کند تا به پورت که قرار است از ان خارج شود می رسد این Tag حذف شده و روی پورت ارسال می شود.
نکته : پروتکل (DTP (Dynamic Trunking Protocol جهت انجام مذاکره در حالت Dynamic برای انتخاب نوع پورت مورد استفاده قرار می گیرد.
جدول زیر نشان دهنده وضعیت دو پورت در حالت های مختلف می باشد:
نکته: اگر پورت را در حالت Dynamic قرار دهیم می توانیم دو حالت Auto یا Desirable را برای ان انتخاب کنیم. حالت Auto به صورت Listening عمل می کند و اگر طرف مقابل پیشنهاد Trunk شدن را بدهد پورت در حالت Trunk فرار می گیرد در غیر این صورت در حالت Access خواهد بود. اما Desirable به صورت فعال شروع به ارسال فریم های DTP می کند و به طرف مقابل پیشنهاد Trunk شدن می دهد.
نتیجه حاصل از دستورات جهت تعیین حالت پورت:
Switch(config-if)#Switchport mode access
این دستور پورت را به صورت دائم در حالت Access قرار می دهد. و شروع به ارسال فریم های DTP می کند تا با طرف مقابل برای تبدیل لینک به حالت Access مذاکره کند. این پورت به حالت Access تغییر می کند حتی اگر پورت مقابل این شرایط را قبول نکند.
Switch(config-if)#Switchport mode dynamic desirable
با زدن این دستور پورت با ارسال فریم های DTP تلاش می کند که پورت را به حالت Trunk تغییر دهد.پورت به حالت Trunk تغییر پیدا می کند در صورتی که طرف مقابل در حالت Auto ، Desirable و یا Trunk باشد به Trunk تبدیل می شود. این حالت پیش فرض برای همه پورت ها می باشد.
Switch(config-if)#Switchport mode dynamic auto
در این حالت پورت در حالت Listening قرار می گیرد و اگر طرف مقابل در حالت Trunk یا Desirable باشد لینک تبدیل به Trunk می شود در غیر اینصورت در حالت Access خواهد بود.
Switch(config-if)#Switchport mode trunk
این دستور پورت را به صورت دائم در حالت Trunk قرار می دهد. و شروع به ارسال فریم های DTP می کند تا با طرف مقابل برای تبدیل لینک به حالت Trunk مذاکره کند. این پورت به حالت Trunk تغییر می کند حتی اگر پورت مقابل این شرایط را قبول نکند.
Switch(config-if)#Switchport nonegotiate
در این حالت پورت DTP ارسال نمی کند.این دستور را زمانی می توانید استفاده کنید که پورت را در حالت Access یا Trunk قرار گرفته باشد. برای استفاده از این حالت باید طرف مقابل را به صورت دستی تنظیم کنیم.جهت مشخص کردن نوع یک پورت از دستور زیر استفاده می کنیم:
Switch(config-if)#Switchport mode {dynamic {auto|desirable} | trunk | Access}
Switch(config-if)#Switchport nonegotiate
در صورتی که از ۸۰۲٫۱Q استفاده کنیم با استفاده از دستور زیر یک VLAN را به عنوان Native تعیین کنیم:
Switch(config-if)#Switchport trunk native vlan 15
نکته : VLan که به عنوان Native انتخاب شود ترافیک ان VLan بدون tag ارسال می شود.
نکته: بهتر است که VLan که از ان استفاده نمی شود به عنوان Native انتخاب شود چون Native یک ضعف بزرگ به نام VLan Hopping دارد.
VLANs Allowed on the Trunk
به طور پیش فرض تمامی VLan ها اجازه عبور از پورت Trunk را دارند.جهت تعیین پورت های که فقط اجازه عبور دارند از دستور زیر استفاده می کنیم:
Switch(config-if)#Switchport trunk allowed vlan 12,15
Switch(config-if)#Switchport trunk allowed vlan all
Switch(config-if)#Switchport trunk allowed vlan add 20
Switch(config-if)#Switchport trunk allowed vlan remove 15
جهت نمایش وضعیت یک پورت از دستور زیر استفاده می کنیم:
Switch#show interfaces fastEthernet 0/1 switchport
مواردی که در مورد Trunk باید رعایت شود :
- یک VLan که استفاده نمی شود به عنوان Native انتخاب شود.
- روی پورتی که باید Trunk شود مذاکره جهت Trunk شدن را غیر فعال کنیم.
- پورتی که هیچ وقت به عنوان Trunk استفاده نمی شود را در حالت Access قرار دهیم.
- تنها به VLan های که مورد استفاده هستند اجازه عبور روی Trunk را بدهید.