VLAN Trunking
نوشته شده توسط بهادر اکرمی در 8 نوامبر 2013اگر VLAN در شبکه هایی که با چندین سوئیچ به هم وصل شده اند استفاده شود، برای بخشهای بین سوئیچ بایستی که از VLAN Trunking استفاده کنیم. به عبارت ساده تر وقتی روی سوئیچها VLAN تعریف می کنیم، سوئیچها را از طریق ترانک به هم وصل میکنیم. بنابراین در مورد مثال دانشکده IT و فیزیک نیز بایستی که بین سوئیچ ها از VLAN Trunking استفاده کنیم. تا سوئیچ دانشکده فیزیک بتواند با VLAN خود در سوئیچ دانشکده IT در ارتباط باشد.
شکل۵ – VLAN Trunking
اما بسته ای که از سوئیچ دانشکده فیزیک خارج میشود از کجا مشخص میشود که به سمت کدام VLAN باید برود؟
VLAN Tagging
VLAN Trunking باعث میشود که سوئیچها از فرآیندی استفاده کنند که VLAN Tagging (برچسب زدن VLAN) نامیده میشود. همان طور که از نام این فرآیند مشخص است، VLANها برچسب برچسب گذاری میشوند، تا هویت بستههای ارسالی و دریافتی مشخص باشد و سوئیچها بدانند کدام فریم متعلق به کدام VLAN میباشد.
در حقیقت وقتی بستهای میخواهد که از پورت ترانک سوئیچی خارج گردد، سوئیچ به آن بسته یک برچسب می زند، که در آن برچسب شمارهVLAN یا (VLAN ID) که این بسته به آن تعلق دارد را قرار میدهد تا از این طریق سوئیچهای دیگر متوجه شوند که بسته دریافتی به کدام یکی از VLANهایشان مربوط است.
اما سوئیچها چگونه VLAN ID را پیدا میکنند؟ برای این کار طبق یک استاندارد، سوئیچ قبل از اینکه فریم را به سوئیچ دیگری ارسال کند، یکHeader را به فریم اضافه میکند که VLAN ID در آن Header قرار میگیرد. بنابراین سوئیچ وقتی فریمی را دریافت میکند اول Header آن را برای پیدا کرده و VLAN ID آن را چک میکند تا بداند بسته به کدام یکی از VLAN ها تعلق دارد.
Trunking VLAN به چه صورت در سوئیچها ایجاد میشود؟ برای این کار کافی است از یکی از پورتهای سوئیچ استفاده کنیم و به تنظیمات پیکربندی سوئیچ رفته و آن پورت را به TRUNK اختصاص دهیم. با اینکار سوئیچ میتواند از VLAN Trunking استفاده کند.
فقط به یاد داشته باشید که اگر سوئیچ پورت TRUNK داشته باشد، ترافیک دریافتی از VLAN های آن را به تمام پورتهای TRUNK نیز ارسال میکند به جز در مورد حالتی خاص که در مورد آن بحث خواهیم کرد.
شکل ۶ سعی دارد TRUNK را روشنتر بیان نماید.
در این شکل رضا در VLAN2 قصد دارد که پیامی را به صورت Broadcast ارسال کند. سوئیچ این پیام را به سایر کامپیوترهایی که با کامپیوتر ارسال کننده در یک Broadcast Domain هستند میرساند، در ادامه کار، سوئیچ میبایست این فریم را به پورت ترانک خود نیز ارسال کند تا اگر در سایر سوئیچها هم VLAN2 باشد، این پیام به آنها نیز برسد. اما قبل از اینکه فریم از سوئیچ خارج شود و روی ترانک قرار گیرد، میبایست به فریم برچسب بزنیم! این کار را با اضافه کردن Header به فریم و قرار دادن شماره VLAN ارسال کننده فریم توسط سوئیچ انجام میگیرد.
شکل ۶ – ارسال ترافیک دریافتی از VLANها بر روی پورت ترانک
انواع پروتکلهای ترانکینگ
پیشتر گفتیم سوئیچ Headerهایی را به فریمها اضافه میکند. اما این Header چه شکل و قالبی خواهد داشت و چگونه تعریف خواهند شد؟
شکل و قالب این Header توسط پروتکلهای ترانکینگ تعریف میشود. به طور کلی دو نوع پروتکل ترانکینگ داریم که یکی خاص منظوره (Inter Switch Link = ISL)که توسط شرکت سیسکو و تنها برای سوئیچهای سیسکو تعریف گردیده و دیگری عام منظوره (۸۰۲٫۱Q)که توسطIEEE برای عموم سوئیچها طراحی شده است. در حقیقت پروتکل ISL خیلی قبلتر از پروتکل۸۰۲٫۱Q طراحی شده بود و تنها به منظور استفاده در سوئیچهای سیسکو میباشد؛ اما این پروتکل دیگر حتی در بعضی از سوئیچهای جدید سیسکو نیز پشتیبانی نمیشود! همچنین پروتکل ISL تنها بین دو سوئیچ سیسکو که از پروتکل ISL پشتیبانی میکنند قابل استفاده است.
هر کدام از این پروتکلها قالب خاص خود را برای تعریف Header دارند.
هر دو پروتـــکل از شماره VLAN های یکسـان استفاده میکنند یعنی هر دو از شماره پروتکل ۱۲ بیتـی برای VLAN ID استفاده میکنند که منجر به ۲-۲۱۲ شماره مختلف میشود. (شمارههای ۰ و ۴۰۶۵ در نظر گرفته نمیشوند(
توجه داشته باشید که ID های ۱ تا ۱۰۰۵ به عنوان رنج نرمال و ID های بالاتر از آن برای برایVLAN های گسترشیافته استفاده میشود. یک تفاوت خیلی مهم بین پروتکل ISL و ۸۰۲٫۱Q استفاده از ویژگیای به نام Native VLAN است که فقط پروتکل۸۰۲٫۱Q از آن پشتیبانی میکند .
Native VLAN
روی هر سوئیچ به صورت پیش فرض یک VLAN تعریف شده که تمام پورتهای سوئیچ به آن VLAN اختصاص داده شدهاند شماره این VLAN همیشه ثابت و برابر ۱ است و به آن native VLAN میگویند. مثلا اگر سوئیچی ۲۶ عدد پورت داشته باشد در ابتدا تمام این ۲۶ پورت در انحصار VLAN1 است، وقتی شما VLAN2 را تعریف میکنید میتوانید تعدادی از این پورتها را به VLAN2 اختصاص دهید که در آن صورت دیگر از انحصار VLAN1 خارج میشوند. یادتان باشد که شما نمیتوانید شماره این VLAN را تغییر دهید و یا آن را حذف کنید و در ضمن همیشه شماره VLAN های شما از ۲ شروع میشود.
۸۰۲٫۱Q از native VLAN استفاده ای مفید می کند، ۸۰۲٫۱Q به فریمهایی که از VLAN1 یا همان native VLAN میآیند Header اضافه نمیکند و نتیجه این میشود که فریم بی Header به دست سوئیچ دیگری میرسد. سوئیچ دیگر هم وقتی که متوجه شد که فریم Header ندارد میفهمد که این فریم از یک Native VLAN به دستش رسیده و او نیز این فریم را به Native VLAN خود ارسال میکند. این کار باعث میشود که اگر به سوئیچی متصل شدیم که پروتکلهای تراکینگ در آن تعبیه نشده است باز هم بتوانیم عمل انتقال فریمها را انجام دهیم، چرا که پروتکلهای تراکینگ Headerی به فریم اضافه میکنند که باعث میشود فریم اصلی درون این Header کپسوله شود و برای سوئیچی که پروتکلهای تراکینگ در آن تعبیه نشده است فریم نامفهوم میشود ولی این Header در Native VLAN وجود ندارد و به این ترتیب می توانیم با سوئیچ بدون TRUNK ارتباط برقرار کنیم. در حقیقت Native VLAN برای سوئیچ هایی که حداقل قابلیت عبور ترافیک و آن هم تنها برای یک VLANرا دارند کاربرد دارد. دلیل دوم اینکه پروتکلهایی نظیر CDP، STP ، VTP، PagP و… وجود دارند که تنها برای عبور از VLAN1 تنظیم شدهاند.
برای بالا بردن امنیت در VLAN ها می توانیم VLAN1 را نادیده بگیریم و VLAN دیگری را به عنوان Native VLAN برای سوئیچها تعریف کنیم، فقط نکته قابل توجه این است که Native VLAN بایستی که برای همه سوئیچها تعریف شده باشد و همه قبول داشته باشند که مثلاً VLAN30 یک Native VLAN است.
بیایید فرض کنیم که سه عدد سوئیچ داریم که هر کدام بایستی پورتهایی داشته باشند که به VLAN ای با شماره ۳ اختصاص دارد، برای تعریف این VLAN بایستی که برای هر سوئیچ به قسمت تنظیمات پیکربندی آن رفته و VLAN شماره ۳ و نام آن را تعریف کنیم و اگر احتمالاً مجبور شدیم که نام یک VLAN را عوض کنیم بایستی که این تغییر نام را بر روی تک تک سوئیچها اعمال کنیم. مطمئناً برای سه سوئیچ کار چندان سختی نخواهد بود، اما اگر ۲۰۰ عدد سوئیچ داشتید این قضیه به چه شکل خواهد بود، برای رفع این مشکل از پروتکلی به نامVTP استفاده میکنیم.