چرا L3HW Offloading باعث Drop شدن Traffic در MikroTik می‌شود؟ + ۵ روش قطعی رفع مشکل
میکروتیک

چرا L3HW Offloading باعث Drop شدن Traffic در MikroTik می‌شود؟ + ۵ روش قطعی رفع مشکل

اگر بعد از فعال‌سازی L3 Hardware Offloading روی سوییچ یا روتر میکروتیک خود مشاهده کردید که ترافیک Drop می‌شود، پینگ‌ها تایم‌اوت می‌شوند یا سرعت به‌شدت افت می‌کند، این مقاله دقیقاً برای شماست. L3HW یکی از قدرتمندترین ویژگی‌های RouterOS است که اجازه می‌دهد routing بین VLANها با سرعت سیم (wire-speed) و بدون درگیر کردن CPU انجام شود، اما اگر پیکربندی آن اشتباه باشد یا با محدودیت‌های سخت‌افزاری برخورد کند، می‌تواند به‌جای افزایش performance، باعث packet loss و قطع ارتباط شود.

⚠️ هشدار مهم: L3HW Offloading فقط روی مدل‌های خاصی از میکروتیک (عمدتاً CRS3xx، CRS5xx، CCR2116 و CCR2216 با چیپ‌ست Marvell) پشتیبانی می‌شود. فعال‌سازی این ویژگی روی دستگاه‌های ناسازگار می‌تواند باعث از کار افتادن کامل routing شود.

L3HW Offloading چیست و چرا باعث Drop ترافیک می‌شود؟

Layer 3 Hardware Offloading (L3HW) یک ویژگی در RouterOS است که وظیفه routing بین VLANها را از CPU به switch chip منتقل می‌کند. این کار باعث می‌شود ترافیک بین شبکه‌ها با سرعت سیم و بدون افزایش بار CPU جابه‌جا شود [citation:6].

اما مشکل از آنجایی شروع می‌شود که حافظه سخت‌افزاری (HW memory) switch chip برای نگهداری routing table بسیار محدود است. وقتی تعداد routeها از ظرفیت HW table بیشتر شود، اتفاق‌های زیر رخ می‌دهد:

🔹 routeهای اضافی به CPU منتقل می‌شوند و به‌صورت software پردازش می‌شوند

🔹 CPU بار ناگهانی سنگینی را تجربه می‌کند و ممکن است packet drop رخ دهد

🔹 در RouterOS نسخه 7.2 و قبل‌تر، سرریز شدن HW table باعث undefined behavior می‌شد [citation:11]

🔹 اگر port WAN روی L3HW فعال باشد، ممکن است کل L3HW برای سایر portها از کار بیفتد [citation:4]

علاوه بر محدودیت حافظه، عدم تطابق پیکربندی نیز یکی از دلایل اصلی Drop است. مثلاً اگر VLAN interface مستقیماً روی port فیزیکی تعریف شود (نه روی bridge)، L3HW کار نمی‌کند و ترافیک به CPU می‌افتد [citation:17].

۵ روش تشخیص و رفع مشکل Drop در L3HW Offloading

روش ۱: بررسی وضعیت L3HW و تعداد Connectionهای آفلود شده

اولین قدم، بررسی این است که آیا L3HW واقعاً فعال است و چه تعداد connection در سخت‌افزار آفلود شده‌اند:

/interface/ethernet/switch/l3hw-settings/print

برای مشاهده آمار دقیق connectionهای آفلود شده:

/interface/ethernet/switch/l3hw-settings/monitor

📌 نکته: اگر تعداد connectionهای آفلود شده نزدیک به سقف باشد، یا اگر مشاهده کردید که connectionها به‌سرعت از HW خارج می‌شوند، یعنی HW table در حال سرریز شدن است و باید تعداد routeها را کاهش دهید [citation:11].

روش ۲: محدود کردن L3HW به LAN و غیرفعال کردن آن روی WAN

یکی از شایع‌ترین دلایل Drop، فعال بودن L3HW روی port WAN است. وقتی port WAN روی L3HW فعال باشد، ممکن است کل L3HW برای سایر portها از کار بیفتد [citation:4]. راه‌حل، فعال کردن L3HW فقط روی portهای LAN و غیرفعال کردن آن روی portهای WAN و Management است:

# فعال‌سازی L3HW روی portهای LAN
:foreach i in=[/interface/list/member/find where list=LAN] do={
    /interface/ethernet/switch/port set [/interface/list/member/get $i interface] l3-hw-offloading=yes
}

# غیرفعال‌سازی L3HW روی portهای WAN
:foreach i in=[/interface/list/member/find where list=WAN] do={
    /interface/ethernet/switch/port set [/interface/list/member/get $i interface] l3-hw-offloading=no
}

سپس L3HW را در سطح switch chip فعال کنید:

/interface/ethernet/switch set 0 l3-hw-offloading=yes

روش ۳: بررسی صحیح تعریف VLAN Interface روی Bridge

یکی از اشتباهات رایج در پیکربندی L3HW، تعریف VLAN interface مستقیماً روی port فیزیکی است. این کار باعث می‌شود L3HW به‌دلیل وابستگی Layer 2 کار نکند و ترافیک به CPU بیفتد [citation:17].

اشتباه: VLAN interface روی port فیزیکی تعریف شود:

/interface vlan add name=vlan10 vlan-id=10 interface=sfp-sfpplus1

درست: VLAN interface روی bridge تعریف شود:

/interface bridge port add bridge=bridge1 interface=sfp-sfpplus1 pvid=10
/interface bridge vlan add bridge=bridge1 tagged=bridge1,sfp-sfpplus1 vlan-ids=10
/interface vlan add name=vlan10 vlan-id=10 interface=bridge1

روش ۴: بررسی محدودیت HW Table و مدیریت Routeها

حافظه HW table در switch chip محدود است و بین IPv4، IPv6، Fasttrack و ACL مشترک است [citation:11]. اگر تعداد routeها از ظرفیت بیشتر شود، routeهای اضافی به CPU منتقل می‌شوند و ممکن است Drop رخ دهد.

از RouterOS نسخه 7.3 به بعد، وقتی HW table پر شود، فقط routeهای با subnet mask بلندتر (مثل /30، /29، /28) در سخت‌افزار آفلود می‌شوند و routeهای با prefix کوتاه‌تر به CPU می‌روند [citation:11].

🔹 راه‌حل: تعداد routeهای غیرضروری را کاهش دهید.

🔹 از routing filters برای جلوگیری از آفلود routeهای غیرضروری استفاده کنید.

🔹 اگر از ECMP استفاده می‌کنید، تعداد nexthopها را کاهش دهید.

🔹 در صورت نیاز، از route suppression برای static routeها استفاده کنید [citation:15].

روش ۵: بررسی تداخل با Fasttrack و Firewall

وقتی L3HW فعال است، ترافیک بین VLANها مستقیماً توسط سخت‌افزار route می‌شود و از firewall CPU عبور نمی‌کند. اما ترافیک به/از WAN از CPU و firewall عبور می‌کند و سپس از طریق Fasttrack HW offload به سخت‌افزار منتقل می‌شود [citation:17].

اگر Fasttrack به‌درستی پیکربندی نشده باشد، یا اگر تنظیماتی مثل sniffer، torch یا bridge filter فعال باشد، FastPath غیرفعال می‌شود و L3HW نمی‌تواند connectionها را آفلود کند [citation:11].

🔹 بررسی کنید که Fasttrack HW offload فعال باشد:

/ip firewall filter add action=fasttrack-connection chain=forward connection-state=established,related hw-offload=yes

مطمئن شوید که هیچ feature‌ای مثل sniffer یا torch در حال اجرا نیست که FastPath را غیرفعال کند [citation:11].

📌 راه‌حل اصولی برای محیط‌های Production

اگر از L3HW Offloading در محیط عملیاتی استفاده می‌کنید و با محدودیت HW table مواجه شده‌اید، ایرانیکاسرور سرورهای مجازی میکروتیک با منابع اختصاصی و RouterOS نسخه‌های پایدار ارائه می‌کند که برای routing سنگین و L3HW بهینه شده‌اند.

🔹 سرور مجازی میکروتیک ایران: مشاهده و سفارش

کدام مدل‌های میکروتیک از L3HW پشتیبانی می‌کنند؟

L3HW Offloading فقط روی مدل‌هایی با چیپ‌ست Marvell پشتیبانی می‌شود. جدول زیر مدل‌های پشتیبانی‌شده را نشان می‌دهد [citation:11][citation:15]:

سری دستگاه مدل‌های نمونه پشتیبانی L3HW
CRS3xx CRS326، CRS328، CRS354 ✅ کامل
CRS5xx CRS510، CRS520 ✅ کامل
CCR2xxx CCR2116، CCR2216 ✅ کامل
RB5009 RB5009UG+S+IN ✅ با RouterOS 7.x
CRS1xx/2xx CRS125، CRS226 ❌ پشتیبانی نمی‌شود
hEX / hAP RB750Gr3، hAP ac² ❌ پشتیبانی نمی‌شود

⚠️ توجه: در RB5009، پشتیبانی از L3HW در نسخه‌های اولیه RouterOS 7.x کامل نبوده و نیاز به به‌روزرسانی به آخرین نسخه دارد [citation:16].

جمع‌بندی و توصیه نهایی

مشکل Drop شدن Traffic بعد از فعال‌سازی L3HW Offloading معمولاً به یکی از این دلایل رخ می‌دهد:

راه‌حل ۱: وضعیت HW table و تعداد connectionهای آفلود شده را بررسی کنید

راه‌حل ۲: L3HW را روی portهای LAN فعال و روی WAN غیرفعال کنید

راه‌حل ۳: VLAN interface را روی bridge تعریف کنید، نه روی port فیزیکی

راه‌حل ۴: تعداد routeها را کاهش دهید و از routing filters استفاده کنید

راه‌حل ۵: Fasttrack HW offload را فعال کنید و از تداخل با sniffer و torch جلوگیری کنید

سوالات متداول (FAQ)

چرا بعد از فعال کردن L3HW ترافیک Drop می‌شود؟

معمولاً به دلیل سرریز شدن HW table و انتقال routeها به CPU یا فعال بودن L3HW روی port WAN است که باعث می‌شود کل L3HW از کار بیفتد [citation:4][citation:11].

آیا L3HW روی همه مدل‌های میکروتیک کار می‌کند؟

خیر، فقط روی مدل‌های با چیپ‌ست Marvell مثل CRS3xx، CRS5xx، CCR2116، CCR2216 و RB5009 پشتیبانی می‌شود [citation:11].

چرا VLAN interface باید روی bridge تعریف شود؟

چون L3HW وابستگی Layer 2 دارد. اگر VLAN interface مستقیماً روی port فیزیکی تعریف شود، L3HW کار نمی‌کند و ترافیک به CPU می‌افتد [citation:17].

آیا Fasttrack با L3HW تداخل دارد؟

خیر، اما Fasttrack HW offload برای ترافیک WAN ضروری است. اگر Fasttrack به‌درستی پیکربندی نشود، connectionها آفلود نمی‌شوند و CPU بار زیادی را تجربه می‌کند [citation:17].

چطور بفهمم HW table در حال سرریز شدن است؟

از دستور /interface/ethernet/switch/l3hw-settings/monitor استفاده کنید. اگر تعداد connectionهای آفلود شده نزدیک به سقف باشد یا به‌سرعت کاهش یابد، یعنی HW table پر شده است [citation:11].

🛠 مشکل L3HW یا RouterOS خود را به ما بسپارید

اگر در تنظیمات L3HW Offloading یا RouterOS با چالش مواجه شده‌اید، تیم فنی ایرانیکاسرور آماده کمک است. کافیست درخواست خود را ثبت کنید تا کارشناسان ما در سریع‌ترین زمان بررسی کنند.

🔹 ثبت درخواست کانفیگ و رفع مشکل

📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور

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

💬 دیدگاه‌ها 0

هنوز دیدگاهی ثبت نشده است. اولین نفری باشید که نظر می‌دهید!

✍️ دیدگاه خود را بنویسید