سوئیچها در لایه ی دوم مدل OSI کار میکنند. سوئیچها در انواع مختلف ۸، ۱۶، ۲۴ ،۴۸ پورت وجود دارد که با استفاده از آدرس Mac ترافیک را در شبکه انتقال میدهند که همین امر این دستگاه را با Hub متمایز کرده است، البته Bridge هم نوعی سوئیچ است، اما با پورتهای کمتر.
سوئیچها از یک جدول استفاده میکنند که تمام mac address دستگاههای متصل به خود را در آن جای میدهند و از طریق آن کار آدرسدهی را انجام میدهند.
در زیر یک سوئیچ لایهی دو قرار دارد و چهار Pc به آن متصل هستند. در لحظهی اول جدول MAC forward/filter خالی است، تا زمانی که Pc ها اقدام به ارسال اطلاعات کنند؛ با این کار سوئیچ به جدول خود نگاهی میکند و وقتی مشاهده کرد که mac address این pc ها در داخل جدول قرار ندارد آن را در جدول ثبت میکند. همانطور که در شکل زیر مشاهده میکنید، Host A بعد از ارسال اطلاعات Mac آدرس آن در جدول سوئیچ ثبت شد و بعدی Host B است که به محض دریافت اطلاعات، Mac address آنهم در جدول سوئیچ ثبت شد و به همین ترتیب این کار ادامه مییابد.
نکته: سوئیچ برای اینکه برای اولین بار جدول خود را تکمیل کند از Broadcast برای آگاهی از تمامMac Address شبکه استفاده میکند و بعد، تکمیل جدول ارتباط دستگاهها به صورت Unicast انجام میشود که این یک ویژگی سوئیچ است و آن را از Hub متمایز میکند، مثلاً اگر در شکل بالا Host A بخواهد اطلاعات را به Host D بفرستد، چون سوئیچ از آدرسMac ، Host D خبری ندارد، این پیام را به صورتBroadcast به همهی pc های متصل به سوئیچ ارسال میکند و وقتی این کار را انجام داد، تکتک آدرسهای Mac مربوط به pcها در جدول سوئیچ ثبت میشوند.
توجه داشته باشید که وقتی Host A بخواهد به Host B اطلاعات ارسال کند، سوئیچ فقط به پورتی که Host B به آن متصل است اطلاعات را ارسال میکند و به پورتهای دیگر کاری ندارد که به این روش، فیلتر کردن فریمها هم گفته میشود.
روشهای انتقال فریم (LAN Switch Types):
سوئیچ از سه روش برای انتقال فریم (اطلاعات) در شبکه استفاده میکنند که هرکدام را باهم مورد بررسی قرار میدهیم.
روش اول Cut-through (FastForward):
در این روش زمانی که سوئیچ فریمی را دریافت کند که مربوط به یک pc باشد، سریع آن را از طریق جدول Mac خود به طرف پورت مورد (destination) نظر ارسال میکند، این روش بسیار سریع است، چون آدرس مقصد (destination) را در سوئیچ به صورت کامل مورد بررسی قرار نمیدهد، یعنی وقتیکه یک آدرس وارد سوئیچ شد چند عدد اول مورد بررسی قرار میگیرد و آدرس مقصد مشخص میشود.
روش دوم FragmentFree (modified cut-through):
در این روش که کمی سرعت آن به نسبت روش قبلی کمتر است و اصلاحشدهی روش قبلی است، ۶۴ بیت اول MAC آدرس مقصد (Destination) در سوئیچ مورد بررسی قرار میگیرد و از نظر Error چک میشود و اگر مشکلی نداشت به طرف آدرس مقصد ارسال میشود.
روش سوم Store-and-forward:
در این روش فریم مورد نظر به صورت کامل دریافت میشوند و Buffer میشوند و در صورتی که الگوریتم CRC خطایی را تشخیص ندهد به آدرس مقصد مورد نظر ارسال میشود که البته اگر خطایی داشته باشد، این فریم پس زده میشود.
به شکل زیر توجه کنید، این شکل (Frame) هر سه حالت را برای شما نمایش میدهد.
بررسی Loop در سوئیچ:
به این شکل توجه کنید.
در شکل بالا، Server X در حال ارسال Frame به Router Y است که یک مشکل در سر راه وجود دارد و آنهم این است که سوئیچ A وB از دو مسیر مختلف، آدرس MAC سرور X را در جدول خود ثبت کردند و زمانی که بخواهد یک فریم را به روتر مورد نظر ارسال کنند، به علت یکسان بودن فریم دچار بار اضافه در شبکه میشوند و در اصطلاح Loop ایجاد میشود.
روشهای جلوگیری از loop:
STP(Spanning Tree Protocol) :
پروتکل STP توسط سازمان IEEE با شمارهی ۸۰۲.۱D استاندارد شده است و شرکت سازندهی آن DCE است.
کار این پروتکل این است که وقتی شبکه در Loop قرار میگیرد، بعضی از interface های اضافه را ShutDown میکند و فقط به یک طرف اجازهی ارسال و دریافت اطلاعات میدهد.
این پروتکل از طریق الگوریتمی به نام STA (Spanning Tree Algorithm) برای این کار استفاده میکند که کار این الگوریتم به این صورت است که کل ساختار شبکه را به صورت یک درخت درآورده و جاهایی را که Loop در آن ایجاد شده، مهار میکند. در شکل زیر، ۲ سوئیچ با دو لینک به هم متصل شدهاند و پروتکل STP برای جلوگیری از Loop، یکی از لینکها را از رده خارج کرده است.
نحوهی کارکرد الگوریتم STA:
قبل از این کار به چند موضوع میپردازیم:
Bridge ID:
شناسهای است برای تمایز دادن سوئیچها در پروتکل STP، پس میتوان گفت با کمک این شناسه، سوئیچها در یک شبکه قابل تشخیص هستند و اجزای تشکیلدهندهی Bridgr Id دو چیز است:
- Priority: عددی است روی سوئیچهای شرکت سیسکو که به صورت پیشفرض ۳۲۷۶۹ است.
- Mac Address: آدرس Mac پورت مورد نظر در سوئیچ.
پس Bridge ID، جمع این دو گزینه میشود. به شکل صفحهی قبل توجه کنید؛ در سوئیچی که پروتکل STP روی آن اجرا شده است (که با جهتنما آن را مشخص کردیم) در مد Privileged دستور زیر را وارد کنید:
Switch# show spanning-tree
VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 32769
Address 0001.C9A6.90A3
Cost 19
Port 1(FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0090.0C6C.EE69
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 20
Interface Role Sts Cost Prio.Nbr Type
—————- —- — ——— ——– ——————————–
Fa0/1 Root FWD 19 128.1 P2p
Fa0/2 Altn BLK 19 128.2 P2p
Fa0/3 Desg FWD 19 128.3 P2p
این اعداد به رنگ قرمز در نتیجه مشخص شدهاند.
Root Bridge:
برای انتخاب یک سوئیچ به عنوان root Bridge تمام Bridge ID های مختلف سوئیچها باهم مقایسه میشوند و هرکدام که کوچکتر بود، همان سوئیچ به عنوان Root Bridge انتخاب میشود.
BPDU:
فریمی در سوئیچ است که برای انتقال اطلاعات بین سوئیچها کاربرد دارد و یکی دیگر از ویژگیهای آن این است که تغییر ساختار شبکه را خیلی سریع به دیگر سوئیچها در شبکه اطلاع میدهد.
Root Port:
پورتی است که ارتباط مستقیم با Root Bridge دارد و از طریق آن انتخاب میشود.
Designated port:
پورتی از سوئیچ است که به عنوان Forwarding انتخاب میشود و کار ارسال و دریافت اطلاعات را انجام میدهد.
NonDesignated port:
برای جلوگیری از loopاین پورت shutdown میشود.
پس در کل در الگوریتم STA هر سوئیچ Bridge ID خود را محاسبه میکند و بعد، از طریق BPDU آن را در شبکه تبلیغ میکند، بعد Bridge ID خود را با دیگر سوئیچها مقایسه میکند، اگر Bridge ID خودش کمتر از دیگران باشد، Bridge ID خود را در شبکه تبلیغ میکند، اما اگر یکی کمتر از خود را پیدا کند آن را در قالب فریم BPDU به دیگر سوئیچها اعلام میکند تا در آخر کار بعد از مقایسه، Bridge ID کمترینBridge ID به دست آید که آخرین سوئیچ با کمترین Bridge Id به عنوان Root Bridge انتخاب میشود. بعد از این کار، نوبت به انتخاب وضعیت پورتها است که چه پورتی در چه وضعیتی قرار دارد.
در شکل صفحهی بعد، تمام مراحل بالا وجود دارد. اگر به شکل توجه کنید، Switch A به علت کوچکتر بودنMac Address نسبت به بقیهی سوئیچها، به عنوان Root bridge انتخاب شده است و هر دو پورت آن به حالت Forwarding رفته است. پورتهای سوئیچهای B و C که به سوئیچ A متصل هستند به عنوان Root Port انتخاب شدهاند. پورت بعدی سوئیچهای B و C به عنوان پورت Forwarding انتخاب شدهاند و به همین ترتیب بقیهی پورتها انتخاب میشوند. برای جلوگیری از loop یکی از پورتهای سوئیچ E به حالت Nondesignated رفته وBlock شده است که البته این پورت به نسبت پورت دیگر دارای cost بیشتر و پهنای باند کمتری بوده است.
پس اگر مراحل کار الگوریتم STA را طبق مراحل زیر در نظر بگیریم، متوجهی کار این الگوریتم خواهیم شد.
- سوئیچها، Bridge ID خود را مشخص میکنند.
- در این مرحله، هر سوئیچ Bridge ID خود را تحت فریم BPDU به دیگر سوئیچها تبلیغ میکند تا پایینترین Bridgr ID مشخص شود و بعدازآن، Root Bridge مشخص میشود.
- باید Designated Port انتخاب شود که پورتهای متصل به سوئیچ Root Bridge به عنوانDesignated Port انتخاب میشوند و کار ارسال و دریافت اطلاعات را انجام میدهند. در بین دو سوئیچ هم پورتی که کمترین cost را داشته باشد، به عنوانDesignated Port انتخاب میشود.
- در این مرحله که مرحلهی مهمی است در آن قسمت که loop ایجاد میشود، یکی از پورتها که پهنای باند کمتر و Cost بیشتر داشته باشد، به عنوان پورت NonDesignated Port انتخاب و Block میشود. اگر چنانچه هر دو فاکتور پهنای باند و cost یکی باشد، معیار انتخاب Bridge ID بزرگتر است.
هر پورت سوئیچ دارای ۵ وضعیت است:
Blocking: وقتی سوئیچ روشن میشود، همهی پورتهای آن در حالت Block قرار دارند و منتظر هستند تا فریم BPDU به آنها برسد تا وضعیت خود را تغییر دهند.
Listening:
در این وضعیت سوئیچ بر طبق فریمهای BPDU، سوئیچ Root Bridge را انتخاب میکند.
Learning:
این وضعیت بعد از وضعیت listening اجرا میشود و تمامی مسیرهای موجود در شبکه که در loop قرار ندارد را شناسایی میکند. به این موضوع توجه کنید که در وضعیت Listening اگر Mac address جدید به سوئیچ برسد، سوئیچ در جدول آن را ثبت نمیکند، اما اگر به وضعیت Learning برسد در جدول خود ثبت میکند. در این مرحله، پورتهای Root Port و Designated Port مشخص میشوند.
Forwarding:
یک پورت زمانی به این حالت میرود که وضعیت قبل را طی کرده باشد، در این حالت، پورت قادر به دریافت و ارسال اطلاعات میکند.
Blocking:
این حالت زمانی رخ میدهد که یک پورت برای جلوگیری از Loop در شبکه باید به حالتBlocking برود، البته در این حالت، پورت Shutdown نمیشود، بلکه منتظر فریمهای BPDU مینشیند که اگر تغییری در شبکه رخ داد، دوباره به حالت دیگر تغییر وضعیت دهد.
Disable:
این پورت به صورت دستی توسط مدیر شبکه، shutdown شده است و کاری در شبکه انجام نمیدهد.
نگاهی به ساختار سوئیچ
زمانی که یک سوئیچ ۲۹۵۰ را خریداری میکنید، شامل اجزای زیر است:
سوئیچها در انواع مختلف ۸، ۱۶، ۲۴، ۲۶، ۴۸ پورت و … وجود دارند که بنا به نیاز خود، یکی از این مدلها را تهیه میکنیم. سوئیچها دستگاههای هوشمندی هستند و از طریق Mac address کارهای خود را انجام میدهند. سوئیچها در انواع سرعتهای ۱۰، ۱۰۰، ۱۰۰۰، ۱۰۰۰۰ مگابایت وجود دارند و سیستم عاملهای آنها، مانند روترها ios است که اولین ios آن مدل ۱۲،۱ بوده است.
زمانی که یک سوئیچ روشن میشود به حالت post میرود و در این مرحله، تمام سختافزار آن تست میشود و اگر یکی از پورتها مشکلی داشت به رنگ کهربایی درمیآید و اگر هیچکدام مشکلی نداشت، همهی آنها یکبار چشمک زده و اعلام آمادگی میکنند. بعد از این کار، سوئیچ به دنبال فایل ios میگردد و وقتی فایل مورد نظر را پیدا کرد، وارد مد Cli میشود.
سوئیچها از چراغهایی تشکیل شدهاند و این چراغها به ۴ نوع تقسیم میشوند:
Port status Led:
روی سوئیچها به ازای هر پورتی که وجود دارد، یک چراغ چشمکزن هم وجود دارد که این چراغ به رنگهای مختلف نمایانگر میشود که هر رنگ آن را باهم مورد بررسی قرار میدهیم:
سبز |
به این پورت کابلی متصل شده است، اما فعال نشده است. |
سبز چشمکزن |
این پورت فعال و در حال ارسال و دریافت اطلاعات است. |
سبز و کهربایی |
در این حالت یک collision (برخورد) در سوئیچ رخ داده است. |
کهربایی |
در این حالت پورت Disable شده، اما به صورت دستی. |
off |
به پورت کابلی متصل نشده است. |
Port Mode Led:
در این حالت دو نوع چراغ وجود دارد:
UTL LED: این چراغها نشاندهندهی پهنای باند مصرفی در سوئیچ میباشند.
STST LED: زمانی که سوئیچ روشن شود، این چراغ هم روشن میشود.
FDUP LED: در این حالت پورتها در دو حالت Half-duplex و Full-duplex قرار دارند و اگر چراغ پورت خاموش باشد، یعنی در حالت Half-duplex قرار دارد و اگر روشن باشد و سبز در حالت Full-duplex قرار دارد.
۱۰۰ یا Speed Led: این چراغ نشاندهندهی سرعت یک پورت است که اگر خاموش باشد، یعنی از ۱۰ مگابایت استفاده میکند و اگر روشن و سبز باشد، یعنی از حداکثر سرعت استفاده میکند.