[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: htb - 2 klienci dziela sie jednym laczem



Super dziekuje za wiadomosc ale nie chodzi mi o to. Ponizej podam przyklad ktory zobrazuje o co mi chodzi:


$tc class add dev eth0 parent 1:0 classid 1:1 htb rate 100mbit ceil 100mbit
$tc class add dev eth0 parent 1:0 classid 1:200 htb rate 10kbit ceil 512kbit

$tc class add dev eth0 parent 1:1 classid 1:37 htb rate 8kbit ceil 128kbit prio 2 $tc class add dev eth0 parent 1:1 classid 1:38 htb rate 8kbit ceil 128kbit prio 2

$tc class add dev eth0 parent 1:200 classid 1:81 htb rate 8kbit ceil 512kbit prio 2 $tc class add dev eth0 parent 1:200 classid 1:82 htb rate 8kbit ceil 512kbit prio 2 $tc class add dev eth0 parent 1:200 classid 1:83 htb rate 8kbit ceil 512kbit prio 2

tc filter add dev eth0 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.0.37 flowid 1:37 tc filter add dev eth0 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.0.38 flowid 1:38

tc filter add dev eth0 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.0.81 flowid 1:81 tc filter add dev eth0 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.0.82 flowid 1:82 tc filter add dev eth0 protocol ip preference 2 parent 1:0 u32 match ip dst 192.168.0.83 flowid 1:83
$tc qdisc add dev eth0 parent 1:37 handle 80:0 sfq perturb 10
$tc qdisc add dev eth0 parent 1:38 handle 81:0 sfq perturb 10

$tc qdisc add dev eth0 parent 1:81 handle 63:0 sfq perturb 10
$tc qdisc add dev eth0 parent 1:82 handle 64:0 sfq perturb 10
$tc qdisc add dev eth0 parent 1:83 handle 65:0 sfq perturb 10

Takie rozwiazanei nie dziala odpowiednio czy ma ktos pomysl an inne rozwiazanie tego problemu ??

Pozdrawiam
Robert Niechciał

----- Original Message ----- From: "Grzegorz Krugły" <gk@karko.net>
To: <debian-user-polish@lists.debian.org>
Sent: Thursday, October 07, 2004 3:20 PM
Subject: Re: htb - 2 klienci dziela sie jednym laczem


Noodly napisał(a):

Witam mam pytanie odnosnie htb..
A wiec jak zrobic w htb tak aby kilka komputerow dzielolo sie jednym pasmem powiedzmy komputery od 192.168.0.10-15 maja wspolne 256kilo a reszta ma swoje ograniczenia ??
 Prosze o pomoc
 Pozdrawiam Robert Niechciał

Poniżej wklejam zawartość pliku masquerade, który wrzuciłem sobie do /etc/network/if-up.d/, dzięki czemu odpala się zawsze wtedy, gdy podnoszę interfejsy sieciowe. Skrypt generalnie ustawia maskaradę (dzięki której wszyscy, którzy podepną się do switcha mają dostęp do internetu), a następnie (linie zaczynające się od tc) ustawiam HTB tak, że ja (172.16.0.2) mam gwarantowane 256kbps, a pozostali (172.16.0.3-10) - 128kbps. Pamiętaj, że ograniczać możesz ruch WYCHODZĄCY z serwera. U mnie jest to mniej więcej tak:


INTERNET    ----wlan0-----   DEBIAN-BRAMA   ----eth0----  SIEĆ DOMOWA

Dlatego ograniczam ruch z bramy do sieci domowej, tj. na eth0. To automatycznie ogranicza userom dostęp do internetu (jak do bramy mają np. max. 256kbps, to do internetu więcej nie wyciągną). Linie z sfq perturb nie są obowiązkowe, ale dzięki nim jak ktoś odpali eMule i wykorzysta całe należne mu pasmo, to nie zablokuje sobie np. maili - pakiety zawsze zostaną "zmieszane", by przechodziły wszystkie. Sieć mam ethernet100, więc ustawiłem ceil na 80-90Mb - żeby w razie czego nie mieć sieci zapchanej po brzegi :)

To tyle - chaotycznych nieco - wyjaśnień.
Powiem tylko, że skrypcik napisałem na podstawie wielu różnych źródeł i spełnia on swoje zadanie u mnie w chacie (3 kompy + brama + czasem kolega z laptopem). Dodatkowo postawiłem serwer DHCP, dzięki czemu konfiguracja klientów przebiega automatycznie :)




#!/bin/sh

echo -n "Konfiguruje udostepnianie internetu..."
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter
iptables -t filter -P FORWARD DROP
iptables -t filter -A FORWARD -s 172.16.0.0/255.255.0.0 -d 0/0 -j ACCEPT
iptables -t filter -A FORWARD -s 0/0 -d 172.16.0.0/255.255.0.0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.0.2 -d 0/0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.0.3 -d 0/0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.0.4 -d 0/0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.0.5 -d 0/0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.0.6 -d 0/0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.0.7 -d 0/0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.0.8 -d 0/0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.0.9 -d 0/0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 172.16.0.10 -d 0/0 -j MASQUERADE

tc qdisc del root dev eth0
tc qdisc add dev eth0 root handle 1:0 htb

tc class add dev eth0 parent 1:0 classid 1:1 htb rate 90000kbit ceil 90000kbit

tc class add dev eth0 parent 1:1 classid 1:2 htb rate 256kbit ceil 80000kbit tc class add dev eth0 parent 1:1 classid 1:3 htb rate 128kbit ceil 80000kbit tc class add dev eth0 parent 1:1 classid 1:4 htb rate 128kbit ceil 80000kbit tc class add dev eth0 parent 1:1 classid 1:5 htb rate 128kbit ceil 80000kbit tc class add dev eth0 parent 1:1 classid 1:6 htb rate 128kbit ceil 80000kbit tc class add dev eth0 parent 1:1 classid 1:7 htb rate 128kbit ceil 80000kbit tc class add dev eth0 parent 1:1 classid 1:8 htb rate 128kbit ceil 80000kbit tc class add dev eth0 parent 1:1 classid 1:9 htb rate 128kbit ceil 80000kbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 128kbit ceil 80000kbit

tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 172.16.0.2 flowid 1:2 tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 172.16.0.3 flowid 1:3 tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 172.16.0.4 flowid 1:4 tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 172.16.0.5 flowid 1:5 tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 172.16.0.6 flowid 1:6 tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 172.16.0.7 flowid 1:7 tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 172.16.0.8 flowid 1:8 tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 172.16.0.9 flowid 1:9 tc filter add dev eth0 protocol ip parent 1:0 u32 match ip dst 172.16.0.10 flowid 1:10

tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:4 handle 4:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:5 handle 5:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:6 handle 6:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:7 handle 7:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:8 handle 8:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:9 handle 9:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:10 handle 10:0 sfq perturb 10

echo "...skonczylem"





--
To UNSUBSCRIBE, email to debian-user-polish-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org





Reply to: