11-24-2017 07:52 AM
I'm running a EdgeRouter X with FW 1.9.7
Trying to set up traffic-policy network-emulator in order to trigger for example packet-loss
As a test setup i have two raspberry pi's connected to the EdgeRouter
On one of the raspberry's (RP1), connected on eth3, I have iperf3 set up as a server.
On the other raspberry pi (RP2), connected on eth5, I have iperf3 set up as a client, sending UDP traffic at default rate 1.05 Mbit/s to the server on RP1.
Created a traffic policy named "tp1" via the web interface (later also tried with the CLI) of type network-emulator with packet-loss set to 50%
Enabled traffic-policy "tp1" on eth3, on outgoing( "out")
No warnings or errors
Expect report from the iperf3 server (RP1) to show packet loss in the statistics and the transfer rate to go down, but I see no change what so ever.
Repeated a number of times, switching the port used etc, setting packet-delay 500ms instead of using packet-loss, you name it. No matter what I change I get no visible effect by looking at the receiving side iperf3 server.
Any suggestions or comments on what I might be doing wrong, is there something I have missunderstood?
Previously I have been using tc with netem on a stand alone computer with two eth interfaces, acting as a bridge between two computers, applying packet-loss on outgoing interface of one of them with successfull results. My plan was to now remove the need for a stand alone computer for this and instead run it on the EdgeRouter X.
I have looked at the following posts as a starter on how to run it:
11-26-2017 06:54 AM
Will post the config tomorrow when I have access to it again.
Did test another EdgeRouter X unit today, but this time only with my laptop connected to eth0 with a packet-loss policy enabled.
Evaluated by sending ping from the CLI to my laptop, expecting the packet loss % value output to be roughly the same as I set in the policy. This worked out well, verified a number of different packet-loss settings using a count of 100 pings, size 10b and interval set to 200ms.
Will also start by verifying it the same way as I successfully did with the other unit and my laptop today.
11-27-2017 02:38 AM
Tried a bit more today, tried to mimic my weekend test(ping) but without success, key difference this time is that the traffic policy was applied to other ports than eth0 (which I used in the weekend test)
Still getting no effect what so ever on eth1-eth4
Attaching current config where the policy "tp1" is set up and applied to eth1 and eth2.
11-27-2017 04:36 AM
Continued evaluation has explained why the above scenarios occurrs:
The policy is not having any effect in my test cases because the ports(eth1-eth4) are part of the switch0 interface
My successfull ping test worked because I ran it on eth0, which was outside of the switch0.
Applying the policy to the switch0 interface creates the sought for effect, only negative part is that I can't get per port policy in this case.
Multiple switches is not supported from what I read so I will instead investigate a little on how to best set it up to acchieve per port policy (units connected to eth1-4 does not need to be able to communicate with each other so it should be simple to set up).
11-27-2017 05:50 AM
Maybe you can re-target the policy , so it's only active for IP address of device on specific port.
Beware. Assigning policies to eth ports under sw0 , like you did, creates an invalid config. The ER allows this change, but on reboot it removes all eth ports from switch0, making the ER inaccessible. Check there are no traces left
11-28-2017 01:37 PM
Successfully configured it according to my needs today by removing eth1-4 from the switch, bridging eth1-2 and eth3-4, thereby keeping eth0 available for admin access and making it possilbe to introduce network emulation effects/disturbances on two different links individually by applying different traffic-policy(s).