آنچه در این مقاله میخوانید [پنهانسازی]
- ⭐ مقدمه
- ⭐ BPDU چیست؟
- ⭐ انواع اصلی BPDU
- ⭐ 1. Configuration BPDU (CBPDU)
- ⭐ نحوه عملکرد CBPDU
- ⭐ محتوای پیام CBPDU
- ⭐ 2. Topology Change Notification (TCN) BPDU
- ⭐ نحوه عملکرد TCN BPDU
- ⭐ BPDUها در عمل
- ⭐ افزایش امنیت با BPDU Guard
- ⭐ نتیجهگیری
- ⭐ سوالات متداول
- ⭐ فرق اصلی بین Configuration BPDU و TCN BPDU چیست؟
- ⭐ BPDUها به کدام آدرس MAC ارسال میشوند؟
- ⭐ اگر یک سوئیچ غیر ریشه TCN BPDU ارسال کند، پاسخ Root Bridge چیست؟
- ⭐ چرا از قابلیت BPDU Guard استفاده میشود؟
این مقاله به بررسی جامع واحدهای داده پروتکل پل (BPDU) میپردازد که پیامهای حیاتی مورد استفاده در حوزههای سوئیچینگ لایه 2 هستند تا اطمینان حاصل شود که شبکهها عاری از حلقههای (Loop-free) مخرب باقی میمانند. BPDUها ستون فقرات پروتکل درخت پوشا (STP) را تشکیل میدهند و به سوئیچها اجازه میدهند تا توپولوژی شبکه را کشف کرده و در فرآیند جلوگیری از حلقه شرکت کنند. آشنایی با انواع مختلف BPDU برای هر متخصص شبکه که به دنبال طراحی و مدیریت یک محیط سوئیچینگ پایدار و قابل پیشبینی است، ضروری است.
مقدمه
واحدهای داده پروتکل پل یا BPDU (Bridge Protocol Data Units)، پیامهایی هستند که سوئیچها در یک شبکه محلی (LAN) برای تبادل اطلاعات با یکدیگر به منظور ایجاد یک سوئیچینگ عاری از حلقه به اشتراک میگذارند. این پیامها به سوئیچها کمک میکنند تا اطلاعاتی درباره سایر سوئیچها جمعآوری کرده و در پروتکل درخت پوشا (STP) مشارکت کنند.
استفاده اصلی از BPDUها برای پیامرسانی بین سوئیچها است تا یک دامنه لایه 2 عاری از حلقه با جلوگیری از طوفانهای Broadcast فراهم شود. این فرآیند با استفاده از الگوریتم درخت پوشا (STA) انجام میشود که به تعیین پورتهای اضافی و خاموش کردن آنها برای جلوگیری از حلقهها کمک میکند.
BPDU چیست؟
BPDU در واقع یک پیام است که اطلاعاتی حیاتی در مورد سوئیچها را حمل میکند. سوئیچها با استفاده از این پیامها، اطلاعاتی درباره سوئیچهای دیگر به دست میآورند و در پروتکل STP شرکت میکنند. اطلاعاتی که پیامهای BPDU حمل میکنند، شامل مواردی مانند شناسه سوئیچ (Switch ID)، پورت سوئیچ، آدرس MAC، اولویتهای پورت، و هزینههای پورت (Port costs) است.
سوئیچها BPDUها را از پورت اصلی خود به یک آدرس MAC مقصد چندپخشی (multicast) ارسال میکنند که این آدرس 01:80:c2:00:00:00 میباشد. این آدرس خاص توسط IEEE برای آدرسهای گروهی مورد استفاده پروتکلهای استاندارد شبکه تخصیص داده شده و توسط سوئیچها فوروارد نمیشود.
انواع اصلی BPDU
در استاندارد IEEE 802.1D STP، دو نوع اصلی از واحدهای داده پروتکل پل وجود دارد. علاوه بر این دو نوع، یک پیام تأیید نیز در فرآیند تغییر توپولوژی نقش دارد.
انواع BPDU عبارتند از:
- Configuration BPDU (CBPDU)
- Topology Change Notification (TCN) BPDU
1. Configuration BPDU (CBPDU)
CBPDUها واحدهای داده پروتکل پلی هستند که برای تبادل اطلاعات توپولوژی بین سوئیچها در دامنه STP ارسال میشوند. این پیامها در مرحله راهاندازی اولیه توسط هر سوئیچ در دامنه STP ارسال میشوند تا فرآیند انتخاب Root Bridge انجام شود. پس از انتخاب Root Bridge، در حالت عادی شبکه، هر پورت Designated بهصورت دورهای این نوع BPDU را ارسال میکند تا توپولوژی پایدار حفظ شود. این BPDUها توسط سوئیچ ریشه شبکه تولید میشوند و وظیفه کنترل و احراز هویت جریان داده دور شونده از Root Bridge را بر عهده دارند و همچنین از شبکه در برابر تهدیدات خارجی محافظت میکنند.
نحوه عملکرد CBPDU
هنگامی که شبکه شروع به کار میکند، هر سوئیچ خود را Root Switch در نظر میگیرد و CBPDUها را در فواصل زمانی منظم تولید و ارسال میکند. هر پورت سوئیچ که یک CBPDU دریافت میکند، شناسه سوئیچ خود را با شناسه Root Switch موجود در BPDU دریافتی مقایسه میکند. اگر شناسه Root Switch دریافتی برتر (کوچکتر) از شناسه خود باشد، سوئیچ به عنوان یک سوئیچ غیر ریشه عمل کرده و CBPDU تولید نمیکند، بلکه فیلدهای خاصی از BPDU دریافتی را بهروزرسانی کرده و آن را به پورت Designated خود منتقل میکند. در نهایت سوئیچی که دارای پایینترین شناسه است به عنوان Root Bridge انتخاب شده و BPDUها از آن رله میشوند.
محتوای پیام CBPDU
اطلاعات واحد داده پروتکل پل در قسمت Payload یک فریم لایه ۲ قرار دارد. یک CBPDU شامل فیلدهای اطلاعاتی متعددی است که برای تصمیمگیریهای STP استفاده میشوند. این فیلدها شامل Protocol ID (که برای IEEE 802.1d مقدار ثابت 0x0000 است)، Protocol version ID (که برای STP مقدار 0x00 است)، و BPDU type (که برای CBPDU مقدار 0x00 است) میباشد.
همچنین این پیامها شامل Root ID (شناسه پل ریشه فعلی)، Root Path Cost (هزینه مسیر تا پل ریشه)، Bridge ID (شناسه پل Designated)، و Port ID (شناسه پورت Designated) هستند. سایر فیلدهای مهم شامل Message Age، Max Age، Hello Time (فاصله زمانی ارسال BPDU)، و Forward Delay (تاخیر یک پورت در حالتهای Listening و Learning) میباشند.
2. Topology Change Notification (TCN) BPDU
TCN BPDUها پیامهایی هستند که توسط سوئیچهای غیر ریشه در دامنه STP ارسال میشوند تا دستگاهها را از هرگونه تغییر توپولوژی در شبکه مطلع سازند. TCNها به سمت Root Switch شبکه هدایت میشوند تا تغییرات توپولوژیکی رخ داده را به همراه توپولوژی فعلی که در حال تنظیم است، گزارش دهند.
تغییرات توپولوژی میتواند به دلایلی مانند تغییر وضعیت یک پورت (از بالا به پایین یا بالعکس) یا عدم دریافت BPDU برای مدتی مشخص رخ دهد. برای TCN BPDU، فیلد BPDU type دارای مقدار 0x80 است و محتوای این پیام بسیار کوتاهتر از CBPDU است و تنها شامل شناسه پروتکل، نسخه پروتکل و نوع BPDU میباشد.
نحوه عملکرد TCN BPDU
هنگامی که یک سوئیچ غیر ریشه تغییر توپولوژی را تشخیص میدهد، یک TCN BPDU تولید میکند و آن را به سمت پورت ریشه خود (Root Port) ارسال میکند. اگر شبکه چند سطحی باشد، سوئیچ واسط (Intermediate switch) که TCN را دریافت کرده است، TCN BPDU خود را ایجاد کرده و آن را به سمت بالا و Root Node ارسال میکند. سوئیچ ریشه پس از دریافت TCN، یک پیام تأیید تغییر توپولوژی (TCA) BPDU را به سوئیچ فرستنده پاسخ میدهد. سپس، Root Bridge یک Configuration BPDU را با فعال کردن بیت Topology Change (TC) تولید و به صورت Broadcast در کل شبکه ارسال میکند تا همه سوئیچها از تغییر توپولوژی مطلع شوند.
اگر مفاهیم BPDU، STP و رفتار سوئیچها برای شما جذاب است و میخواهید این مباحث را در سطح مهندسی شبکه بهصورت عملی یاد بگیرید، پیشنهاد میکنم دوره آموزش CCNA را شروع کنید. در این دوره، تمام مباحث سوئیچینگ از جمله STP، BPDU، PortFast، BPDU Guard، Root Bridge Election و عیبیابی عملی شبکه بهصورت پروژهمحور آموزش داده میشود.
BPDUها در عمل
BPDUها نقش کلیدی در حفظ سلامت شبکه لایه 2 ایفا میکنند و کاربردهای مهمی دارند:
- انتخاب سوئیچ ریشه: CBPDUها با مقایسه شناسه سوئیچها در مرحله اولیه، سوئیچ ریشه شبکه را انتخاب میکنند که پایینترین شناسه را داشته باشد.
- تشخیص و جلوگیری از حلقه: BPDUها با فراهم کردن اطلاعات توپولوژی، الگوریتم STP را قادر میسازند تا حلقهها را تشخیص داده و پورتهای اضافی را مسدود کند، در نتیجه از طوفانهای Broadcast جلوگیری میشود.
- کنترل و احراز هویت جریان داده: BPDUها به احراز هویت و کنترل جریان داده در داخل شبکه کمک میکنند و امنیت اولیه را در برابر برخی تهدیدات خارجی فراهم میآورند.
- اطلاعرسانی تغییرات توپولوژی: TCN BPDUها به Root Bridge کمک میکنند تا بلافاصله از تغییرات شبکه (مانند قطع یا وصل شدن لینک) مطلع شود و زمان همگرایی (Convergence) شبکه کاهش یابد.
افزایش امنیت با BPDU Guard
قابلیت BPDU Guard یک بهبود امنیتی STP است که توسط Cisco ایجاد شده و به طراحان شبکه اجازه میدهد تا مرزهای دامنه STP را اعمال کرده و توپولوژی فعال را قابل پیشبینی نگه دارند. این ویژگی اطمینان میدهد که دستگاههای پشت پورتهایی که PortFast در آنها فعال است، نمیتوانند بر توپولوژی STP تأثیر بگذارند. در صورت دریافت BPDU بر روی پورتی که PortFast و BPDU Guard در آن فعال است، عملیات BPDU Guard فوراً پورت را به حالت errdisable در میآورد و از هرگونه تلاش برای در دست گرفتن عملکرد Root Bridge جلوگیری میکند. این اقدام جلوی حملات DoS ساده یا بهینهسازی غیرمطلوب شبکه را میگیرد که در آن یک دستگاه با اولویت پایینتر (مثلاً یک کامپیوتر که نرمافزار پل اجرا میکند) به اشتباه Root Bridge میشود.
نتیجهگیری
Bridge Protocol Data Units (BPDU) فراتر از پیامهای ساده هستند؛ آنها مکانیزم اصلی هستند که به سوئیچها اجازه میدهند به طور منسجم در یک محیط شبکه عاری از حلقه همکاری کنند. Configuration BPDU (CBPDU) که توسط Root Bridge ارسال میشود، وظیفه تعیین توپولوژی و انجام انتخابات ریشه را بر عهده دارد و به طور منظم برای حفظ پایداری ارسال میشود.
در حالی که Topology Change Notification (TCN) BPDU توسط سوئیچهای غیر ریشه برای هشدار دادن سریع به Root Bridge در مورد هرگونه ناپایداری یا تغییر در اتصال استفاده میشود. درک دقیق نحوه کار این دو نوع پیام، برای پیادهسازی و عیبیابی موفقیتآمیز پروتکل درخت پوشا و اطمینان از عملکرد کارآمد و امن شبکههای مدرن حیاتی است. BPDUها در مدیریت لایههای ارتباطی و حفاظت از شبکه در برابر حملاتی مانند طوفانهای Broadcast بسیار کارآمد عمل میکنند.
سوالات متداول
فرق اصلی بین Configuration BPDU و TCN BPDU چیست؟
Configuration BPDU (CBPDU) اطلاعات کامل توپولوژی شبکه شامل شناسه ریشه، هزینه مسیر و شناسه پل را حمل میکند و وظیفه انتخاب ریشه و حفظ توپولوژی را بر عهده دارد. این پیامها به طور منظم توسط Root Bridge یا پورتهای Designated ارسال میشوند. در مقابل، TCN BPDU صرفاً برای اطلاعرسانی به Root Bridge درباره وقوع یک تغییر توپولوژی در شبکه محلی استفاده میشود و محتوای بسیار سادهتری دارد.
BPDUها به کدام آدرس MAC ارسال میشوند؟
سوئیچها واحدهای داده پروتکل پل را از پورت مبدأ خود به یک آدرس MAC مقصد چندپخشی (multicast) به صورت 01:80:c2:00:00:00 ارسال میکنند. این آدرس یکی از آدرسهایی است که توسط IEEE برای پروتکلهای استاندارد شبکه تخصیص داده شده و سوئیچها این فریمها را از شبکههای محلی فراتر نمیفرستند. این مکانیسم تضمین میکند که BPDUها فقط در دامنه سوئیچینگ باقی بمانند و توسط دستگاههایی که STP را اجرا میکنند، پردازش شوند.
اگر یک سوئیچ غیر ریشه TCN BPDU ارسال کند، پاسخ Root Bridge چیست؟
هنگامی که یک سوئیچ غیر ریشه (Non-root bridge) یک TCN BPDU را ارسال میکند، سوئیچ ریشه (Root bridge) یا سوئیچ بالادستی بلافاصله با یک پیام تأیید تغییر توپولوژی (TCA) BPDU به فرستنده پاسخ میدهد. پس از دریافت نهایی TCN توسط Root Bridge، این سوئیچ یک Configuration BPDU با بیت Topology Change (TC) فعال شده تولید کرده و آن را به کل شبکه Broadcast میکند تا تمامی سوئیچها در مورد تغییر توپولوژی مطلع شوند.
چرا از قابلیت BPDU Guard استفاده میشود؟
قابلیت BPDU Guard برای افزایش امنیت و ثبات در دامنه STP استفاده میشود، به ویژه بر روی پورتهایی که PortFast در آنها فعال است. هدف این است که از تأثیرگذاری دستگاههای متصل به پورتهای دسترسی (Access Ports) بر توپولوژی فعال STP جلوگیری شود. در صورت دریافت BPDU بر روی پورتی که BPDU Guard در آن فعال است، پورت فوراً غیرفعال (errdisable) میشود تا از تبدیل شدن آن دستگاه به Root Bridge ناخواسته یا ایجاد اختلال در شبکه جلوگیری شود.

