VLAN یا Virtual LAN چیست ؟! چاپ نامه الکترونیک
امتیاز کاربر: / 84
بدخوب 
مقالات - شبکه
نوشته شده توسط محمد مهدی حاجی اسمعیلی   
پنجشنبه ۱۹ خرداد ۱۳۹۰ ساعت ۱۱:۱۱

VLAN یا Virtual LAN چیست ؟!

همه چیز در مورد VLAN

VLAN چیست ؟

VLAN


احتمالاً همه ، LAN ها و نحوه پیاده سازی شون رو می­شناسیم، و حتماً هر کدوم تعاریف مختلفی از LAN داریم که احتمالاً از آن جایی که همه اون­ تعریف­ها به یک مفهوم اشاره می­کنند پس همه درست­اند. اما برای اینکه مفهوم VLAN ها رو بهتر درک کنیم لازمه که از بین تعریف­های مختلفی که برای LAN وجود داره تعریف زیر را با دقت بیشتری بخونیم :

یک LAN شامل تمام دستگاه­هایی است که در یک Broadcast Domain باشند.

اما Broadcast Domain چیه؟ یک پیام Broadcast که می­دونین چیه ؟ (پیام­های فراگیر)، به دامنه­ای که این پیام­ها تا آنجا می­تانند ارسال شوند و پیش بروند Broadcast Domain (دامنه Broadcast ) گفته می­شود.

به عنوان یه تعریف دیگر تمام ایستگاه­ها و وسایلی که بهLAN متصل­اند عضو یک Broadcast Domain اند و در این صورت اگر یکی از ایستگاه­ها پیامی را به صورت Broadcast ارسال کند،تمام ایستگاه­های عضو آن Domain Broadcast یک کپی از آن پیام را دریافت می­کنند.

و اما VLAN ها !

VLAN کوتاه شده عبارت Virtual LAN ( Virtual Local Area Network ) است.

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

اما چرا نیازه که VLAN داشته باشیم ؟

در ابتدا حالتی را در نظر بگیرید که VLAN نداریم؛ در حالت معمول در یک LAN تمام پورت­های یک سوییچ عضو Broadcast Domain مشابهی­اند. به این ترتیب اگر یک ایستگاه پیامی را به صورت Broadcast ارسال کند، تمام دستگاه­هایی که در آن Broadcast Domain هستند. مثلا در شکل زیر کامپیوتر بنفش پیامی را به صورت Broadcast ارسال می­کند و همان طور که در شکل مشخص است این پیام به تمام هاست­هایی که در آن Broadcast Domain هستند می­رسد.

خب! حالا این خوبه یا بد ؟

 

 

VLAN چیست ؟

شکل1- LAN



در حالت کلی خوب نیست! چرا که ممکنه که کامپیوتر بنفش بخواهد که این پیام رو تنها به کامپیوتر نارنجی برساند، اما از این طریق سایر کامپیوترها نیز این پیام رو دریافت می کنند، شاید به نظرتون برسه که برای این کار به جای ارسال Broadcast می­تاند از ارسال مستقیم به کامپیوتر نارنجی استفاده کند؛ این فکر درسته ، اما باید بگم که این شکل تنها یک مثال ساده برای بیان چیزی است که می خواهیم در موردش بیشتر بدانیم؛ به عبارت بهتر اگر فرض کنید که هر کدوم از این کامپیوترها نماد 1000 کامپیوتر هستند چی ؟! اینجاست که ارسال Broadcast کاملاً مفید به نظر می رسه! اما همان طور که گفتیم هنوز این مشکل وجود داره که علاوه بر کامپیوتر نارنجی ( یا بهتر بگم ، کامپیوترهای نارنجی ) سایر کامپیوترها هم این پیام رو دریافت می کنند. این کار پهنای باند زیادی را به هدر می­هد. بحث پهنای باند را هم که کنار بگذاریم از نظر امنیتی به مشکل برمی­خوریم.

خب ! حالا برای رفع این مشکل، می­شه که کامپیوتر­های بنفش و نارنجی را عضو یک LAN قرار داد و سایر کامپیوتر­ها را را عضو یک LAN دیگه، تا اون طوری هر کدام از این LAN ها Broadcast Domain خودشون را داشته باشند . نه؟ اما برای این راه حل نیازه که یک سوییچ دیگه بخریم و این یعنی هزینه زیادی ! اما اگر از VLAN استفاده کنیم می توانیم همین دو شبکه مجزا را روی یک سوییچ پیاده سازی کنیم و دو VLAN مجزا داشته باشیم. به این ترتیب که برخی از پورت­های سوییچ را مثلا به VLAN شماره 2 و برخی دیگر را به VLAN شماره 3 نسبت می­دیم و هر کدام از VLANها Broadcast Domain خاص خود را خواهند داشت که از دسترس سایر ایستگاه­های VLANدیگر دور خواهد ماند و به این ترتیب زندگی شیرین می­شود. شکل 2 این موضوع را بهتر نشان می دهد.

 


شکل2 - VLAN



برای درک بهتر کاربرد VLANها ، دانشگاهی را در نظر بگیرید که از دانشکده­های مختلفی تشکیل شده است. فرض کنید که دانشکده IT و فیزیک در یک ساختمان دو طبقه قرار داشته باشند، و هر کدام شبکه LAN مخصوص به خود را داشته باشند.

حالا اگر در دانشکده فیزیک با کمبود فضا برای استاد جدیدی روبرو شویم ناچاریم که کاربر را در مکان دانشکده IT جای دهیم و با اتصال کابل او به پورت سوییچ واقع در دانشکده IT از این پس آن کاربر عضوی از Broadcast Domain دانشکده IT می­شود و تمام اطلاعات مربوط به این دانشکده را می­تاند دریافت کند ( یه مشکل ) کما اینکه با Broadcast Domain دانشکده فیزیک نیز در ارتباط نخواهد بود ( یک مشکل دیگر ! ). یا در نظر بگیرید که پورت­های سوییچ شبکه دانشکده فیزیک پر شده، در حالی که پورت­های سوییچ دانشکده IT هنوز خالی است.اگر استاد جدیدی به دانشکده فیزیک دعوت شود می توانیم او را به عضو پورتی از پورت­های سوییچ شبکه IT دربیاوریم که در این صورت باز همان دو مشکل بالا بروز خواهد کرد و یا اینکه می توانیم هزینه اضافی­ای را متحمل شویم و سوییچ دیگری بخریم!



شکل 3 – دانشکده IT- فیزیک



اما اگر از VLAN استفاده کنیم،این مشکل ها دیگر وجود نخواهند داشت.

به این ترتیب که تمام پورت­های سوییچ را به یک LAN اختصاص ندیم بلکه تعدادی از آن را به یک VLAN و تعدای دیگر را به یک VLAN دیگر و ... اختصاص بدهیم.

شکل 4 را در نظر بگیرید.

در این شکل دو سوییچ داریم که یکی متعلق به دانشکده IT و دیگری متعلق به دانشکده فیزیک است، روی سوییچ دانشکده فیزیک دو VLAN ساخته­ایم که یکی متعلق به دانشکده IT و دیگری مربوط به دانشکده فیزیک است .

در نهایت نتیجه این می­شه که کامپیوتر­های دانشکده IT در یک VLAN با یک Broadcast Domain مخصوص به خود و کامپیوتر­های دانشکده فیزیک در یک VLAN دیگر با Broadcast Domain خاص خود قرار خواهند داشت صرف نظر از اینکه در چه مکان فیزیکی ای ( طبقه اول یا دوم ) قرار دارند!

اگر تا الان مفهوم VLAN را خوب متوجه شده باشید، می­بینید که وجود دو سوییچ مجزا برای این دو دانشکده هم بیهوده است و کار با یک سوییچ هم راه می افتد !! یک سوییچ و دو یا چند VLAN مجزا ! فقط بایستی سوییچی که انتخاب می­شود قابلیت VLANing را داشته باشد و به تعداد کافی پورت !



شکل 4 – کاربرد VLAN ها



از مجموع این دو مثال متوجه می­شیم که VLAN ها چیز خوبی هستند! و حتماً متوجه شدید که در واقع در VLAN ما یک LAN بزرگ با یک Broadcast Domain به همان اندازه بزرگ را به VLAN های کوچکتر با Broadcast Domain های کوچکتر تقسیم می­کنیم و در حقیقت این عمل باعث صرفه جویی در پهنای باند، امنیت بیشتر، جلوگیری از صرف هزینه زیادی برای خریدن سوییچ و برخوداری از یک طراحی منعطف برای شبکه­مان می­شود.

به علاوه VLAN ها مزایای دیگری هم دارند من جمله نگهداری و حفاظت از کامپیوتر­هایی که با سایر کامپیوتر­ها عضو یک LAN می­باشند اما حاوی اطلاعات مهمی­اند و با استفاده از مفهوم VLAN می توانیم آن­ها را در VLAN مجزایی نگهداری کنیم.

همین طور در VOIP ( Voice Over IP ) به وسیله VLAN ها می توانیم ترافیکی که توسط یک IP Phone فرستاده می­شه را از ترافیکی که توسط کامپیوتر متصل به تلفن فرستاده می­شه مجزا کنیم.

یک بار دیگر دو مثال بالا را با هم مرور می­کنیم. در مثال اولی ما شبکه­ای شامل یک سوییچ داشتیم که آن را به دو VLAN تبدیل کردیم. پیاده سازی این مثال کار ساده­ای خواهد بود .کافی است که به تنظیمات پیکربندی سوییچ برویم و پورت­هایی از سوییچ را به VLAN1 ، و سایر پورت­ها را به VLAN2 اختصاص بدیم. و البته لازمه که بدونیم محدودیتی بر تعداد VLAN ها روی یک سوییچ وجود ندارد و اساساً به تعداد پورت­ها و ایستگاه­های موجود در یک VLAN بستگی دارد.

اما شبکه ها همیشه به همین سادگی نخواهند بود.برای درک این موضوع مجدداً مثال دانشکده فیزیک و IT را در نظر بگیرد. در آنجا دو سوییچ با دو VLAN داشتیم. که برخی از پورت­های سوییچ دانشکده IT به VLAN2 و برخی دیگر به VLAN3 اختصاص داده شده بود. همچنین پورت­های سوییچ دانشکده فیزیک نیز به VLAN3 اختصاص داده شده بود. پر واضح است که باید دو سوییچ به طریقی با هم در ارتباط باشند تا بتوانند ترافیک­ VLAN­های مشابه را از هم انتقال بدهند.نه ؟

اما این اتصال چطور صورت می­گیرد ؟

VLAN Trunking


اگر VLAN در شبکه­هایی که با چندین سوییچ به هم وصل شده­اند استفاده شود، برای بخش­های بین سوییچ بایستی که از VLAN Trunking استفاده کنیم. به عبارت ساده تر

وقتی روی سوییچ­ها VLAN تعریف می کنیم، سوییچ­ها را از طریق ترانک به هم وصل می­کنیم. بنابراین در مورد مثال دانشکده IT و فیزیک نیز بایستی که بین سوییچ ها از VLAN Trunking استفاده کنیم. تا سوییچ دانشکده فیزیک بتواند با VLAN خود در سوییچ دانشکده IT در ارتباط باشد.



شکل 5 – VLAN Trunking



اما بسته ای که از سوییچ دانشکده فیزیک خارج می­شود از کجا مشخص می­شود که به سمت کدام VLAN باید برود ؟

VLAN Tagging


VLAN Trunking باعث می­شود که سوییچ­ها از فرآیندی استفاده کنند که VLAN Tagging ( برچسب زدن VLAN ) نامیده می­شود.همان طوری که از نام این فرآیند مشخصه، VLANها برچسب می­خورن!

چرا ؟ چون هویت بسته­های ارسالی و دریافتی مشخص باشد که به کدام VLAN تعلق دارند.

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

اما سوییچ­ها چه جوری این VLAN ID را پیدا می­کنند؟ برای این کار طبق یک استاندارد، سوییچ قبل از اینکه فریم را به سوییچ دیگری ارسال کند، سرآیندی ( Header ) را به فریم اضاف می­کند که VLAN ID توی اون سرآیند قرار می­گیرد. بنابراین سوییچ وقتی فریمی را دریافت می­کند اول سرآیندش را برای پیدا کردن VLAN ID چک می­کند تا ببیند بسته به کدام یکی از VLAN هایش تعلق دارد. از VLAN Tagging بگذریم.

اما Trunking VLAN چطوری در سوییچ­ها ایجاد می­شود ؟ برای این کار کافی است از یکی از پورت­های سوییچ استفاده کنیم و به تنظیمات پیکربندی سوییچ رفته و آن پورت را به ترانک اختصاص بدیم. همین! حالا سوییچ می­تاند از VLAN Trunking استفاده کند.

فقط به یاد داشته باشید که اگر سوییچ پورت ترانک داشته باشد،ترافیک دریافتی از VLAN هایش را به تمام پورت­های ترانک اش هم ارسال می­کند مگر در مورد حالتی خاص که در موردش بعداً بحث می­کنیم.

شکل 6 سعی داره که همین جمله را روشن­تر بیان کنه!

در این شکل اقدس در VLAN2 قصد دارد که پیامی را به صورت Broadcast ارسال ­کند.سوییچ این پیام را به سایر کامپیوترهایی که با کامپیوتر ارسال کننده­ در یک Broadcast Domain هستند می­رساند، در ادامه کار، سوییچ بایستی که این فریم را به پورت ترانک­اش نیز ارسال کند تا اگر در سایر سوییچ­ها هم VLAN2 هست، این پیام به آن­ها نیز برسد. اما قبل از اینکه فریم از سوییچ خارج شود و روی ترانک قرار بگیرد، بایستی که به فریم برچسب بزنیم! این کار را با اضافه کردن سرآیندی به فریم و قرار دادن شماره VLAN ارسال کننده فریم توسط سوییچ انجام می­گیرد.



شکل 6 – ارسال ترافیک دریافتی از VLANها بر روی پورت ترانک



انواع پروتکل­های ترانکینگ


پیش­تر گفتیم که سوییچ سرآیندی را به فریم اضاف می­کند. اما این سرآیند چه شکل و قالبی خواهد داشت و چگونه تعریف خواهد شد؟

شکل و قالب این سرآیند توسط پروتکل­های ترانکینگ تعریف می­شود. به طور کلی دو نوع پروتکل ترانکینگ داریم که یکی خاص منظوره (Inter Switch Link = ISL ) که توسط شرکت سیسکو و تنها برای سوییچ­های سیسکو و دیگری عام منظوره ( 802.1Q ) که توسط IEEE برای عموم سوییچ­ها طراحی شده است.در حقیقت پروتکل ISL خیلی قبل­تر از پروتکل 802.1Q طراحی شده بود و همان طور که گفتیم تنها به منظور استفاده در سوییچ­های سیسکو است؛ اما این پروتکل دیگر حتی در بعضی از سوییچ­های جدید سیسکو نیز پشتیبانی نمی­شود! همچنین پروتکل ISL تنها بین دو سوییچ سیسکو که از پروتکل ISL پشتیبانی می­کنند قابل استفاده است.

هر کدام از این پروتکل­ها قالب خاص خود را برای تعریف سرآیند دارند.

هر دو این پروتکل­ها از شماره VLAN های یکسان استفاده می­کنند یعنی هر دو از شماره پروتکل 12 بیتی برای VLAN ID استفاده می­کنند که منجر به 2-212 شماره مختلف می­شود. ( شماره­های 0 و 4065 در نظر گرفته نمی­شوند).

توجه داشته باشید که ID های 1 تا 1005 به عنوان رنج نرمال،و ID های بالاتر از آن برای برای VLAN های گسترش یافته استفاده می­­شود.

یک تفاوت خیلی مهم بین پروتکل ISL و 802.1Q استفاده از ویژگی­ای به نام Native VLAN است که 802.1Q از آن پشتیبانی می­کند و ISL نه!

و اما این ویژگی چی هست ؟

چه مزایایی دارد؟

چه معایبی دارد ؟

Native VLAN


روی هر سوییچ به صورت پیش فرض یک VLAN تعریف شده که تمام پورت­های سوییچ به آن VLAN اختصاص داده شده­اند شماره این VLAN همیشه ثابت و برابر 1 است و به آن native VLAN گویند. مثلا اگر سوییچی 26 تا پورت داشته باشد در ابتدا تمام این 26 پورت در انحصار VLAN1 است، وقتی شما VLAN2 را تعریف می­کنید می­تانید تعدادی از این پورت­ها را به VLAN2 اختصاص بدید که در آن صورت دیگر از انحصار VLAN1 خارج می­شود. یادتان باشد که شما نمی­تانید شماره این VLAN را تغییر دهید و یا آن را حذف کنید و در ضمن همیشه شماره VLAN های شما از 2 شروع می­شود.

حالا 802.1Q می­آد و از این native VLAN استفاده مفید می­کنه. چه جوری ؟ این جوری که 802.1Q به فریم­هایی که از VLAN1 یا همان native VLAN می­آیند سرآیندی اضاف نمی­کند.

حالا که چی ؟ نتیجه این می­شه که فریم بی سرآیندی به دست سوییچ دیگری می­رسد. سوییچ دیگر هم وقتی که متوجه شد که فریم سرآیند ندارد می­فهمه که این فریم از یک Native VLAN به دستش رسیده و او هم این فریم را به Native VLAN خود ارسال می­کند. خب! چرا این کار رو می­کنیم؟ چرا سرآیند را حذف می­کنیم ؟ مگه نمی توانیم سرآیند را داشته باشیم و VLAN ID را در سرآیند ، 1 بذاریم ، اون طوری هم سوییچ متوجه می­شه که این مال native VLAN هه ؟دلیلش به دو دلیله ! اول اینکه این کار باعث می­شه که اگر به سوییچی متصل شدیم که پروتکل­های تراکینگ را نمی­فهمید باز هم بتانیم عمل انتقال فریم­ها را انجام بدیم، چرا که پروتکل­های تراکینگ سرآیندی به فریم اضاف می­کنند که باعث می­شه فریم اصلی درون این سرآیند کپسوله شود و برای سوییچی که ترانکینگ را نمی­فهمد فریم نامفهوم می­شود ولی این سرآیند در Native VLAN وجود ندارد و به این ترتیب می توانیم با سوییچ نفهم رابطه برقرار کنیم. در حقیقت Native VLAN به درد سوییچ­هایی می­خوره که حداقل قابلیت برای عبور ترافیک و آن هم تنها برای یک VLANرا دارند.دلیل دوم اینکه پروتکل­هایی نظیر CDP ، STP ، VTP، PagP و ... وجود دارند که تنها برای عبور از VLAN1 تنظیم شده­اند.

برای بالا بردن امنیت در VLAN ها می توانیم این VLAN1 را نادیده بگیریم و VLAN دیگری را به عنوان Native VLAN برای سوییچ­ها تعریف کنیم، فقط نکته قابل توجه اینه که این Native VLAN بایستی که برای همه سوییچ­ها تعریف شده باشه و همه قبول داشته باشند که مثلاً VLAN30 یک Native VLAN است.

دلیل این عوض کردن native VLAN را هم مفصلاً در بخش امنیت VLAN ها توضیح می­دم.

بیایید فرض کنیم که سه تا سوییچ داریم که هر کدام بایستی پورت­هایی داشته باشند که به VLAN ای با شماره 3 اختصاص دارد، برای تعریف این VLAN بایستی که برای هر سوییچ به قسمت تنظیمات پیکربندی­اش برویم و VLAN شماره 3 و نام­اش را تعریف کنیم.و اگر احتمالاً مجبور شدیم که نام یک VLAN را عوض کنیم بایستی که این تغییر نام را بر روی تک تک سوییچ­ها اعمال کنیم.خب! این برای سه تا سوییچ کار چندان سختی نخواهد بود، اما اگر 200 تا سوییچ داشتید چی؟ این تنظیمات دستی بابای ادمین شبکه را جلوی چشمش خواهد در آورد. برای رفع این مشکل از پروتکلی به نام VTP استفاده می­کنیم.

VLAN Trunking Protocol یا VTP


همان طور که از نامش مشخصه، VTP پروتکل VLAN Trunking است. یعنی مخصوص VLAN ها آن­ هم برای حالت Trunking است. و تنها از ترانک برای انتشار می­تاند استفاده کند. یعنی تنها مخصوص انتقال بین "سوییچ­ها" است.

با استفاده از پروتکل VTP می توانیم اطلاعات VLAN را روی یک سوییچ ست کنیم بعد با استفاده از VTP سایر سوییچ­ها را از وجود این VLAN و پیکربندی­ش آگاه کنیم. نتیجه این می­شه که باقی سوییچ­ها نیز این VLAN را خواهند شناخت.

اما آیا این پیکربندی اولیه را می توانیم روی هر سوییچی که خواستیم اعمال کنیم و بعد از VTP استفاده کنیم ؟

نه! به طور کلی پروتکل VTP سوییچ­ها را در سه حالت دسته بندی می­کنه و هر سوییچ تنها در یکی از این سه حالت قرار می­گیره که باز تنظیم این حالت به عهده ادمین شبکه است. حالت­های Server ، کلاینت و Transparent (شفاف) .

هر ادمین یک یا چند تا از سوییچ­ها را در حالت VTP Server و باقی را برای حالت VTP Client ست می­کند. به این ترتیب تنها روی سوییچ­های VTP Server می توانیم پیکربندی­های دلخواه را تنظیم یا تغییر بدیم و سپس از طریق پروتکل VTP این تنظیمات را به دیگر سوییچ­های VTP Server و VTP Client مخابره کنیم.هر کدام از سوییچ­های VTP Server و کلاینت هم که این پیام را دریافت کردند آن­ها هم متقابلاً آن پیام را برای ترانک­های خارجی­شان می­فرستند.

پس تا اینجا متوجه شدیم که تنها تغییر در پیکربندی سوییچ­های VTP Server است که منجر به مخابره پیام­های VTP به کل شبکه می­شه.

به عبارت دیگر تنها روی یک سوییچ VTP Server می توانیم یک VLAN جدید اضافه کنیم و یا حذف کنیم و یا تنظیمات­ش را تغییر دهیم و این کاراز طریق سوییچ­های VTP Client امکان پذیر نیست.

چه هنگامی پیام­های VTP صادر می­شه ؟

همان طور که پیش­تر گفته شد، هنگامی که تنظیمات پیکربندی یک سوییچ تغییر کند،این پیام­ها فرستاده می­شوند.

به علاوه این پیام­ها هر 5 دقیقه یکبار نیز توسط VTP سرور­ها در کل شبکه مخابره می­شود.

و به غیر از این موارد هنگامی که یک سوییچ جدید ایجاد شود که شامل VLAN هایی است، سوییچ­ها می­تانند با یک پیام VTP از سوییچ تازه تاسیس بخواهند که اطلاعات VLAN هایش را برای آن­ها ارسال کند.

پس همان طور که احتمالاً دقت نکردید، سه نوع پیام مختلف برای VTP داریم!

پیام­هایی که به هنگام تغییر تنظیمات پیکربندی یک سوییچ VTP Server ارسال می­شوند، پیام­هایی که به طور اتوماتیک هر 5 دقیقه یک بار مخابره می­شوند، پیام­هایی که به هنگام ایجاد سوییچ جدیدی به جهت آشنایی ارسال می­شوند.

پروتکل VTP چطور کار می­کند؟


سوییچ­ها چه زمانی می­فهمند که باید پایگاه داده VTP خود را به روز کنند؟

از کجا می­فهمند که پیام VTP تکراری است و حاوی تغییر جدیدی نیست ؟

شکل زیر را در نظر بگیرید.



شکل 7 - VTP



در این شکل یک سوییچ­ از نوع VTP Server و دو سوییچ از نوع VTP Client انتخاب شده­اند.

داستان از اینجا شروع می­شه که تصمیم می­گیریم که یک VLAN جدید را روی سوییچ VTP Server ایجاد کنیم. در هر VTP شماره ای وجود دارد که Revision Number نام دارد و مقدار این شماره برابر آخرین باری است که VTP حاوی اطلاعات جدیدی بوده مثل تغییر در پیکربندی یک VTP Server ، و البته این شماره برای کل سوییچ­های شبکه مقدار یکسانی دارد چرا که این پیام­ها به صورت سراسری برای تمام سوییچ­ها ارسال می­شود. هنگامی که VTP مجدداً مجدداً حاوی پیام جدیدی شود به این شماره یکی اضاف می­شه و پیام VTP جدید به همراه این شماره جدید به کل شبکه ارسال می­شود .

بار دیگر به شکل 7 نگاه کنید. در این شکل Revision Number فعلی 2 است. تصمیم می­گیریم که VLAN جدیدی را به سوییچ VTP Server اضاف کنیم، این کار باعث می­شود که که پیکربندی سوییچ تغییر کند که در نتیجه ی این تغییرات، شماره پیام VTP ، یک واحد اضاف می­شود و از دو به سه تغییر می­کند و سپس اطلاعات این پیکربندی به همراه این شماره جدید برای سایر سوییچ­ها ارسال می­شود. سایر سوییچ­ها این شماره را با شماره VTP خود چک می­کنند اگر از Revision Number فعلی خود بیشتر بود این پیام را دریافت می­کنند، به شماره VTP خود یکی اضاف می­­کنند و این پیام را برای پورت­های ترانک خود ارسال می­کنند و در غیر این صورت پیام VTP رسیده را رد می­کنند.

در حقیقت باید بگیم که پروتکل VTP تا حد زیادی شبیه پروتکل­های مسیریابی عمل می­کند.

همان طور که گفتیم پیام­های VTP برای کل سوییچ­های شبکه ارسال می­شود. حالا شرکتی را فرض کنید که بخش امور مالی در یک VLAN و بخش حسابداری در VLAN دیگری و بر روی سوییچ­های مختلفی قرار دارند و تنها هم نیاز است که اطلاعات تغییر در پیکربندی این سوییچ­ها برای هم ارسال شود و به طور مثال بخش انبار نیازی به دریافت این پیام­های VTP ندارد !!

چطور می­شه از سرازیر شدن پیام­های VTP به کل شبکه جلوگیری کرد ؟ راه حل این مشکل هم همین جاست! این پایین !

VTP Domain


VTP Domain این امکان رو به ادمین می­ده که برای مجموعه­­ای از سوییچ­ها نام دامنه یکسان انتخاب کند که باعث می­شود سوییچ­ها در دامنه­های مختلف پیام­های VTP یکدیگر را نادیده بگیرند. همین!

مثلا در مورد مثال بالا می­توانیم برای سوییچ­های مربوط به VLAN های بخش مالی و حسابداری ، VTP Domain یکسانی انتخاب کنیم و در نتیجه پیام­های VTP در این سوییچ­ها تا جایی پیش می­رود که دامنه اجازه می­دهد!

آیا امکانش هست که یک سوییچ نام دامنه­ای نگیرد ولی باز هم پیام­های VTP را دریافت نکند؟ یا به عبارت دیگر راهی هست که یک سوییچ پیام­های VTP را دریافت کند ولی عکس العملی به این پیام­ها نشان ندهد ؟ یعنی اطلاعات پیکربندی خود را تغییر ندهد طوری که گویی این پیام اصلا به گوش او نرسیده ؟

برای این کار بایستی که VTP را غیرفعال کنیم. اما دو تا مشکل وجود دارد، یکی اینکه بعضی از سوییچ­های سیسکو نمی­تانند VTP را غیر فعال کنند و مشکل دوم اینکه حتی اگر بتانیم VTP را برای سوییچی غیر فعال کنیم،این راه حل مناسبی نخواهد بود. چرا که ممکن است این سوییچ واسطه­ای برای سایر سوییچ­ها باشد که نیاز به دریافت این پیام­های VTP دارند. با غیر فعال کردن این سوییچ ، عملاً سایر سوییچ­های وابسته نیز این پیام را دریافت نخواهند کرد.

راه حل بهتر که هم خدا را خوش آید و هم سوییچ­های سیسکو را ؛ استفاده از VTP Transparent است.

VTP Transparent


بهترین تشبیهی که از Transparent VTP می­تونم بکنم مثال شیشه است. شیشه می­تانه نور را از خود عبور بده و نیز آن را منعکس کنه بدون اینکه خودش تغییری کند. Transparent VTP نیز همین کار را با سوییچ می­کنه، یعنی باعث می­شه که سوییچ پیام­های VTP را دریافت کند آن را از خود عبور داده و برای سایر سوییچ­های همسایه دوباره ارسال ( Forward ) کند اما با دریافت این پیام­های VTP خودش تغییری نمی­کنه. همین !

این در واقع حالت سوم پروتکل VTP است. قبلا گفتیم که VTP برای سوییچ­ها سه حالت دارد که دو مورد آن­ها VTP Server و VTP Client بود و VTP Transparent همان حالت سومه.

سوییچ­­هایی که روی حالت VTP Transparent تنظیم می­شوند نیز به مانند VTP Server ها می­تانند VLAN ها را پیکربندی کنند و صاحب VLAN های جدید شوند اما بر خلاف VTP Server ها هرگز این اطلاعات پیکربندی را برای دیگران ارسال نمی­کنند. در حقیقت سوییچ­های VTP Transparent به نوعی نسبت به سایر سوییچ­­ها ایزوله اند.

در سری جدید سوییچ­­های سیسکو حالت چهارمی به نام noon وجود دارد، که باعث غیر فعال کردن VTP روی یک سوییچ می­شود که بهتر است از آن برای سوییچ­­های ترمینال شبکه استفاده کنیم.

VTP Pruning


یادتونه قبلاً گفتیم که اگر پیام Broadcast ای از یکی از VLANهای سویچ ارسال شود سوییچ بایستی که این پیام رو بر روی پورت­های ترانک خود ( به جز حالتی خاص ) نیز ارسال کند ؟ حالا می­خواهیم همون رو توضیح بدیم.

غیر از پیام­های VTP که که بهتر است کنترل شود تا بی­خودی در کل شبکه پخش نشود، پیام­های Broadcast که از ترانک­های سوییچ­ها خارج می­شوند نیز باید کنترل شوند. چرا ؟ شکل زیر را در نظر بگیرید.



شکل 8 – کنترل ترانک­ها



در این شکل هر کدام از کامپیوتر­ها نماد یک VLAN هستند. هاست­ای که با رنگ سبز مشخص شده است، قصد دارد که پیامی را به صورت Broadcast ارسال کند. سوییچ1 این پیام رو برای سایر کامپیوتر­های VLAN23 بر روی خود می­فرستد، همچنین بایستی که این پیام را بر روی تمام پورت­های ترانک خود نیز ارسال کند تا این پیام به سایر اعضای VLAN23 در سوییچ­های دیگر نیز برسد. پیام به سوییچ­های دو و سه می­رسد.

سوییچ دو : VLAN ID بسته را کنترل می­کند و متوجه می­شود که این پیام به VLAN­ای از مجموعه VLAN های خودش مربوط نیست بنابراین تنها آن را بر روی ترانک­های خود ( به غیر از اونی که پیام ازش اومده ) فوروارد می­کند، پیام فوروارد شده از سوییچ دو به دست سوییچ چهار می­رسد، سوییچ چهار سرآیند بسته را کنترل می­کند و متوجه می­شود که این بسته به VLAN23 او مربوط است ، بنابراین سرآیند بسته را حذف می­کند و پیام اصلی را برای VLAN23 خود فوروارد می­کند.

سوییچ سه : سرآیند پیام رسیده را چک می­کند و متوجه می­شود که VLAN ID این پیام ربطی به VLAN ID های خودش ندارد، بنابراین پیام را برای بر روی ترانک­های خود ( به غیر از اونی که پیام ازش رسیده ) ارسال می­کند که در این شکل سوییچ سه دیگر ترانکی ندارد تا پیام رو برای آن فوروارد کند!

سوال اینجاست که آیا واقعاً لازم است که این پیام­ها برای همه سوییچ­ها و بر روی همه ترانک­های خارجی ارسال شود ؟

مثلا در شکل بالا چه نیازی هست که این پیام به سوییچ سه برسد ؟!

همان طور که مشخصه نه تنها نیازی به ارسال بیهوده این پیام­ها نیست بلکه نباید هم این طور باشه، چرا که این عمل پهنای باند شبکه رو به هدر می­دهد و همچنین سبب پردازش و یک سری اعمال بی­خودی روی سوییچ­ها می­شود.

برای اجتناب از این عمل سوییچ­ها از دو روش پشتیبانی می­کنند که به وسیله آن ادمین می­تاند جریان ترافیک روی هر ترانک را کنترل و محدود کند. یکی پیکربندی دستی است که به موجب آن ادمین باید روی هر ترانک لیست VLAN های مجاز را تعریف کند و روش دیگر VTP Pruning یا هرس کردن VTP نام دارد.

VTP می­تاند به صورت پویا تشخیص دهد که کدام سوییچ­ها به فریم­هایی از VLAN مشخصی نیاز ندارد و سپس VTP آن فریم­های ارسالی از آن VLAN ها را از طریق ترانک­های مناسبی هرس می­کند.

شکل زیر این مفهوم را بهتر نشان می­دهد.



شکل 9 – VTP Pruning



اما VTP چطور به صورت پویا تشخیص می­دهد که فلان سوییچ نیازی به دریافت فریم­های فلان VLAN را ندارد ؟

به طور خیلی ساده این طور می­شه توضیح داد که VTP مسئول پیام رسانی بین سوییچ­ها است و نیز اطلاعاتی از VLAN ها شامل نام و ID شان و اینکه چه VLAN هایی به چه سوییچی وصل است را همراه خود دارد که این اطلاعات دائماً به صورت داینامیکی در فایلی به نام VLAN.dat که dat مخفف database است در حافظه ذخیره و نگهداری می­شود. به این ترتیب هرس کردن VLAN ها برای VTP کار سختی نخواهد بود!

DTP


در حالت کلی یک پورت سوییچ یا به VLAN خاصی نسبت داده شده یا یک پورت ترانک است. ( البته اگر کلاً بلااستفاده نباشد!! ) اگر این پورت ترانک باشد به راحتی می­تواند اطلاعات سایر سوییچ­ها و VLAN ها را از خود عبور بده.

پروتکل DTP ( که فقط مخصوص سوییچ­های سیسکو است ) کمک می­کند که در موارد لزوم یک پورت به صورت داینامیکی به پورت ترانک تبدیل شود و بتاند با سوییچ همسایه خود ارتباط برقرار کند و نتیجتاً اطلاعات ترانک را از خود عبور دهد. اکثر سوییچ­ها به صورت پیش فرض در حالت DTP قرار دارند. به این عمل ترانکینگ پویا گفته می­شود.

بعد از همه این موارد این سوال پیش می آد که چطوری هر پورت رو به VLAN اختصاص می­دیم ؟

Static VLAN و Dynamic VLAN


این کار به دو صورت استاتیک ( دستی ) و داینامیک ( غیر دستی ! ) پیاده سازی می­شود. در روش دستی ، ادمین شبکه خودش مشخص می­کند که فلان پورت از فلان سوییچ به کدام VLAN متعلق است که البته این برای شبکه­های بزرگ کار بسیار مشکل و تقریبا ناممکنی است! و البته یک ایراد اساسی هم دارد! و آن این است که در این روش مثلاً ادمین مشخص می­کنه که شماره پورت­های 13 ، 14 و 18 از سوییچ 3 متعلق به VLAN بخش مالی و یک شرکت است. حالا اگر شخصی لپ تاپ خود را بیاورد و به یکی از این پورت­ها وصل شود عضو VLAN مالی محسوب می­شود و این یعنی بد!!

در روش پویا تمام سوییچ­ها را به یک سرور وصل می­کنیم، ادمین یک فایل متنی که لیست دسترسی ( Access List ) نام دارد را تعریف می­کند به طور کلی مشخص می­کند که مجموعه از پورت­های سوییچ به چه "نوع" کاربری یا "گروه کاربری" ای متعلق است، مثلا می­تواند این سیاست را با Mac Address اعمال کند یا به روش­های مختلف دیگر؛ در این صورت تکلیف هر سوییچ روشن می­شود . در این صورت اگر کاربر نامربوطی بخواهد از پورتی که به او مربوط نیست استفاده کند، سوییچ به طور خود به خود او را از دسترسی به VLAN ای که به او مربوط است منع می­کند!

VLAN ها و Subnetting


در حالت عادی، تمام کامپیوترهایی که در یک LAN عضو هستند، Subnet مشترکی دارند، درسته؟ VLAN ها هم درست عین LAN هستند، به این معنی که اینجا هم کامپیوترهایی که عضور یک VLAN هستند بایستی که Subnet های یکسانی داشته باشند. بدیهی بود نه ؟!

پیش­تر گفتیم که مقصد پیام­ها در بین سوییچ­های مختلف از طریق VLAN ID ای که به هنگام خروج از پورت ترانک به فریم اضافه می­شود به راحتی قابل تشخیص­اند، اما در مورد پیام­هایی که از یک VLAN در یک سوییچ به یک VLAN دیگر در همان سوییچ فرستاده می­شود چی ؟ چطور می­شه مقصد پیام را تشخیص داد که مربوط به چه VLAN ای است؟ که البته چطوری ش تحقیقاً 6 خط بالاتر گفته شد و اون لزوم متفاوت بودن subnet برای VLAN های مختلف است !

شکل زیر را در نظر بگیرید.



شکل 10 – VLANها و subnetting



در این شکل یک سوییچ لایه دو را می­بینیم که شامل سه VLAN است. در مورد این سوییچ بعد از تشریح شکل، توضیحاتی نوشته شده است.

قدم 1: کامپیوتر موجود در VLAN2 با ساب.نت 10.1.1.0 و آدرس 10.1.1.2 تصمیم دارد که پیامی را به کامپیوتر 10.2.2.3 با ساب.نت 10.2.2.0 بفرستد. پیام صادر شده از کامپیوتر 10.1.1.2 به سوییچ می­رسد، سوییچ پیام رو گرفته، subnet پیام رو چک می­کند و چون subnet مقصد پیام با subnet مبدا فرق می­کند متوجه می­شود که پیام برای VLAN دیگری ارسال شده است اما نمی­داند که آدرس Subnet مقصد به کدام یکی از VLAN هایش متعلق است ( در حقیقت چیزی از مسیریابی نمی­داند ).

قدم 2: سوییچ بسته را برای مسیریابی به روتر می­فرستد.

قدم3: روتر عملیات مسیریابی را انجام داده و با توجه به subnet متوجه می­شود که بسته به VLAN3 متعلق است، سپس VLAN ID مقصد را به همراه فریم برای سوییچ ارسال می­کند.

قدم4: سوییچ بسته را دریافت کرده و آن به سوی کامپیوتر 10.2.2.3 روانه می­کند.

این مثال غیر از بیان مفهوم subnetting در سوییچ­ها به ما این مطلب را نشان داد که می توانیم از همین سوییچ­های معمولی لایه دو خودمون ( که البته قابلیت VLANing داشته باشند !) به همراه روتر برای VLANing استفاده کنیم.

همین طور این مطلب را به ما نشان داد که البته این کار درست مثل این می­مونه که شما قاشق غذا را برای رساندنش به دهانتون دور سرتون بچرخونین ! چرا ؟! چون به خاطر نفهمی سوییچ باید که یه بار پیام رو به روتر بفرستیم و بعد روتر دوباره پیام رو به سوییچ بفرسته! به جای این کار می توانیم از سوییچ­­های فهمیده استفاده کنیم. یعنی چی ؟

سوییچ­های معمولی که قابلیت VLAN داشته باشند ، سوییچ­های لایه دو هستند، سوییچ­هایی­­اند که با پورت­ها سر و کار دارند. ولی سوییچ­های لایه سه که جدیدتر هم هستند سوییچ­هایی هستند که هم می­تانند کار سوییچ­های لایه دو را انجام بدهند و هم مسیریابی که کار روتر­هاست! به عبارتی هم زبان پورت­ها رو می­فهمند و هم زبان IP ها را. و البته خب مسلمه که استفاده از این سوییچ­ها اگرچه گرانتر از سوییچ­های لایه دو و روتر­ها هستند ولی در کل باعث ساده شدن شبکه و بالاتربردن قابلیت اش می شوند .

به هر حال برای استفاده از VLANing نیازی به متحمل شدن هزینه اضافی برای خرید سوییچ­های لایه سه نیست، کار با همون سوییچ­های لایه دو هم حل می­شود اما اگر قصد خرید سوییچ جدیدی برای شبکه خود را دارید استفاده از سوییچ­های لایه سه مناسب­تر است.

امنیت VLAN ها و ترانک­ها


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

N یکی از مهمترین­هاش وجود VLAN1 است! که به صورت پیش فرض در همه سوییچ­ها به عنوان native VLAN تعبیه شده است. و پیام­هایی که از این VLAN صادر می­شود برچسب نخواهند خورد! و همین امر باعث می­شود که کلیه پیام­های VLANهای 1 به راحتی قابل شنود باشند. دلیل بعدی ش همان طور که گفتیم ترافیک بین سوییچ­ها از طریق ترانک­ها و توسط پروتکل­های ترانکینگ ISL و 802.1Q کنترل می­شوند. این پروتکل­ها تنها از طریق هدر بسته های رسیده از VLAN ها به وظایف خود عمل می­کنند، حالا یک مهاجم از ترکیب این دو ویژگی می­تاند به هر VLAN ای که خواست دسترسی داشته باشد! چه جوری ؟ مهاجم بسته خارج شده از VLAN1 را که به راحتی قابل شنود است و بسته بندی هم نشده است، بسته بندی می­کند و هدر خود را به آن اضافه می­کند! پروتکل­های ترانکینگ زبان بسته­ی از همه جا بی خبر هم حالا با بسته­ای سر و کار دارند که هدر دارد و ماموره و معذور که پیام رو به سوییچ مربوطه برساند!! و اما چه جوری می­شه جلوی این کار رو گرفت ؟ بهترین کار اینه که تمامی پورت­ها و ترانک­ها را از VLAN1 خارج کنیم، و تا آنجا که می­توانیم از این VLAN استفاده نکنیم، و به جاش VLAN دیگری را به عنوان native VLAN تعریف کنیم. اگر پروتکل­هایی داریم که تنها باید از VLAN1 استفاده کنند سعی کنیم که VLAN1 نهایت امنیت را به کار ببریم.

N مورد بعدی اینکه تمام پورت­هایی که در یک سوییچ بلا استفاده هستند را خاموش ( shut down ) کنیم، باید توجه داشت که حتی disable کردن هم امن نیست چرا که امکان Enable کردنش وجود خواهد داشت و سپس این پورت­های بلااستفاده را در یک VLAN جداگانه قرار دهید و آن VLAN را به هیچ VLAN دیگری ارتباط ندید. به این VLAN ها اصطلاحاً Parking lot VLAN می­گن!

1. اگر یک سری از پورت­ها خیلی مهم حیاتی هستند،آن­ها را از سایر پورت­ها جدا کرده و در یک VLAN جداگانه­ی امن، نگهداری کنید .

2. اگر نسبت به یک سری از کاربران مشکوک هستید ، آن­ها را در VLAN های جداگانه­ای قرار بدهید ( نگاهی کنید به شکل 6 )

3. پروتکل DTP را که امکان ترانک کردن یک پورت در صورت نیاز را مهیا می­کرد، غیر فعال کنیم، چرا که این کار می­تواند توسط یک هکر صورت گیرد!

4. برای سوییچ­ها پسورد بگذارید. از سیاست­های port security استفاده کنید.

5. و توجه داشته باشید که این تنها پاره­ای از مواردی بودن که می­شد با اتکا بهشون امنیت بیشتری رو در VLAN ها برقرار کرد و پیدا کردن باقی راه­ها و روش­ها بر عهده خودتون.

دانلود مقاله ی "همه چیز در باره VLAN یا Virtual LAN" بصورت فایل PDF

 

نظرات  

 
+2 #65 hoory ۱۳۹۳-۰۸-۰۹ ۲۱:۰۳
بسیار بسیار عالی و روان توضیح داده بودید.

ممنون
نقل قول
 
 
+2 #64 علیرضا ۱۳۹۳-۰۵-۳۱ ۱۷:۵۹
به نام خدا
سلام
خیلی راحت فهم و زیبا توضیح داده اید ممنونم از شیوایی سخنتان
نقل قول
 
 
+2 #63 م ۱۳۹۳-۰۳-۰۶ ۱۳:۱۶
:D عالیییییییییییی
نقل قول
 
 
+2 #62 ahmadi ۱۳۹۳-۰۲-۱۵ ۱۳:۴۰
عالی بود.
نقل قول
 
 
+1 #61 امین ۱۳۹۳-۰۲-۰۸ ۰۷:۳۷
شیر مادرت حلالت. پدرم در اومده بود و نفهمیده بودم این کلمه vlan یعنی چی؟ الان شیرفهم شدم. واقعا یک دنیا ممنونتم
نقل قول
 
 
0 #60 salimi ۱۳۹۳-۰۲-۰۶ ۲۰:۱۰
بسیار عالی بود متشکرم
نقل قول
 
 
0 #59 *** ۱۳۹۳-۰۱-۰۶ ۰۷:۴۳
بسیار خوب بود ممنووووووووووووووووووووووووووو ووووووووووون ;-) :-)
نقل قول
 
 
0 #58 sara ۱۳۹۲-۱۱-۰۹ ۱۲:۲۸
:roll: مرسی
نقل قول
 
 
+1 #57 sara ۱۳۹۲-۱۱-۰۵ ۱۴:۵۱
عالی بود...کلی مطلب یاد گرفتم.....ممنونم :roll:
نقل قول
 
 
-2 #56 نازنین ۱۳۹۲-۱۰-۲۹ ۱۹:۲۸
با سلام و وقت بخیر.در ابتدا بسیار سپاس از توضیحات جامع و کاملی که از vlan قرار دادین.من دانشجوی کارشناسی سخت افزار هستم و ی تحقیق درباره همین موضوع توسط استادم بعنوان نمره پایان ترم بهم داده شده.من زیاد روی نت جستجو کردم و بنظرم با مطالعه مطالبی که بقیه دوستان گذاشته بودن،مطلب شما بسیار بسیار جامع بودش.فقط اینکه استادم تاکید کردن که تحقیقم بصورت گردآوری باشه نه کپی ی مطلب از اینترنت.
خواستم خواهش کنم نظرتونو بهم بفرمائین که همین مطالب رو اگر که بصورت اسلاید مطابق با خواسته استادم تحویل بدم،آیا کفایت میکنه؟؟؟؟
چون من رفرنسا و مقاله های زبان اصلی رو نتونستم ترجمه کنم و اصلا هیچ کتابی رو درباره این موضوع بررسی نکردم.
خواهش میکنم لطف کنین و منو راهنمایی کنین.
نقل قول
 

ارسال نظر


کد امنیتی
بروزرسانی

مقالات سر راهی !

تاریخچه بازیهای کامپیوتری -- فهرست و نگاهی کوتاه

در مطلب زیر تاریخچه ی بازیهای کامپیوتری از سال 1972 (تولد این صنعت) تا سال 2007 به طور کامل و پر جزئیات به رشته ی تحریر در آمده است که هر چند وقت یکبار به صورت دوره ایی به روز شده و ادامه پیدا میکند...

 

تاریخچه بازیهای کامپیوتری -- فهرست و نگاهی کوتاه

تبلیغات تصویری

آگهی
آگهی