Inietta ritardo tra macchine virtuali in una VLAN

Vorremmo simulare l'impatto della località utilizzando VM all'interno di una su una nuvola pubblica (ad esempio AWS EC2).

Per fare questo, vorremmo iniettare ritardi nei pacchetti in modo che possiamo simulare una particolare topologia di networking.

Supponiamo che ci siano tre VM: A, B, C

| A | <- 5 μs delay -> B | <---- 25 μs delay ----> C 

Come possiamo facilmente iniettare un ritardo di 5 μs (o qualsiasi valore arbitrario) per le connessioni tra A e B, rispetto a un ritardo di 25 μs tra A e C? Qualsiasi soluzione è apprezzata (modifiche di livello del kernel Linux su each VM / creazione di una networking di sovrapposizione …).

One Solution collect form web for “Inietta ritardo tra macchine virtuali in una VLAN”

La creazione di ritardi può essere simulata dagli algoritmi di modifica del traffico supportti dal kernel Linux. Dal manuale netem :

 # tc qdisc add dev eth0 root handle 1: prio # tc qdisc add dev eth0 parent 1:3 handle 30: tbf rate 20kbit buffer 1600 limit 3000 # tc qdisc add dev eth0 parent 30:1 handle 31: netem delay 200ms 10ms distribution normal # tc filter add dev eth0 protocol ip parent 1:0 prio 3 u32 match ip dst <IP_of_server_B>/32 flowid 1:3 

Quale, quando viene rilasciato sul server A, crea un ritardo di 200 ms con una variazione random di ± 10 ms nel traffico al server B.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.