Mam mały problem z ograniczeniem ruchu w sieci LAN, interesuje mnie
mianowicie ograniczenie uploadu do internetu na poszczególnych stacjach 
w sieci.
Kluczowa jest tutaj stacja 192.168.0.2 która ma mieć max upload 10 Kbit.

Moje interfejsy sieciowe
eth0 - karta sieciowa
ppp0 - SDI

A skrypt wygląda tak:

-------------------------------------------------------
#!/bin/bash

tc qdisc del root dev ppp0
iptables -t mangle -D POSTROUTING -o ppp0 -j SHAPER-OUT
iptables -t mangle -F SHAPER-OUT
iptables -t mangle -X SHAPER-OUT

# Na razie to samo... tworzymy główną kolejkę
tc qdisc add dev ppp0 root handle 1:0 htb

# Główna klasa: 115kbit
tc class add dev ppp0 parent 1:0 classid 1:1 htb rate 115kbit ceil 115kbit 
quantum 12

# 3 klasy dla każdego komputera, łącznie z serwerem. Końcówkę quantum
# musiałem dopisać, bo inaczej kernel wypisywał, że "quantum of class
# ... is too small" i zaśmiecał logi.
# Klasy o numerach 2 do 4, są to podklasy głównej klasy 1:1
tc class add dev ppp0 parent 1:1 classid 1:2 htb rate 30kbit ceil 115kbit 
quantum 4  # serwer

tc class add dev ppp0 parent 1:1 classid 1:3 htb rate 10kbit ceil 10kbit 
quantum 4  # Lancelot
tc class add dev ppp0 parent 1:1 classid 1:4 htb rate 30kbit ceil 115kbit 
quantum 4  # Quick

# Sprawiedliwe kolejkowanie...
tc qdisc add dev ppp0 parent 1:2 handle 2:0 sfq perturb 10
tc qdisc add dev ppp0 parent 1:3 handle 3:0 sfq perturb 10
tc qdisc add dev ppp0 parent 1:4 handle 4:0 sfq perturb 10

# Klasyfikujemy nie wg źródła pochodzenia pakietu, tylko wg fwmarka (to
# po handle, 20 do 22).
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 20 fw flowid 
1:2
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 21 fw flowid 
1:3
tc filter add dev ppp0 protocol ip preference 1 parent 1:0 handle 22 fw flowid 
1:4

# Przypisanie pakietom znaczków, w zależności od pochodzenia. Każdy
# pakiet wychodzący dostaje jakiś mark (-j MARK --set-mark xx):
iptables -t mangle -N SHAPER-OUT
iptables -t mangle -I POSTROUTING -o ppp0 -j SHAPER-OUT
iptables -t mangle -A SHAPER-OUT -p tcp -s 192.168.0.2 -j MARK --set-mark 21 # 
od Lancelota
iptables -t mangle -A SHAPER-OUT -s 192.168.0.3 -j MARK --set-mark 22 # od 
Quick'a

# Z pakietami wychodzącymi z serwera jest
# pewnien problem, ponieważ adresem źródłowym jest zewnętrzne IP SDI
# (80.*). Tak więc pozostałe pakiety bez znaczka (mark=0) oznaczam jako
# 20.
iptables -t mangle -A SHAPER-OUT -m mark --mark 0 -j MARK --set-mark 20
-------------------------------------------------------

Niby wszystko powinno być ok (z mego punktu widzenia), lecz problem
polega na tym, iż skrypt ograniczna zarówno upload jak i co ciekawe
download??!!! 
Wygląda na to, jakby były znaczone zarówno pakiety wędrujące do stacji
jak i z stacji, mimo, iż w iptables użyłem opcji "-s", dlaczego???
Co może być nie tak? Będę wdzięczny za jakiekolwiek wskazówki...
Błędnie napisałem regułkę iptables??? Czy to może co innego, bo nie mam
pojęcia?

POMOCY!!!

-- 
Jakub "Quickest" Kozicki
IMSIS, Bydgoszcz
.mailto: q u i c k e s t <at> p l d - l i n u x <dot> n e t
RLU: #273864 | "Los jest ślepy, ale trafia bez pudła."

_______________________________________________
pld-users-pl mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-users-pl

Odpowiedź listem elektroniczym