مقاله آموزشی VLAN ها

fashion img

 

Virtual Local Area Networks (VLANs)

در این مقاله می پردازیم به VLAN ها، اینکه VLAN چیست؟ برای چه هدفی به وجود آمده و چگونه می توانیم از VLAN ها استفاده کنیم؟ یادتون باشه قبل از اینکه هر مبحثی رو یاد بگیرید برید به دنبال این سوال که اون مبحث برای چه هدفی به وجود آمده؟ پس طبق روال همیشگی ابتدا به سوال زیر باید پاسخ بدیم.

چرا VLAN ؟


به شکل زیر به دقت نگاه کنید تا براتون توضیح بدم که چرا VLAN.

در سناریوی بالا سه سوییچ داریم که به یکدیگر متصل می باشند و به هر سوییچ 50 کلاینت متصل می باشد نظرتون چیه با چند سوال چالشی مقاله رو ادامه بدیم؟؟
سوال اول : 
در سناریو مورد نظر، ما چند Broadcast Domain داریم؟
سوال دوم :
Broadcast Domain چیست ؟ 

برای پاسخ به سوال اول باید ابتدا به سوال دوم پاسخ دهیم 😊.
بصورت ساده اگر بخواهم برایتان Broadcast Domain را توضیح بدهم به این صورت می شود که به محدوده ای که پیام های Broadcast میتوانند در آن محدوده جریان یابند Broadcast domain میگوییم. پیام های Broadcast پیام هایی هستند که از یک Source مشخص ارسال می شوند و Destination آنها تمامی دیوایس های آن Broadcast domain می باشند. حال برای اینکه بتوانیم به سوال اول پاسخ دهیم باید یکسری پیش نیاز ها را بدانیم.
بصورت پیش فرض تمامی اینترفیس های یک سوییچ عضو یک Broadcast domain هستند و زمانی که سوییچ بر روی یکی از پورت های خود پیام Broadcast و یا Unknown Unicast ای را دریافت کند آن پیام را بر روی تمامی پورت های خود به جز پورتی که از آن پیام را دریافت کرده است ارسال می کند. پس با توجه به این توضیحات متوجه می شویم در شکل بالا یک Broadcast Domain داریم.
اما چرا من شکل بالا را قرار دادم و این سوالات را مطرح کردم؟؟ 
پیام های Broadcast مانند پیام ARP برای اهداف خاصی ایجاد می شوند به عنوان مثال یک کلاینت آدرس MAC کلاینت مقصد را ندارد بنابراین از پیام ARP که یک پیام Broadcast می باشد استفاده میکند تا بتواند آدرس MAC کلاینت مقصد را پیدا کند. درست است که این پیام برای مقصد Broadcast ارسال می شود اما آیا همه ی کلاینت ها به این پیام توجه می کنند و پاسخ می دهند؟ صدرصد خیر! تنها کلاینتی که مربوط به این پیام می باشد به پیام پاسخ می دهد. فکر میکنم تا الان متوجه مشکل شده اید اما بیاید دقیقتر و واضح تر نگاهی به مشکل بی اندازیم.
در شکل بالا فرض کنید یکی از کلاینت هایی که به SW-2 متصل است یک پیام Broadcast ارسال کند، این پیام باید در Broadcast domain مورد نظر ارسال شود، می توانید بگویید که این پیام در کجاها ارسال میشود و یا به عبارت بهتر این پیام Broadcast به چند پیام Broadcast تبدیل می شود؟؟ پاسخ این سوال با توجه به توضیحات قبل بسیار ساده است. بیاید یک بار دیگر به توضیحات نگاهی بی اندازیم. "زمانی که یک سوییچ یک پیام Broadcast دریافت کند آن پیام را بر روی تمامی پورت های خود به جز پورتی که از آن پیام را دریافت کرده ارسال میکند" پس SW-2 از یکی از پورت های خود یک پیام Broadcast دریافت میکند، آن را بر روی 49 پورت دیگر خود که 49 کلاینت دیگر به آنها متصل می باشند ارسال می کند علاه بر آن بر روی دو پورتی که به SW-1 و SW-3 متصل می باشند نیز ارسال میکند. سوییچ های دگیر یعنی SW-1 و SW-3 نیز همین کار را تکرار می کنند یعنی هرکدام به 50 پورت خود و دو پورتی که سوییچ همقابل متصل می باشد ارسال میکنند. حالا به من بگویید که این پیام Broadcast بر روی چند پورت ارسال شد؟؟ دقیقا درسته بر روی 153 پورت ارسال شد. اما هدف چه بود؟ تنها به یک کلاینت ارسال شود و فقط یک کلاینت به پیام Broadcast مورد نظر پاسخ می دهد. آیا بی جهت برای هر پیام Broadcast لینک های بین سوییچ های ما و حتی کلاینت های ما درگیر نمی شوند؟ چرا که کلاینت ها در هر صورت باید پیام ها را پردازش کنند و سپس متوجه می شوند که پیام به آنها مربوط نیست و باید Drop شود. حال فرض کنید کلاینت مقصد به همان SW-2 متصل باشد، بازهم همین پروسه طی می شود و فقط کلاینت ها و لینک های ما را درگیر میکند. درست است یک پیام Broadcast زیاد به چشم نمی آید اما فکر کنید هر کلاینت در این سناریو یک پیام Broadcast ارسال کند. حالا مشکل را به وضوح متوجه می شوید.
راه حل این مشکل چیست؟ آیا نظری دارید؟ 
برای حل این مشکل مفهومی تحت عنوان Virtual Local Area Network و یا به اختصار VLAN بوجود آمد.

VLAN چیست؟


اگر از من بخواهید بصورت خیلی ساده VLAN را برای شما توضیح دهم به شما می گویم VLAN ها سوییچ های مجازی یا Logical هستند که اینترفیس های یک سوییچ واقعی عضو یک VLAN می شوند. به شکل زیر دقت کنید :

در شکل بالا همه چیز بصورت پیش فرض می باشد، یعنی هیچگونه کانفیگی بر روی سوییچ انجام نشده است و تنها کلاینت ها را به سوییچ متصل کرده ایم. اگر PC-1 یک پیام Broadcast ارسال کند سوییچ پیام مورد نظر را به تمامی PC های دیگر به جز PC-1 ارسال می کند. چرا؟ چون همانطور که گفتیم بصورت پیش فرض تمامی پورت های یک سوییچ عضو یک Broadcast domain می باشد. چگونه می توانیم این Broadcast Domain بزرگ را بشکنیم و کوچکتر کنیم؟ یکی از راه حل ها این می باشد که به جای 1 سوییچ از 3 سوییچ استفاده کنیم البته، سوییچ ها را به هم متصل نکنیم. اتفاقی که می افتد این است که یک Broadcast domain بزرگ به سه Broadcast domain کوچک تبدیل می شود و حال اگر یک PC یک پیام Broadcast ارسال کند تنها آن پیام برای یک PC ارسال می شود و دیگر لینک ها و PC های دیگر درگیر نمی شوند. اما آیا به صرفه و منطقی است برای جلوگیری از یک مشکل یک مشکل بزرگتر ایجاد کنیم؟ یک سوییچ را به سه سوییچ تبدیل و یک هزینه را به سه هزینه تبدیل کنیم؟؟ صدرصد خیر. از همین رو مقوله VLAN ها مطرح شد. 
VLAN شبیه به یک سوییچ عمل می کند اما به جای اینکه نیاز به خرید سوییچ باشد در داخل یک سوییچ به تعداد مورد نیاز VLAN ایجاد می کنیم و انگار که یک سوییچ را به چند سوییچ جداگانه و کوچکتر تبدیل کرده ایم.
به شکل زیر دقت کنید : 

 

در شکل بالا به جای اینکه سه سوییچ خریداری کنیم در داخل سوییچ مورد نظر سه VLAN یا به عبارت ساده سوییچ مجازی ایجاد کرده ایم و هر دو پورت سوییچ اصلی را به یک VLAN اختصاص داده ایم، یعنی اینکه به جای اینکه یک سوییچ 6 پورت داشته باشیم، سه سوییچ 2 پورت داریم.
 
اما آیا درحال حاضر مشکل حل شده یا خیر؟؟ نکته ای راجب VLAN ها وجود دارد که با دانستن آن متوجه می شویم که مشکل حل شده یا خیر.
 
   • هر VLAN تعریف کننده ی یک Broadcast domain می باشد، یعنی اگر ما 10، VLAN داشته باشیم، 10 عدد Broadcast domain نیز خواهیم داشت.
 
در نتیجه میبینیم که مشکل به سادگی حل شد و حال اگر PC-1 یک پیام Broadcast ارسال کند تنها آن پیام به PC-2 ارسال می شود نه تمامی PC ها.
 
پس VLAN را می توانیم اینگونه تعریف کنیم : 
 
VLAN یک ویژگی لایه دویی می باشد که بر روی سوییچ ها وجود دارد و با استفاده از VLAN ها میتوانیم یک Broadcast Domain بزرگ را بشکنیم و به چند Broadcast Domain کوچکتر تبدیل کنیم بدون آنکه نیاز باشد از لحاظ فیزیکی سوییچ دیگری خریداری کنیم.
 
نکاتی در رابطه با VLAN ها وجود دارد که دانستنشان ضروری می باشد : 
   • Node هایی که عضو یک VLAN می باشند بصورت پیش فرض نمی توانند با Node هایی که در VLAN های دیگر قرار دارند ارتباط داشته باشند.
   • وجود VLAN ها به تنهایی ارزشی ندارد و پس از ایجاد VLAN ها باید یکسری پورت یا همان اینترفیس را عضو VLAN های مورد نظر کرد.
   • هر اینترفیس تنها می تواند عضو یک VLAN باشد.
   • VLAN ها ساختار های لایه دویی دارند در نتیجه اینترفیس هایی که لایه دویی می باشند می توانند عضو یک VLAN شوند.
   • بصورت پیش فرض بر روی تمامی سوییچ ها یک VLAN وجود دارد و آن VLAN ، VLAN شماره ی 1 می باشد که تمامی اینترفیس های سوییچ عضو آن VLAN     می باشند و به همین علت می باشد که میگوییم بصورت پیش فرض یک سوییچ تمامی پورت هاییش عضو یک Broadcast domain می باشد و کلاینت هایی که به یک     سوییچ متصل می شوند می توانند همگی با هم در ارتباط باشند.
 
VLAN Ranges
 
زمانی که VLAN ها بوجود آمدند خب طبعا باید با یک شناسه معرفی می شدند تا دو ویلن نسبت به یکدگیر مشخص شوند برای اینکار به VLAN شماره یا همان Identifier دادند و به هر VLAN یک شماره تعلق گرفت که امروزه نیز دقیقا به همین صورت می باشد. اما آیا میتوانیم از هر شماره ای استفاده کنیم؟؟ پاسخ این سوال خیر می باشد و برای شماره ی VLAN یک Range را در نظر گرفتند که از آن Range می توانستیم برای ایجاد VLAN استفاده کنیم.
 
در ابتدای بوجود آمدن VLAN ها ما تنها میتوانستیم تا 1005، VLAN داشته باشیم. که این 1005، VLAN تحت عنوان Standard VLAN شناخته می شوند. اما بعد از مدتی سازمان ها و خصوصا سرویس دهنده ها دریافتند که نیاز به تعداد VLAN های بیشتری دارند و دیگر 1005 ، VLAN نیاز های آنها را رفع نمیکند به همین دلیل سازمان استاندارد برای حل این مشکل تعداد VLAN ها را افزایش داد و به مقدار Standard VLAN ها 3090، VLAN اضافه کرد که شماره ی این ویلن ها از 1006 شروع و تا 4095 ادامه دارد. این مقدار ویلن که اضافه شد تحت عنوان Extended VLAN نامگذاری شدند. پس امروزه سوییچ هایی که از سیستم عامل IOS 15.1SY به بعد استفاده می کنند میتوانند تا 4096 ویلن داشته باشند. دسته ی Extended VLAN ها دارای یکسری از محدودیت ها می باشند که باید آنها را بدانید : 
 
   • VLAN هایی که در رنج Extended VLAN ها قرار می گیرند توسط پروتکل VTP ورژن 1 و 2 تبلیغ نشده و گسترش پیدا نمی کنند و نمی توان آنها را بر روی     سوییچ ها اینجاد کرد و  تنها برای استفاده از این دسته ویلن ها باید از VTP ورژن 3 استفاده کرد. 
 
   • در بسیاری از پلتفرم ها این ویلن را فقط زمانی می توان ایجاد کرد که Mode پروتکل VTP در حالت Transparent باشد و یا اینکه از VTP ورژن 3 استفاده       شود  اما در برخی پلتفرم های دیگر این موضوع الزامی نیست.
 
   • تمامی ویلن های رنج Extended را نمی توان استفاده کرد و یک مقداری از آنها برای مصارفی تحت عنوان Internal VLAN ها در نظر گرفته شده است.
 
در داخل رنج Standard VLAN و Extended VLAN ها برخی از VLAN بصورت پیش فرض وجود دارند و ما نمیتوانیم آنها را Delete کنیم و یا اینکه برخی دیگر از ویلن ها را نمی توانیم ایجاد کنیم. به این VLAN ها VLAN های رزرو شده می گویند.
 
 
VLAN های رزرو شده 
 
• VLAN های شماره ی 0 و 4095 فقط برای استفاده های سیستمی در نظر گرفته شده اند و نمیتوان آنها را مشاهده و یا Delete کرد.
 
• VLAN شماره ی 1 بصورت پیش فرض بر روی تمامی سوییچ ها وجود دارد و تمامی پورت های یک سوییچ عضو VLAN 1 می باشند و ما نمیتوانیم این VLAN را      حذف کنیم.
 
• VLAN های 1002، 1003، 1004 و 1005 برای شبکه های FDDI و Token Ring طراحی شده بودند که امروزه منسوخ شده اند، اما همچنان VLAN های آنها بصورت پیش فرض بر روی سوییچ ها وجود دارد و نمی توانیم آنهارا حذف کنیم.
 
VLAN Name
 
در بسیاری از سازمان به ازای هر بخش یک VLAN تعریف می شود بنابراین سازمان های بزرگ تعداد VLAN هایی زیادی را دارا می باشند. نکته ای که وجود دارد این است که تعداد VLAN های زیاد می تواند گیج کننده و حفظ کردن شماره ی VLAN ها مشکل باشد. برای جلوگیری از این مشکل هنگام ساخت یک VLAN میتوانیم برای آن VLAN یک اسم نیز در نظر بگیریم. به عنوان مثال اگر میخواهیم برای بخش IT یک VLAN با شماره 10 ایجاد کنیم دقیقا برای ویلن 10، اسم IT را در نظر میگیریم و با دیدن VLAN ای که اسم IT را دارا می باشد متوجه می شویم کلاینت هایی که در بخش IT قرار دارند عضو این VLAN می باشد. اما نکته ی بسیار مهمی که وجود دارد این می باشد که این نام تنها برای مدیریت راحت می باشد و از این نام برای Management نمی توانیم استفاده کنیم.
 
نحوه ی پیکربندی VLAN ها
 

نکته - نام VLAN شماره ی 1 بصورت پیش فرض “Default” می باشد و ما نمی توانیم آن را تغییر دهیم. اما هر VLAN ای که بصورت دستی ایجاد کنیم نام آن همان شماره ی VLAN خواهد شد که می توانیم آن را تغییر داده و نام دلخواه خود را بنویسیم.

 

هر VLAN بصورت منحصر به فرد ایجاد می شود و ما نمی توانیم دو ویلن با شماره های یکسان در یک سوییچ داشته باشیم. با استفاده از دستور زیر می توانیم یک VLAN را ایجاد کنیم : 

VLAN Configuration

SW(config)# vlan <vlan-id>

 

 برای تغییر نام VLAN ابتدا وارد ویلن مورد نظر می شویم و سپس با استفاده از دستور زیر نام آنرا تغییر می دهیم: 

VLAN Configuration

SW(config)# name <WORD>

 
 
پس از ایجاد VLAN ها باید اینترفیس ها مورد نظرمان را عضو VLAN هایمان کنیم در غیر این صورت عملا VLAN ها بلا استفاده خواهند بود. برای اینکه بتوانیم یک اینترفیس را عضو یک VLAN کنیم باید یکسری از قوانین را رعایت کرده باشیم : 
 
• تنها اینترفیس های لایه دویی می توانند عضو یک VLAN شوند
 
• هر اینترفیس تنها می تواند عضو یک VLAN باشد
 
• اینترفیسی که میخواهیم عضو یک VLAN کنیم باید Mode آن را در حالت Access پیکربندی کنیم تا قابلیت عضو شدن در VLAN را برای آن اینترفیس فعال کنیم
 
نحوه ی جوین کردن یک اینترفیس به یک ویلن  :
1. ابتدا با استفاده از دستور زیر وارد اینترفیسی که میخواهیم آن را عضو یک VLAN کنیم می شویم:
 

VLAN Configuration

SW (config)# interface <type / number>

 

 2. سپس با استفاده از دستور زیر اینترفیس مورد نظر را در حالت Access قرار می دهیم : 

VLAN Configuration

SW (config)# switchport mode access

 

3. در نهایت با دستور زیر مشخص می کنیم که اینترفیس مورد نظر باید عضو چه ویلنی شود : 

VLAN Configuration

SW (config)# switchport access vlan <vlan-id>

 

مشاهده ی VLAN های موجود بر روی یک سوییچ


برای مشاهده ی اینکه چه VLAN هایی بر روی یک سوییچ وجود دارند و اینترفیس ها عضو چه VLAN هایی می باشند از دستور زیر می توان استفاده کرد : 

VLAN Verification

SW# show vlan

 

خروجی زیر یک نمونه از دستور show vlan را نمایش داده است، می توانید مشاهده کنید که بصورت پیش فرض بر روی یک سوییچ چه VLAN هایی وجود دارد، اینترفیس های یک سوییچ عضو چه VLAN ای می باشد و نام VLAN های موجود در سوییچ را نیز مشاهده کنید.  

Switch#show vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Et1/2, Et1/3 , Et1/4 , Et2/1
1002 fddi-default                     act/unsup 
1003 trcrf-default                    act/unsup 
1004 fddinet-default                  act/unsup 
1005 trbrf-default                    act/unsup 

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1    enet  100001     1500  -      -      -        -    -        0      0   
1002 fddi  101002     1500  -      -      -        -    -        0      0   
1003 trcrf 101003     4472  1005   3276   -        -    srb      0      0   
1004 fdnet 101004     1500  -      -      -        ieee -        0      0   
1005 trbrf 101005     4472  -      -      15       ibm  -        0      0   


VLAN AREHops STEHops Backup CRF
---- ------- ------- ----------
1003 7       7       off