BTest Server در میکروتیک چیست؟ آموزش فعال‌سازی و تست پهنای باند

برای ارزیابی یک لینک شبکه، مشاهده سرعت اسمی پورت Ethernet یا نرخ اتصال وایرلس به‌تنهایی کافی نیست. ممکن است پورت با سرعت یک گیگابیت متصل باشد یا رادیوی میکروتیک نرخ بالایی را نمایش دهد، اما سرعت واقعی انتقال داده به دلیل نویز، افت بسته، محدودیت CPU، Queue، Firewall، MTU یا مشکلات کابل بسیار کمتر باشد.

BTest Server میکروتیک یکی از سرویس‌های داخلی RouterOS است که امکان اجرای Bandwidth Test میان دو دستگاه MikroTik یا میان یک کامپیوتر ویندوزی و روتر MikroTik را فراهم می‌کند.

در این ساختار، دستگاه مقصد سرویس Bandwidth Test Server را اجرا می‌کند و دستگاه دیگر به‌عنوان Client پارامترهای تست مانند پروتکل، جهت، نرخ، اندازه بسته و مدت آزمایش را مشخص می‌کند.

BTest Server را می‌توان برای بررسی لینک‌های کابلی، وایرلس، فیبر نوری، VPN، ارتباط بین شعب، لینک‌های Point-to-Point و مسیرهای Routing استفاده کرد. با این حال، این ابزار مصرف CPU و پهنای باند بالایی دارد و استفاده نادرست از آن ممکن است باعث اختلال در شبکه عملیاتی شود.

هشدار مهم: Bandwidth Test در صورت تعیین‌نکردن محدودیت سرعت می‌تواند تمام پهنای باند قابل دسترس را مصرف کند. اجرای تست در ساعات کاری ممکن است تماس‌های VoIP، دوربین‌ها، اینترنت کاربران و سرویس‌های حساس را مختل کند.

BTest Server چیست؟

BTest مخفف Bandwidth Test است. سرویس BTest Server بخشی از ابزار Bandwidth Test در RouterOS محسوب می‌شود و ارتباط آزمایشی را از سمت دستگاه مقصد مدیریت می‌کند.

یک آزمایش معمولی شامل اجزای زیر است:

  • Bandwidth Test Client: دستگاهی که تست را آغاز می‌کند.
  • Bandwidth Test Server: دستگاه مقصدی که اتصال آزمایشی را می‌پذیرد.
  • مسیر مورد آزمایش: لینک، تونل، روتر، سوئیچ یا زیرساختی که ترافیک از آن عبور می‌کند.

توپولوژی ساده به شکل زیر است:

MikroTik A MikroTik B
BTest Client ────────────────── BTest Server

بسته به Direction انتخاب‌شده، BTest Server ممکن است داده را دریافت یا برای Client ارسال کند. بنابراین وظیفه آن فقط دریافت ترافیک نیست.

کاربردهای BTest Server در شبکه

  • اندازه‌گیری Throughput بین دو دستگاه MikroTik
  • بررسی ظرفیت لینک وایرلس Point-to-Point
  • تست سرعت ارتباط بین دو شعبه
  • مقایسه سرعت ارسال و دریافت
  • بررسی عملکرد تونل‌های WireGuard، IPsec و GRE
  • شناسایی گلوگاه Fast Ethernet یا Gigabit Ethernet
  • بررسی محدودیت Queue و Policer
  • اندازه‌گیری Packet Loss در تست UDP
  • ارزیابی تأثیر Firewall و NAT بر عملکرد
  • بررسی توان CPU هنگام تولید یا دریافت ترافیک
  • آزمایش شبکه پس از تغییر کابل، فرکانس یا تنظیمات رادیو

تفاوت BTest Server و Bandwidth Test Client

بخشوظیفه
BTest Serverپذیرفتن Session، احراز هویت و ارسال یا دریافت داده براساس Direction
Bandwidth Test Clientشروع تست و تعیین پروتکل، جهت، سرعت، اندازه بسته و مدت آزمایش
Device Under Testدستگاهی که ظرفیت Forwarding یا پردازش آن ارزیابی می‌شود

تنظیمات Server در مسیر زیر قرار دارند:

Tools > BTest Server

ابزار Client نیز از مسیر زیر اجرا می‌شود:

Tools > Bandwidth Test

آیا BTest Server فقط میان دو روتر MikroTik کار می‌کند؟

روش اصلی استفاده از این ابزار، اجرای تست میان دو دستگاه RouterOS است. با این حال MikroTik ابزار ویندوزی btest.exe را نیز ارائه می‌کند که می‌تواند نقش Bandwidth Test Client را بر عهده بگیرد.

بنابراین سناریوهای زیر قابل اجرا هستند:

  • MikroTik به MikroTik
  • کامپیوتر ویندوزی به MikroTik
  • CHR به RouterBOARD
  • CHR به CHR
  • دو روتر از طریق تونل VPN
  • دو دستگاه در دو سمت یک لینک وایرلس

ابزار BTest با iperf3 سازگار نیست. iperf3 پروتکل و Server مستقل خود را دارد و نمی‌تواند مستقیماً به Bandwidth Test Server میکروتیک متصل شود.

پیش‌نیازهای فعال‌سازی BTest Server

قبل از فعال‌سازی سرویس، موارد زیر را بررسی کنید:

  • دستگاه مقصد RouterOS فعال و قابل دسترسی داشته باشد.
  • Client بتواند IP مقصد را Ping کند.
  • Device Mode اجازه استفاده از Bandwidth Test را بدهد.
  • Firewall اتصال کنترلی BTest را مسدود نکرده باشد.
  • یک حساب کاربری معتبر برای احراز هویت وجود داشته باشد.
  • کاربر مقصد دارای Policy مناسب باشد.
  • CPU و حافظه دستگاه ظرفیت اجرای تست را داشته باشند.
  • زمان مناسبی برای اجرای تست انتخاب شده باشد.

بررسی Device Mode در RouterOS

در RouterOSهای جدید، Device Mode می‌تواند قابلیت‌های پرخطر یا پرمصرفی مانند Bandwidth Test را محدود کند.

برای بررسی وضعیت اجرا کنید:

/system/device-mode/print

در خروجی به پارامتر زیر توجه کنید:

bandwidth-test: yes

اگر مقدار آن no باشد، BTest Server، Bandwidth Test و Speed Test اجرا نخواهند شد.

برای درخواست فعال‌سازی قابلیت می‌توان از دستور زیر استفاده کرد:

/system/device-mode/update bandwidth-test=yes

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

هشدار: تأیید Device Mode موجب ریبوت دستگاه می‌شود. این عملیات را فقط زمانی انجام دهید که به روتر دسترسی فیزیکی دارید و قطع سرویس برنامه‌ریزی شده است.

فعال‌سازی BTest Server در WinBox

برای فعال‌کردن Bandwidth Test Server از محیط WinBox:

  1. با WinBox به روتر مقصد متصل شوید.
  2. از منوی سمت چپ وارد بخش Tools شوید.
  3. گزینه BTest Server را باز کنید.
  4. گزینه Enabled را فعال کنید.
  5. گزینه Authenticate را فعال نگه دارید.
  6. مقدار Max Sessions را متناسب با نیاز کاهش دهید.
  7. تنظیمات را با Apply و OK ذخیره کنید.

برای یک تست مدیریتی معمولی، مقدار یک Session کافی است. بازگذاشتن تعداد زیادی Session می‌تواند امکان مصرف هم‌زمان CPU و پهنای باند توسط چند Client را ایجاد کند.

فعال‌سازی BTest Server با ترمینال

ابتدا وضعیت فعلی را مشاهده کنید:

/tool bandwidth-server print

نمونه خروجی:

enabled: yes
authenticate: yes
allocate-udp-ports-from: 2000
max-sessions: 100

برای فعال‌کردن Server با احراز هویت و محدودیت یک Session:

/tool bandwidth-server
set enabled=yes authenticate=yes max-sessions=1

برای غیرفعال‌کردن Server بعد از پایان تست:

/tool bandwidth-server
set enabled=no

پارامترهای BTest Server

پارامترتوضیح
enabledفعال یا غیرفعال‌کردن Bandwidth Test Server
authenticateالزام Client به ارائه نام کاربری و رمز معتبر
max-sessionsحداکثر تعداد تست‌هایی که می‌توانند هم‌زمان اجرا شوند
allocate-udp-ports-fromشماره شروع محدوده تخصیص پورت‌های Sessionهای UDP

آیا می‌توان IPهای مجاز را در BTest Server مشخص کرد؟

در خود منوی /tool bandwidth-server پارامتری برای تعریف Source IP مجاز وجود ندارد. محدودسازی دسترسی باید با روش‌های زیر انجام شود:

  • Firewall در زنجیره Input
  • محدودیت Address روی حساب کاربری RouterOS
  • استفاده از VLAN مدیریت
  • اجرای تست از داخل VPN
  • محدودکردن دسترسی به Interface مدیریتی

بهترین روش این است که BTest فقط از یک IP یا Subnet مدیریتی قابل دسترسی باشد.

پورت BTest Server در میکروتیک

Bandwidth Test Server برای ارتباط کنترلی از پورت زیر استفاده می‌کند:

TCP 2000

در تست UDP، پورت‌های داده از مقداری که در پارامتر allocate-udp-ports-from مشخص شده است، تخصیص می‌یابند.

برای مشاهده سرویس Dynamic مربوط به BTest:

/ip service print where dynamic

در زمان فعال‌بودن Server، خروجی می‌تواند شامل مورد زیر باشد:

btest 2000 tcp

اجازه دسترسی BTest در Firewall

چون BTest Server روی خود روتر اجرا می‌شود، ترافیک ورودی آن در زنجیره input پردازش می‌شود.

ابتدا IP دستگاه تست‌کننده را در Address List قرار دهید:

/ip firewall address-list
add list=btest-clients address=10.10.10.2 \
 comment="Authorized BTest client"

سپس TCP پورت 2000 را فقط برای همان Client مجاز کنید:

/ip firewall filter
add chain=input \
 src-address-list=btest-clients \
 protocol=tcp \
 dst-port=2000 \
 action=accept \
 comment="Allow BTest control from trusted client"

اگر تست UDP توسط Firewall مسدود می‌شود، می‌توان فقط برای مدت آزمایش، UDP را از همان IP مورد اعتماد مجاز کرد:

/ip firewall filter
add chain=input \
 src-address-list=btest-clients \
 protocol=udp \
 action=accept \
 comment="Temporary UDP access for BTest"

این قوانین باید قبل از Rule عمومی Drop در زنجیره Input قرار گیرند. پس از پایان آزمایش، Rule موقت UDP را غیرفعال یا حذف کنید.

نکته امنیتی: پورت BTest را روی اینترنت عمومی باز نکنید. برای آزمایش از راه دور، ابتدا یک VPN مانند WireGuard راه‌اندازی کرده و BTest را از داخل شبکه مدیریتی اجرا کنید.

ایجاد کاربر محدود برای BTest Server

برای تست‌های روزمره نباید از حساب اصلی مدیر استفاده شود. می‌توان یک گروه اختصاصی برای احراز هویت BTest ایجاد کرد:

/user group
add name=btest-auth policy=winbox

سپس کاربر را با محدودیت Source IP ایجاد کنید:

/user
add name=btest-user \
 group=btest-auth \
 password="USE-A-STRONG-UNIQUE-PASSWORD" \
 address=10.10.10.2/32

Policy مربوط به winbox علاوه بر ورود WinBox، برای احراز هویت Bandwidth Test نیز استفاده می‌شود. محدودیت Address باعث می‌شود حساب فقط از IP تعریف‌شده معتبر باشد.

کاربری که روی دستگاه Client دستور Bandwidth Test را اجرا می‌کند نیز باید Policy مربوط به test داشته باشد.

چرا Authenticate باید فعال باشد؟

غیرفعال‌کردن Authentication باعث می‌شود Client بدون نام کاربری و رمز بتواند Session آزمایشی ایجاد کند:

/tool bandwidth-server
set enabled=yes authenticate=no

این تنظیم در شبکه عملیاتی توصیه نمی‌شود؛ زیرا یک کاربر غیرمجاز می‌تواند با اجرای ترافیک سنگین:

  • پهنای باند شبکه را اشباع کند.
  • مصرف CPU روتر را افزایش دهد.
  • کیفیت سرویس کاربران را مختل کند.
  • باعث افزایش Latency و Packet Loss شود.
  • ظرفیت لینک وایرلس را مصرف کند.

حالت بدون Authentication فقط در آزمایشگاه بسته و برای مدت کوتاه قابل استفاده است.

مشاهده Sessionهای فعال BTest

برای مشاهده Clientهایی که در حال اجرای تست هستند:

/tool bandwidth-server session print

خروجی شامل اطلاعاتی مانند موارد زیر است:

  • IP Client
  • پروتکل TCP یا UDP
  • Direction
  • نام کاربر

نمونه خروجی:

# CLIENT PROTOCOL DIRECTION USER
0 10.10.10.2 udp send btest-user

اگر Session ناشناسی مشاهده کردید، Server را فوراً غیرفعال کرده و Firewall و حساب‌های کاربری را بررسی کنید.

اجرای تست از دستگاه MikroTik دیگر

روی روتر Client وارد مسیر زیر شوید:

Tools > Bandwidth Test

سپس موارد زیر را تکمیل کنید:

  • Test To: آدرس IP روتر Server
  • Protocol: TCP یا UDP
  • Direction: Transmit، Receive یا Both
  • User: نام کاربری تعریف‌شده روی Server
  • Password: رمز حساب Server
  • Duration: مدت تست
  • Connection Count: تعداد جریان TCP
  • Local TX Speed: محدودیت ارسال Client
  • Remote TX Speed: محدودیت ارسال Server

در پایان روی Start کلیک کنید و هم‌زمان مصرف CPU هر دو دستگاه را بررسی کنید.

معنی Direction از دید Client

Directionجهت ترافیک
TransmitClient داده را به BTest Server ارسال می‌کند.
ReceiveBTest Server داده را به Client ارسال می‌کند.
Bothداده هم‌زمان در هر دو جهت منتقل می‌شود.

برای عیب‌یابی بهتر، ابتدا هر جهت را جداگانه تست کنید. آزمایش Both به‌تنهایی نمی‌تواند مشخص کند مشکل در کدام جهت ارتباط قرار دارد.

نمونه تست UDP از ترمینال

برای ارسال 50Mbps از Client به Server:

/tool bandwidth-test \
 address=10.10.10.1 \
 protocol=udp \
 direction=transmit \
 local-tx-speed=50M \
 local-udp-tx-size=1400 \
 duration=30s \
 user=btest-user \
 password="YOUR-PASSWORD"

برای دریافت 50Mbps از Server:

/tool bandwidth-test \
 address=10.10.10.1 \
 protocol=udp \
 direction=receive \
 remote-tx-speed=50M \
 remote-udp-tx-size=1400 \
 duration=30s \
 user=btest-user \
 password="YOUR-PASSWORD"

برای تست هم‌زمان 50Mbps در هر جهت:

/tool bandwidth-test \
 address=10.10.10.1 \
 protocol=udp \
 direction=both \
 local-tx-speed=50M \
 remote-tx-speed=50M \
 local-udp-tx-size=1400 \
 remote-udp-tx-size=1400 \
 duration=30s \
 user=btest-user \
 password="YOUR-PASSWORD"

نمونه تست TCP از ترمینال

تست TCP دریافت با چهار Connection:

/tool bandwidth-test \
 address=10.10.10.1 \
 protocol=tcp \
 direction=receive \
 connection-count=4 \
 duration=30s \
 user=btest-user \
 password="YOUR-PASSWORD"

تست TCP ارسال:

/tool bandwidth-test \
 address=10.10.10.1 \
 protocol=tcp \
 direction=transmit \
 connection-count=4 \
 duration=30s \
 user=btest-user \
 password="YOUR-PASSWORD"

تست TCP دوطرفه:

/tool bandwidth-test \
 address=10.10.10.1 \
 protocol=tcp \
 direction=both \
 connection-count=4 \
 duration=30s \
 user=btest-user \
 password="YOUR-PASSWORD"

تفاوت TCP و UDP در BTest

ویژگیTCPUDP
تضمین تحویلداردندارد
ارسال مجدد بستهداردندارد
کنترل ازدحامداردندارد
تأثیر Latencyبیشترکمتر
نمایش Packet Lossبه‌صورت غیرمستقیم در کاهش سرعتبه‌صورت مستقیم‌تر
نیاز به تعیین نرخمعمولاً خیربله، در شبکه عملیاتی ضروری است
کاربردشبیه‌سازی انتقال فایل و ترافیک TCPبررسی ظرفیت، Loss و نقطه اشباع

آیا UDP تست دقیق‌تری است؟

UDP برای تخمین سقف Throughput لینک مناسب‌تر است؛ زیرا برخلاف TCP، نرخ خود را براساس Packet Loss و Latency کاهش نمی‌دهد.

با این حال، UDP فقط زمانی مفید است که نرخ ارسال کنترل شود. ارسال ترافیک نامحدود می‌تواند لینک را کاملاً اشباع کرده و Packet Loss زیادی ایجاد کند.

روش پیشنهادی این است که نرخ را مرحله‌به‌مرحله افزایش دهید:

20M
40M
60M
80M
100M

در هر مرحله موارد زیر را ثبت کنید:

  • Throughput دریافتی
  • Packet Loss
  • Latency
  • مصرف CPU
  • Interface Errors

انتخاب اندازه بسته UDP

بسته‌های کوچک تعداد Packet Per Second بیشتری ایجاد می‌کنند و فشار بیشتری به CPU، Firewall و Queue وارد می‌کنند.

بسته‌های بزرگ برای سنجش حداکثر Throughput مناسب‌تر هستند، اما اندازه آن‌ها نباید از MTU مسیر بیشتر باشد.

اندازه بستهکاربرد
64 تا 128 بایتآزمایش توان پردازش Packet Per Second
512 بایتترافیک متوسط
1200 تا 1400 بایتتست عمومی شبکه و تونل‌ها
نزدیک MTU مسیرتخمین حداکثر Throughput

در مسیرهای PPPoE، VPN، VLAN و تونل‌ها ممکن است MTU مؤثر کمتر از 1500 باشد. استفاده از Packet Size نامناسب می‌تواند باعث Fragmentation یا Drop شود.

پارامتر Random Data چیست؟

اگر مسیر یا تونل از فشرده‌سازی استفاده کند، Payload ساده ممکن است فشرده شده و نتیجه‌ای بالاتر از ظرفیت واقعی نشان دهد.

با گزینه زیر داده غیرقابل فشرده‌سازی تولید می‌شود:

random-data=yes

این گزینه مصرف CPU بیشتری دارد و روی روترهای ضعیف ممکن است خود به گلوگاه تبدیل شود.

معنی نتایج Bandwidth Test

خروجیتوضیح
statusوضعیت اتصال و اجرای تست
durationمدت زمان تست
tx-currentسرعت لحظه‌ای ارسال از Client
rx-currentسرعت لحظه‌ای دریافت در Client
tx-10-second-averageمیانگین ارسال در ده ثانیه اخیر
rx-10-second-averageمیانگین دریافت در ده ثانیه اخیر
tx-total-averageمیانگین کل سرعت ارسال
rx-total-averageمیانگین کل سرعت دریافت
lost-packetsتعداد بسته‌های ازدست‌رفته در تست UDP
tx-size و rx-sizeاندازه بسته UDP در هر جهت

برای گزارش نهایی بهتر است به‌جای Current، مقدار Total Average و 10 Second Average پس از پایدارشدن تست ثبت شود.

چرا نتیجه BTest ممکن است کمتر از ظرفیت واقعی باشد؟

Bandwidth Test ترافیک را توسط CPU روتر تولید یا دریافت می‌کند. اگر همان دستگاهی که می‌خواهید توان Forwarding آن را بسنجید، نقش Client یا Server را نیز داشته باشد، پردازنده هم‌زمان باید:

  • ترافیک آزمایشی تولید کند.
  • Session BTest را پردازش کند.
  • Firewall و Connection Tracking را اجرا کند.
  • Routing یا Bridging را انجام دهد.
  • Queue و NAT را پردازش کند.

در نتیجه ممکن است CPU پیش از اشباع‌شدن لینک به ۱۰۰ درصد برسد و نتیجه به توان تولید ترافیک روتر محدود شود.

توپولوژی صحیح برای تست توان روتر

برای اندازه‌گیری توان واقعی Forwarding بهتر است سه دستگاه استفاده شود:

BTest Client ───── Router Under Test ───── BTest Server

در این ساختار:

  • Client ترافیک را تولید می‌کند.
  • روتر مورد آزمایش فقط ترافیک را Forward می‌کند.
  • Server ترافیک را دریافت یا ارسال می‌کند.

برای لینک‌های پرظرفیت، استفاده از دو کامپیوتر مجهز به iperf3 در دو سمت روتر معمولاً نتیجه دقیق‌تری ارائه می‌دهد:

iperf3 Client ───── Device Under Test ───── iperf3 Server

مانیتورکردن CPU هنگام تست

هم‌زمان با اجرای BTest، مصرف CPU هر دو دستگاه را بررسی کنید:

/system resource monitor

برای مشاهده مصرف پردازش‌ها و هسته‌ها:

/tool profile cpu=all

نشانه‌های محدودیت CPU عبارت‌اند از:

  • CPU نزدیک ۱۰۰ درصد باشد.
  • با افزایش نرخ UDP، Throughput بیشتر نشود.
  • در تست Both سرعت به‌شدت کاهش یابد.
  • Latency خود روتر افزایش پیدا کند.
  • پردازش Networking یا BTest بیشترین CPU را مصرف کند.

مشاهده ترافیک Interface هنگام آزمایش

برای مشاهده نرخ واقعی روی یک Interface:

/interface monitor-traffic ether1

برای بررسی جریان ترافیک:

/tool torch interface=ether1

برای کنترل Error و سرعت مذاکره‌شده پورت:

/interface ethernet monitor ether1 once

تست لینک وایرلس با BTest Server

در یک لینک وایرلس بهتر است قبل از اجرای تست موارد زیر بررسی شوند:

  • Signal Strength هر دو سمت
  • Signal هر Chain
  • Noise Floor
  • CCQ
  • TX/RX Rate
  • Channel Width
  • Frequency
  • Retransmission
  • پورت Ethernet و Negotiation

روش پیشنهادی تست:

  1. Ping پایه را برای حداقل ۳۰ ثانیه اجرا کنید.
  2. تست TCP را در جهت Transmit اجرا کنید.
  3. تست TCP را در جهت Receive اجرا کنید.
  4. UDP را با نرخ پایین آغاز کنید.
  5. نرخ UDP را مرحله‌ای افزایش دهید.
  6. Packet Loss و CPU را ثبت کنید.
  7. در پایان تست Both را اجرا کنید.

در لینک‌های وایرلس Half-Duplex، تست Both ظرفیت Airtime را میان دو جهت تقسیم می‌کند. بنابراین انتظار نمی‌رود هر جهت همان سرعت تست یک‌طرفه را حفظ کند.

تست تونل VPN با BTest

BTest Server را می‌توان برای ارزیابی تونل‌های زیر استفاده کرد:

  • WireGuard
  • IPsec
  • GRE
  • EoIP
  • IPIP
  • VXLAN
  • L2TP

برای مقایسه صحیح، یک بار تست را روی مسیر عادی و یک بار از داخل Tunnel اجرا کنید. اختلاف نتایج می‌تواند تأثیر رمزنگاری، سربار Header، MTU و توان CPU را نشان دهد.

در تونل‌های رمزگذاری‌شده معمولاً CPU، الگوریتم رمزنگاری و Hardware Acceleration از مهم‌ترین عوامل محدودکننده هستند.

اجرای تست با ابزار BTest ویندوز

ابزار رسمی MikroTik با نام btest.exe برای ویندوز ارائه شده است.

روش استفاده عمومی:

  1. ابزار BTest را از بخش Tools سایت رسمی MikroTik دریافت کنید.
  2. فایل را روی یک سیستم مورد اعتماد اجرا کنید.
  3. آدرس IP روتر دارای BTest Server را وارد کنید.
  4. نام کاربری و رمز عبور را مشخص کنید.
  5. پروتکل TCP یا UDP را انتخاب کنید.
  6. Direction و محدودیت سرعت را تنظیم کنید.
  7. تست را آغاز کرده و نتایج را ثبت کنید.

Firewall سیستم‌عامل و مسیر Routing میان کامپیوتر و روتر باید اجازه برقراری Session را بدهند.

تفاوت BTest Server و Speed Test

ابزارکاربرد
Bandwidth Testکنترل دقیق Protocol، Direction، Rate، Packet Size و Connection Count
Speed Testاجرای خودکار Ping، Jitter، TCP و UDP در یک آزمایش ساده‌تر
iperf3تست End-to-End میان کامپیوترها و سرورها
Traffic Generatorتولید بسته پیشرفته برای تست تخصصی DUT

Speed Test نیز برای اجرا به دسترسی BTest Server نیاز دارد:

/tool speed-test \
 address=10.10.10.1 \
 user=btest-user \
 password="YOUR-PASSWORD"

خطای Connection Refused

دلایل رایج عبارت‌اند از:

  • BTest Server غیرفعال است.
  • Device Mode قابلیت Bandwidth Test را مسدود کرده است.
  • TCP پورت 2000 توسط Firewall بسته شده است.
  • آدرس IP مقصد اشتباه است.
  • سرویس هنوز پس از تغییر تنظیمات فعال نشده است.

دستورات بررسی:

/tool bandwidth-server print
/system/device-mode/print
/ip service print where dynamic
/ip firewall filter print

خطای Authentication Failed

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

  • نام کاربری روی Server وجود داشته باشد.
  • رمز عبور صحیح وارد شده باشد.
  • کاربر دارای Policy مربوط به WinBox باشد.
  • Address کاربر شامل IP Client باشد.
  • Client از IP یا مسیر دیگری وارد نشده باشد.
  • Authenticate روی Server فعال باشد.

خطای Timeout

Timeout معمولاً به نبود ارتباط شبکه یا مسدودشدن ترافیک مربوط است:

  • Route به مقصد وجود ندارد.
  • Firewall مسیر را مسدود کرده است.
  • UDP موردنیاز تست بسته شده است.
  • لینک وایرلس قطع است.
  • VRF یا Routing Table اشتباه انتخاب شده است.
  • مشکل NAT یا Port Forward وجود دارد.

ابتدا Ping و Traceroute بگیرید:

/ping 10.10.10.1
/tool traceroute 10.10.10.1

چرا تست TCP برقرار می‌شود اما UDP کار نمی‌کند؟

ارتباط کنترلی BTest روی TCP پورت 2000 برقرار شده است، اما پورت‌های UDP مربوط به Session توسط Firewall مسدود شده‌اند.

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

  • Ruleهای Firewall در زنجیره Input
  • تنظیم allocate-udp-ports-from
  • Firewall میان دو شبکه
  • Firewall سیستم ویندوزی
  • ACLهای روتر یا سوئیچ بالادستی
  • وجود NAT میان Client و Server

چرا سرعت روی حدود 95Mbps متوقف می‌شود؟

سرعت نزدیک 90 تا 95Mbps معمولاً نشان‌دهنده وجود یک جزء Fast Ethernet در مسیر است.

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

  • پورت 10/100 روتر یا رادیو
  • PoE Injector قدیمی با محدودیت 100Mbps
  • سوئیچ Fast Ethernet
  • کابل دارای فقط دو زوج سالم
  • Negotiation روی 100Mbps
  • کارت شبکه یا مبدل USB محدود

چرا تست Both کمتر از تست یک‌طرفه است؟

در تست Both هر دو جهت به‌صورت هم‌زمان منابع زیر را مصرف می‌کنند:

  • CPU Client
  • CPU Server
  • Queueها
  • ظرفیت Interface
  • Airtime لینک وایرلس
  • Connection Tracking

این کاهش مخصوصاً در لینک‌های وایرلس Half-Duplex طبیعی است و لزوماً نشان‌دهنده خرابی نیست.

چرا Packet Loss در UDP زیاد است؟

دلایل احتمالی:

  • نرخ تست بیشتر از ظرفیت لینک است.
  • CPU Client یا Server به سقف رسیده است.
  • Queue یا Policer بسته‌ها را Drop می‌کند.
  • Packet Size از MTU مسیر بیشتر است.
  • لینک وایرلس دارای نویز یا Retransmission است.
  • بافر Interface پر شده است.
  • پورت Ethernet Error دارد.

نرخ UDP را کاهش دهید و تست را دوباره اجرا کنید. اگر Loss از بین رفت، آزمایش قبلی بالاتر از ظرفیت پایدار لینک بوده است.

بهترین روش امن برای استفاده از BTest Server

  1. فقط هنگام نیاز Server را فعال کنید.
  2. Authenticate را فعال نگه دارید.
  3. Max Sessions را روی یک یا مقدار کم قرار دهید.
  4. برای BTest حساب کاربری جدا ایجاد کنید.
  5. حساب را به IP Client محدود کنید.
  6. Firewall را فقط برای IP مدیریت باز کنید.
  7. برای تست از راه دور از VPN استفاده کنید.
  8. نرخ و مدت تست را محدود کنید.
  9. هم‌زمان CPU و کیفیت سرویس را مانیتور کنید.
  10. پس از پایان تست، BTest Server را غیرفعال کنید.

اشتباهات رایج در استفاده از BTest Server

بازگذاشتن Server روی اینترنت

این کار امکان مصرف منابع روتر توسط کاربران غیرمجاز را افزایش می‌دهد.

غیرفعال‌کردن Authentication

بدون احراز هویت، هر دستگاهی که به Server دسترسی داشته باشد ممکن است تست ایجاد کند.

استفاده از حساب اصلی admin

برای تست باید کاربر محدود و اختصاصی ساخته شود.

اجرای UDP بدون محدودیت سرعت

این کار می‌تواند لینک را اشباع کرده و سرویس کاربران را مختل کند.

سنجش توان روتر از خود همان روتر

در این حالت تولید ترافیک روی CPU روتر نتیجه را محدود می‌کند.

نادیده‌گرفتن مصرف CPU

Throughput پایین با CPU صددرصد الزاماً به معنای مشکل فیزیکی لینک نیست.

اعتماد به یک تست کوتاه

برای نتیجه معتبر، تست باید چند بار و در هر دو جهت تکرار شود.

درنظرگرفتن نرخ PHY به‌عنوان Throughput

نرخ نمایش‌داده‌شده روی وایرلس یا Ethernet با سرعت واقعی Payload یکسان نیست.

چک‌لیست راه‌اندازی BTest Server

  1. IP و Route دو دستگاه را بررسی کنید.
  2. Device Mode را کنترل کنید.
  3. BTest Server را فعال کنید.
  4. Authenticate را روشن نگه دارید.
  5. Max Sessions را محدود کنید.
  6. کاربر اختصاصی BTest ایجاد کنید.
  7. Source IP کاربر را محدود کنید.
  8. TCP پورت 2000 را فقط برای Client مجاز کنید.
  9. دسترسی UDP را در صورت نیاز بررسی کنید.
  10. ابتدا Ping پایه بگیرید.
  11. تست TCP هر جهت را جداگانه اجرا کنید.
  12. UDP را با نرخ محدود آغاز کنید.
  13. CPU و Packet Loss را ثبت کنید.
  14. نتایج را حداقل سه بار تکرار کنید.
  15. پس از پایان Server را غیرفعال کنید.

سؤالات متداول درباره BTest Server میکروتیک

BTest Server میکروتیک چیست؟

سرویسی در RouterOS است که امکان اجرای Bandwidth Test TCP یا UDP از یک دستگاه MikroTik یا ابزار BTest ویندوز را فراهم می‌کند.

BTest Server در WinBox کجاست؟

در WinBox از مسیر Tools > BTest Server قابل دسترسی است.

پورت BTest Server چیست؟

ارتباط کنترلی Bandwidth Test Server از TCP پورت 2000 استفاده می‌کند. تست‌های UDP نیز از پورت‌هایی که از مقدار allocate-udp-ports-from آغاز می‌شوند استفاده می‌کنند.

آیا BTest Server باید همیشه فعال باشد؟

خیر. توصیه می‌شود فقط در زمان آزمایش فعال و پس از پایان تست غیرفعال شود.

آیا می‌توان دسترسی BTest را به یک IP محدود کرد؟

بله. این کار با Firewall و پارامتر Address حساب کاربری انجام می‌شود، نه از طریق تنظیمات اصلی bandwidth-server.

آیا BTest بدون نام کاربری کار می‌کند؟

در صورت غیرفعال‌کردن Authenticate بله، اما این تنظیم از نظر امنیتی برای شبکه عملیاتی توصیه نمی‌شود.

برای اجرای Bandwidth Test چه Policy لازم است؟

کاربر مقصد برای احراز هویت BTest به Policy مربوط به WinBox نیاز دارد. کاربر اجراکننده ابزار روی Client نیز باید Policy مربوط به Test داشته باشد.

چرا منوی Bandwidth Test کار نمی‌کند؟

ممکن است Device Mode قابلیت bandwidth-test را غیرفعال کرده باشد. وضعیت را با دستور system device-mode print بررسی کنید.

برای تست از TCP استفاده کنیم یا UDP؟

TCP رفتار انتقال‌های مبتنی بر TCP را بهتر شبیه‌سازی می‌کند. UDP برای یافتن ظرفیت تقریبی لینک و مشاهده Packet Loss مناسب‌تر است. بهتر است هر دو آزمایش انجام شوند.

آیا BTest Server سرعت اینترنت را اندازه می‌گیرد؟

فقط زمانی که Server در سمت دیگر مسیر اینترنت قرار داشته باشد. BTest ظرفیت ارتباط میان دو نقطه مشخص را اندازه‌گیری می‌کند و جایگزین عمومی Speedtest اینترنت نیست.

چرا نتیجه BTest کمتر از iperf3 است؟

زیرا تولید و دریافت ترافیک BTest توسط CPU روتر انجام می‌شود. iperf3 ممکن است روی کامپیوتر یا سرور قوی‌تری اجرا شود و روتر فقط ترافیک را Forward کند.

آیا می‌توان BTest را از راه دور اجرا کرد؟

بله، اما بهتر است ابتدا از طریق VPN امن به شبکه متصل شوید. انتشار مستقیم پورت BTest روی اینترنت توصیه نمی‌شود.

چگونه Sessionهای فعال را ببینیم؟

از دستور زیر استفاده کنید:

/tool bandwidth-server session print

چگونه BTest Server را خاموش کنیم؟

/tool bandwidth-server set enabled=no

جمع‌بندی

BTest Server میکروتیک بخش سمت مقصد ابزار Bandwidth Test در RouterOS است. این سرویس امکان اجرای آزمایش TCP و UDP میان روترهای MikroTik یا ابزار BTest ویندوز را فراهم می‌کند.

برخلاف تصور رایج، Server فقط Receiver نیست و براساس Direction می‌تواند داده را دریافت یا ارسال کند. تنظیمات اصلی آن شامل Enabled، Authenticate، Max Sessions و Allocate UDP Ports From هستند.

برای افزایش امنیت باید Authentication فعال باشد، یک کاربر محدود ایجاد شود، دسترسی با Firewall و Source IP کنترل شود و سرویس مستقیماً روی اینترنت منتشر نشود.

همچنین Bandwidth Test مصرف CPU و پهنای باند زیادی دارد. برای اندازه‌گیری توان واقعی یک روتر بهتر است Client و Server روی دو دستگاه جدا باشند و ترافیک از روتر مورد آزمایش عبور کند.

در پایان، BTest فقط یکی از ابزارهای عیب‌یابی است. نتیجه آن باید همراه با CPU، Packet Loss، Latency، MTU، Interface Errors و در لینک‌های وایرلس همراه با Signal، Noise و CCQ تحلیل شود.