BPDU مخفف Bridge Protocol Data Unit است؛ پیام کنترلی‌ای که Switchها و Bridgeها در پروتکل‌های STP، RSTP و MSTP برای شناخت توپولوژی Layer 2، انتخاب Root Bridge و جلوگیری از ایجاد Loop با یکدیگر مبادله می‌کنند.

اگر شبکه‌ای دارای دو یا چند مسیر لایه ۲ میان Switchها باشد، وجود Redundancy مفید است؛ اما اگر تمام این مسیرها هم‌زمان Forward شوند، یک Loop Ethernet می‌تواند در مدت کوتاهی Broadcast Storm، ناپایداری MAC Table، Duplicate Frame و حتی از دسترس خارج شدن کامل شبکه را ایجاد کند.

اینجاست که BPDU و Spanning Tree وارد عمل می‌شوند.

Switch A
 |\
 | \
 | \
 | Switch C
 | /
 | /
Switch B

بدون STP:
ممکن است Loop ایجاد شود.

با RSTP:
یک مسیر Forwarding
یک مسیر Redundant / Discarding

در RouterOS نیز Bridge می‌تواند STP، RSTP یا MSTP اجرا کند و از BPDU برای محاسبه یک توپولوژی بدون Loop استفاده نماید.

نتیجه سریع: BPDU چیزی نیست که معمولاً بخواهیم آن را از شبکه حذف کنیم. در Backbone و لینک‌های Switch-to-Switch، BPDU بخش ضروری STP است. کنترل BPDU بیشتر روی Access Portها و مرزهای شبکه اهمیت دارد؛ جایی که می‌توان از Edge Port، BPDU Guard و Root Guard استفاده کرد.

چرا BPDU برای شبکه لازم است؟

Ethernet به‌صورت ذاتی مکانیزمی مانند TTL در IP ندارد که یک Frame را بعد از تعداد مشخصی Hop متوقف کند.

اگر یک Broadcast یا Unknown Unicast وارد Loop Layer 2 شود، ممکن است بارها میان Switchها تکرار شود.

Broadcast
 ↓
Switch A → Switch B
 ↑ ↓
Switch C ←─────┘

پیامدهای چنین Loopی می‌تواند شامل موارد زیر باشد:

  • Broadcast Storm
  • مصرف کامل پهنای باند لینک‌ها
  • MAC Flapping
  • مصرف شدید CPU روی Switch یا Router
  • Packet Loss
  • DHCP و ARP ناپایدار
  • قطع دسترسی کاربران
  • از دسترس خارج شدن Management شبکه

STP با استفاده از BPDU توپولوژی را بررسی می‌کند و یکی از مسیرهای Redundant را در وضعیت Non-Forwarding نگه می‌دارد.

اگر مسیر اصلی قطع شود، پروتکل می‌تواند مسیر جایگزین را فعال کند.

برای آشنایی با نمونه‌های دیگر خطاهای Layer 2 می‌توانید مقاله اشتباهات خطرناک در تنظیمات MikroTik را نیز مطالعه کنید.

BPDU چه اطلاعاتی حمل می‌کند؟

BPDU برای انتقال Payload کاربران ساخته نشده است. این Frame اطلاعات کنترلی مربوط به Spanning Tree را منتقل می‌کند.

از جمله اطلاعات مهم:

  • Root Bridge ID
  • Sender Bridge ID
  • Root Path Cost
  • Port ID
  • Timerها
  • Topology Change Information

Switch با مقایسه BPDUهای دریافت‌شده تصمیم می‌گیرد:

  • Root Bridge چه دستگاهی است؟
  • بهترین مسیر به Root کدام است؟
  • کدام Port باید Forward کند؟
  • کدام مسیر Redundant باید در حالت Discarding باشد؟

تفاوت STP، RSTP و MSTP چیست؟

STP

Spanning Tree Protocol استاندارد قدیمی IEEE 802.1D است.

STP از Loop جلوگیری می‌کند، اما Convergence آن نسبت به نسل جدیدتر کندتر است.

RSTP

Rapid Spanning Tree Protocol یا IEEE 802.1w نسخه سریع‌تر STP است.

RSTP برای شبکه‌های امروزی معمولاً انتخاب مناسب‌تری است و RouterOS نیز به‌صورت پیش‌فرض Bridge را با:

protocol-mode=rstp

ایجاد می‌کند.

MSTP

Multiple Spanning Tree Protocol امکان ساخت Spanning Treeهای مختلف برای گروه‌های VLAN را فراهم می‌کند.

این قابلیت برای طراحی‌هایی مفید است که VLANهای مختلف قرار است از مسیرهای متفاوتی استفاده کنند.

Protocolویژگیکاربرد
STPنسل قدیمی و Convergence کندترسازگاری Legacy
RSTPConvergence سریع‌ترانتخاب عمومی شبکه جدید
MSTPMultiple Spanning Tree Instanceشبکه‌های VLAN محور و پیچیده

Root Bridge چگونه انتخاب می‌شود؟

تمام Switchهای عضو یک Spanning Tree باید درباره یک Root Bridge توافق کنند.

Root Bridge دستگاه مرجع محاسبات STP است.

انتخاب Root براساس Bridge ID انجام می‌شود.

به شکل ساده:

Bridge ID =
Bridge Priority + MAC Address

دستگاهی که پایین‌ترین Bridge ID را داشته باشد Root Bridge می‌شود.

بنابراین ابتدا Priority مقایسه می‌شود و اگر Priority برابر باشد، MAC Address پایین‌تر تعیین‌کننده خواهد بود.

در شبکه سازمانی نباید Root Bridge را به شانس واگذار کنید. اگر همه Switchها Priority پیش‌فرض داشته باشند، ممکن است Switchی که از نظر معماری محل مناسبی نیست فقط به دلیل MAC پایین‌تر Root شود.

نقش پورت‌ها در RSTP

Root Port

بهترین مسیر یک Switch غیر Root به Root Bridge است.

هر Bridge غیر Root معمولاً یک Root Port دارد.

Designated Port

پورتی است که برای Segment مربوطه مسئول Forwarding Traffic به سمت پایین‌دست است.

Alternate Port

مسیر Backup به Root Bridge است.

تا زمانی که مسیر اصلی سالم است، این Port در حالت Discarding باقی می‌ماند.

Backup Port

در شرایط خاص، Backup یک Designated Port روی همان Segment است.

Disabled Port

پورتی که در Spanning Tree فعال نیست یا توسط Mechanismهایی مانند BPDU Guard غیرفعال شده است.

 ROOT SWITCH
 / \
 / \
 / \
 SW-A ----------- SW-B

SW-A → Root Port → Forwarding
SW-B → Root Port → Forwarding
Redundant Link → Alternate → Discarding

BPDU به چه MAC Addressی ارسال می‌شود؟

BPDU استاندارد STP/RSTP از MAC Address رزروشده Layer 2 استفاده می‌کند:

01:80:C2:00:00:00

این آدرس بخشی از محدوده Link-Local Control Protocolها است.

در یک شبکه استاندارد، BPDU مانند Broadcast معمولی قرار نیست بدون کنترل در کل شبکه Flood شود.

فعال‌سازی RSTP در MikroTik

در Bridgeهای جدید RouterOS، RSTP حالت پیش‌فرض است.

برای بررسی:

/interface bridge print detail

نمونه:

protocol-mode=rstp
priority=0x8000

اگر لازم باشد یک Bridge موجود را صراحتاً روی RSTP تنظیم کنید:

/interface bridge
set [find name="bridge-core"] protocol-mode=rstp

تغییر protocol-mode روی شبکه Production می‌تواند باعث Transition و قطع موقت Forwarding روی Bridge Portها شود. تغییرات STP را از راه Remote بدون Backup، Safe Mode یا مسیر دسترسی جایگزین انجام ندهید.

چگونه Root Bridge را در MikroTik مشخص کنیم؟

Priority پیش‌فرض Bridge در RouterOS:

0x8000
32768

هرچه Priority پایین‌تر باشد احتمال انتخاب آن دستگاه به‌عنوان Root بیشتر است.

Core Switch اصلی

/interface bridge
set [find name="bridge-core"] \
 protocol-mode=rstp \
 priority=0x1000

Core یا Distribution پشتیبان

/interface bridge
set [find name="bridge-core"] \
 protocol-mode=rstp \
 priority=0x2000

در این طراحی:

Primary Root = 0x1000
Secondary Root = 0x2000
Other Switches = 0x8000

در نتیجه توپولوژی رفتار قابل پیش‌بینی‌تری خواهد داشت.

Edge Port چیست؟

Edge Port پورتی است که انتظار داریم فقط به End Device متصل شود، نه Switch یا Bridge دیگر.

نمونه:

  • PC
  • Server
  • Printer
  • IP Phone
  • Camera

Edge Port می‌تواند سریع‌تر وارد حالت Forwarding شود؛ زیرا نیازی نیست مانند Link بین Switchها منتظر کامل‌شدن فرآیند STP باشد.

تنظیم Edge Port

/interface bridge port
set [find interface=ether5] edge=yes-discover

در حالت Discovery اگر BPDU روی Port مشاهده شود، RouterOS می‌تواند تشخیص دهد این Port دیگر یک Edge واقعی نیست.

پورت بین دو Switch را صرفاً برای سریع‌تر شدن Link به‌صورت Edge ثابت تنظیم نکنید. چنین کاری می‌تواند Protection مربوط به Spanning Tree را تضعیف کند.

BPDU Guard چیست؟

فرض کنید Ether5 مخصوص اتصال PC کاربران است.

در شرایط عادی هیچ Switch یا Bridge دیگری نباید از این Port BPDU ارسال کند.

اگر کاربری به‌جای PC یک Switch شخصی وصل کند یا دو پورت شبکه را به‌شکل اشتباه Bridge کند، ممکن است BPDU روی این Port دیده شود.

BPDU Guard می‌گوید:

اگر روی این Port یک BPDU دریافت شد، Port را از مدار خارج کن.

فعال‌سازی

/interface bridge port
set [find interface=ether5] \
 edge=yes-discover \
 bpdu-guard=yes

این Configuration برای Access Portهایی مناسب است که نباید هیچ Bridge دیگری پشت آن‌ها قرار داشته باشد.

اگر BPDU Guard Trigger شود چه اتفاقی می‌افتد؟

Port به Disabled Role می‌رود.

پس از بررسی و رفع علت، باید Port را مجدداً Reset کنید:

/interface bridge port
disable [find interface=ether5]

/interface bridge port
enable [find interface=ether5]

BPDU Guard یک Fail-Safe است. هدف آن این نیست که BPDUهای شبکه را مخفی کند؛ هدف این است که دریافت BPDU در Portی که از نظر طراحی نباید BPDU ببیند به‌عنوان تخلف تلقی شود.

Root Guard چیست و چه تفاوتی با BPDU Guard دارد؟

گاهی یک Port به Switch پایین‌دستی متصل است؛ بنابراین دریافت BPDU روی آن کاملاً طبیعی است.

در چنین Portی نمی‌توان BPDU Guard را فعال کرد، زیرا Port بلافاصله با دریافت BPDU طبیعی Down خواهد شد.

اما شاید بخواهیم Switch پایین‌دستی هیچ‌وقت Root Bridge نشود.

اینجا Root Guard کاربرد دارد.

در RouterOS این قابلیت با:

restricted-role=yes

پیاده‌سازی می‌شود.

نمونه

/interface bridge port
set [find interface=sfp-sfpplus2] \
 restricted-role=yes

اگر این Port یک Superior BPDU دریافت کند که می‌خواهد مسیر Root را تغییر دهد، Port اجازه Root Port شدن پیدا نمی‌کند و در حالت Alternate/Discarding باقی می‌ماند.

Featureرفتارکاربرد
BPDU Guardهر BPDU را Violation می‌داند و Port را Disabled می‌کندAccess Port
Root GuardBPDU مجاز است اما Superior Root پذیرفته نمی‌شودDownstream Switch

restricted-tcn در MikroTik چیست؟

TCN مخفف Topology Change Notification است.

وقتی توپولوژی Layer 2 تغییر می‌کند، STP باید سایر Bridgeها را مطلع کند تا MAC Table و مسیرها با شرایط جدید هماهنگ شوند.

در RouterOS می‌توان روی Port خاص:

restricted-tcn=yes

را فعال کرد.

این تنظیم باعث می‌شود Topology Change مربوط به آن Port در کل شبکه منتشر نشود.

کاربرد آن بیشتر در مرزهای شبکه یا شرایطی است که نمی‌خواهیم یک Switch خارجی با ایجاد مداوم Topology Change باعث MAC Table Flush در شبکه داخلی شود.

restricted-tcn را روی همه Portها فعال نکنید. TCN بخشی از عملکرد طبیعی STP است و محدودکردن آن بدون شناخت توپولوژی ممکن است باعث نگهداری اطلاعات قدیمی در Forwarding Database شود.

Path Cost چه نقشی در RSTP دارد؟

Switch برای انتخاب بهترین مسیر به Root Bridge از Path Cost استفاده می‌کند.

به‌طور کلی لینک سریع‌تر Cost پایین‌تری دارد.

در RouterOS جدید، محاسبه خودکار Cost براساس Link Speed انجام می‌شود و حالت پیش‌فرض:

port-cost-mode=long

است.

برای مشاهده Cost واقعی:

/interface bridge port
monitor [find]

پارامتر:

actual-path-cost

را بررسی کنید.

در بیشتر شبکه‌ها Auto Cost را حفظ کنید. Path Cost دستی زمانی ارزش دارد که عمداً بخواهید STP یک مسیر خاص را Primary و مسیر دیگری را Backup در نظر بگیرد.

Point-to-Point در RSTP چیست؟

RSTP روی یک Link مستقیم Full-Duplex میان دو Bridge می‌تواند سریع‌تر Converge شود.

RouterOS دارای تنظیم:

point-to-point=auto

است.

در Ethernet Full-Duplex معمولاً حالت Auto به‌درستی Link را Point-to-Point تشخیص می‌دهد.

بنابراین در اکثر شبکه‌های Ethernet نیازی به تغییر آن وجود ندارد.

در Mediaهایی مانند:

  • Wireless
  • Hub
  • Shared Segment

ممکن است رفتار متفاوتی نیاز باشد.

BPDU Filter با BPDU Guard یکسان نیست

این دو مفهوم را نباید اشتباه گرفت.

BPDU Guard

BPDU را Detect می‌کند و در صورت دریافت آن Port را Protect می‌کند.

BPDU Filtering

هدف آن جلوگیری از ارسال یا دریافت BPDU است.

در RouterOS وقتی STP/RSTP/MSTP روی Bridge فعال است، BPDU قبل از Bridge Filter معمولی پردازش می‌شود.

به همین دلیل Rule ساده:

/interface bridge filter

راه مناسبی برای Drop کردن BPDUهای STP نیست.

در بعضی Switch Chipهای MikroTik امکان Drop کردن BPDU توسط Hardware ACL وجود دارد، اما این قابلیت Model-dependent است.

BPDU Filtering را برای «تمیز کردن شبکه» استفاده نکنید. قطع BPDU روی یک Link Redundant می‌تواند STP را نابینا کند و زمینه ایجاد Loop را فراهم کند.

رابطه BPDU با VLAN و Bridge VLAN Filtering

در MikroTik روش استاندارد برای Switching مبتنی بر VLAN استفاده از یک Bridge و قابلیت:

vlan-filtering=yes

است.

Bridge VLAN Filtering با منطق STP سازگاری بهتری نسبت به طراحی‌هایی دارد که چند Bridge یا VLAN Interface به‌شکل نادرست روی یکدیگر Bridge شده‌اند.

برای MSTP نیز Bridge VLAN Filtering اهمیت ویژه‌ای دارد.

یکی از خطاهای خطرناک MikroTik ساخت توپولوژی Layer 2 پیچیده با Bridgeهای متعدد و VLAN Interfaceهای Bridge شده بدون درک Packet Flow است. چنین Configurationهایی ممکن است RSTP را بی‌اثر کرده یا Loopهای غیرمنتظره ایجاد کنند.

BPDU چه ارتباطی با امنیت شبکه دارد؟

BPDU خودش یک حمله نیست؛ اما اعتماد بدون محدودیت به BPDU روی Portهای نامناسب می‌تواند یک مشکل امنیتی ایجاد کند.

Rogue Switch

فرض کنید شخصی یک Switch را به Access Port متصل کند.

اگر آن Switch BPDU با Priority بهتر ارسال کند، ممکن است تلاش کند در فرآیند Root Election شرکت کند.

Core Switch
 |
 Access Switch
 |
 User Port
 |
Rogue Switch
 |
Superior BPDU

در طراحی امن:

  • Access Port → BPDU Guard
  • Downstream Network Boundary → Root Guard
  • Core/Distribution Link → RSTP عادی

در نظر گرفته می‌شود.

چگونه BPDU را در MikroTik مانیتور کنیم؟

بررسی Root Bridge

/interface bridge
monitor bridge-core

موارد مهم:

  • bridge-id
  • root-bridge
  • root-bridge-id
  • root-path-cost
  • root-port

بررسی Port Roleها

/interface bridge port
monitor [find bridge=bridge-core]

موارد مهم:

  • role
  • edge-port
  • point-to-point-port
  • learning
  • forwarding
  • actual-path-cost
  • tx-rx-bpdu
  • tx-rx-tc
  • topology-changes
  • discard-transitions

بررسی یک Port

/interface bridge port
monitor [find interface=sfp-sfpplus1]

اگر:

role=alternate
forwarding=no

مشاهده می‌کنید، الزاماً خطایی وجود ندارد. ممکن است RSTP عمداً مسیر Redundant را Block کرده باشد.

نمونه طراحی صحیح BPDU در یک شبکه سازمانی

فرض کنیم ساختار شبکه چنین است:

 CRS-Core-1
 Root 0x1000
 / \
 / \
 CRS-Access-1 ---- CRS-Access-2
 | | | |
 PC Phone PC Camera

Core اصلی

/interface bridge
set [find name="bridge-core"] \
 protocol-mode=rstp \
 priority=0x1000

Core پشتیبان در صورت وجود

/interface bridge
set [find name="bridge-core"] \
 protocol-mode=rstp \
 priority=0x2000

Access Port کاربران

/interface bridge port
set [find interface=ether5] \
 edge=yes-discover \
 bpdu-guard=yes

Uplink بین Switchها

/interface bridge port
set [find interface=sfp-sfpplus1] \
 edge=no \
 point-to-point=auto

Port رو به Switch خارجی یا پایین‌دستی که نباید Root شود

/interface bridge port
set [find interface=sfp-sfpplus2] \
 edge=no \
 restricted-role=yes

این نمونه Baseline مفهومی است، نه Configuration قابل کپی برای هر شبکه. نقش Portها باید براساس توپولوژی واقعی مشخص شود.

عیب‌یابی مشکلات BPDU و RSTP در MikroTik

پورت ناگهان Disabled شده است

ابتدا بررسی کنید BPDU Guard فعال است:

/interface bridge port
print detail where bpdu-guard=yes

اگر Port کاربر BPDU دریافت کرده، علت را پیدا کنید:

  • آیا Switch دیگری متصل شده است؟
  • آیا IP Phone دارای Bridge خاصی است؟
  • آیا Hypervisor یا VM Bridge BPDU ارسال می‌کند؟
  • آیا کابل Loop شده است؟

بعد از رفع مشکل Port را Disable/Enable کنید.

یک Port در حالت Alternate است

این حالت الزاماً خطا نیست.

اگر دو مسیر Redundant دارید، RSTP باید یکی از آن‌ها را Non-Forwarding کند.

Root Bridge و Path Cost را بررسی کنید:

/interface bridge monitor bridge-core

/interface bridge port monitor [find]

Root Bridge دستگاه اشتباهی است

Priorityها را بررسی کنید:

/interface bridge print detail

سپس Core موردنظر را با Priority پایین‌تر انتخاب کنید.

Topology Change مرتب افزایش پیدا می‌کند

در Port Monitor موارد زیر را بررسی کنید:

tx-rx-tc
topology-changes
last-topology-change

علت‌های محتمل:

  • Port Flapping
  • کابل معیوب
  • Switch ناپایدار
  • Wireless Bridge ناپایدار
  • Loop موقت
  • Edge Port اشتباه

شبکه Broadcast Storm دارد ولی RSTP فعال است

بررسی کنید:

  • تمام لینک‌های Layer 2 واقعاً عضو همان Spanning Tree هستند.
  • Bridgeهای جداگانه STP Domain را نشکسته‌اند.
  • BPDU روی Linkها Filter نشده است.
  • VLAN Design صحیح است.
  • Bridge VLAN Filtering درست پیاده‌سازی شده است.
  • Port اشتباهاً Edge ثابت نشده است.

بعد از فعال‌کردن VLAN Filtering ارتباط مدیریت قطع شد

این مشکل مستقیماً BPDU نیست، اما در پروژه‌های STP/VLAN زیاد دیده می‌شود.

قبل از:

vlan-filtering=yes

باید Management VLAN، Bridge CPU Port و Tagged/Untagged Membershipها صحیح باشند.

Bridge، VLAN و STP سه بخش جدا از هم نیستند. اشتباه در VLAN Filtering می‌تواند ظاهراً شبیه مشکل STP یا Root Port دیده شود.

اشتباهات رایج در مدیریت BPDU

۱. غیرفعال‌کردن RSTP چون «Loop نداریم»

Loop معمولاً زمانی ایجاد می‌شود که انتظارش را نداریم؛ کابل اشتباه، Switch جدید یا Configuration نادرست می‌تواند در چند ثانیه شبکه را مختل کند.

۲. BPDU Guard روی Uplink

Uplink به Switch دیگر باید BPDU دریافت کند. BPDU Guard روی چنین Portی باعث قطع طبیعی Link می‌شود.

۳. Edge کردن Port بین دو Switch

Edge برای End Device است، نه Backbone.

۴. نداشتن Root Bridge مشخص

اگر همه Switchها 0x8000 باشند، Root ممکن است فقط براساس MAC انتخاب شود.

۵. Drop کردن BPDU بدون شناخت توپولوژی

STP بدون BPDU نمی‌تواند Loop را تشخیص دهد.

۶. تغییر دستی Path Cost در همه Portها

در بیشتر شبکه‌ها Auto Cost براساس Link Speed انتخاب مناسب‌تری است.

۷. اشتباه گرفتن Alternate Port با Link خراب

Alternate Port در یک توپولوژی Redundant سالم کاملاً طبیعی است.

۸. فعال‌کردن restricted-tcn در همه جا

Topology Change بخشی از عملکرد عادی STP است و نباید بدون دلیل سرکوب شود.

۹. تغییر STP از راه Remote بدون مسیر Recovery

تغییر Protocol Mode، VLAN Filtering یا Root Topology ممکن است موقتاً Session مدیریتی را قطع کند.

چک‌لیست مدیریت BPDU و RSTP در MikroTik

  1. تمام Switchهای Layer 2 توپولوژی مستند شده‌اند.
  2. مسیرهای Redundant مشخص هستند.
  3. RSTP یا MSTP فعال است.
  4. STP کلاسیک فقط در صورت نیاز Compatibility استفاده شده است.
  5. Root Bridge اصلی به‌صورت عمدی انتخاب شده است.
  6. Root Secondary مشخص است.
  7. Priorityها از مقادیر استاندارد استفاده می‌کنند.
  8. Access Portها از Uplinkها تفکیک شده‌اند.
  9. Edge Port فقط برای End Device استفاده شده است.
  10. BPDU Guard روی Access Portهای حساس فعال است.
  11. BPDU Guard روی Uplink Switch-to-Switch فعال نیست.
  12. Root Guard روی مرزهای مناسب شبکه بررسی شده است.
  13. restricted-tcn فقط در صورت نیاز طراحی استفاده شده است.
  14. Point-to-Point روی Ethernet معمولاً Auto است.
  15. Path Cost بدون دلیل Override نشده است.
  16. Bridge VLAN Filtering صحیح اجرا شده است.
  17. BPDUها توسط Filterهای غیرضروری مسدود نشده‌اند.
  18. Root Bridge ID مانیتور می‌شود.
  19. Root Port هر Switch مشخص است.
  20. Alternate Portها مستند هستند.
  21. Topology Change Counter بررسی می‌شود.
  22. Port Flapping مانیتور می‌شود.
  23. قبل از تغییر Bridge Backup تهیه شده است.
  24. برای تغییر Remote از Safe Mode یا مسیر Recovery استفاده می‌شود.

طراحی Layer 2 و سوئیچینگ MikroTik با گروه بیستون

مشکلات BPDU و RSTP معمولاً زمانی پیچیده می‌شوند که شبکه دارای چند Switch، VLAN، Trunk، Uplink Redundant و چند مسیر Layer 2 باشد.

در چنین شبکه‌ای فقط فعال‌کردن STP کافی نیست؛ Root Bridge، Path Cost، Access Port، Edge Port، BPDU Guard و مرزهای شبکه باید به‌صورت هماهنگ طراحی شوند.

گروه فناوری ارتباطات پندار بیستون در حوزه تجهیزات MikroTik، Switching، Routing و زیرساخت شبکه فعالیت می‌کند.

برای بررسی یک مشکل STP یا Loop بهتر است اطلاعات زیر آماده باشند:

  • مدل Switchهای MikroTik
  • نسخه RouterOS
  • Diagram شبکه
  • تعداد VLANها
  • Bridge Configuration
  • Trunk Portها
  • Access Portها
  • Root Bridge فعلی
  • Bridge Priorityها
  • Port Roleها
  • Path Costها
  • Topology Change Counter
  • وضعیت Hardware Offload

برای مشاهده سوئیچ‌ها و تجهیزات شبکه می‌توانید به بخش تجهیزات MikroTik گروه بیستون مراجعه کنید. برای طراحی VLAN، RSTP، Redundancy یا عیب‌یابی Loop نیز از طریق صفحه پشتیبانی و مشاوره فنی درخواست خود را ثبت کنید.

سؤالات متداول درباره BPDU در MikroTik

BPDU چیست؟

BPDU پیام کنترلی پروتکل‌های STP، RSTP و MSTP است که Bridgeها برای تبادل اطلاعات مربوط به Root Bridge، Path Cost و توپولوژی Layer 2 ارسال می‌کنند.

BPDU چه کاری انجام می‌دهد؟

به Switchها کمک می‌کند یک توپولوژی بدون Loop ایجاد کنند و مسیرهای Redundant را در صورت نیاز Block یا فعال کنند.

آیا BPDU یک Broadcast است؟

خیر. BPDU استاندارد STP از آدرس MAC رزروشده Layer 2 استفاده می‌کند و مانند Broadcast عادی کاربران رفتار نمی‌کند.

MAC Address مربوط به BPDU چیست؟

برای STP/RSTP استاندارد، آدرس شناخته‌شده 01:80:C2:00:00:00 استفاده می‌شود.

آیا RSTP در MikroTik به‌صورت پیش‌فرض فعال است؟

بله. protocol-mode پیش‌فرض Bridge در RouterOS برابر RSTP است.

STP بهتر است یا RSTP؟

برای اغلب شبکه‌های جدید RSTP انتخاب مناسب‌تری است، چون Convergence سریع‌تری دارد و با STP نیز سازگار است.

MSTP چه زمانی استفاده می‌شود؟

در شبکه‌های VLAN محور که نیاز به Multiple Spanning Tree Instance یا کنترل متفاوت مسیرها برای گروه‌های VLAN وجود دارد.

Root Bridge چیست؟

Bridge مرجع Spanning Tree است که سایر Switchها بهترین مسیر خود را نسبت به آن محاسبه می‌کنند.

Root Bridge چگونه انتخاب می‌شود؟

Bridge دارای پایین‌ترین Bridge ID انتخاب می‌شود. Priority ابتدا و MAC Address در صورت برابر بودن Priority تعیین‌کننده است.

Priority پیش‌فرض MikroTik چقدر است؟

به‌صورت پیش‌فرض 32768 یا 0x8000 است.

برای Root Bridge چه Priorityای انتخاب کنیم؟

یک الگوی رایج استفاده از 0x1000 برای Root Primary و 0x2000 برای Root Secondary است؛ طراحی نهایی باید با کل شبکه هماهنگ باشد.

BPDU Guard چیست؟

قابلیتی است که در صورت دریافت BPDU روی Port محافظت‌شده، آن Port را Disabled می‌کند.

BPDU Guard را روی چه پورتی فعال کنیم؟

روی Access Portهایی که فقط باید به End Device متصل شوند و هیچ Switch یا Bridge دیگری پشت آن‌ها وجود ندارد.

آیا BPDU Guard را روی Uplink فعال کنیم؟

خیر. Uplink بین Switchها به‌طور طبیعی BPDU دریافت می‌کند و فعال‌کردن BPDU Guard باعث قطع Port خواهد شد.

بعد از Trigger شدن BPDU Guard چگونه Port را برگردانیم؟

پس از رفع علت، Bridge Port باید به‌صورت دستی Disable و مجدداً Enable شود.

Root Guard چیست؟

مکانیزمی برای جلوگیری از Root شدن Switchهای پایین‌دستی یا خارجی است، بدون اینکه تمام BPDUهای آن Port ممنوع شوند.

Root Guard در MikroTik چگونه فعال می‌شود؟

با تنظیم restricted-role=yes روی Bridge Port.

فرق Root Guard و BPDU Guard چیست؟

BPDU Guard دریافت هر BPDU را Violation می‌داند؛ Root Guard دریافت BPDU را مجاز می‌داند اما اجازه نمی‌دهد Superior BPDU توپولوژی Root را تغییر دهد.

Edge Port چیست؟

پورتی است که به End Device متصل است و می‌تواند سریع‌تر وارد Forwarding State شود.

آیا Port بین دو Switch می‌تواند Edge باشد؟

در طراحی معمول خیر. Switch-to-Switch Link باید در STP مشارکت کامل داشته باشد.

Alternate Port یعنی Port خراب است؟

خیر. Alternate Port معمولاً مسیر Redundant سالمی است که RSTP برای جلوگیری از Loop فعلاً آن را در حالت Discarding نگه داشته است.

چرا Topology Changes زیاد می‌شوند؟

Port Flapping، کابل معیوب، Switch ناپایدار، Wireless Bridge، Loop موقت یا Edge Configuration اشتباه از دلایل رایج هستند.

آیا می‌توان BPDU را با Bridge Firewall Drop کرد؟

در زمان فعال بودن STP/RSTP/MSTP، BPDUهای استاندارد قبل از Bridge Filter معمولی پردازش می‌شوند. در بعضی مدل‌ها Hardware ACL می‌تواند BPDU را فیلتر کند، اما این روش عمومی نیست.

آیا بهتر است BPDU را روی Access Port Filter کنیم؟

اگر هدف امنیت است معمولاً BPDU Guard راهکار منطقی‌تری از مخفی‌کردن BPDU است؛ زیرا دریافت غیرمنتظره BPDU را Detect و Port را Protect می‌کند.

آیا خاموش کردن STP شبکه را سریع‌تر می‌کند؟

مزیت Performance قابل توجهی ایجاد نمی‌کند، اما Protection مهمی در برابر Loop را حذف می‌کند. در شبکه‌ای که امکان Loop Layer 2 وجود دارد این تصمیم پرریسک است.

جمع‌بندی؛ BPDU را حذف نکنید، آن را درست مدیریت کنید

BPDU در MikroTik اساس عملکرد STP، RSTP و MSTP است و به Bridgeها اجازه می‌دهد مسیرهای Layer 2 را بدون ایجاد Loop مدیریت کنند.

در طراحی استاندارد:

  • Root Bridge به‌صورت عمدی انتخاب می‌شود.
  • RSTP روی لینک‌های Switch-to-Switch فعال باقی می‌ماند.
  • Access Portها به‌عنوان Edge مدیریت می‌شوند.
  • BPDU Guard از اتصال Switch غیرمجاز به Port کاربر جلوگیری می‌کند.
  • Root Guard مانع تغییر ناخواسته Root Bridge از سمت شبکه پایین‌دستی می‌شود.
  • Path Cost و Port Roleها مانیتور می‌شوند.

مهم‌ترین اشتباه این است که BPDU را عامل مشکل بدانیم و برای رفع یک Loop، STP یا BPDU را خاموش کنیم.

در بیشتر موارد Loop نشانه این است که طراحی Layer 2، VLAN، Port Role یا Spanning Tree به‌درستی اجرا نشده است.

در شبکه Redundant، هدف این نیست که تمام لینک‌ها همیشه Forward کنند؛ هدف این است که شبکه در حالت عادی Loop نداشته باشد و هنگام خرابی بتواند سریع و قابل پیش‌بینی به مسیر پشتیبان منتقل شود.