ESC را فشار دهید تا بسته شود

چرا VLAN در MikroTik با Bridge VLAN Filtering کار نمی‌کند؟ عیب‌یابی PVID و Tagged/Untagged

فهرست

اگر VLAN در MikroTik پس از فعال‌کردن Bridge VLAN Filtering قطع شده، ابتدا جدول /interface bridge vlan، مقدار pvid پورت Access و عضویت پورت Trunk را بررسی کنید. در RouterOS، پورت Trunk باید VLAN موردنظر را به‌صورت tagged عبور دهد و پورت Access باید همان VLAN را با pvid صحیح دریافت کند. اگر خود روتر باید به VLAN دسترسی مدیریتی یا مسیریابی داشته باشد، عضویت Bridge/CPU نیز مهم است. قبل از هر تغییر روی روتر راه‌دور، Safe Mode و مسیر مدیریت جایگزین داشته باشید.

این راهنما برای RouterOS v7 نوشته شده و روی سناریوی واقعی «کلاینت متصل به Access Port آی‌پی نمی‌گیرد، VLAN بین دو سوئیچ عبور نمی‌کند یا بعد از vlan-filtering=yes دسترسی مدیریت قطع می‌شود» تمرکز دارد. تنظیمات را روی شبکه واقعی فقط پس از تطبیق نام پورت‌ها، مدل سخت‌افزار و توپولوژی اجرا کنید.

سناریو: یک Trunk و دو Access Port

فرض کنید ether1 به سوئیچ بالادستی متصل است و VLANهای 10 و 20 را به‌شکل Tagged حمل می‌کند. ether2 برای کاربران VLAN 10 و ether3 برای VLAN 20 است؛ دستگاه‌های انتهایی روی این دو پورت فریم بدون تگ می‌فرستند. در صورت نیاز، VLAN 99 برای مدیریت خود روتر در نظر گرفته می‌شود. عبور Layer 2 به‌معنای داشتن DHCP، Gateway یا Inter-VLAN Routing نیست؛ آن‌ها باید جداگانه پیکربندی شوند.

  • Trunk: فریم خروجی با VLAN Tag؛ در این مثال ether1.
  • Access: فریم بدون تگ به کلاینت و تخصیص VLAN به ترافیک ورودی با pvid.
  • Bridge VLAN Table: مشخص می‌کند هر VLAN از کدام پورت‌ها با تگ یا بدون تگ خارج شود.
  • Bridge/CPU Port: برای سرویس‌های خود روتر مثل IP Management، DHCP Server یا Routing در VLAN مربوط لازم است؛ در نسخه‌های جدید ممکن است عضویت Dynamic ایجاد شود، اما باید نتیجه را بررسی کنید.

پیش‌نیاز و اقدامات ایمن پیش از تغییر

نسخه RouterOS، نوع پورت‌های فیزیکی و قابلیت Hardware Offload را بررسی کنید. اگر برای آزمایش از سرور مجازی میکروتیک مبتنی بر CHR استفاده می‌کنید، پیش از طراحی VLAN مطمئن شوید شبکه ارائه‌دهنده عبور فریم‌های Tagged و اتصال‌های مجازی موردنیاز را پشتیبانی می‌کند؛ این امکانات در همه VPSها در دسترس نیست. بهتر است با کنسول فیزیکی، MAC Winbox یا پورت مدیریتی مستقلی که عضو Bridge مورد تغییر نیست وصل شوید. تنها مسیر مدیریت از همان Trunk یا Access در حال تغییر، خطر قطع کامل دسترسی دارد.

/system resource print
/interface bridge print detail
/interface bridge port print detail
/interface bridge vlan print detail
/ip address print detail
/interface vlan print detail

از تنظیمات خروجی بگیرید. این فایل ممکن است اطلاعات حساس شبکه را افشا کند؛ آن را فقط در محل امن نگه دارید. در RouterOS v7 خروجی معمولاً داده‌های حساس را به‌صورت پیش‌فرض پنهان می‌کند؛ از گزینه show-sensitive استفاده نکنید.

/export file=before-bridge-vlan
/system backup save name=before-bridge-vlan

در ترمینال Winbox/SSH با Ctrl+X وارد Safe Mode شوید و فعال‌شدن آن را در Prompt بررسی کنید. Safe Mode در صورت قطع غیرمنتظره همان نشست می‌تواند تغییرات ثبت‌شده در آن نشست را برگرداند، ولی جایگزین بکاپ و دسترسی خارج از باند نیست. محدودیت تعداد تغییرات Safe Mode را نیز در نظر بگیرید.

مرحله اول: تشخیص خطا بدون تغییر تنظیمات

این چهار خروجی را کنار هم بخوانید؛ تنها نگاه‌کردن به pvid کافی نیست.

/interface bridge print detail
/interface bridge port print detail
/interface bridge vlan print detail
/interface bridge host print

در bridge port، پورت Access باید pvid=10 یا pvid=20 داشته باشد؛ پورت Trunk معمولاً frame-types=admit-only-vlan-tagged است. در bridge vlan باید برای VLAN 10 پورت ether1 در current-tagged و ether2 در current-untagged دیده شود؛ برای VLAN 20 نیز ether1 و ether3. خروجی Dynamic مربوط به PVID طبیعی است و نباید با Rule ثابت اشتباه شود.

اگر vlan-filtering=no باشد، PVID و جدول VLAN هنوز سیاست جداسازی مورد انتظار را اعمال نمی‌کنند. اگر vlan-filtering=yes است اما یک پورت در جدول VLAN مربوط دیده نمی‌شود، ترافیک ممکن است هنگام ورود یا خروج Drop شود.

مرحله دوم: نمونه تنظیم صحیح Bridge VLAN Filtering در RouterOS v7

دستورهای این بخش برای Bridge جدید و پورت‌های آزاد در یک محیط آزمایشگاهی‌اند؛ آن‌ها را روی روتر دارای Bridge و IP فعال بدون بازطراحی توپولوژی کپی نکنید. ابتدا Bridge را با Filtering غیرفعال بسازید تا امکان بررسی جدول قبل از اعمال محدودیت وجود داشته باشد.

/interface bridge
add name=br-vlan protocol-mode=rstp vlan-filtering=no

/interface bridge port
add bridge=br-vlan interface=ether1 ingress-filtering=yes frame-types=admit-only-vlan-tagged
add bridge=br-vlan interface=ether2 pvid=10 ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged
add bridge=br-vlan interface=ether3 pvid=20 ingress-filtering=yes frame-types=admit-only-untagged-and-priority-tagged

/interface bridge vlan
add bridge=br-vlan vlan-ids=10 tagged=ether1 untagged=ether2
add bridge=br-vlan vlan-ids=20 tagged=ether1 untagged=ether3

قبل از فعال‌کردن Filtering، مطمئن شوید سوئیچ سمت ether1 دقیقاً VLANهای 10 و 20 را Tagged می‌فرستد و کلاینت روی ether2 یا ether3 بدون تگ است. سپس فقط در Safe Mode و با مسیر مدیریت مطمئن Filtering را فعال کنید:

/interface bridge set [find where name=br-vlan] vlan-filtering=yes
/interface bridge vlan print
/interface bridge port print

خروجی مورد انتظار: VLAN 10: ether1 در Tagged و ether2 در Untagged؛ VLAN 20: ether1 در Tagged و ether3 در Untagged. اگر پورت‌ها از قبل عضو Bridge دیگری هستند، دستور add خطا می‌دهد؛ به‌جای اجرای کورکورانه، وضعیت موجود را با print detail بررسی و با set اصلاح کنید.

مرحله سوم: مشکل PVID؛ چرا کلاینت Access ارتباط ندارد؟

pvid فقط برای فریم‌های Untagged یا Priority-Tagged ورودی استفاده می‌شود؛ VLAN ID فریم Tagged را تغییر نمی‌دهد. بنابراین تنظیم pvid=10 روی پورت Trunk، VLAN 20 ورودی Tagged را به VLAN 10 تبدیل نمی‌کند. برای Access Port، مقدار PVID و خروجی Untagged در جدول باید با هم سازگار باشند.

/interface bridge port print where interface=ether2
/interface bridge vlan print where vlan-ids=10

اگر پورت Access اشتباهاً pvid=1 دارد، ابتدا مطمئن شوید ether2 واقعاً پورت کاربران VLAN 10 است و سپس در Safe Mode اصلاح کنید:

/interface bridge port set [find where interface=ether2] pvid=10

ورودی‌های Dynamic مربوط به PVID ممکن است پورت Access را به‌طور خودکار به‌عنوان Untagged اضافه کنند. با این حال، وجود ورودی Dynamic به‌تنهایی جای بررسی VLANهای مجاز روی Trunk و سمت مقابل لینک را نمی‌گیرد.

مرحله چهارم: Trunk و تفاوت Tagged / Untagged

در Trunk، VLAN 10 و VLAN 20 باید در جدول VLAN برای ether1 به‌صورت Tagged مجاز باشند. اگر سوئیچ مقابل VLAN 10 را Untagged (Native VLAN) ارسال کند ولی MikroTik روی ether1 فقط فریم Tagged بپذیرد، آن ترافیک Drop می‌شود. هر دو سمت لینک باید درباره VLANهای Tagged، Native VLAN و EtherType توافق داشته باشند.

برای جلوگیری از VLAN Leakage، چند VLAN متفاوت را در یک Rule با مجموعه پورت‌های Access Untagged مشترک قرار ندهید. مستندات MikroTik تأکید می‌کند ترکیب چند vlan-ids در یک Rule معمولاً برای پورت‌های Tagged مناسب است، نه Accessهای متفاوت.

مرحله پنجم: مدیریت روتر و نقش Bridge/CPU در VLAN 99

اگر پس از فعال‌کردن Filtering فقط دسترسی Winbox/SSH یا Ping به IP خود MikroTik قطع شده ولی ترافیک بین دو پورت عبور می‌کند، احتمالاً Bridge/CPU برای VLAN مدیریتی در دسترس نیست. برای مدیریت Tagged روی VLAN 99، روتر باید VLAN Interface روی Bridge داشته باشد و VLAN 99 از Trunk عبور کند.

نمونه زیر فقط زمانی مجاز است که VLAN 99 و آدرس 192.168.99.2/24 از قبل در شبکه شما رزرو شده باشند و مسیر دسترسی مدیریتی جایگزین برقرار باشد. آدرس نمونه را با طرح واقعی خود جایگزین کنید:

/interface bridge vlan
add bridge=br-vlan vlan-ids=99 tagged=br-vlan,ether1

/interface vlan
add name=vlan99-mgmt interface=br-vlan vlan-id=99

/ip address
add address=192.168.99.2/24 interface=vlan99-mgmt

در RouterOS 7.16 و جدیدتر ممکن است عضویت Bridge به‌دلیل VLAN Interface به‌صورت Dynamic ساخته شود؛ در 7.20 و بعدتر برخی سناریوهای Switch-CPU نیز Entry پویا دارند. به‌جای فرض ثابت، ستون‌های current-tagged و current-untagged را در نسخه و مدل خود بررسی کنید. مدیریت روی VLAN 1 بدون جداسازی مناسب توصیه نمی‌شود. اگر تنها IP مدیریت فعلی روی Bridge بدون VLAN قرار دارد، قبل از فعال‌کردن Filtering آن را به VLAN مدیریتی منتقل نکنید مگر راه بازیابی دارید.

مرحله ششم: بررسی Ingress Filtering و Frame Types

در RouterOS v7، ingress-filtering برای Bridge Port به‌طور پیش‌فرض فعال است. این ویژگی عضویت VLAN را هنگام ورود بررسی می‌کند؛ frame-types تعیین می‌کند پورت Tagged، Untagged یا هر دو نوع فریم را بپذیرد. خاموش‌کردن دائمی Ingress Filtering برای «درست‌شدن ارتباط» راه‌حل اصولی نیست و می‌تواند جداسازی VLAN را تضعیف کند.

/interface bridge port print detail where interface=ether1
/interface bridge port print detail where interface=ether2
/interface bridge vlan print detail

برای Trunk خالص admit-only-vlan-tagged و برای Access خالص admit-only-untagged-and-priority-tagged مناسب است. پورت Hybrid که هم ترافیک Tagged و هم Untagged حمل می‌کند به تنظیم متفاوت و جدول VLAN دقیق نیاز دارد؛ آن را با Trunk ساده اشتباه نگیرید.

مرحله هفتم: تست واقعی و تأیید رفع مشکل

  1. از کلاینت روی ether2 آدرس IP متناسب با VLAN 10 بگیرید یا IP استاتیک آزمایشی صحیح تنظیم کنید؛ از کلاینت VLAN 20 روی ether3 نیز همین کار را انجام دهید.
  2. دو کلاینت در یک VLAN را در دو سوی Trunk تست Ping کنید. برای تست VLANهای متفاوت، وجود Gateway و Routing لازم است؛ انتظار Ping بین VLANهای جداشده بدون Router منطقی نیست.
  3. جدول Bridge VLAN را دوباره بخوانید و ستون‌های current-tagged/current-untagged را با نقشه پورت‌ها تطبیق دهید.
  4. اگر DHCP کار نمی‌کند اما IP استاتیک در همان VLAN ارتباط دارد، مشکل ممکن است در DHCP Server، Relay یا فایروال باشد؛ راهنمای عیب‌یابی DHCP Relay بین VLAN و DHCP Server را دنبال کنید.
/interface bridge vlan print
/interface bridge port print
/interface bridge host print
/interface vlan print detail

نشانه موفقیت: پورت‌های Tagged و Untagged مطابق طراحی دیده شوند، ارتباط داخل VLAN برقرار باشد و دسترسی مدیریت روتر از مسیر تعریف‌شده حفظ شود. اگر هدف شما دسترسی به اینترنت است، NAT، Firewall و Route را نیز جداگانه بررسی کنید؛ برای آن سناریو راهنمای عیب‌یابی Policy Routing در MikroTik مرتبط است.

خطاهای رایج و علت فنی آن‌ها

  • کلاینت VLAN 10 آدرس DHCP نمی‌گیرد: پورت Access PVID اشتباه دارد، Trunk VLAN 10 را حمل نمی‌کند یا DHCP/Relay مستقل مشکل دارد. ابتدا IP استاتیک داخل VLAN را تست کنید.
  • پس از فعال‌کردن VLAN Filtering دسترسی Winbox قطع شد: Bridge/CPU عضو VLAN مدیریت نیست یا مسیر Tagged VLAN 99 از سوئیچ مقابل نمی‌رسد. از Safe Mode/کنسول بازیابی کنید.
  • VLAN 10 و 20 به‌اشتباه به هم نشت می‌کنند: Rule مشترک چند VLAN برای Accessهای Untagged یا Hybrid/Native VLAN اشتباه تعریف شده است.
  • لینک Up است اما بسته عبور نمی‌کند: Up بودن Ethernet فقط Layer 1 را نشان می‌دهد؛ Membership جدول VLAN، Frame Types، EtherType و سوئیچ مقابل را بررسی کنید.
  • با فعال‌کردن Bridge Filtering سرعت افت کرد: Hardware Offload روی مدل/چیپ شما ممکن است برای این تنظیمات پشتیبانی نشود؛ ستون HW و مستندات سخت‌افزار را بررسی کنید.
  • ترافیک بین VLANها برقرار نیست: جداسازی VLAN طبیعی است؛ Inter-VLAN Routing و قوانین Firewall جداگانه لازم‌اند.

Rollback و بازیابی بدون قطع طولانی

اگر در Safe Mode هستید و دسترسی در حال قطع‌شدن است، اجازه دهید نشست طبق سازوکار Safe Mode بازیابی شود؛ از تغییرات شتاب‌زده روی روتر دوردست خودداری کنید. در محیطی که دسترسی مدیریتی مطمئن دارید، برای تشخیص موقت می‌توانید Filtering روی Bridge آزمایشگاهی را خاموش کنید؛ این کار جداسازی VLAN را از بین می‌برد و نباید روی شبکه عملیاتی بدون برنامه امنیتی انجام شود.

/interface bridge set [find where name=br-vlan] vlan-filtering=no

سپس خروجی قبل از تغییر را با وضعیت فعلی مقایسه و تنظیمات اشتباه را اصلاح کنید. بازگردانی فایل Backup باینری باید با توجه به مدل، نسخه RouterOS و خطر بازنویسی تنظیمات انجام شود. اگر در شبکه شما STP یا حلقه Layer 2 مطرح است، راهنمای کارکرد STP و جلوگیری از حلقه شبکه را نیز ببینید.

چک‌لیست نهایی برای ادمین شبکه

  • VLAN ID در دو سمت Trunk یکسان است و Tagged/Untagged درست انتخاب شده.
  • PVID پورت Access با VLAN مقصد هماهنگ است.
  • Bridge VLAN Table برای هر VLAN عضویت خروجی صحیح دارد.
  • Ingress Filtering و Frame Types مطابق نوع پورت تنظیم شده‌اند.
  • در صورت نیاز به IP مدیریت یا Routing، Bridge/CPU عضو VLAN مربوط است.
  • دسترسی مدیریتی جایگزین، Safe Mode و Backup پیش از تغییر آماده است.
  • تست IP استاتیک، DHCP، Ping درون VLAN و مسیر Gateway به‌صورت جداگانه PASS شده‌اند.

منابع فنی: MikroTik Bridge VLAN Table و MikroTik Bridging and Switching. این مقاله بر مبنای مستندات رسمی RouterOS بررسی‌شده در ۱۸ اکتبر ۲۰۲۶ نوشته شده است؛ قابلیت‌های Dynamic VLAN در نسخه‌های مختلف ممکن است متفاوت باشند.

5/5 - (1 امتیاز)
اشتراک گذاری نوشته در:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *