افزونگی در شبکه
ما 3 نوع افزونگی در شبکه داریم :
1_link redundancy :در شبکه با حساسیت بالا برای حفظ افزونگی (redundancy ) بین سوییچ ها از 2 و یا بیشتر از 2 لینک استفاده میکنند.
در این روش ، بین سوئیچ ها بیشتر از یک کابل می کشیم تا اگر یک لینک down شد ، لینک دیگر در شبکه باقی بماند.
2_gateway redundancy : گاهی شبکه ما مهم تر از آن است که بین 2 سوئیچ کابل بکشیم ، در این شرایط برای pc های خودم ، 2 تا سوئیچ می گذارم تا اگر سوئیچ اصلی down شد ، سوئیچ back up باقی بماند.به این نوع افزونگی که من در شبکه چند gateway داشته باشم gateway redundany می گویند.
در شبکه ها برای سوییچ هایی که به سرور ها متصل هستند ، یک سوییچ هم به عنوان redundant قرار می دهند تا با هم در شبکه کار کنند.
3_path redundancy : زمانی که بین 2 pc بیش از یک مسیر داشته باشیم که اگر مسیر اول down شد ، یک مسیر بک آپ داشته باشیم.
مشکلات افزونگی در شبکه
افزونگی باعث ایجاد یکسری مشکل در شبکه میشود:
1_broadcast storm ( طوفان broad cast )
تو این شکل laptop6 ، با مک آدرسی که داره ، یک داده broadcast ارسال میکند که هم به سمت sw2 و هم سوئیچ 3. ولی من فعلا" فقط مسیری که به سمت سوئیچ 2 میره رو درنظر میگیرم.این دیتا وارد sw2 می شود و چون از نوع broadcast است ، از لینک ترانک سوئیچ خارج می شود و وارد سوئیچ 3 می شود و بخاطر broadcast بودنش مجدد به سوئیچ 1 وارد می شود.این داده تا همیشه در شبکه می چرخد.به حالتی که داده broadcast بصورت همیگشی و سرگردان در شبکه وجود دارد ، اصطلاحا" توفان broadcast می گویند که ناشی از وجود loop در شبکه هست.
2_mac table instibility : هر سوئیچ یک جدول مک دارد ، وقتی دیتا broadcast در شبکه منتشر می شود از طریق 2 مسیر به مقصد می رسد و حالا سوالی که مطرح می شود این است از کدام mac address استفاده کند که ناشی از وجود loop در شبکه است.
3_multiple frame transmission : چون سوئیچ 2 تا پورت برای mac address یاد می گیرد باعث می شود که اطلاعات 2 بار به مقصد برسد.
راه حل
حذف loop : یعنی در واقع ما باید گراف سوییچ ها را تبدیل به یک درخت پوشا ( spanning tree ) کنیم.
البته این مطالبی روکه دارم میگم رو خود سوئیچ ها انجام میدن و نیاز هست که برای درک بهتر در سناریوهای آتی ، با مفاهیم آشنا باشیم.
انتخابات در سوییچ ها
1_براساس الگوریتمی ، یک سوییچ ( فقط یک سوییچ ) را به عنوان سوئیچ اصلی در نظر می گیرند و تمام پورت های این سوییچ نقش نرمال دارند و در وضعیت forward هستند.
2_براساس الگوریتمی ، در سوئیچ های باقی مانده ، یک پورت ( نزدیکترین پورت به سوئیچ اصلی ) را به عنوان پورت اصلی آن سوییچ در نظر گرفته ودر نقش پورت اصلی و وضعیت forward قرار می دهیم.
3_در بین لینک های باقی مانده ، یک پورت را نقش پورت نرمال و وضعیت forward و یک پورت را در نقش غیر فعال و block قرار می دهیم.
حالا اینا یعنی چی! شکل پایین رو ببینید :
تو شکل بالا
سوییچ اصلی ما میشه root bridge و پورت هاش میشه designated port
( به هر سوییچ ، bridge گفته می شود)
در مرحله دوم که گفتم براساس الگوریتمی در سوییچ های باقی مانده ، یک پورت و نزدیکترین پورت به سوییچ اصلی را به عنوان پورت اصلی آن سوییچ در نظر گرفته میشه و در نقش پورت اصلی ( designated port ) و وضعیت forward قرار میگیرد.
در مرحله سوم قرار شد یک پورت در نقش نرمال ووضعیت forward و یک پورت در نقش غیر فعال و block قرار میگیرد.
راستی stp مخفف کلمات spanning tree protocol هست.
در stp ، به هر سوییچ یک bridge گفته میشه و مشخصه ای بهش اختصاص داده میشه تحت عنوان (bridge id (BID
BID: 32768.mac address
نمیخوام خیلی تخصصی وارد بحث های اینکه چطوری اینها انتخابات انجام میدن بشم ولی لازمه باهاشون آشنا باشیم ، پس بیاید سخت نگیریم!چرا که اولندش سوییچ ها کارشون رو بلدند و ما فقط بعدا" چیزی که مهمه و باید بدونیم و اینکه کدوم سوئیچ اصلی ( root bridge ) باشه رو با کمک یه دستور انجام میدیم! خیال راحت سراغ قسمت های فنی رفته و میخونیمشمون !
مراحل کار در پروتکل stp - 802.1d
(قبلا" با مراحلش آشنا شدیم و حالا میخواهیم که اون 3 مرحله رو فنی تر و تخصصی تر یاد بگیریم)
1_سوییچ با کمترین BID به عنوان سوییچ اصلی ( ROOT BRIDGE ) انتخاب می شودو تمام پورت های این سوییچ در نقش designated port و در وضعیت forward قرار دارند.
2_بین تمام سوئیچ های باقی مانده ، فقط یک پورت ( نزدیکترین پورت به سوییچ اصلی ) را به عنوان پورت اصلی انتخاب می کنند.
معیار نزدیکی پورت ، ( کمترین cost ) ، هزینه پورت تا root bridge است.
این cost که گفتم برای پورت های فست اترنت ، 19، برای پورت های 1 گیگابیت ، 4 و برای پورت های 10 مگا بیت 100 هست.
fastethernet = cost 19
1gbps=cost 4
10mbps =cost 100
اگر پورتها ، هزینه یکسان داشتند ، مراحل زیر به ترتیب انجام می شود :
_پورت سوییچ با کمترین هزینه تا root bridge
_پورت که bid کمتری در طرف مقابل می بیند.
_پورت با اولویت کمتر
_پورتی که در سمت مقابل ، به پورت با شماره کوچکتر متصل است.
در نهایت در مرحله سوم:
دربین سگمنت های باقی مانده ، یک پورت باید designate port انتخاب شود که معیار انتخاب آن به ترتیب زیر است :
_پورت سوییچ با کمترین هزینه تا root bridge
_پورت سوئچی که bid کمتری دارد.
_پورت با اولویت کمتر
_پورتی که در سمت مقابل ، به پورت با شماره کوچکتر متصل است.
BPDU
سوییچ ها بین خودشون ، بسته های BPDU ارسال میکنند.
BRIDGE PROTOCOL DATA UNIT
مهم ترین بسته BPDU ، بسته HELLO BPDU هست که شامل مواردی مثل
Root bridge id
Senders bridge id
Cost to reach root
Timer values on the root switch
سوییچ ها وقتی تازه روشن می شوند و تازه در شبکه قرار می گیرند ، همه سوئیچ ها خودشان رو بعنوان root bridge انتخاب و معرفی می کنند .به محض اینکه bpdu ای دریافت کردند که دیدند bid آن ، کمتر از bid خودشان است ، سوئیچ کنار رفته و دیگر خودش را معرفی نمی کند و bpdu ای را که سوئیچ اصلی فرستاد را منتقل می کند.Senders bridge id
Cost to reach root
Timer values on the root switch
پروتکل stp - 802.1d
_Root switch ، هر 2 ثانیه یکبار ، پیام hello bpdu ( با cost=0 )ارسال می کند.
_سایر سوییچ ها ، bpdu مربوطه به سوئیچ root را پس از تغیر cost bridge root و sender bridge id روی پورت های DP منتقل می کنند.
_بناربراین تقریبا" تمام سوییچ ها ، hello bpdu رو هر 2 ثانیه یکبار دریافت میکنند.
_تایمرها بر روی سوویچ root تنظیم می شوند.
_سوئیچ ها وقتی به تغییر در شبکه واکنش نشان می دهند که به مدت 10 تا hello time یعنی ( 10 تا 2 ثانیه ) هیچ bpdu ای دریافت نکنند.
در این صورت پورت به وضعیت listening و سپس به وضعیت learning می رود و در نهایت اگر صلاح دونست به وضعیت forward می رود.
تشریح وضعیت های پورت ها در stp :
Blocking
وقتی سوئیچ روشن می شود ، همه ی پورت های آن در حالت block قرار دارند و منتظر هستند تا فریم bpdu به آنها برسد تا وضعیت خود را تغییر دهند.
( در این حالت ، نه دیتائی ارسال میشود و نه مک یاد میگرن ).
همچنین ، یک پورت برای جلوگیری از loop در شبکه باید به حالت blocking برود البته در این حالت پورت shutdown نمی شود بلکه منتظر فریمهای bpdu می نشیند که اگر تغییری در شبکه رخ داد دوباره تغییر وضعیت دهد.
Listening
در این وضعیت سوئیچ بر طبق فریم های bpdu ، سوئیچ root bridge را انتخاب می کند.
(مشابه وضعیت block است ولی با این تفاوت که این حالت گذرا است ).
Learning
این وضعیت بعد از وضعیت listening اجرا می شود و تمامی مسیر های موجود در شبکه که در loop قرار ندارند را شناسایی می کنند.در این مرحله ، root port و designated port مشخص می شوند.
در وضعیت listening ، اگر mac address جدید به سوئیچ برسد ، سوئیچ آنرا در جدول ثبت نمی کند اما اگر به وضعیت learning برسد در جدول خود ثبت میکند.
Forwarding
یک پورت زمانی به این حالت می رود که وضعیت قبل را طی کرده باشد.در این حالت پورت قادر به دریافت وارسال اطلاعات می باشد.
Disabled
این پورت بصورت دستی توسط مدیر شبکه ، shutdown شده و کاری در شبکه انجام نمی دهد.
زمان همگرایی
_پورت 20 ثانیه در وضعیت block صبر می کند و سپس به وضعیت lidten می رود.
_در وضعیت listen ، سوئیچ 15 ثانبه بعنوان forward delay صبر می کند دارد تا از عدم وجود loop در شبکه مطمئن شود سپس به وضعیت learn ، تغییر وضعیت می دهد.
_15 ثانیه در وضعیت learn صبر می کند تا مطمئن شود که mac table آن ، stable می ماند و اگر این شرایط ok بود به وضعیت forward می رود.
در واقع 50 ثانیه طول می کشد تا پورت از وضعیت block به وضعیت forward برود و دلیل اینکه در نرم افزار packet tracer ، 50 ثانیه طول می کشد تا پورت سبز شود همین پروتکل stp است.
نویسنده مقاله : | |
ایمیل نویسنده: | |
منبع مقاله : |