حسن صفری
کارشناس ICT و علاقه مند به امنیت و فایروال

معرفی امکانات امنیتی پروتکل STP در سویچ های سیسکو با پیاده سازی

در ابتدا میخوام یکم راجع به STP حرف بزنیم و از انواع پروتکل STP نام ببریم و بگوییم که دلیل بوجود آمدن این پروتکل چه می باشد.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

ودر ادامه به فیچرهای امنیتی آن بپردازیم .

Spanning-Tree Protocol چیست ؟

این پروتکل با یک طرفه کردن پورت های Redundant می آید از ایجاد لوپ در شبکه جلوگیری می کند.به تعریفی دیگر برای جلوگیری از لوپ در شبکه های لایه 2 استفاده می شود چون در شبکه های لایه 3 ما چیزی به اسم broadcast نداریم.پس به طور کلی ساختار موازی در شبکه های لایه 3 مجاز ولی در شبکه های لایه 2 غیرمجاز می باشد. هسته اصلی این پروتکل بسته های BPDU می باشد که در کل شبکه گردش دارنند و از وضعیت شبکه با خبر هستند.و به محض ایجاد مشکل این بسته ها هستند که مشکل را سریع در شبکه پخش می کنند.

هر سوئیچ در STP دارای یک Bridge-ID می باشد.و سوئیچی که Bridge-ID کمتری داشته باشد به عنوان Root-bridge انتخاب خواهد شد.تا قبل از انتخاب این سوئیچ همه سوئیچ ها بسته های BPDU یکدیگر را ارسال و دریافت می کنند.به محض انتخاب Root-bridge همه ی سوئیچ ها،دیگر BPDU های این سوئیچ را ارسال دریافت می کنند.بعد از مشخص شدن وضیت سوئیچ ها سراغ وضعیت پورت ها خواهیم رفت.

  • Root Port :نزدیک ترین پورت به Root-bridge می باشد که بهترین BPDU روی آن دریافت می شود.
  • Designated Port: تمامی پورت های Root-bridge در حالت Designated Port می باشد چون cost آنها برابر صفر می باشد.
  • designated Bridge: به سوئیچی که به Root-bridgeنزدیکتر باشد گفته می شود.
  • block: به پورتی که نه در حالت Root Port و نه درحالت Designated Port باشد block گفته می شود.

انواع Spanning-Tree

  1. (common spanning-tree (CST : همان پروتکل استاندارد 802.1Q می باشد.از مشکلات این روش زمان همگرایی بالا به خاطرPort State های آن و همچنین استفاده نکردن از تمامی لینک ها به خاطر بلاک کردن بعضی از آن ها می باشد.
  2. (+Pervlan Spanning-Tree (PVST & PVST : یک پروتکل سیسکویی می باشد و با هدف Load balancing بوجودآمد.PVST به ازای هر ویلن یک instance خواهد ساخت و عمل STP جداگانه ای اجرا خواهد کرد.از مشکلات این روش می توانیم به ناهمخوانی PVST با CST اشاره کنیم و همچنین trunking بین دو سوئیچ حتما باید در حالتISL باشد.این دو مشکل در PVST+ حل شد یعنی هم ناهخوانی نداریم و هم 802.1Q را ساپورت می کند.
  3. (Rapid Spanning-Tree(RSTP : این پروتکل برای کم کردن زمان همگرایی بوجود آمد است.که از 30 تا 50 ثانیه طول می کشید.اینگونه که به ازای هر ویلن یک instance خواهد ساخت و عمل STP جداگانه ای اجرا خواهد کرد. افزایش ویلن ها باعث افزایش instanceها و در نتیجه باعث کاهش performance خواهد شد.
  4. (multiple spanning-tree (MST: این روش شبیه به RSTP و RPVST+ می باشد.زمان همگرایی بالا و استفاده از تمامی لینک ها.بزرگ ترین مزیت آن این است که نمی اید به ازای هر ویلن یک instance بوجود آورد بلکه می آید به ازای چندین ویلن یک instance بوجود می آورد.در این صورت performance شبکه نیز افزایش می یابد.

فیچرهای امنیتی STP

در این قسمت ما میآییم به چند فیچر مهم امنیتی می پردازیم:

1-BPDU Guard چیست ؟

این را میدانیم که نیازی نیست روی پورت های متصل به نودهای پایانی بسته های BPDU ارسال و دریافت شوند.چون اگر یک اتکر بیاید بسته های Super BPDU ارسال کند سمت شبکه می تواند توپولوژی STP را برهم زده و خود را جای Root-bridge معرفی کند و اهداف خود را پیش ببرد.و اگر یه سوئیچ به این پورت متصل شود اون پورت به حالت errdisable خواهد رفت و از ایجاد لوپ جلوگیری خواهد شد.و این نکته را نیز به یاد داشته باشیم که این فیچر در راستای فیچر Port fast خواهد آمد.حال با دستورات زیر می توانیم این ارسال و دریافت بسته هارا روی پورت های پایانی قطع کنیم.

Global
Switch (config) #spanning-tree bpdu-guard default
		Interface
Switch (config) #interface type <mod/num>
Switch (config-if) #spanning-tree bpdu-guard enable

2-Root-guard چیست؟

این فیچر را می آییم روی پورت هایی که احتمال دارد اتکر به آن متصل شود اجرا می کنیم.این فیچر می گوید من با دریافت BPDU هیچ مشکلی ندارم من با دریافت Super BPDU مشکل دارم و آن را اجازه عبور نمیدهم این بسته از طرف اتکر برای Root-bridge شدن ارسال می شود .در این صورت احتمال رخ داد اتک man in the middle را ازبین میبریم.پورتی که از آن Super BPDU دریافت شود به حالت root inconsistent خواهد رفت و تا متوقف شدن این جریان ارسال بسته ها، پورت به همان وضعیت باقی خواهد ماند.در مثال واقعی روی پورت هایی که ISP به مشتریان می دهد این فیچر فعال می شود.

<Switch (config) #interface type <mode/num
Switch (config-if) #spanning-tree guard root

3-BPDU Filtering چیست؟

این فیچر زمانی کارایی پیدا می کند که می خواهیم کنتذل جریان BPDU رادر پورت کنترل کنیم.مثلا BPDU ارسال کند اما دریافت نکند.یا برالعکس مثل پورت های انتهایی.این فیچر در دو سطح پیاده سازی می شود.یکی در سطح اینترفیس و دیگری در سطح گلوبال.در سطح اینترفیس اگر پیاده سازی کنیم روی آن پورت دیگر نه BPDU ارسال ونه دریافت می شود.

<Switch (config) # interface type <mod/num
Switch (config-if) #spanning-tree bpdu filter enable

درسطح گلوبال اگر پیکربندی شود،در این صورت می آید 10تا پیام Hello ارسال می کند.اگر جوابی برای اون پورت دریافت کرد اون پورت را فیلتر نمی کند در غیر این صورت آن را فیلتر خواهد کرد.

Switch (config) # spanning-tree bpdu filtering default

  • نکته1: هرگز دو فیچر BPDU Guard و BPDU Filter باهم کار نخواهد کرد.برای اینکه از این دوفیچر استفاده کنیم باهم باید هردوی آن هارا در سطح گلوبال کانفیگ کنیم.
  • نکته2: پروتکل STP این اطمینان را به ما می دهد که در شبکه ما لوپ ایجاد نمی شود اما این اطمینان را به ما نمی دهد که performance شبکه مارا نیز افزایش دهد.بدین منظور حتما باید حواسمان به اون سوئیچی که به عنوان root-bridge انتخاب می شود باشد.چون باید سوئیچی باشد که توانایی هندل کردن حجم بالای ترافیک را داشته باشد.

حسن صفری
حسن صفری

کارشناس ICT و علاقه مند به امنیت و فایروال

حسن صفری فارغ التحصیل مقطع کارشناسی در رشته ICT با بیش از 3 سال سابقه کاری در پارک علم و فناوری دانشگاه آزاد، دارای مدارک تخصصی شبکه در حوزه ی سیسکو و پیکربندی و اجرای مباحث امنیتی، عیب یابی فایروال هایASA و اعمال HA و همچنین شرکت در مباحث علمی مربوط به شبکه، خواندن کتب، مقالات علمی لاتین و.......

نظرات