Emulowanie parametrów sieci przy pomocy netem

netem służy do emulowania opóźnień i utraty danych w sieciach komputerowych. Przy jego pomocy możemy sprawdzić czy nasze oprogramowanie jest odporne na działanie zakłóceń w sieci.

Do testów używam systemu Debian. Instalujemy emulator:

apt-get install netemul

Po instalacji możemy dodawać reguły zmieniające parametry sieci. Poniżej zamieszczam przykłady dwóch najbardziej przydatnych reguł, czyli opóźnienia oraz utraty pakietów. Wszystkie polecenia wykonujemy bezpośrednio w konsoli.

Opóźnienie

Pingujemy dowolny serwer:

PING google.pl (173.194.113.63) 56(84) bytes of data.
64 bytes from some.host.com (173.194.113.63): icmp_req=1 ttl=54 time=289 ms
64 bytes from some.host.com (173.194.113.63): icmp_req=2 ttl=54 time=280 ms
64 bytes from some.host.com (173.194.113.63): icmp_req=3 ttl=54 time=256 ms
64 bytes from some.host.com (173.194.113.63): icmp_req=4 ttl=54 time=256 ms

Dodajemy regułę:

tc qdisc add dev eth0 root netem delay 200ms

Ponownie pingujemy ten sam serwer:

PING google.pl (173.194.113.63) 56(84) bytes of data.
64 bytes from some.host.com (173.194.113.63): icmp_req=1 ttl=54 time=566 ms
64 bytes from some.host.com (173.194.113.63): icmp_req=2 ttl=54 time=519 ms
64 bytes from some.host.com (173.194.113.63): icmp_req=3 ttl=54 time=462 ms
64 bytes from some.host.com (173.194.113.63): icmp_req=4 ttl=54 time=457 ms

Jak widać czas odpowiedzi wzrósł o ok. 200 ms.

Utrata pakietów

Reguła:

tc qdisc change dev eth0 root netem loss 10%

Oraz wyniki próbkowania:

--- google.pl ping statistics ---
36 packets transmitted, 32 received, 11% packet loss, time 62492ms

Pozostałe reguły znajdziemy w dokumentacji.

Linki

http://www.linuxfoundation.org/collaborate/workgroups/networking/netem

Ten wpis został opublikowany w kategorii Linux, Oprogramowanie. Dodaj zakładkę do bezpośredniego odnośnika.