Narzędzia użytkownika

Narzędzia witryny


tc-new

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

tc-new [2013/01/15 00:00] (aktualna)
Linia 1: Linia 1:
 +===6.2.11. Tc-new (HTB)===
  
 +==6.2.11.1. Opis==
 +
 +Moduł generujący skrypt zawierający polecenia iptables i tc służące do ograniczania przepływności i limitowania połączeń klientom. Działa podobnie do modułu '​tc',​ lecz obsługuje funkcjonalność pozwalającą na powiązywanie taryf z komputerami. Skrypt tworzy tzw. kanały dla komputerów klienta przypisanych do tej samej taryfy. Przykładowo:​ dla klienta z dwoma komputerami przypisanymi do tej samej taryfy zostaną utworzone dwie klasy (upload i download) oraz po dwa filtry dla każdego komputera. W przypadku gdy klient ma dwie taryfy i do każdej po jednym komputerze powstaną po dwie klasy dla każdej taryfy i odpowiednia ilość filtrów. Wartość początkowa liczników (%x i %h w regułach) wynosi 100.
 +
 +==6.2.11.2. Konfiguracja==
 +
 +Wartości domyślne niektórych opcją są zgodne z modułem tc.
 +
 +  * file
 +
 +Lokalizacja pliku wynikowego. Domyślnie: /​etc/​rc.d/​rc.htb.
 +
 +    Przykład: file = /tmp/rc.htb
 +
 +  * command
 +
 +Polecenie powłoki wykonywane po utworzeniu pliku. Domyślnie: "sh /​etc/​rc.d/​rc.htb start"​.
 +
 +    Przykład: command = "chmod 700 /​tmp/​rc.htb;​ /tmp/rc.htb start"
 +
 +  * begin
 +
 +Nagłówek skryptu. Domyślnie: jak w module tc
 +
 +    Przykład: begin = "#​!/​bin/​bash\n$TC=/​usr/​local/​sbin/​tc\n"​
 +
 +  * end
 +
 +Stopka skryptu. Domyślnie: jak w module tc
 +
 +    Przykład: end = ""​
 +
 +  * class_up
 +
 +Definicja klasy dla uploadu, w której możemy użyć następujących zmiennych: %cid - ID klienta, %cname - nazwa klienta, %h - numer uchwytu klasy %uprate, %upceil. Domyślnie:
 +
 +<​code>​
 +    # %cname (ID:%cid)
 +    $TC class add dev $WAN parent 2:1 classid 2:%h htb rate %upratekbit ceil %upceilkbit $BURST prio 2 quantum 1500
 +    $TC qdisc add dev $WAN parent 2:%h esfq perturb 10 hash dst
 +</​code>​
 +
 +    Przykład: class_up = "$TC class add dev $WAN parent 2:1 classid 2:%h htb rate %upratekbit ceil %upceilkbit $BURST prio 2 quantum 1500"
 +
 +  * class_down
 +
 +Definicja klasy dla downloadu, w której możemy użyć następujących zmiennych: %cid - ID klienta, %cname - nazwa klienta, %h - numer uchwytu klasy, %downrate, %downceil. Domyślnie:
 +
 +<​code>​
 +    $TC class add dev $LAN parent 1:2 classid 1:%h htb rate %downratekbit ceil %downceilkbit $BURST prio 2 quantum 1500
 +    $TC qdisc add dev $LAN parent 1:%h esfq perturb 10 hash dst
 +</​code>​
 +
 +    Przykład: class_up = "$TC class add dev $LAN parent 1:2 classid 1:%h htb rate %downratekbit ceil %ceilceilkbit $BURST prio 2 quantum 1500"
 +
 +  * filter_up
 +
 +Definicja filtrów dla ruchu w kierunku od hosta. Dozwolone zmienne: %n - nazwa hosta, %if - nazwa interfejsu sieci, %i - adres, %m - mac, %ms - lista adresów MAC hosta (oddzielonych przecinkiem),​ %o1, %o2, %o3, %o4 - oktety adresu dziesiętnie,​ %h1, %h2, %h3, %h4 - oktety adresu w zapisie szesnastkowym,​ %h - uchwyt klasy, %x - uchwyt filtra (unikalny numer reguły). Domyślnie:
 +
 +<​code>​
 +    # %n
 +    $IPT -t mangle -A LIMITS -s %i -j MARK --set-mark %x
 +    $TC filter add dev $WAN parent 2:0 protocol ip prio 5 handle %x fw flowid 2:%h
 +</​code>​
 +
 +    Przykład: class_up = "​%n\n$IPT -A src%o3 -s %i -j CLASSIFY --set-class 2:​%h\n"​
 +
 +  * filter_down
 +
 +Definicja filtrów dla ruchu w kierunku do hosta. Dozwolone zmienne: %n - nazwa hosta, %if - nazwa interfejsu sieci, %i - adres, %m - mac, %ms - lista adresów MAC hosta (oddzielonych przecinkiem),​ %o1, %o2, %o3, %o4 - oktety adresu dziesiętnie,​ %h1, %h2, %h3, %h4 - oktety adresu w zapisie szesnastkowym,​ %h - uchwyt klasy, %x - uchwyt filtra (unikalny numer reguły). Domyślnie:
 +
 +<​code>​
 +    $IPT -t mangle -A LIMITS -d %i -j MARK --set-mark %x
 +    $TC filter add dev $LAN parent 1:0 protocol ip prio 5 handle %x fw flowid 1:%h
 +</​code>​
 +
 +    Przykład: class_down = "​%n\n$IPT -A dst%o3 -d %i -j CLASSIFY --set-class 1:​%h\n"​
 +
 +  * climit
 +
 +Definicja reguły dla limitu połączeń hosta. Dozwolone zmienne: %n - nazwa hosta, %if - nazwa interfejsu sieci, %i - adres, %m - mac, %ms - lista adresów MAC hosta (oddzielonych przecinkiem),​ %o1, %o2, %o3, %o4 - oktety adresu dziesiętnie,​ %h1, %h2, %h3, %h4 - oktety adresu w zapisie szesnastkowym,​ %climit - limit połączeń. Domyślnie:
 +
 +    $IPT -t filter -I FORWARD -p tcp -s %i -m connlimit --connlimit-above %climit -j REJECT
 +   
 +    Przykład: climit = ""​
 +
 +  * plimit
 +
 +Definicja reguły dla limitu pakietów dla hosta. Dozwolone zmienne: %n - nazwa hosta, %if - nazwa interfejsu sieci, %i - adres, %m - mac, %ms - lista adresów MAC hosta (oddzielonych przecinkiem),​ %o1, %o2, %o3, %o4 - oktety adresu dziesiętnie,​ %h1, %h2, %h3, %h4 - oktety adresu w zapisie szesnastkowym,​ %plimit - limit pakietów. Domyślnie:
 +
 +<​code>​
 +    $IPT -t filter -I FORWARD -d %i -m limit --limit %plimit/s -j ACCEPT
 +    $IPT -t filter -I FORWARD -s %i -m limit --limit %plimit/s -j ACCEPT
 +</​code>​
 +
 +    Przykład: plimit = ""​
 +
 +  * networks
 +
 +Lista nazw sieci, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie sieci).
 +
 +    Przykład: networks = "lan1 lan2"
 +
 +  * customergroups
 +
 +Lista nazw grup klientów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
 +
 +    Przykład: customergroups = "​grupa1 grupa2"​
 +
 +  * night_hours
 +
 +Zakres godzin nocnych w formacie 24-godzinnym. Np. "​22-5"​ oznacza, że podczas uruchomienia modułu w godzinach od 22:00 do 4:59 brane będą wartości taryf dla godzin nocnych. Obowiązują następujące ograniczenia dla formatu zakresu: nie może zawierać spacji, okres nie może zaczynać się przed godziną 18. Domyślnie: pusta.
 +
 +    Przykład: night_hours = "​24-6"​
 +
 +  * night_no_debtors
 +
 +Włączenie tej opcji spowoduje sprawdzenie czy klient posiada nierozliczone faktury przeterminowane. Jeśli tak, taryfa nocna nie zostanie zastosowana. Domyślnie: false.
 +
 +    Przykład: night_no_debtors = tak
 +
 +  * night_deadline
 +
 +Dodatkowy czas (ilość dni) po terminie płatności,​ zanim faktura zostanie potraktowana jako przeterminowana. Opcja działa w połączeniu z '​night_no_debtors'​. Domyślnie: 0.
 +
 +    Przykład: night_deadline = 7
 +
 +  * multi_mac
 +
 +Jeśli ustawiona na tak (yes, true) utworzony zostanie osobny rekord dla każdego adresu MAC. Tzn. jeśli komputer ma przypisanych kilka adresów MAC, będzie utworzone tyle wpisów ile tych adresów. Domyślnie: nie
 +
 +    Przykład: multi_mac = tak
tc-new.txt · ostatnio zmienione: 2013/01/15 00:00 (edycja zewnętrzna)