How to deliberately introduce a delay for incoming UDP packets

7

5

I want each packet (that match iptables rule) to be delayed by some fixed time interval. How to to this?

Preudocode: iptables -A INPUT -p udp <more conditions> -j DELAY --delay 50000 # delay UDP packets for 50 milliseconds

Update: @related Simulating a low-bandwidth, high-latency network connection on Linux

Vi.

Posted 2010-08-09T12:22:21.360

Reputation: 13 705

Why? Testing purposes? – Shinrai – 2010-08-09T22:23:22.570

Yes, testing/debugging. Actually tc qdisc add dev eth1 root netem delay 250ms helped. – Vi. – 2010-08-12T09:51:03.737

Answers

8

tc qdisc add dev eth1 root netem delay 250ms hack allows to do it globally for the given interface. It includes UDP packets.

It delays outgoing packets only although. For incoming packets you can route packets though a virtual router (created by separate network namespace and veth with netem attached to veth side of link).

Vi.

Posted 2010-08-09T12:22:21.360

Reputation: 13 705