برای بررسی واقعی عملکرد یک Router یا شبکه، صرفاً مشاهده CPU Usage یا اجرای یک Ping ساده کافی نیست. در بسیاری از سناریوهای حرفه‌ای باید بتوانیم حجم مشخصی از Packet را با اندازه، ساختار و نرخ کنترل‌شده وارد شبکه کنیم و سپس ببینیم Router، Switch، Firewall، VPN یا Queue مورد آزمایش در برابر این Load چه رفتاری دارد.

RouterOS برای چنین کاری ابزار قدرتمندی با نام:

Traffic Generator

در اختیار Administrator قرار می‌دهد.

با Traffic Generator می‌توان:

  • Packetهای سفارشی تولید کرد.
  • نرخ Traffic را بر اساس Mbps یا PPS مشخص کرد.
  • Packet Size را تغییر داد.
  • Traffic یک‌طرفه یا دوطرفه ساخت.
  • MAC، VLAN، IPv4 و UDP Header ایجاد کرد.
  • Raw Packet تولید کرد.
  • فایل PCAP یا PCAPNG را دوباره روی شبکه Replay کرد.
  • Throughput را اندازه‌گیری کرد.
  • Packet Loss را محاسبه کرد.
  • Latency و Jitter را اندازه گرفت.
  • Out-of-Order Packet را شناسایی کرد.

در نتیجه Traffic Generator صرفاً یک Speed Test نیست، بلکه یک ابزار تخصصی برای Benchmark و Troubleshooting شبکه است.

هشدار: Traffic Generator می‌تواند Link، CPU یا تجهیزات شبکه را تا مرز ظرفیت اشباع کند. آن را بدون برنامه‌ریزی روی شبکه Production اجرا نکنید. بهتر است تست‌های سنگین در Lab یا Maintenance Window انجام شوند.

Traffic Generator در MikroTik چیست؟

Traffic Generator ابزاری داخل RouterOS است که Packetهای RAW یا ساختاریافته تولید کرده و آن‌ها را از Interface مشخصی ارسال می‌کند.

معماری ساده تست:

Traffic Generator
 │
 │ Generated Traffic
 ↓
 DUT
 │
 │ Processed Traffic
 ↓
Traffic Generator / Receiver

Traffic می‌تواند پس از عبور از DUT دوباره به Traffic Generator بازگردد تا RouterOS بتواند اطلاعات دقیق‌تری درباره Packetهای TX و RX محاسبه کند.

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

TX Rate
RX Rate
Packet Count
Packet Loss
Latency
Jitter
Out-of-Order

هستند.

DUT و SUT چیست؟

در مستند MikroTik دو اصطلاح زیاد دیده می‌شود.

DUT

Device Under Test

یعنی یک دستگاه مشخص که می‌خواهیم Performance آن را ارزیابی کنیم.

مثلاً:

Traffic Generator
 ↓
 RB5009
 ↓
Traffic Generator

در این مثال RB5009 همان DUT است.

SUT

System Under Test

زمانی استفاده می‌شود که چند تجهیز یا چند سرویس با هم آزمایش شوند.

مثلاً:

Traffic Generator
 ↓
Router A
 ↓
IPsec Tunnel
 ↓
Router B
 ↓
Traffic Generator

کل مجموعه دو Router و Tunnel یک SUT محسوب می‌شود.

Traffic Generator چه تفاوتی با Bandwidth Test دارد؟

Bandwidth Test برای بررسی سریع Throughput بین دو RouterOS بسیار کاربردی است، اما Traffic Generator کنترل بسیار بیشتری روی Packetها و الگوی Traffic ارائه می‌دهد.

قابلیتBandwidth TestTraffic Generator
تست سریع Throughput✓✓
Packet Template سفارشیمحدود✓
VLAN Header—✓
RAW Packet—✓
Latency / Jitterمحدودتر✓
Packet Loss✓✓
Out-of-Order Detection—✓
PCAP Replay—✓

بنابراین برای یک تست سریع معمولی Bandwidth Test کافی است؛ اما برای Benchmark دقیق Router، Firewall، Queue، VPN یا Packet Processing، Traffic Generator انعطاف بسیار بیشتری دارد.

قبل از شروع؛ Traffic Generator را در Device Mode فعال کنید

در RouterOSهای جدید Traffic Generator یکی از قابلیت‌هایی است که توسط Device Mode محدود می‌شود.

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

/system/device-mode/print

اگر:

traffic-gen: no

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

برای فعال‌سازی:

/system/device-mode/update traffic-gen=yes

RouterOS از شما تأیید فیزیکی می‌خواهد.

بسته به Device باید یکی از روش‌های اعلام‌شده توسط RouterOS انجام شود:

  • فشردن Button مناسب دستگاه
  • یا Power Cycle فیزیکی

پس از تأیید Device Reboot می‌شود.

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

/system/device-mode/print

و باید:

traffic-gen: yes

را مشاهده کنید.

این محدودیت امنیتی عمدی است. Traffic Generator قابلیت تولید حجم بالای Traffic را دارد و RouterOS اجازه نمی‌دهد یک مهاجم صرفاً با دسترسی Remote آن را بدون تأیید فیزیکی فعال کند.

ساختار Traffic Generator در RouterOS

Traffic Generator را می‌توان در چهار بخش اصلی در نظر گرفت:

Port
 ↓
Packet Template
 ↓
Stream
 ↓
Traffic Generator
 ↓
Statistics

Port مشخص می‌کند Traffic از کدام Interface ارسال یا دریافت شود.

Packet Template مشخص می‌کند Packet چه ساختاری داشته باشد.

Stream مشخص می‌کند Packet با چه نرخ و اندازه‌ای ارسال شود.

Statistics نتیجه تست را نمایش می‌دهد.

Port در Traffic Generator چیست؟

Port در اینجا به معنی TCP/UDP Port نیست؛ بلکه یک Object در Traffic Generator است که به Interface RouterOS متصل می‌شود.

مثلاً:

/tool/traffic-generator/port
add interface=ether2 name=tg-in
add interface=ether3 name=tg-out

اکنون:

tg-in
→ ether2

tg-out
→ ether3

خواهیم داشت.

برای مشاهده:

/tool/traffic-generator/port/print detail

RouterOS همچنین مقدار:

first-header

را پیشنهاد می‌کند تا مشخص شود برای Interface موردنظر Packet معمولاً باید با چه Headerای آغاز شود.

Packet Template چیست؟

Packet Template مشخص می‌کند Packet تولیدشده چه Headerها و چه مقادیری داشته باشد.

برای مثال:

Ethernet
 ↓
IPv4
 ↓
UDP
 ↓
Payload

نمونه:

/tool/traffic-generator/packet-template
add name=test-udp \
 port=tg-in \
 header-stack=mac,ip,udp \
 ip-src=198.18.0.1/32 \
 ip-dst=198.19.0.1/32 \
 ip-gateway=198.18.0.2 \
 udp-src-port=10000 \
 udp-dst-port=20000

RouterOS می‌تواند تعدادی از Fieldها را خودش تشخیص دهد؛ برای مثال MAC Source یا Destination ممکن است با استفاده از Interface و ARP Resolution مشخص شود.

Header Stack چیست؟

در Packet Template می‌توان ترتیب Headerها را با:

header-stack

تعریف کرد.

Headerهای سطح بالا در RouterOS 7.26 شامل:

mac
vlan
ip
udp
raw

هستند.

برای مثال:

header-stack=mac,ip,udp

یا برای VLAN:

header-stack=mac,vlan,ip,udp

قابل استفاده است.

نمونه VLAN:

/tool/traffic-generator/packet-template
add name=vlan100-test \
 port=tg-in \
 header-stack=mac,vlan,ip,udp \
 vlan-id=100 \
 vlan-priority=0 \
 ip-src=198.18.100.1/32 \
 ip-dst=198.19.100.1/32 \
 udp-src-port=10000 \
 udp-dst-port=20000

در Packet Template سطح بالا، Header با نام ip مربوط به IPv4 است. برای Packetهای سطح پایین‌تر یا ساختارهایی که Builder مستقیم آن‌ها را ارائه نمی‌کند، Raw Packet Template در دسترس است.

DSCP و QoS Test

Traffic Generator می‌تواند DS Field را در IPv4 Header تنظیم کند.

برای مثال می‌توان Traffic با DSCP مشخص ساخت و رفتار Queue یا QoS Policy را بررسی کرد.

/tool/traffic-generator/packet-template
add name=qos-test \
 port=tg-in \
 header-stack=mac,ip,udp \
 ip-src=198.18.0.1/32 \
 ip-dst=198.19.0.1/32 \
 ip-gateway=198.18.0.2 \
 ip-dscp=184

توجه کنید مقدار ip-dscp در Traffic Generator مربوط به DS Field کامل شامل DSCP و ECN است؛ بنابراین قبل از Test مقدار موردنظر را براساس Policy واقعی خود محاسبه کنید.

Payload Packet چگونه ساخته می‌شود؟

پارامتر:

data

مشخص می‌کند Payload چگونه پر شود.

گزینه‌ها:

uninitialized
specific-byte
incrementing
random

uninitialized

سریع‌ترین روش است و Data بخش Payload مقداردهی خاصی نمی‌شود.

specific-byte

Payload با Byte مشخصی پر می‌شود.

incrementing

Data الگویی افزایشی مانند:

00 01 02 03 ...

خواهد داشت.

random

Payload با Data تصادفی پر می‌شود، اما طبق مستند MikroTik این گزینه کندترین حالت است.

اگر هدف اصلی شما اندازه‌گیری حداکثر Packet Generation Performance است، Payload تصادفی می‌تواند خودش Load بیشتری روی Generator ایجاد کند.

Assumed Values چیست؟

RouterOS برای ساده‌ترکردن Packet Template برخی Fieldها را به‌صورت خودکار حدس می‌زند.

این مقادیر با Prefix:

assumed-

نمایش داده می‌شوند.

مثلاً:

assumed-mac-src
assumed-mac-dst
assumed-ip-ttl
assumed-ip-protocol

اما یک نکته بسیار مهم وجود دارد:

Assumed Values پس از تغییر شبکه به‌طور خودکار Refresh نمی‌شوند.

اگر Gateway یا Router موجود در SUT تغییر کرد، برای Refresh Template می‌توان اجرا کرد:

/tool/traffic-generator/packet-template
set [find]

Stream در Traffic Generator چیست؟

Packet Template فقط مشخص می‌کند Packet چگونه ساخته شود.

Stream مشخص می‌کند آن Packet چگونه و با چه Rateای ارسال شود.

مثلاً:

/tool/traffic-generator/stream
add name=stream-a \
 port=tg-in \
 tx-template=test-udp \
 id=10 \
 packet-size=1400 \
 mbps=200

پارامترهای مهم Stream:

mbps
pps
packet-size
packet-count
cpu-core
id
tx-template
port

mbps

Traffic Generator تلاش می‌کند نرخ Stream را بر حسب Megabit per Second به مقدار تعیین‌شده برساند.

pps

نرخ تولید Packet را بر حسب Packet per Second تعیین می‌کند.

packet-size

اندازه Packet تولیدشده را مشخص می‌کند.

حتی می‌توان Range تعریف کرد تا Packet Size متغیر باشد.

id

هر Stream باید ID مشخص و منحصربه‌فرد داشته باشد تا Traffic Generator بتواند Packetهای Streamهای مختلف را از یکدیگر تشخیص دهد.

نکته نسخه 7.26: در CLI Reference فعلی پارامتر Stream با نام id نمایش داده می‌شود و مثال رسمی MikroTik نیز از همین پارامتر استفاده می‌کند.

Packet Size چرا در Benchmark اهمیت دارد؟

Throughput یک Router با Packetهای بزرگ و کوچک یکسان نیست.

برای مثال:

1500-byte packets
→ تعداد Packet کمتر برای یک Throughput مشخص

64-byte packets
→ تعداد Packet بسیار بیشتر
→ PPS بالاتر
→ Load بیشتر روی Packet Processing

بنابراین تست حرفه‌ای بهتر است با چند Packet Size مختلف انجام شود.

مثلاً:

64
128
256
512
1024
1400 / 1500 bytes

تا مشخص شود Performance دستگاه در Packet-per-Second بالا چگونه تغییر می‌کند.

Quick Mode چیست؟

برای اجرای سریع Test می‌توان از:

/tool/traffic-generator
quick

استفاده کرد.

Quick Mode هم Traffic را اجرا می‌کند و هم Statistics را مستقیم در Terminal نمایش می‌دهد.

برای مثال:

/tool/traffic-generator
quick stream=stream-a duration=10s

یا می‌توان هنگام اجرا برخی مقادیر Configuration را Override کرد:

/tool/traffic-generator
quick stream=stream-a mbps=300 duration=20s

پارامترهای Quick شامل مواردی مانند:

duration
stream
port
interface
id
packet-size
pps
mbps
packet-count
tx-template
measure-out-of-order

هستند.

اجرای Traffic Generator در Background

اگر نخواهیم Output دائماً در Terminal نمایش داده شود، می‌توان Generator را با:

/tool/traffic-generator
start

اجرا کرد.

برای توقف:

/tool/traffic-generator
stop

در این روش Statistics در زیرمنوی:

/tool/traffic-generator/stats

قابل بررسی است.

Traffic Generator چه Statisticsهایی ارائه می‌دهد؟

یکی از مزیت‌های اصلی این ابزار Statistics نسبتاً کامل آن است.

در Quick Mode می‌توان مقادیری مانند:

TX-PACKET
TX-RATE

RX-PACKET
RX-RATE

RX-OOO
RX-BAD-CSUM

LOST-PACKET
LOST-RATE
LOST-RATIO

LAT-MIN
LAT-AVG
LAT-MAX

JITTER

را مشاهده کرد.

Latency و Jitter

Throughput به‌تنهایی کیفیت یک مسیر را مشخص نمی‌کند.

مثلاً ممکن است یک VPN به Throughput مناسب برسد ولی Latency و Jitter آن تحت Load به‌شدت افزایش یابد.

Traffic Generator می‌تواند:

Minimum Latency
Average Latency
Maximum Latency
Jitter

را گزارش کند.

این معیارها برای تست:

  • VoIP
  • VPN
  • Queue
  • WAN
  • Wireless Backhaul
  • شبکه‌های دارای Congestion

بسیار مهم هستند.

Packet Loss چگونه بررسی می‌شود؟

Traffic Generator تعداد Packetهای TX و RX را با یکدیگر مقایسه کرده و مقدار Lost Packet را گزارش می‌کند.

مثلاً:

TX
1,000,000 packets

RX
998,000 packets

Lost
2,000 packets

در تست Performance معمولاً هدف فقط رسیدن به بیشترین Throughput نیست.

باید مشخص کنیم:

Maximum Throughput
while
Packet Loss ≈ 0

چقدر است.

Out-of-Order Packet چیست؟

Out-of-Order یا OOO زمانی رخ می‌دهد که Packetها به همان ترتیبی که ارسال شده‌اند دریافت نشوند.

مثلاً:

TX:
1 2 3 4 5

RX:
1 2 4 3 5

Traffic Generator می‌تواند چنین شرایطی را اندازه‌گیری کند.

پارامتر عمومی:

measure-out-of-order

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

نکته Performance: در Router چندCore، فعال‌کردن Out-of-Order Measurement باعث می‌شود یک Stream فقط از یک CPU Core استفاده کند. بنابراین این قابلیت می‌تواند حداکثر Packet Generation Performance همان Stream را محدود کند.

در Router چندCore، Default این قابلیت معمولاً:

no

و در Single-Core:

yes

است.

Latency Distribution چیست؟

Average Latency همیشه تمام واقعیت را نشان نمی‌دهد.

فرض کنید Average:

1 ms

است، اما تعداد کمی Packet با:

20 ms
50 ms

تاخیر دریافت می‌شوند.

Latency Distribution نشان می‌دهد چه تعداد Packet در هر Range زمانی قرار گرفته‌اند.

برای مشاهده:

/tool/traffic-generator/stats/latency-distribution
print

RouterOS تعداد و درصد Packetها را در Bucketهای Latency مختلف نمایش می‌دهد.

پارامتر:

latency-distribution-max

نیز محدوده اصلی Measurement را کنترل می‌کند.

Stream Stats

/tool/traffic-generator/stats/stream
print

نتایج را به تفکیک Stream نمایش می‌دهد.

Port Stats

/tool/traffic-generator/stats/port
print

Statistics را براساس Portهای TX/RX نمایش می‌دهد.

Raw Stats

/tool/traffic-generator/stats/raw
print

اطلاعات خام Statistics را در اختیار Administrator قرار می‌دهد.

Replay کردن PCAP و PCAPNG با Traffic Generator

یکی از قابلیت‌های بسیار کاربردی Traffic Generator امکان Inject کردن Packetهای ذخیره‌شده در Capture File است.

برای مثال ابتدا Traffic واقعی را Capture می‌کنید:

Real Network
 ↓
Packet Sniffer
 ↓
PCAP / PCAPNG

سپس همان Packetها را دوباره روی Interface Test پخش می‌کنید:

PCAP
 ↓
Traffic Generator
 ↓
Test Interface
 ↓
DUT

نمونه:

/tool/traffic-generator
inject-pcap interface=ether2 \
 pcap-file=test.pcapng \
 speed-multiplier=1 \
 loop=no

پارامتر:

speed-multiplier

سرعت Replay را کنترل می‌کند.

همچنین:

loop=yes

می‌تواند فایل را به‌صورت تکراری ارسال کند.

Packet Sniffer از RouterOS 7.20 فایل‌ها را با PCAPNG ذخیره می‌کند و قابلیت inject-pcap در Traffic Generator از RouterOS 7.21 از PCAPNG پشتیبانی می‌کند.

Raw Packet Template چیست؟

Packet Template معمولی برای بسیاری از تست‌ها کافی است، اما اگر نیاز به کنترل Low-Level بیشتری داشته باشید می‌توان از:

/tool/traffic-generator/raw-packet-template

استفاده کرد.

در این حالت Header را به‌صورت Raw تعریف می‌کنید.

RouterOS همچنین Offsetهایی برای:

IPv4 Header
IPv6 Header
UDP Header
TCP Header

در Raw Packet Template در اختیار شما قرار می‌دهد.

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

  • Packetهای غیرمعمول
  • Protocol Testing
  • IPv6 Raw Packet
  • تست Headerهای سفارشی
  • Traffic Patternهای خاص

مناسب‌تر است.

نمونه عملی؛ تست دوطرفه یک Router

یک سناریوی Lab را در نظر بگیرید:

 Traffic Generator
 ether2 ether3
 │ ↑
 │ │
 ↓ │
 ether1 ether2
 DUT Router

شبکه سمت اول:

198.18.0.0/24

شبکه سمت دوم:

198.19.0.0/24

فرض:

Traffic Generator ether2
198.18.0.1

DUT Side A
198.18.0.2

DUT Side B
198.19.0.2

Traffic Generator ether3
198.19.0.1

ابتدا Portها:

/tool/traffic-generator/port
add interface=ether2 name=port-a
add interface=ether3 name=port-b

Template مسیر A به B:

/tool/traffic-generator/packet-template
add name=a-to-b \
 port=port-a \
 header-stack=mac,ip,udp \
 ip-src=198.18.0.1/32 \
 ip-dst=198.19.0.1/32 \
 ip-gateway=198.18.0.2 \
 udp-src-port=10001 \
 udp-dst-port=20001

Template مسیر B به A:

/tool/traffic-generator/packet-template
add name=b-to-a \
 port=port-b \
 header-stack=mac,ip,udp \
 ip-src=198.19.0.1/32 \
 ip-dst=198.18.0.1/32 \
 ip-gateway=198.19.0.2 \
 udp-src-port=10002 \
 udp-dst-port=20002

Stream اول:

/tool/traffic-generator/stream
add name=a-to-b-stream \
 id=10 \
 port=port-a \
 tx-template=a-to-b \
 packet-size=1400 \
 mbps=200

Stream دوم:

/tool/traffic-generator/stream
add name=b-to-a-stream \
 id=11 \
 port=port-b \
 tx-template=b-to-a \
 packet-size=1400 \
 mbps=200

اکنون تست را اجرا کنید:

/tool/traffic-generator
quick duration=30s

یا:

/tool/traffic-generator
start

و سپس:

/tool/traffic-generator/stats/stream
print

در پایان:

/tool/traffic-generator
stop

نرخ Traffic را مرحله‌ای افزایش دهید

برای پیدا کردن نقطه Saturation دستگاه، بهتر است Traffic را یک‌باره روی Maximum قرار ندهید.

مثلاً:

100 Mbps
↓
300 Mbps
↓
500 Mbps
↓
700 Mbps
↓
900 Mbps
↓
Observe Loss / Latency / CPU

با این روش مشخص می‌شود از چه نقطه‌ای:

  • Packet Loss شروع می‌شود.
  • Latency افزایش پیدا می‌کند.
  • CPU به سقف می‌رسد.
  • Jitter افزایش می‌یابد.

تست عملکرد VPN و IPsec

یکی از کاربردهای رسمی Traffic Generator تست Performance یک IPsec Tunnel است.

ساختار:

Traffic Generator
 │
 ↓
 Router A
 │
 IPsec
 │
 Router B
 │
 ↓
Traffic Generator

می‌توان دو Stream هم‌زمان ایجاد کرد:

A → B

B → A

و سپس علاوه بر Throughput موارد زیر را بررسی کرد:

CPU Load
Encryption Throughput
Packet Loss
Latency
Jitter
Out-of-Order

همین الگو برای مقایسه Performance فناوری‌هایی مانند IPsec یا سایر Tunnelها نیز قابل استفاده است، مشروط به اینکه Generator خارج از DUT قرار داشته باشد.

Traffic Generator را روی خود DUT اجرا کنیم؟

برای یک Benchmark معتبر بهتر است دستگاه تولیدکننده Traffic از Device Under Test جدا باشد.

اگر همان Router هم Traffic تولید کند و هم عملیات مورد آزمایش را انجام دهد:

Traffic Generation CPU
+
Routing CPU
+
Firewall CPU
+
Encryption CPU

روی یک دستگاه جمع می‌شوند و Result لزوماً نشان‌دهنده توان واقعی Forwarding آن نیست.

در مثال رسمی MikroTik برای تست IPsec نیز Traffic Generator به‌صورت Device جداگانه در کنار SUT قرار گرفته است.

تست VLAN، QoS و Queue

Traffic Generator برای تست Policyهای QoS بسیار کاربردی است.

برای مثال می‌توان چند Stream ایجاد کرد:

Voice
VLAN 20
High Priority

Data
VLAN 30
Normal Priority

Backup
VLAN 40
Low Priority

سپس مشخص کرد Queue هنگام Congestion واقعاً Traffic مهم‌تر را حفظ می‌کند یا خیر.

سناریو:

Voice Stream ──┐
Data Stream ───┼→ MikroTik QoS → Limited WAN
Backup Stream ──┘

Measure:
Latency
Jitter
Loss
Throughput

این نوع تست نسبت به صرفاً نگاه‌کردن به Queue Counterها تصویر بسیار دقیق‌تری از عملکرد واقعی Policy ایجاد می‌کند.

نکات مهم برای Benchmark صحیح

Generator نباید Bottleneck باشد

اگر Traffic Generator خودش CPU کافی برای تولید Packet ندارد، نتیجه تست ظرفیت DUT را نشان نمی‌دهد.

در زمان تست Resource Generator را نیز بررسی کنید:

/system/resource/print

/tool/profile

Packet Sizeهای مختلف را Test کنید

نتیجه تست 1400 Byte را به Performance Packetهای کوچک تعمیم ندهید.

CPU DUT را هم‌زمان مانیتور کنید

مثلاً:

/tool/profile

/system/resource/monitor

FastTrack را در نتیجه لحاظ کنید

اگر یک Test با FastTrack و Test دیگر بدون FastTrack اجرا شده باشد، مقایسه مستقیم آن‌ها معتبر نیست.

Hardware Offload را بررسی کنید

اگر Bridge یا Switch Chip بخشی از Traffic را در Hardware پردازش می‌کند، نتیجه با Software Forwarding متفاوت است.

سناریو را دقیق ثبت کنید

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

RouterOS Version
Device Model
CPU
Packet Size
Streams
Direction
Mbps / PPS
Firewall State
FastTrack
Queue
VPN Encryption
Hardware Offload
Duration

نکته مهم؛ Packet تولیدشده را روی Generator با Torch نمی‌بینید

یکی از مهم‌ترین نکات Traffic Generator این است که Packetهای تولیدشده توسط آن روی Interface خروجی همان Generator با ابزارهای:

Packet Sniffer
Torch
Firewall

قابل Capture یا مشاهده نیستند.

بنابراین اگر:

Traffic Generator
و
Firewall Under Test

روی همان Router باشند، ممکن است Test چیزی را که تصور می‌کنید اندازه‌گیری نکند.

معماری بهتر:

Generator
 ↓
External DUT
 ↓
Receiver / Generator

است.

محدودیت‌های Traffic Generator

Traffic Generator ابزار بسیار قدرتمندی است، اما محدودیت‌هایی دارد.

Device Mode

در RouterOSهای جدید باید قابلیت Traffic Generator به‌صورت صریح فعال شود.

Load روی Generator

CPU دستگاه تولیدکننده می‌تواند قبل از DUT به Bottleneck تبدیل شود.

Outgoing Packets روی Generator قابل Sniff نیستند

Sniffer، Torch و Firewall روی Interface خروجی دستگاه تولیدکننده Packetهای Traffic Generator را مشاهده نمی‌کنند.

Packet Template سطح بالا محدود است

Builder عادی Headerهای MAC، VLAN، IPv4، UDP و Raw را ارائه می‌کند. برای ساختارهای Low-Level پیچیده‌تر باید از Raw Packet Template استفاده شود.

OOO Measurement می‌تواند Performance را محدود کند

روی سیستم چندCore، یک Stream با OOO Measurement فقط از یک Core استفاده می‌کند.

Benchmark بدون Methodology معتبر نیست

عددی مانند:

900 Mbps

بدون مشخص‌کردن Packet Size، Firewall، VPN، FastTrack و Direction اطلاعات کاملی درباره Performance دستگاه ارائه نمی‌کند.

Traffic Generator اجرا نمی‌شود

اگر Error شبیه:

not allowed by device-mode

دریافت می‌کنید:

/system/device-mode/print

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

در صورت نیاز:

/system/device-mode/update traffic-gen=yes

و مرحله تأیید فیزیکی را انجام دهید.

Traffic TX داریم ولی RX صفر است

بررسی کنید:

  • Destination IP صحیح است.
  • Gateway صحیح است.
  • MAC Destination Resolve شده است.
  • DUT Route مناسب دارد.
  • Firewall Traffic را Drop نمی‌کند.
  • مسیر بازگشت وجود دارد.
  • Receiver به Generator متصل است.

Gateway تغییر کرده ولی Traffic هنوز به MAC قبلی می‌رود

Assumed Values به‌طور خودکار Refresh نمی‌شوند.

اجرا کنید:

/tool/traffic-generator/packet-template
set [find]

و دوباره Template را بررسی کنید.

Throughput کمتر از انتظار است

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

Generator CPU
DUT CPU
Packet Size
OOO Measurement
Firewall
Queues
VPN Encryption
FastTrack
Hardware Offload
Interface Speed
Duplex
Packet Loss

CPU Generator به 100٪ می‌رسد

در این حالت DUT ممکن است هنوز ظرفیت بیشتری داشته باشد اما Generator قادر به تولید Traffic بیشتر نباشد.

راه‌حل می‌تواند:

  • استفاده از Router قوی‌تر به‌عنوان Generator
  • کاهش قابلیت‌های Measurement غیرضروری
  • استفاده از چند Stream/Core مناسب
  • افزایش Packet Size

باشد.

چک‌لیست تست Traffic Generator

  1. RouterOS Version ثبت شده است.
  2. Device Mode بررسی شده است.
  3. traffic-gen=yes فعال شده است.
  4. تأیید فیزیکی Device Mode انجام شده است.
  5. Generator از DUT جداست.
  6. Topology تست مستند شده است.
  7. Interface Speed بررسی شده است.
  8. Portهای Traffic Generator تعریف شده‌اند.
  9. Packet Template ساخته شده است.
  10. Source و Destination IP صحیح هستند.
  11. Gateway مناسب مشخص شده است.
  12. Assumed MAC Address بررسی شده است.
  13. Stream IDها منحصربه‌فرد هستند.
  14. Packet Size مشخص شده است.
  15. Mbps یا PPS هدف مشخص شده است.
  16. Direction تست مشخص شده است.
  17. در تست Bidirectional دو Stream تعریف شده است.
  18. Latency مانیتور می‌شود.
  19. Jitter مانیتور می‌شود.
  20. Packet Loss مانیتور می‌شود.
  21. OOO فقط در صورت نیاز فعال شده است.
  22. CPU Generator مانیتور می‌شود.
  23. CPU DUT مانیتور می‌شود.
  24. FastTrack وضعیت مشخصی دارد.
  25. Hardware Offload ثبت شده است.
  26. Firewall Configuration ثابت نگه داشته شده است.
  27. Queue Configuration ثبت شده است.
  28. تست با چند Packet Size انجام شده است.
  29. Rate به‌صورت مرحله‌ای افزایش داده شده است.
  30. نتیجه همراه با شرایط Test ثبت شده است.

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

Traffic Generator در MikroTik چیست؟

ابزاری در RouterOS برای تولید Packet و اندازه‌گیری Performance یک Device یا System Under Test است.

Traffic Generator چه چیزهایی را اندازه می‌گیرد؟

TX/RX Rate، Packet Count، Packet Loss، Latency، Jitter و Out-of-Order Packet از مهم‌ترین معیارهای قابل اندازه‌گیری هستند.

Traffic Generator با Bandwidth Test چه تفاوتی دارد؟

Traffic Generator کنترل بسیار بیشتری روی ساختار Packet، Stream، VLAN، Rate، Packet Size و Statistics دارد و برای Benchmarkهای پیشرفته‌تر مناسب است.

چرا Traffic Generator اجرا نمی‌شود؟

در RouterOSهای جدید احتمالاً Traffic Generator در Device Mode غیرفعال است.

چگونه Traffic Generator را فعال کنیم؟

/system/device-mode/update traffic-gen=yes

سپس باید تغییر با روش فیزیکی اعلام‌شده توسط RouterOS تأیید شود.

آیا فعال‌سازی Traffic Generator از راه دور کافی است؟

خیر. تغییر Device Mode نیازمند تأیید فیزیکی است.

Packet Template چیست؟

تعریف ساختار Packet شامل Headerهایی مانند Ethernet، VLAN، IPv4، UDP و Raw است.

Stream چیست؟

Stream مشخص می‌کند Packet Template با چه Packet Size، Rate، Port و ID ارسال شود.

فرق Mbps و PPS چیست؟

Mbps حجم Data در ثانیه و PPS تعداد Packet در ثانیه را مشخص می‌کند. برای Packetهای کوچک، PPS معیار مهم‌تری برای Packet Processing است.

آیا Traffic Generator VLAN می‌سازد؟

می‌تواند Packet دارای VLAN Header و VLAN ID مشخص تولید کند.

آیا Traffic Generator UDP تولید می‌کند؟

بله. UDP Header و Source/Destination Port قابل تعریف هستند.

آیا TCP Packet قابل ساخت است؟

Packet Template سطح بالا Header مستقل TCP ارائه نمی‌کند، اما Raw Packet Template Offset مربوط به TCP Header را در اختیار کاربر قرار می‌دهد.

آیا IPv6 پشتیبانی می‌شود؟

Packet Template سطح بالا Header اختصاصی IPv6 ندارد، اما Raw Packet Template در CLI فعلی دارای ipv6-header-offset است و برای ساخت Packetهای Low-Level قابل استفاده است.

آیا PCAP را می‌توان Replay کرد؟

بله. دستور inject-pcap برای تزریق فایل Capture روی Interface وجود دارد.

PCAPNG پشتیبانی می‌شود؟

بله. پشتیبانی inject-pcap از PCAPNG از RouterOS 7.21 اضافه شده است.

آیا Traffic Generator Packetهای خودش را با Torch نشان می‌دهد؟

خیر. روی Router تولیدکننده، Packetهای خروجی Traffic Generator توسط Torch، Sniffer یا Firewall همان Interface قابل مشاهده نیستند.

آیا Traffic Generator برای تست Firewall مناسب است؟

بله، اگر Firewall مورد آزمایش روی یک DUT خارجی قرار داشته باشد. برای تست Firewall همان Router تولیدکننده باید محدودیت Packet Path ابزار را در نظر گرفت.

آیا می‌توان عملکرد IPsec را تست کرد؟

بله. مستند رسمی MikroTik یک سناریوی کامل برای تست دوطرفه IPsec با Traffic Generator ارائه می‌کند.

آیا می‌توان Queue و QoS را تست کرد؟

بله. می‌توان Streamهای متفاوت با VLAN، Packet Size و DS Field مختلف ایجاد و رفتار QoS را زیر Load بررسی کرد.

Out-of-Order Measurement چه تأثیری دارد؟

در Router چندCore، فعال‌کردن این Measurement باعث می‌شود یک Stream فقط از یک Core استفاده کند و ممکن است توان Packet Generation کاهش یابد.

چرا Assumed MAC تغییر نکرده است؟

Assumed Values پس از تغییر Topology به‌صورت خودکار Refresh نمی‌شوند و Packet Template باید Edit یا Refresh شود.

برای Benchmark حداکثر سرعت چه Packet Sizeای انتخاب کنیم؟

یک مقدار واحد کافی نیست. بهتر است Packetهای کوچک و بزرگ جداگانه Test شوند تا هم Throughput و هم Packet-per-Second Capability مشخص شود.

آیا Traffic Generator را روی همان Router مورد آزمایش اجرا کنیم؟

برای Benchmark معتبر بهتر است Generator جدا از DUT باشد تا CPU مربوط به Packet Generation روی نتیجه Performance دستگاه مورد آزمایش اثر نگذارد.

جمع‌بندی؛ Traffic Generator فقط یک Speed Test نیست

ساختار اصلی Traffic Generator را می‌توان این‌گونه خلاصه کرد:

Packet Template
 ↓
Stream
 ↓
Mbps / PPS
 ↓
Traffic Generator
 ↓
DUT / SUT
 ↓
Returned Packets
 ↓
Throughput
Latency
Jitter
Loss
Out-of-Order

Bandwidth Test برای بررسی سریع سرعت شبکه ابزار مناسبی است، اما Traffic Generator زمانی ارزش واقعی خود را نشان می‌دهد که بخواهیم رفتار یک Router یا Network Function را با Packetهای کنترل‌شده و چند معیار هم‌زمان بررسی کنیم.

با ساخت Packet Template، VLAN، UDP Traffic، Raw Packet، چند Stream، Packet Sizeهای مختلف و PCAP Replay می‌توان سناریوهایی بسیار نزدیک‌تر به شرایط واقعی شبکه ایجاد کرد.

در عین حال باید به Methodology تست توجه کرد. اگر Generator خودش Bottleneck باشد، Packet Size مشخص نباشد یا همان Router هم Generator و هم DUT باشد، عدد نهایی ممکن است برداشت اشتباهی از Performance واقعی تجهیزات ایجاد کند.

برای یک Benchmark معتبر در MikroTik فقط به Mbps نگاه نکنید؛ Packet Size، PPS، Latency، Jitter، Packet Loss، CPU و شرایط واقعی Configuration را هم‌زمان بررسی کنید.

انتخاب و ارزیابی تجهیزات MikroTik برای شبکه‌های پرترافیک

اگر برای Router، Firewall، VPN، لینک سازمانی یا شبکه پرترافیک نیاز به انتخاب تجهیز مناسب دارید، Benchmark باید براساس سناریوی واقعی شبکه و قابلیت‌هایی که در Production فعال خواهند بود انجام شود.

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