Simulando un collegamento lento con tc

Ho una casella di linux (Centos 5.5) su cui voglio limitare il traffico di networking. Ho un'applicazione che distribuiamo ai clienti e voglio provarlo sulla width di banda consigliata minima di 256Mbit / sec. Finora i tutorial di tc che ho visto sembrano consentire di limitare la width di banda secondo determinati criteri, ma voglio limitare la width di banda in tutte le situazioni (da / per tutto l'indirizzo IP, non import quale sia l'intestazione IP, ecc.).

Un tutorial suggerito di utilizzare:

  • Come può un utente malintenzionato guadagnare radice la prossima volta che un account compromesso fa?
  • Perché caricare solo la metà dei cores sul mio server linux hyperthreaded?
  • C'è un modo per get l'utilizzo corrente di txqueue su un dispositivo eth0 o tun?
  • ext4 in debian 5 (2.6.26)
  • Identificazione dell'interface di networking fisica in linux
  • Analisi di crash di Ubuntu 12.04 - dati binari strani su tutti i file aperti al momento dell'incidente
  • tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2 

    ma ho il seguente errore:

     Unknown filter "flowid", hence option 10:2 is unparsable 

    Qualunque idea su come limitare la width di banda che entra / esce da eth0 in tutte le circostanze?

    3 Solutions collect form web for “Simulando un collegamento lento con tc”

    Se si desidera applicare la limitazione a tutto il traffico in output, non è necessario alcun filter. Basta aggiungere il tuo qdisc alla maniglia di root interface così:

     tc qdisc add dev eth0 root handle 1: tbf rate 256mbit latency 1ms burst 1540 

    Se vuoi formare il traffico in arrivo della polizia, è un po 'più complicato. Dovrai utilizzare ad esempio un'interface IFB:

     modprobe ifb ip link set dev ifb0 up tc qdisc add dev eth0 ingress tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 # ^- this is a dummy filter, match u32 0 0 matches all traffic tc qdisc add dev ifb0 root handle 1: tbf rate 256mbit latency 1ms burst 1540 

    Ecco un approccio diverso, utilizzando due semplici filtri:

     tc qdisc add dev eth0 ingress tc filter add dev eth0 root protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1 tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1 

    Questo potrebbe essere un po 'fuori dal tuo ambito, ma WAN-emu è stato molto bravo a emulare ambienti con strani requisiti di throughput e latenza [1]

    [1]: http://speed.cis.nctu.edu.tw/wanemu/ WAN-emu

    Hai aggiunto 1 righello come questo tc qdisc add dev eth0 maniglia di root 10: htb default 20

    affter che come tuo

    tc filter aggiungere dev eth0 protocollo ip parent 10: prio 2 flowid 10: 2

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