آنچه در این مقاله میخوانید [پنهانسازی]
- ⭐ Root Guard چیست؟
- ⭐ چرا Root Guard مورد نیاز است؟
- ⭐ نحوه عملکرد Root Guard
- ⭐ ملاحظات طراحی و کاربردی
- ⭐ مقایسه Root Guard و BPDU Guard
- ⭐ Root Guard
- ⭐ BPDU Guard
- ⭐ وضعیت پورت در هنگام نقض قوانین
- ⭐ تنظیمات Root Guard در سوییچهای سیسکو
- ⭐ پیکربندی در سوییچهای Catalyst 6500/6000 و 4500/4000 (که Cisco IOS را اجرا میکنند)
- ⭐ پیکربندی در سوییچهای Catalyst 2900XL/3500XL, 2950 ,3550
- ⭐ بررسی وضعیت پورتهای ناسازگار با ریشه
- ⭐ نتیجهگیری
- ⭐ سوالات متداول (FAQ)
این مقاله به بررسی ویژگی محافظ ریشه (Root Guard) در پروتکل درخت پوشا (STP) میپردازد، قابلیتی که برای افزایش قابلیت اطمینان و مدیریتپذیری شبکههای سوییچشده طراحی شده است. پروتکل استاندارد STP به طور ذاتی هیچ ابزاری را برای مدیر شبکه فراهم نمیکند تا توپولوژی شبکه لایه ۲ سوییچشده را به صورت امن اعمال کند.
این عدم توانایی در اعمال توپولوژی میتواند به ویژه در شبکههایی که کنترل مدیریتی مشترک دارند (جایی که نهادهای اداری مختلف، یک شبکه سوییچشده را کنترل میکنند) حائز اهمیت باشد. محاسبات توپولوژی در شبکه سوییچشده بر اساس موقعیت سوئیچ ریشه (Root Bridge) و پارامترهای دیگر انجام میشود و یک توپولوژی فورواردینگ بهینه نیاز دارد که سوئیچ ریشه در یک مکان از پیش تعیینشده قرار گیرد. ویژگی Root Guard برای رفع این ضعف معرفی شده است تا اطمینان حاصل شود که موقعیت سوئیچ ریشه در شبکه به درستی اعمال میشود.
Root Guard چیست؟
Root Guard یک سازوکار در STP است که برای جلوگیری از تبدیل شدن هر سوییچی به سوئیچ ریشه جدید در دامنه STP از طریق ارسال BPDUs برتر (superior BPDUs) استفاده میشود. این ویژگی راهی را فراهم میکند تا محل قرارگیری سوئیچ ریشه در شبکه به صورت اجباری اعمال شود.
به طور پیشفرض، استاندارد STP اجازه میدهد تا هر سوییچی در شبکه با شناسه پل (Bridge ID) پایینتر، نقش سوئیچ ریشه را بر عهده بگیرد. Root Guard دقیقاً برای محافظت در برابر این سناریو طراحی شده است که یک سوئیچ نامطلوب (مانند یک سوییچ غیرمجاز یا یک سوییچ با پیکربندی تصادفی پایینتر) به سوئیچ ریشه تبدیل شده و همگرایی مجدد (re-convergence) ناخواسته را در شبکه ایجاد کند.
چرا Root Guard مورد نیاز است؟
نیاز به Root Guard ناشی از این واقعیت است که پروتکل STP در دهههای 1980 و 1990 توسعه یافت، زمانی که امنیت تمرکز اصلی پروتکلهای شبکه نبود. در پروتکل استاندارد STP، مدیر نمیتواند موقعیت سوئیچ ریشه را به صورت تضمین شده اعمال کند؛ اگرچه میتوان اولویت (priority) سوئیچ ریشه اصلی را روی صفر تنظیم کرد، اما هیچ تضمینی در برابر سوییچی با اولویت صفر و آدرس MAC پایینتر وجود ندارد.
اگر یک دستگاه غیرمجاز (مانند یک رایانه شخصی دارای نرمافزار پلسازی یا یک سوییچ با BID پایین) به شبکه متصل شود و به دلیل BID پایینتر به عنوان سوئیچ ریشه انتخاب شود. این تغییر میتواند به طور کامل توپولوژی شبکه را بازسازی کند و باعث شود لینکهای ستون فقرات (backbone) با سرعت بالا مسدود شوند تا از ایجاد حلقهها جلوگیری شود.
در نتیجه، تمام دادهها ممکن است مجبور شوند از طریق لینکهای کندتر (مانند لینکهای 100 مگابیت بر ثانیه به جای لینک 1 گیگابیت بر ثانیه) در لایه دسترسی جریان یابند، که منجر به از دست رفتن عملکرد یا قطع ارتباط میشود. Root Guard شبکه را در برابر چنین اختلالاتی محافظت میکند.
نحوه عملکرد Root Guard
ویژگی Root Guard به صورت پورت به پورت فعال میشود. زمانی که Root Guard روی یک پورت فعال میشود، این ویژگی تضمین میکند که آن پورت همیشه به عنوان یک پورت تعیین شده (designated port) STP عمل کند. اگر سوییچ در پورتی که Root Guard روی آن فعال شده است، یک BPDU برتر دریافت کند (یک BPDU که نشان میدهد فرستنده دارای یک BID بهتر یا پایینتر است).
Root Guard بلافاصله این پورت را به حالت STP “ناسازگار با ریشه” (root-inconsistent state) منتقل میکند. این حالت ناسازگار با ریشه عملاً معادل حالت گوش دادن (listening state) است. در این حالت، هیچ ترافیکی از طریق پورت ارسال نمیشود. این پورت در حالی که از ارسال و دریافت دادههای معمولی جلوگیری میکند، همچنان به گوش دادن برای BPDUها ادامه میدهد.
هنگامی که دستگاه متخلف ارسال BPDUهای برتر را متوقف میکند، بازیابی پورت به صورت خودکار انجام میشود و نیازی به مداخله دستی نیست. پورت از حالت ناسازگار با ریشه، از طریق حالت گوش دادن و یادگیری، به حالت فورواردینگ (forwarding state) منتقل میشود. مدیران میتوانند وضعیت پورتهای مسدود شده را از طریق پیامهای سیستمی مانند %SPANTREE-2-ROOTGUARDBLOCK مشاهده کنند.
ملاحظات طراحی و کاربردی
در طراحی شبکه، Root Guard باید بر روی پورتهایی فعال شود که سوئیچ ریشه نباید هرگز در آنجا ظاهر شود. این پورتها معمولاً پورتهای پاییندستی (downstream ports) هستند که از ریشههای اصلی و ثانویه شبکه دور هستند. فعالسازی Root Guard در این پورتها، یک محیط یا مرز امنیتی در اطراف بخشی از شبکه ایجاد میکند که سوئیچ ریشه مجاز به قرارگیری در آن است.
به این ترتیب، اگر یک BPDU برتر از طریق این پورتها دریافت شود، Root Guard آن را نادیده میگیرد و از انتخاب ریشه جدید جلوگیری میکند. در خروجیهای دستور show spanning-tree، پورتی که توسط Root Guard بلاک شده است، در ستون نقش (Role) با عبارت *ROOT_Inc و در ستون وضعیت (Sts) به صورت “BKN” (Broken) نمایش داده میشود. استفاده از دستور show spanning-tree inconsistentports برای تأیید اینکه آیا پورتهایی به دلیل ناسازگاری ریشه مسدود شدهاند، یک روش عیبیابی ضروری است.
اگر مفاهیم STP، Root Guard و امنیت لایه 2 برایتان جذاب است، وقتش رسیده یک قدم جدیتر بردارید. با دوره CCNA 200-301 میتوانید از سطح آشنایی با مفاهیم شبکه به سطح اجراگر و تحلیلگر واقعی برسید؛ تمام مباحثی که امروز درباره Root Guard خواندید، فقط یکی از صدها موضوعی است که در CCNA بهصورت عملی یاد میگیرید.
مقایسه Root Guard و BPDU Guard
هرچند Root Guard و BPDU Guard هر دو ویژگیهای امنیتی STP هستند، اما تأثیر و هدف استفاده از آنها متفاوت است.
هدف اصلی:
Root Guard
از تبدیل شدن سوییچهای مجاز (یا غیرمجاز) به سوئیچ ریشه جدید جلوگیری میکند. سوییچهای متصل به پورتهای Root Guard میتوانند در STP شرکت کنند، به شرطی که تلاش نکنند ریشه شوند. Root Guard معمولاً در پورتهایی که به سوییچهای دیگر متصل هستند و نباید ریشه باشند، استفاده میشود.
BPDU Guard
اگر PortFast روی پورت فعال باشد، به محض دریافت BPDU، پورت را غیرفعال (disable) میکند، و مشارکت هر دستگاهی را در STP کاملاً رد میکند. BPDU Guard معمولاً در پورتهای دسترسی کاربران (user access ports) استفاده میشود تا از اتصال سوییچهای غیرمجاز جلوگیری شود.
وضعیت پورت در هنگام نقض قوانین
- Root Guard: پورت را به حالت root-inconsistent منتقل میکند و بازیابی پس از توقف ارسال BPDUهای برتر، خودکار است.
- BPDU Guard: پورت را به حالت errdisable منتقل میکند. برای بازیابی پورت در حالت errdisable، نیاز به فعالسازی دستی یا پیکربندی ویژگی errdisable-timeout است.
تنظیمات Root Guard در سوییچهای سیسکو
پیکربندی Root Guard آسان است و به صورت پورت به پورت و در حالت پیکربندی رابط (interface configuration mode) انجام میشود.
پیکربندی در سوییچهای Catalyst 6500/6000 و 4500/4000 (که Cisco IOS را اجرا میکنند)
دستور زیر برای پیکربندی STP Root Guard استفاده میشود:
Switch# configure terminal
Switch#(config)# interface fastethernet 3/1
Switch#(config-if)# spanning-tree guard root
توجه: در نسخههای نرمافزاری قدیمیتر مانند Cisco IOS Software Release 12.1(3a)E3 برای Catalyst 6500/6000، این دستور از spanning-tree rootguard به spanning-tree guard root تغییر یافت.
پیکربندی در سوییچهای Catalyst 2900XL/3500XL, 2950 ,3550
در این سوییچها، دستور قدیمیتر ممکن است استفاده شود:
Switch# configure terminal
Switch(config)# interface fastethernet 0/8
Switch(config-if)# spanning-tree rootguard
بررسی وضعیت پورتهای ناسازگار با ریشه
برای مشاهده پورتهایی که توسط Root Guard مسدود شدهاند، از این دستور استفاده کنید:
Switch # show spanning-tree inconsistentports
نتیجهگیری
Root Guard یک ویژگی امنیتی حیاتی در STP است که به مدیران شبکه این امکان را میدهد تا توپولوژی لایه 2 را تثبیت کرده و موقعیت تعیین شده سوئیچ ریشه را اعمال کنند. با جلوگیری از تبدیل شدن دستگاههای ناخواسته یا سوییچهای پیکربندی نشده به ریشه، این ویژگی از اختلالات شبکه، مانند مسدود شدن لینکهای اصلی و هدایت ترافیک از مسیرهای بهینه جلوگیری میکند. فعالسازی Root Guard در پورتهایی که به لایه دسترسی متصل میشوند، یک خط دفاعی قوی در برابر حملات یا خطاهای پیکربندی تصادفی ایجاد میکند که میتواند پایداری و عملکرد کلی شبکه را به خطر اندازد.
Root Guard مانند یک مرزبان امنیتی در اطراف پایتخت شبکه (سوئیچ ریشه) عمل میکند؛ مرزبان اجازه میدهد تا ترافیک معمولی از مرز عبور کند، اما اگر کسی با مدارک بهتر از فرمانروای فعلی (BPDU برتر) سعی در ورود به قلمرو پایتخت داشته باشد، مرزبان فوراً ورودی آن پورت را مسدود میکند تا زمانی که تهدید برطرف شود، و به این ترتیب، ثبات حکومت (توپولوژی ریشه) حفظ میگردد.
سوالات متداول (FAQ)
آیا Root Guard در حل مشکل “دو ریشه” (Two Roots Problem) کمک میکند؟
مشکل “دو ریشه” معمولاً به دلیل خرابی لینک یکطرفه (unidirectional link failure) بین دو پل رخ میدهد، که باعث میشود یک سوییچ BPDUs را از سوئیچ ریشه دریافت نکند. در چنین حالتی، سوییچهایی که BPDUs را دریافت نمیکنند، فکر میکنند خودشان ریشه هستند و شروع به ارسال BPDUs میکنند. از آنجایی که سوییچ ریشه واقعی این BPDUs را به عنوان BPDUs برتر نمیپذیرد، موقعیت ریشه تغییر نمیکند و بنابراین Root Guard کمکی به حل این حلقه STP نمیکند. ویژگیهایی مانند UDLD (UniDirectional Link Detection) و Loop Guard برای رسیدگی به این مشکل طراحی شدهاند.
چه سوییچهایی از Root Guard پشتیبانی میکنند؟
ویژگی Root Guard در سوییچهای Catalyst 6500/6000 (از Cisco IOS Software Release 12.0(7)XE)، Catalyst 4500/4000 (در همه نسخهها)، و سوییچهای Catalyst 2900XL/3500XL، 2950، و 3550 (در نسخههای خاصی از IOS) در دسترس است. این ویژگی در سوییچهای جدیدتر سری Catalyst سیسکو نیز موجود است.
چه مدت طول میکشد تا یک پورت پس از بلاک شدن توسط Root Guard، بازیابی شود؟
بازیابی پورت پس از مسدود شدن توسط Root Guard، خودکار است. پورت به محض اینکه دستگاه متخلف ارسال BPDUهای برتر را متوقف کند، از حالت ناسازگار با ریشه خارج شده و به ترتیب از حالت گوش دادن و یادگیری عبور کرده و در نهایت به حالت فورواردینگ میرسد.

