Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork88
A tc command wrapper. Make it easy to set up traffic control of network bandwidth/latency/packet-loss/packet-corruption/etc. to a network-interface/Docker-container(veth).
License
thombashi/tcconfig
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
tcconfig is a tc command wrapper. Make it easy to set up traffic control of network bandwidth/latency/packet-loss/packet-corruption/etc. to a network-interface/Docker-container(veth).
Easy to apply traffic shaping rules to specific networks:
- Outgoing/Incoming packets
- Source/Destination IP-address/network (IPv4/IPv6)
- Source/Destination ports
The following parameters can be set to network interfaces:
- Network bandwidth rate
[G/M/K bps]
- Network latency
[microseconds/milliseconds/seconds/minutes]
- Packet loss rate
[%]
- Packet corruption rate
[%]
- Packet duplicate rate
[%]
- Packet reordering rate
[%]
- Packet limit count
[COUNT]
- Network interfaces: e.g.
eth0
- Docker container (
veth
corresponding with a container)
tcset
is a command to add a traffic control rule to a network interface (device).
#tcset eth0 --rate 100Kbps
You can use time units (such as us/sec/min/etc.) to designate delay time.
#tcset eth0 --delay 100ms
#tcset eth0 --delay 10sec
#tcset eth0 --delay 0.5min
You can also use the following time units:
Unit | Available specifiers (str) |
---|---|
hours | h /hour /hours |
minutes | m /min /mins /minute /minutes |
seconds | s /sec /secs /second /seconds |
milliseconds | ms /msec /msecs /millisecond /milliseconds |
microseconds | us /usec /usecs /microsecond /microseconds |
#tcset eth0 --loss 0.1%
#tcset eth0 --rate 100Kbps --delay 100ms --loss 0.1%
#tcset eth0 --delay 100ms --network 192.168.0.10
#tcset eth0 --delay 100ms --network 192.168.0.0/24 --port 80
Executetcconfig
with--docker
option on a Docker host:
#tcset<container name or ID> --docker ...
You could use--src-container
/--dst-container
options to specify the source/destination container.
You need to run a container with--cap-add NET_ADMIN
optionif you would like to set a tc rule within a container:
docker run -d --cap-add NET_ADMIN -t <docker image>
A container image that builtin tcconfig can be available athttps://hub.docker.com/r/thombashi/tcconfig/
tcdel
is a command to delete traffic shaping rules from a network interface (device).
You can delete all of the shaping rules for theeth0
with-a
/--all
option:
#tcdel eth0 --all
tcshow
is a command to display the current traffic control settings for network interface(s).
#tcset eth0 --delay 10ms --delay-distro 2 --loss 0.01% --rate 0.25Mbps --network 192.168.0.10 --port 8080#tcset eth0 --delay 1ms --loss 0.02% --rate 500Kbps --direction incoming#tcshow eth0{ "eth0": { "outgoing": { "dst-network=192.168.0.10/32, dst-port=8080, protocol=ip": { "filter_id": "800::800", "delay": "10.0ms", "delay-distro": "2.0ms", "loss": "0.01%", "rate": "250Kbps" } }, "incoming": { "protocol=ip": { "filter_id": "800::800", "delay": "1.0ms", "loss": "0.02%", "rate": "500Kbps" } } }}
More examples are available athttps://tcconfig.rtfd.io/en/latest/pages/usage/index.html
tcconfig
can be installed fromPyPI viapip (Python package manager) command.
sudo pip install tcconfig
curl -sSL https://raw.githubusercontent.com/thombashi/tcconfig/master/scripts/installer.sh | sudo bash
- mandatory: required for
tc
command: - Ubuntu/Debian:
iproute2
- Fedora/RHEL:
iproute-tc
- Ubuntu/Debian:
- mandatory: required for
- optional: required when you use the
--iptables
option: iptables
- optional: required when you use the
sch_netem
https://tcconfig.rtfd.io/en/latest/pages/troubleshooting.html
https://hub.docker.com/r/thombashi/tcconfig/
About
A tc command wrapper. Make it easy to set up traffic control of network bandwidth/latency/packet-loss/packet-corruption/etc. to a network-interface/Docker-container(veth).
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.