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