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 fare ssh fallire se l'inoltro della port non riesce
  • Linux; Impostare la dimensione del pezzo RAID5 a 4kB per adattarsi alla dimensione del block FS e al settore del disco fisico
  • Costo di esecuzione di un server specifico in base al consumo
  • Come utilizzare rsnapshot senza radice remota?
  • Riduci le scritture da una specifica applicazione?
  • Dare autorizzazioni di lettura utente ovunque (Linux)
  • 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.