برای بررسی واقعی عملکرد یک 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 چیست؟
- DUT و SUT یعنی چه؟
- تفاوت Traffic Generator و Bandwidth Test
- فعالکردن Traffic Generator در Device Mode
- ساختار Traffic Generator
- Port چیست؟
- Packet Template چیست؟
- Header Stack چگونه کار میکند؟
- Packet Payload چگونه ساخته میشود؟
- Stream چیست؟
- Quick Mode
- Start و Stop
- Statistics
- Latency و Jitter
- Packet Loss
- Out-of-Order Packet
- Latency Distribution
- Replay کردن PCAP و PCAPNG
- Raw Packet Template
- نمونه تست دوطرفه
- تست VPN و IPsec
- تست VLAN و QoS
- نکات Benchmark صحیح
- محدودیتهای Traffic Generator
- Troubleshooting
- چکلیست نهایی
- سؤالات متداول
Traffic Generator در MikroTik چیست؟
Traffic Generator ابزاری داخل RouterOS است که Packetهای RAW یا ساختاریافته تولید کرده و آنها را از Interface مشخصی ارسال میکند.
معماری ساده تست:
Traffic Generator
│
│ Generated Traffic
↓
DUT
│
│ Processed Traffic
↓
Traffic Generator / ReceiverTraffic میتواند پس از عبور از 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 Test | Traffic 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=yesRouterOS از شما تأیید فیزیکی میخواهد.
بسته به 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
↓
StatisticsPort مشخص میکند 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 detailRouterOS همچنین مقدار:
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=20000RouterOS میتواند تعدادی از 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
randomuninitialized
سریعترین روش است و 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
portmbps
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 5Traffic 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
printRouterOS تعداد و درصد Packetها را در Bucketهای Latency مختلف نمایش میدهد.
پارامتر:
latency-distribution-maxنیز محدوده اصلی Measurement را کنترل میکند.
Stream Stats
/tool/traffic-generator/stats/stream
printنتایج را به تفکیک Stream نمایش میدهد.
Port Stats
/tool/traffic-generator/stats/port
printStatistics را براساس 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-bTemplate مسیر 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=20001Template مسیر 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=20002Stream اول:
/tool/traffic-generator/stream
add name=a-to-b-stream \
id=10 \
port=port-a \
tx-template=a-to-b \
packet-size=1400 \
mbps=200Stream دوم:
/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/profilePacket Sizeهای مختلف را Test کنید
نتیجه تست 1400 Byte را به Performance Packetهای کوچک تعمیم ندهید.
CPU DUT را همزمان مانیتور کنید
مثلاً:
/tool/profile
/system/resource/monitorFastTrack را در نتیجه لحاظ کنید
اگر یک 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 LossCPU Generator به 100٪ میرسد
در این حالت DUT ممکن است هنوز ظرفیت بیشتری داشته باشد اما Generator قادر به تولید Traffic بیشتر نباشد.
راهحل میتواند:
- استفاده از Router قویتر بهعنوان Generator
- کاهش قابلیتهای Measurement غیرضروری
- استفاده از چند Stream/Core مناسب
- افزایش Packet Size
باشد.
چکلیست تست Traffic Generator
- RouterOS Version ثبت شده است.
- Device Mode بررسی شده است.
- traffic-gen=yes فعال شده است.
- تأیید فیزیکی Device Mode انجام شده است.
- Generator از DUT جداست.
- Topology تست مستند شده است.
- Interface Speed بررسی شده است.
- Portهای Traffic Generator تعریف شدهاند.
- Packet Template ساخته شده است.
- Source و Destination IP صحیح هستند.
- Gateway مناسب مشخص شده است.
- Assumed MAC Address بررسی شده است.
- Stream IDها منحصربهفرد هستند.
- Packet Size مشخص شده است.
- Mbps یا PPS هدف مشخص شده است.
- Direction تست مشخص شده است.
- در تست Bidirectional دو Stream تعریف شده است.
- Latency مانیتور میشود.
- Jitter مانیتور میشود.
- Packet Loss مانیتور میشود.
- OOO فقط در صورت نیاز فعال شده است.
- CPU Generator مانیتور میشود.
- CPU DUT مانیتور میشود.
- FastTrack وضعیت مشخصی دارد.
- Hardware Offload ثبت شده است.
- Firewall Configuration ثابت نگه داشته شده است.
- Queue Configuration ثبت شده است.
- تست با چند Packet Size انجام شده است.
- Rate بهصورت مرحلهای افزایش داده شده است.
- نتیجه همراه با شرایط 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-OrderBandwidth 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 میتوانید با تیم بیستون در ارتباط باشید.
دیدگاه خود را بنویسید