Tak dla potomności i żebym o tym nie zapomniał. A może i jeszcze komuś się przyda (takim studentom PG mieszkającym w akademikach :P):
1 2 3 4 5
| tc qdisc del root dev eth0 2>/dev/null
tc qdisc add dev eth0 root handle 1:0 htb
tc class add dev eth0 parent 1:0 classid 1:42 htb rate 1Gbit burst 1mbit
tc class add dev eth0 parent 1:42 classid 1:2 htb rate 54kbps burst 6144
iptables -t mangle -A OUTPUT -d ! 153.19.208.0/20 -m time --timestart 9:55 --timestop 1:05 -j CLASSIFY --set-class 1:2 |
I od góry:
Czyści kolejkę.
Tworzy nową kolejkę opartą o HTB.
Dodaje klasę ogólną (czyli bez cięcia łącza).
Dodaje podklasę która tnie łącze.
Regułka iptables która przy pomocy utworzonej klasy pilnuje uploadu od 9:55 do 1:05.
Błędy:
1. Nie wiem czemu, ale w przypadku pierwszej klasy można podać rozmiar burst’u w megabitach a w przypadku drugiej w bajtach (burst niby przyjmuje tylko bajty a resztę sam wylicza), bo w kilobajtach już nie działa.
2. W przypadku ściągania z pełną prędkością (dla łącza 100mb/s, bez ograniczania uploadu, faktycznie jest to 100mb/s) następuje krótki okres ściągania 8MB/s, później spada do 3-4, by rosnąć do 5-6, znowu spada do 3-4 i tak w kółko.