I'm using TRex to load test NAT performance.
I'm running into some interesting issues that I think may be a fault of the DUT, but wondering if anyone else has seen anything similar.
I have my DUT (Ubiquiti EdgeRouter Pro) configured to NAT between two interfaces. When i connect real clients, everything works fine, as expected. Tested with TCP/UDP/ICMP flows
When I run traffic through it with TRex, only UDP packets get translated, TCP are routed through untouched (no NAT translation takes place).
I experimented with the --checksum-offload flag, enabling it broke UDP entirely, the DUT wouldn't even pass the traffic, there was no effect on TCP. I've also tried with and without --learn-mode (1, 2, and 3), there was no effect.
The pcaps I'm using to generate the flows are some of the included http and dns samples that ship with TRex.
I'm not discounting that this could be something faulty with the DUT, but Ubiquiti products have been out a while, I feel like they should have caught this in QA? Especially since my real clients work correctly.
I'm wondering if TRex does something non-standard to the traffic that I'm not seeing, or if the samples were created with some weird TCP/IP options or flags. Maybe there's a runtime option I should try?
My next steps are to
1. Create my own sample pcap files with traffic that works.
2. craft packets with Scapy that match what i'm capturing on the wire and massaging them until it works.
Thanks much! Really enjoying the tool so far!
-Jeremy
--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.
To post to this group, send email to trex...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/trex-tgn/6864c105-0d9b-458b-95bd-55ffe9010d32%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi,Are you sure your DUT does not terminate the TCP sessions? A simple way to verify it is to capture a Linux TCP session in both sides of the NAT, in case there is a diff between the sessions (same L7 not the same L4) you will need to wait a bit for our upcoming featureSee hereThanks,Hanoh
On Thu, 29 Jun 2017 at 13:55 <jba...@gmail.com> wrote:
Hi there!
I'm using TRex to load test NAT performance.
I'm running into some interesting issues that I think may be a fault of the DUT, but wondering if anyone else has seen anything similar.
I have my DUT (Ubiquiti EdgeRouter Pro) configured to NAT between two interfaces. When i connect real clients, everything works fine, as expected. Tested with TCP/UDP/ICMP flows
When I run traffic through it with TRex, only UDP packets get translated, TCP are routed through untouched (no NAT translation takes place).
I experimented with the --checksum-offload flag, enabling it broke UDP entirely, the DUT wouldn't even pass the traffic, there was no effect on TCP. I've also tried with and without --learn-mode (1, 2, and 3), there was no effect.
The pcaps I'm using to generate the flows are some of the included http and dns samples that ship with TRex.
I'm not discounting that this could be something faulty with the DUT, but Ubiquiti products have been out a while, I feel like they should have caught this in QA? Especially since my real clients work correctly.
I'm wondering if TRex does something non-standard to the traffic that I'm not seeing, or if the samples were created with some weird TCP/IP options or flags. Maybe there's a runtime option I should try?
My next steps are to
1. Create my own sample pcap files with traffic that works.
2. craft packets with Scapy that match what i'm capturing on the wire and massaging them until it works.
Thanks much! Really enjoying the tool so far!
-Jeremy
--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+unsubscribe@googlegroups.com.
To post to this group, send email to trex...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/trex-tgn/6864c105-0d9b-458b-95bd-55ffe9010d32%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You didn't mention the NIC type, running TRex with -v 7 will tell us.
To get specific packets to the software we need the RX packets to match a hardware filter. For some cards we use a TTL filter (TTL>128) and for some TOS LSB bit (depends on NIC capability) see here for CX4/Mellanox TOS filter example
https://trex-tgn.cisco.com/trex/doc/trex_manual.html#_trex_specific_implementation_details
I suspect that the DUT change one of the fields and it does not match our HW filter, can you check that.
A simple way to check it is by running without NAT and "-l 10" and check if latency packets are seen.
Another way is with your scapy script
thanks,
Hanoh
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.
To post to this group, send email to trex...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/trex-tgn/6864c105-0d9b-458b-95bd-55ffe9010d32%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--HanohSent from my iPhone
--HanohSent from my iPhone