Hi,
ich möchte an einem Interface künstliche Latenz erzeugen (von 20ms auf ca. 1000ms). Also, dass ein ping auf google.de nich mehr 20ms, sondern 1000ms dauert.
Kann mir jemand einen Ansatzpunkt liefern, womit ich das erreichen könnte? Mein erster Gedanke war iptables, aber eigentlich hat das damit wenig zu tun.
Viele Grüße
Martin
[gelöst] Künstlich Latenz am Interface erzeugen
[gelöst] Künstlich Latenz am Interface erzeugen
Zuletzt geändert von marting am 21.06.2012 12:26:42, insgesamt 1-mal geändert.
Re: Künstlich Latenz am Interface erzeugen
Für Mac gibt es das hier:
http://www.maclife.de/mac/software/util ... internetve
Auf die Gui kann ich verzichten, aber sonst sieht das sehr gut aus. Ginge ggf. auch mit Gui, ich habe noch nen Rechner mit X da, den ich dafür hernehmen könnte.
Edit: Für Windows sehe ich auch grad was:
http://www.softperfect.com/products/connectionemulator/
Da wird es doch auch was passendes für Linux geben ...
http://www.maclife.de/mac/software/util ... internetve
Auf die Gui kann ich verzichten, aber sonst sieht das sehr gut aus. Ginge ggf. auch mit Gui, ich habe noch nen Rechner mit X da, den ich dafür hernehmen könnte.
Edit: Für Windows sehe ich auch grad was:
http://www.softperfect.com/products/connectionemulator/
Da wird es doch auch was passendes für Linux geben ...
Re: Künstlich Latenz am Interface erzeugen
Ich werde es jetzt mal mit tc und netem probieren.
Re: Künstlich Latenz am Interface erzeugen
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Künstlich Latenz am Interface erzeugen
Ich habe es jetzt mit tc und netem hinbekommen, das ist etwas vielfältiger als der gepostete Link - aber vielen Dank.
Meine Schwierigkeit war, dass das Kommando
tc qdisc change dev eth0 root netem delay 100ms 10ms
immer den Fehler "RNETLINK answers: No such file or directory" brachte. Deshalb habe ich den Kernel neu kompiliert und NETEM von Modul auf ON geändert. Hat aber auch nicht funktioniert.
Irgendwann bin ich drauf gekommen, dass ich das Interface erst mal adden muss - folgendes funktioniert also auch mit dem Standardkernel auf Anhieb![Smile :-)](./images/smilies/icon_smile.gif)
tc qdisc add dev eth0 root netem delay 100ms 10ms
Aber vielen Dank!
Meine Schwierigkeit war, dass das Kommando
tc qdisc change dev eth0 root netem delay 100ms 10ms
immer den Fehler "RNETLINK answers: No such file or directory" brachte. Deshalb habe ich den Kernel neu kompiliert und NETEM von Modul auf ON geändert. Hat aber auch nicht funktioniert.
Irgendwann bin ich drauf gekommen, dass ich das Interface erst mal adden muss - folgendes funktioniert also auch mit dem Standardkernel auf Anhieb
![Smile :-)](./images/smilies/icon_smile.gif)
tc qdisc add dev eth0 root netem delay 100ms 10ms
Aber vielen Dank!
Re: [gelöst] Künstlich Latenz am Interface erzeugen
Ich hatte heute mit diesem Thema zu tun und habe ebenfalls tc verwendet, das Beispiel aus tc-tbf(8) mit abgewandelten Werten. Allerdings ist latency da wohl eher als ein Mittelwert zu sehen, zumindest habe ich das in der Kürze nicht auf einen halbwegs konstanten Wert festnageln können.
Gruß Cae
Andersherum: Das Interface hat bestimmte Vorgaben, die man ändern (change) kann. Am Anfang ist die Liste der Vorgaben leer, also kommt es zu dem eher irreführenden Fehler, bis man eine Vorgabe ge-add-et hat.marting hat geschrieben:dass ich das Interface erst mal adden muss
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: [gelöst] Künstlich Latenz am Interface erzeugen
Das ist natürlich, was ich ausdrücken wollte.Cae hat geschrieben:Andersherum: Das Interface hat bestimmte Vorgaben, die man ändern (change) kann. Am Anfang ist die Liste der Vorgaben leer, also kommt es zu dem eher irreführenden Fehler, bis man eine Vorgabe ge-add-et hat.marting hat geschrieben:dass ich das Interface erst mal adden muss
Ne, das funktioniert wunderbar und es wird genau der angegebene Wert verwendet:Cae hat geschrieben:Ich hatte heute mit diesem Thema zu tun und habe ebenfalls tc verwendet, das Beispiel aus tc-tbf(8) mit abgewandelten Werten. Allerdings ist latency da wohl eher als ein Mittelwert zu sehen, zumindest habe ich das in der Kürze nicht auf einen halbwegs konstanten Wert festnageln können.
Code: Alles auswählen
root@mg4:~# ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=51 time=12.7 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=51 time=14.3 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=51 time=12.4 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=51 time=14.3 ms
64 bytes from 8.8.8.8: icmp_req=5 ttl=51 time=12.5 ms
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 12.443/13.274/14.357/0.875 ms
root@mg4:~# tc qdisc add dev eth0 root netem delay 100ms
root@mg4:~# ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=51 time=112 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=51 time=112 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=51 time=112 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=51 time=114 ms
64 bytes from 8.8.8.8: icmp_req=5 ttl=51 time=113 ms
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4002ms
rtt min/avg/max/mdev = 112.572/113.161/114.110/0.627 ms
root@mg4:~# tc qdisc add dev eth0 root netem delay 1000ms
RTNETLINK answers: File exists
root@mg4:~# tc qdisc change dev eth0 root netem delay 1000ms
root@mg4:~# ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=51 time=1014 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=51 time=1014 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=51 time=1012 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=51 time=1012 ms
64 bytes from 8.8.8.8: icmp_req=5 ttl=51 time=1012 ms
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4012ms
rtt min/avg/max/mdev = 1012.672/1013.395/1014.492/1.342 ms, pipe 2
root@mg4:~# tc qdisc del dev eth0
Code: Alles auswählen
root@mg4:~# tc qdisc add dev eth0 root netem delay 100ms 10ms
root@mg4:~# ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=51 time=118 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=51 time=117 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=51 time=111 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=51 time=120 ms
64 bytes from 8.8.8.8: icmp_req=5 ttl=51 time=110 ms
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 110.917/115.609/120.102/3.878 ms
root@mg4:~# tc qdisc del dev eth0 root
Frage geklärt?
Viele Grüße
Martin