Skip to content
Vyacheslav edited this page May 5, 2017 · 24 revisions

Trex VM/Scapy server

The fastest and easiest way to configure TRex is install it locally into VirtualBox. Here is a step by step installation instruction:

  • Install VM using this manual
  • Configure VM:
    • Open VM Settings -> Network -> Advanced -> Port forwarding
    • Add VM port forwarding for ports: 4501(async), 4507(scapy-server)
  • Update trex:
    • Start VM and connect via ssh: ssh -p 3022 [email protected] (password: trex)
    • Update TRex to the latest release
    cd /opt/trex/
    wget --no-cache http://trex-tgn.cisco.com/trex/release/latest
    tar -xzvf latest
  • Run TRex server: (cd /opt/trex/v2.* ; sudo ./t-rex-64 -i )

Scapy server

Since version v2.14 trex-core runs scapy_server automatically on the same host, but on port 4507.

Trex Stateless GUI

Download latest release from https://github.com/cisco-system-traffic-generator/trex-stateless-gui/releases

You can use Mac/Windows installer (dmg/exe files)

Packet editor

You can find embedded packet editor in a build/edit stream dialogs packet editor standalone app screenshot

Appending new layer

You can select available(suggested) layers, or type any layer you want to produce a malformed structure. Click on a append field and start typing - autocompletion will show all available variants without restrictions. append-new-layer

Moving and deleting layers

Packet editor is flexible and uses Scapy to build packets. It allows to create malformed packets, and shows a warning(red label on a layer name). You can move and remove any layer(except Ether) by the right-click on the layer title incorrect-layer-structure-and-menu

Menu and Toolbar

You can use menu, hotkeys and the toolbar to use the following features:

  • create a new packet
  • create a new packet from the template
  • undo & redo
  • import a first packet of the PCAP file
  • Export packet to PCAP file or save current packet model to a JSON file menu-and-toolpbar

Menu is not available in the embeded mode

Payload generator

Payload generator can append Random or template bytes to any layer You have following options:

payload-generator-options

Use template-code and specify the target size of a payload of a whole packet you want. Template code is a hex string. Example: "DE AD BE EF F0 0D" (6 bytes will be repeated to fill the target size. all whitespaces are ignored). payload-generator-code

You can upload a binary file as a payload payload-generator-file

Use "random ascii/bytes" option to generate random payloads of printable characters or any bytes. payload-generator-bytes-packet-size

Binary viewer

At any time you can see the binary representation of a network packet you've created. Click on a field to highlight corresponding packet bytes in a binary viewer

binary-viewer-mac

binary-viewer-text-payload

Field engine

field-editor

List of supported instructions

  • STLVmFlowVar
  • STLVmWrFlowVar
  • STLVmWrMaskFlowVar
  • STLVmFixIpv4
  • STLVmTrimPktSize
  • STLVmTupleGen
  • STLVmFlowVarRepetableRandom
  • STLVmFixChecksumHw

Smart autocomplete for instruction parameters. Flow variable names:

field-editor-autocomplete-var_names

Fields' offset names:

field-editor-autocomplete-offsets

Handle protocol duplication. Packet structure widget and offset autocompleter knows when packet contains duplicate protocols and suggest protocol indexes also.

field-editor-autocomplete-offsets-with-duplicate-IP

Create predefined instructions template with initial parameter values:

screen shot 2016-12-06 at 1 43 33 am screen shot 2016-12-06 at 1 45 26 am

Interactive help for instructions:

field-editor-help

Automatically import parameters from simple configuration mode

It is easy to export parameters from simple configuration mode to Advanced(Packet Editor + Field Engine).

screen shot 2016-12-16 at 12 36 44 pm

screen shot 2016-12-16 at 12 37 49 pm

screen shot 2016-12-16 at 12 38 03 pm

screen shot 2016-12-16 at 12 38 23 pm

Dashboard

Dashboard is active only if the TRex Stateless GUI connected to the TRex server. You can open it from the Stats menu or by click on the dashboard icon in top-right corner of the main window.

trex-main-open-dashboard

Global statistics

At the top of the dashboard you can see global TRex statistics. Global statistics contains ten panels which represents main TRex statistics. Four of them have an color indicator which is green if value is good and red if it is not. It are "CPU", "Rx CPU", "Drop Rate" and "Queue Full". For the "CPU" and "Rx CPU" a good value threshold is 85%, for the "Drop Rate" and "Queue Full" it is 0.

Ports statistics table

Ports statistics table represents total information about all selected ports and detail information about each of it. Here is two rows which have color indicator with good value threshold equals to 0. It are oerrors and ierrors.

trex-dashboard-ports

Ports filter

On the left side of the dashboard you can see the filter panel.

You can filter statistics by selection the port owner(All, My).

trex-dashboard-ports-owner-my

Or you can select specific ports.

trex-dashboard-ports-selection

Streams statistics table

Streams statistics table represents detail information about active streams.

trex-dashboard-streams

Streams count filter

At the bottom of the filter panel you can specify count of streams which you want to see.

trex-dashboard-streams-count

Latency window table

Latency window table represents detail information about the last ten temporary max latencies, jitter, max latency, avg latency and common information about the errors. Errors row has color indicator with good value threshold equals to 0.

trex-dashboard-latency-window

Latency histogram table

Latency window table represents detail information about the latencies and errors. All error rows have color indicator with good value threshold equals to 0.

trex-dashboard-latency-histogram

Charts

Charts view represents graphical information about the streams and latencies.

trex-dashboard-charts

You can choose charts interval.

trex-dashboard-charts-interval

You can choose layout to see more charts at the same time.

trex-dashboard-charts-layout

You can click on the chart to select it type.

trex-dashboard-charts-selector

Clear

Clear button provides ability to reset statistics.

trex-dashboard-clear

Port management

Port attributes

Port attributes tab displays detailed port information and provides capabilities to modify port attributes such as Multicast, Promiscuous, Flow control and others. Also it is possible to control port's service mode right from the GUI.

Port Attributes

Layer mode configuration

Now you can easy configure port in L2 or L3 mode with automatic ARP resolution. Also you can ping hosts with properly configured L3 mode.

Port Layer Configuration

Hardware counters

If you have real NIC you probably need to see hardware counters for debugging purposes or any other matters. By default non-zero counters is visible. If you need to find certain counter you can specify it's name in the filter and pin interested one and see the value despite on filter options.

Port Hardware Counters

Clone this wiki locally