50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
# tc-gen
|
|
tc-gen is a wrapper around all the complexity of modern traffic shaping and
|
|
policing on linux. It tries to use best practices whenever possible while still
|
|
being generic and easy to use. The script is using HTB with fq_codel to do
|
|
the heavy lifting.
|
|
|
|
Run tc-gen.sh without parameters to see more details.
|
|
|
|
## Examples of common use
|
|
Shape egress to 25 mbit/s
|
|
|
|
tc-gen.sh -i eth0 -u 25
|
|
Shape egress to 5 mbit/s and ingress to 10 mbit/s using IFB-interface
|
|
|
|
tc-gen.sh -i eth0 -u 5 -d 10 -f ifb0
|
|
Shape egress to 1500 kbit/s and police ingress to 20 mbit/s
|
|
|
|
tc-gen.sh -i eth0 -u 1500k -d 20M
|
|
Display current configuration
|
|
|
|
tc-gen.sh -i eth0
|
|
Remove configuration
|
|
|
|
tc-gen.sh -i eth0 -x
|
|
|
|
## /etc/network/interfaces examples
|
|
# Simple DHCP WAN config
|
|
allow-auto eth1
|
|
iface eth1 inet dhcp
|
|
post-up /usr/local/bin/tc-gen.sh -i ${IFACE} -u 10 -d 100 -f ifb0
|
|
|
|
# More advanced example with an additional tc filter exclude for
|
|
# UDP-encapsulated IPsec ESP-traffic to avoid double counting IPsec data on
|
|
# ingress
|
|
allow-auto bond0.12
|
|
iface bond0.12 inet dhcp
|
|
post-up /usr/local/bin/tc-gen.sh -i ${IFACE} -u 10 -d 100 -f ifb0
|
|
post-up /sbin/tc filter add dev ${IFACE} parent ffff: protocol ip prio 1 u32 match ip protocol 17 0xff match ip dport 4500 0xffff action pass
|
|
|
|
# Example with egress shaping on gre-tunnel
|
|
allow-auto gre2
|
|
iface gre2 inet tunnel
|
|
address 10.0.1.0
|
|
netmask 255.255.255.254
|
|
local 10.0.2.2
|
|
endpoint 10.1.2.2
|
|
mode gre
|
|
mtu 1400
|
|
post-up /usr/local/bin/tc-gen.sh -i ${IFACE} -u 25
|