shaperd + kaza, iMesh, etc, etc

Szymon 'Trasher' K szymon w trashlandia.dyndns.org
Nie, 22 Cze 2003, 13:24:42 CEST


19 czerwca 2003 (16:38:13) Krzysiek Taraszka napisal:
KT> mam pytanie, moze nie doczytalem albo cos, ale nie mam pojecia jak za pomocą
KT> programu shaperd zmniejszyc ruch na Kaza/iMesh, etc, etc do minimum ..

A propos ograniczania Kazaa, to jakis czas temu na debian-users
pojawilo sie cos takiego:
###########################
Autor:Piotr Gasidlo (quaker w pandora.barbara.ds.polsl.gliwice.pl)
Temat:Kazaa - ostateczne starcie :-) 

View: Complete Thread Liczba dokumentów: 4 
Original Format
 Grupy dyskusyjne:pl.comp.os.linux
Data:2003-01-24 03:40:25 PST 


Witam.
Chyba udało mi się stworzyć rozwiązanie MARK'ujące pakiety związane z Kazaa.
Rozwiązanie to stworzyłem razem z Piotrem Jelonkiem (widziałem że posyłał
już posty na grupe). Ja chce troche to uzupełnić. Całość wygląda ono 
następująca:
Wymagania:
- moduł ipt_string
- moduł ipt_recent (WAZNE: conajmniej w wersji 0.2.5, lub spachowany 0.2.3)
Konfiguracja:
[ ... fragment konfiguracji firewall ... ]
# tutaj trafiają pakiety związane z połączeniami peer-to-peer
#
iptables -t mangle -N peer-to-peer
iptables -t mangle -A peer-to-peer -j MARK --set-mark 0x1
iptables -t mangle -A peer-to-peer -j ACCEPT
# ruch wchodzący, eth0 - interfejs na świat
#
# 1
#
iptables -t mangle -A FORWARD \
       -o eth0 \
       -m recent --name peer-to-peer --update --seconds 60 --rdest \
       -j peer-to-peer
# 2
#
iptables -t mangle -A FORWARD \
       -i eth0 \
       -m string --string "X-Kazaa-Username:" \
       -m recent --name peer-to-peer --rsource --set \
       -j peer-to-peer
Ja to działa:
Regułka oznaczona jako #2 znajduje pakiet rozpoczynający. Zawiera on słowo
X-Kazaa-Username:". Adres IP hosta, który to wysłał jest zapisywane na
liście, którą zbudował moduł ipt_recent. Na liśnie zapamiętywany jest adres
SOURCE. Następnie następuje skok do peer-to-perr i oznaczenie pakietu jako
0x1. Teraz swoją rolę spełnia regułka #1. Dla dowolnego pakietu sprawdzane
jest czy adres DEST to host, który wysłał X-Kazaa poprzednio. Jeżeli tak to
następuje skok do peer-to-perr i oznaczenie pakietu. Ważne jest to ACCEPT w
peer-to-peer aby niepotrzebnie nie wywyływać --string z regułki # 2. Trochę
o paremetrach ipt_recent: --set dopisanie IP do listy, --update
zaktualizowanie IP w liście (jeżeli istnieje to poprawienie czasu ostaniego
zauważenia pakietu) --seconds czas po jakim wpis w tabeli jest nieważny
(pakiety wtedy nie będą markowane).
Wydajność:
Wyjście na świat 40Mbit, obciążenie gateway 25% (Celeron 900), średnio 18000
wpisów w /proc/net/ip_conntrack.
Kolejkowanie:
To już zostawiam, bo chyba każdy wie jak chwycić pakiety oznaczone jako 0x1
:-)
Przyszłość:
Jest to rozwiązanie tymczasowe. Osobiście przymierzam się do pracy
magisterskiej w którym chce opisać netfilter + stworzyć moduł do niego.
Wydaje mi się, że będę w stanie stworzyć ip_conntrack_kazaa :-)
Bardzo czekam na wasze uwagi:
##################################


Nie probowalem, ale, jak ktos sprobuje, to niech da znac.


-- 
\                          szymon @ trashlandia.dyndns.org  /
 )  Szymon 'Trasher'      trasher @ void.univ.gda.pl       (
/                          gg:1496879                       \
http://pldusers.one.pl/ - Nieoficjalny serwis użytkowników PLD



Więcej informacji o liście dyskusyjnej pld-users-pl