Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

Użytkownik
Ja rowniez mam przerobiony skrypt BiExi :) Userow zaciagam z pliku, ktory jest generowany. Do tego mam dwie pod sieci i jedno wyjscie. Blokowanie P2P. Wiem, ze ma on pewnie wiele nie dorobek ale dziala.
A co powiecie zebysmy napisai tai skrypt od poczatu, tzn. zbudujemy klocki i pozniej je polaczymy. Np. ktos poda definicje glownych kolejek itp, zaciaganie z plikow userow badz podawanie calej sieci np. 192.168.0.0/16 itp?
Pozdrawiam,
Offline

Użytkownik


hehe a ja pendriva znelezc niemoge jak wruce z pracy to jeszce poszukam a jak nie to skopiuje prototyp z serwera :P
pzdr aki
Offline


Moderator

Użytkownik

Użytkownik


hehe a ja niemoge znalezc swojego dzisiaj wieczorem podepne dysk od serwerka i zrzuce sobie ten skrypt :P to podesle , a co do perla to ja niepomoge , przynajmniej narazie :P ale to nastepne czego chce sie pouczyc :P
Offline




matka przelozona
niom na basha trza cyknac cieplym moczem :P
powiem tak w perl'u pisze sie szybko i przyjemnie :P
dla ambitnych zostaje jeszcze C :P
A tak swoja droga jestem ciekawa opini co w takim skrybcie dla malej osiedlowej sieci by sie przydalo jakie funkcje wedlug was poza NAT'em iQOS'em jestem ciekawa waszych opini na ten temat
Online






Admin łajza







perl to makabra...
python ponad wszystko ;)
Offline


Moderator


Moderator
BiExi napisał(-a):
A tak swoja droga jestem ciekawa opini co w takim skrybcie dla malej osiedlowej sieci by sie przydalo jakie funkcje wedlug was poza NAT'em iQOS'em jestem ciekawa waszych opini na ten temat
Warto pomyśleć o skalowalności (20->200->2000) userów.
Offline






Admin łajza







zlyZwierz napisał(-a):
Tak tak , pytonk i flukboks - wiemy przy czym sie robisz wilgotny ;)
i zimny browarek, zapomniałeś o zimnym browarku ;)
Offline

Użytkownik
Czy to bedzie Perl czy Python to chyba nie ma znaczenia. Wazne sa regulki ktore beda ustawiane dla danej sieci oraz modularnosc skryptu.
Offline
Użytkownik

ja miałem taki skrypt, znaleziony gdzieś na necie
#!/bin/bash
INTERNET=eth0
SIEC=eth1
# Tutaj ustalamy dynamiczny gwarantowany oraz max DOWNLOAD i UPLOAD w kbit dla kazdego ip wymienionego powyzej #
GD=80 # gwarantowany download
#MD=256 # maxymalny downloadu
GU=80 # gwarantowany upload
#MU=256 # maxymalny upload
##komp1
D2=160
U2=100
##komp2
D3=280
U3=256
##komp3
D4=180
U4=180
##komp4
D5=500
U5=500
##komp5
D7=160
U7=80
# Tutaj ustalamy przepustowosc karty sieciowej(K) oraz max download(M) w kbit od strony karty do sieci wew #
K=90000
M=90000
# Podaj przepustowosc lacza (D)-Download (U)-Upload w kbit #
D=512
U=512
### Ponizej podaj network sieci bez ostatniej cyferki np: ###
LAN=192.168.0
### Ponizej podaj IP karty wewnetrznej dla sieci np: ###
HOST1=192.168.0.1
### Teraz adresy IP ktore HTB ma wlaczyc do podzialu ###
HOST2=${LAN}.2
HOST3=${LAN}.3
HOST4=${LAN}.4
HOST5=${LAN}.5
HOST6=${LAN}.6
HOST7=${LAN}.7
#### Dostepne komendy htb start|stop|status ####
#######################################################################
#################### KOLEJKI W KTORYCH NIE ZALECAM ZMIAN ##############
#######################################################################
if [ "$1" == "stop" ]
then
echo "HTB zostalo zatrzymane"
tc qdisc del root dev $SIEC 2>/dev/null
tc qdisc del root dev $INTERNET 2>/dev/null
iptables -t mangle -D POSTROUTING -o $INTERNET -j HTB-OUT 2>/dev/null
iptables -t mangle -F HTB-OUT 2>/dev/null
iptables -t mangle -X HTB-OUT 2>/dev/null
exit
fi
if [ "$1" == "start" ]
then
echo "HTB zostalo wlaczone"
tc qdisc del root dev $SIEC 2>/dev/null
tc qdisc del root dev $INTERNET 2>/dev/null
iptables -t mangle -D POSTROUTING -o $INTERNET -j HTB-OUT 2>/dev/null
iptables -t mangle -F HTB-OUT 2>/dev/null
iptables -t mangle -X HTB-OUT 2>/dev/null
################################ DOWNLOAD ############################################
tc qdisc add dev $SIEC root handle 1:0 htb
tc class add dev $SIEC parent 1:0 classid 1:1 htb rate ${K}kbit ceil ${K}kbit
tc class add dev $SIEC parent 1:1 classid 1:2 htb rate ${D}kbit ceil ${D}kbit quantum 1500
tc class add dev $SIEC parent 1:1 classid 1:3 htb rate ${K}kbit ceil ${K}kbit quantum 1500
# tutaj ustalamy porty ktore maja miec wyzszy lub nizszy priorytet
tc filter add dev $SIEC protocol ip parent 1:0 prio 1 u32 match ip sport 139 0xffff flowid 1:2
tc filter add dev $SIEC protocol ip parent 1:0 prio 1 u32 match ip sport 135 0xffff flowid 1:2
tc filter add dev $SIEC protocol ip parent 1:0 prio 1 u32 match ip sport 110 0xffff flowid 1:2
tc filter add dev $SIEC protocol ip parent 1:0 prio 1 u32 match ip sport 25 0xffff flowid 1:2
tc filter add dev $SIEC protocol ip parent 1:0 prio 1 u32 match ip sport 23 0xffff flowid 1:2
tc filter add dev $SIEC protocol ip parent 1:0 prio 1 u32 match ip sport 10234 0xffff flowid 1:2
#tc filter add dev $INTERNET protocol ip parent 1:0 prio 1 u32 match ip sport 10234 0xffff flowid 1:2
tc class add dev $SIEC parent 1:3 classid 1:101 htb rate 800kbit ceil ${M}kbit quantum 1500
tc class add dev $SIEC parent 1:2 classid 1:102 htb rate ${GD}kbit ceil ${D2}kbit quantum 1500
tc class add dev $SIEC parent 1:2 classid 1:103 htb rate ${GD}kbit ceil ${D3}kbit quantum 1500
tc class add dev $SIEC parent 1:2 classid 1:104 htb rate ${GD}kbit ceil ${D4}kbit quantum 1500
tc class add dev $SIEC parent 1:2 classid 1:105 htb rate ${GD}kbit ceil ${D5}kbit quantum 1500
#tc class add dev $SIEC parent 1:2 classid 1:106 htb rate ${GD}kbit ceil ${MD}kbit quantum 1500
tc class add dev $SIEC parent 1:2 classid 1:107 htb rate ${GD}kbit ceil ${D7}kbit quantum 1500
tc filter add dev $SIEC protocol ip preference 1 parent 1:0 u32 match ip src $HOST1 flowid 1:101
tc filter add dev $SIEC protocol ip preference 2 parent 1:0 u32 match ip dst $HOST2 flowid 1:102
tc filter add dev $SIEC protocol ip preference 2 parent 1:0 u32 match ip dst $HOST3 flowid 1:103
tc filter add dev $SIEC protocol ip preference 2 parent 1:0 u32 match ip dst $HOST4 flowid 1:104
tc filter add dev $SIEC protocol ip preference 2 parent 1:0 u32 match ip dst $HOST5 flowid 1:105
#tc filter add dev $SIEC protocol ip preference 2 parent 1:0 u32 match ip dst $HOST6 flowid 1:106
tc filter add dev $SIEC protocol ip preference 2 parent 1:0 u32 match ip dst $HOST7 flowid 1:107
tc qdisc add dev $SIEC parent 1:101 handle 301:0 sfq perturb 10
tc qdisc add dev $SIEC parent 1:102 handle 302:0 sfq perturb 10
tc qdisc add dev $SIEC parent 1:103 handle 303:0 sfq perturb 10
tc qdisc add dev $SIEC parent 1:104 handle 304:0 sfq perturb 10
tc qdisc add dev $SIEC parent 1:105 handle 305:0 sfq perturb 10
#tc qdisc add dev $SIEC parent 1:106 handle 306:0 sfq perturb 10
tc qdisc add dev $SIEC parent 1:107 handle 307:0 sfq perturb 10
##################################### UPLOAD #########################################
tc qdisc add dev $INTERNET root handle 1:0 htb
tc class add dev $INTERNET parent 1:0 classid 1:1 htb rate ${U}kbit ceil ${U}kbit quantum 576
tc class add dev $INTERNET parent 1:1 classid 1:102 htb rate ${GU}kbit ceil ${U2}kbit quantum 576
tc class add dev $INTERNET parent 1:1 classid 1:103 htb rate ${GU}kbit ceil ${U3}kbit quantum 576
tc class add dev $INTERNET parent 1:1 classid 1:104 htb rate ${GU}kbit ceil ${U4}kbit quantum 576
tc class add dev $INTERNET parent 1:1 classid 1:105 htb rate ${GU}kbit ceil ${U5}kbit quantum 576
#tc class add dev $INTERNET parent 1:1 classid 1:106 htb rate ${GU}kbit ceil ${MU}kbit quantum 576
tc class add dev $INTERNET parent 1:1 classid 1:107 htb rate ${GU}kbit ceil ${U7}kbit quantum 576
tc qdisc add dev $INTERNET parent 1:102 handle 302:0 sfq perturb 10
tc qdisc add dev $INTERNET parent 1:103 handle 303:0 sfq perturb 10
tc qdisc add dev $INTERNET parent 1:104 handle 304:0 sfq perturb 10
tc qdisc add dev $INTERNET parent 1:105 handle 305:0 sfq perturb 10
#tc qdisc add dev $INTERNET parent 1:106 handle 306:0 sfq perturb 10
tc qdisc add dev $INTERNET parent 1:107 handle 307:0 sfq perturb 10
tc filter add dev $INTERNET protocol ip preference 1 parent 1:0 handle 2 fw flowid 1:102
tc filter add dev $INTERNET protocol ip preference 1 parent 1:0 handle 3 fw flowid 1:103
tc filter add dev $INTERNET protocol ip preference 1 parent 1:0 handle 4 fw flowid 1:104
tc filter add dev $INTERNET protocol ip preference 1 parent 1:0 handle 5 fw flowid 1:105
#tc filter add dev $INTERNET protocol ip preference 1 parent 1:0 handle 6 fw flowid 1:106
tc filter add dev $INTERNET protocol ip preference 1 parent 1:0 handle 7 fw flowid 1:107
iptables -t mangle -N HTB-OUT
iptables -t mangle -I POSTROUTING -o $INTERNET -j HTB-OUT
iptables -t mangle -A HTB-OUT -s $HOST2 -j MARK --set-mark 2
iptables -t mangle -A HTB-OUT -s $HOST3 -j MARK --set-mark 3
iptables -t mangle -A HTB-OUT -s $HOST4 -j MARK --set-mark 4
iptables -t mangle -A HTB-OUT -s $HOST5 -j MARK --set-mark 5
#iptables -t mangle -A HTB-OUT -s $HOST6 -j MARK --set-mark 6
iptables -t mangle -A HTB-OUT -s $HOST7 -j MARK --set-mark 7
exit
fi
if [ "$1" == "status" ]
then
echo "$SIEC: "
tc -s qdisc show dev $SIEC
echo "$INTERNET: "
tc -s qdisc show dev $INTERNET
exit
fi
echo "$0 start|stop|status"Offline




matka przelozona
zlyZwierz <- zalerzy o jakiego rodzaju odbiorcy myslisz ja myslalam o malych sieciach osiedlowych na kilka - kilkadziesiat kompow bo wieksze firmy maja bardziej profilowane pod ich kontem oprogramowanie....
Online

Użytkownik
BiExi napisał(-a):
zlyZwierz <- zalerzy o jakiego rodzaju odbiorcy myslisz ja myslalam o malych sieciach osiedlowych na kilka - kilkadziesiat kompow bo wieksze firmy maja bardziej profilowane pod ich kontem oprogramowanie....
W cale tak nie jest :) Nie kazda duza firma ma rozw. zakupione dla siebie ... znam wiele rozw., ale duzo adminow woli samemu napisac reguly ktore tna pasmo, badz generuja reguly firewalla ...
Offline




matka przelozona


Moderator
BiExi , ale popatrz ile ludzi obudziło sie z ręką w nocniku , bo szajsszejper , czy skrypty z inet, czy fikus przestały sie skalować. Z racji posiadania gotowca te osoby nawet nie myslały o napisaniu czegoś własnego, a teraz mają problem.
Moim zdaniem jak już coś robić , to robić dobrze.
Offline




matka przelozona

Użytkownik
Dlatego chodzi o stworzenie wspolnie takiego skryptu :) i pokazanie ze spolecznosc DUG-a potrafi :) Wiadomo Admini sobie sami napisza takowy skrypt i za to kupe kasy zgarna, a zwykli uzytkownicy poporstu nie potrafia tego ... wiec beda od nas go zaciagac i moze do tego cos sami poprawia :) i sie naucza ...
Offline

Członek DUG


Podzielam tok myślenia Kamyka. Moja ulubiona (najszybsza) metoda nauki, to analiza czegoś gotowego. Potem wprowadzam poprawki pod siebie. Napisanie przezemnie czegoś takiego od podstaw narazie graniczy z cudem tuska :]
Offline




matka przelozona
Co do tego wtracenia to wiem cos bede konstruowac ale jak zakoncze projekty wszystkie :P koniec wrzesnia mysle rozpoczac jakies prace nad tym :]
w glowie mam juz mniejwecej plan jak ma to wygladac :P
Online


Użyszkodnik DUG



może coś troche bliżej, przybliż swoje intencje, komuś może coś wpadnie do głowy i podsunie ci coś lepszego
Offline




matka przelozona
Witam
Próbuje zorbicz upierdalacza pod swoją sieć i jakoś mi nie idzie. Może ktoś poprawi mi skrypt i wskaze gdzie mam błąd.
Łacze dsl 4/0,5mbita
eth0 - wan
eth1 - lan z ip 192.168.65.1
Lan po wifi dlatego nie daje 100mbitów.
PLIK KOLEJKA
#!/usr/bin/perl
#
# Kolejkowanie ver 0.000000000001 beta
# create by BiExi
#
# $debugowanie = 0;
$cid = 5;
$handl = 320;
$zrodlo = 600;
open (PLIK_SHIT, "/etc/upierdalacz/upierdalacz.list")or die "open $alert_file: $!\n";
{
sleep 1;
if (seek(PLIK_SHIT,0,1))
{
print "--------------------------------------------- \n";
print " KOLEJKOWANIE ETH0 \n";
print "--------------------------------------------- \n";
# - — ---[ ruch przychodzacy ]--- — -
system "tc qdisc del dev eth1 root handle 1:0 htb";
system "tc qdisc add dev eth1 root handle 1:0 htb";
system "tc class add dev eth1 parent 1:0 classid 1:1 htb rate 20mbit ceil 21mbit quantum 8448";
system "tc class add dev eth1 parent 1:1 classid 1:2 htb rate 4000kbit ceil 4096kbit quantum 522";
system "tc class add dev eth1 parent 1:1 classid 1:3 htb rate 19mbit ceil 19mbit quantum 8448";
system "tc filter add dev eth1 protocol ip preference 1 parent 1:0 u32 match ip src 192.168.65.1 flowid 1:3";
system "tc qdisc add dev eth1 parent 1:3 handle 299:0 sfq perturb 10";
# - — ---[ ruch wychodzacy ]--- — -
system "tc qdisc del dev eth0 root handle 1:0 htb";
system "tc qdisc add dev eth0 root handle 1:0 htb";
system "tc class add dev eth0 parent 1:0 classid 1:1 htb rate 20mbit ceil 21mbit quantum 768";
system "tc class add dev eth0 parent 1:1 classid 1:2 htb rate 500kbit ceil 512kbit quantum 43";
system "tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10";
system "tc filter add dev eth0 protocol ip preference 1 parent 1:0 handle 2000 fw flowid 1:2";
system "iptables -t mangle -N UPIERDALACZ_ETH0";
system "iptables -t mangle -D POSTROUTING -o eth0 -j UPIERDALACZ_ETH0";
system "iptables -t mangle -I POSTROUTING -o eth0 -j UPIERDALACZ_ETH0";
while (<PLIK_SHIT>)
{
chop;
next if (/^\s*$/); # wyjazd z pustymi liniami
next if (/^#/); # wyjazd z #
if (/(\d+\.\d+\.\d+\.\d+) \; (\d+) \; (\d+) \; (\d+) \; (\d+) \; (\S+)/)
{
print "| Kolejka na eth1 RUCH PRZYCHODZACY dla IP:$1 rate: $2kbit cail: $3kbit\n";
system "tc class add dev eth1 parent 1:2 classid 1:$cid htb rate $2kbit ceil $3kbit quantum 3 burst 3k";
system "tc filter add dev eth1 protocol ip preference 2 parent 1:0 u32 match ip dst $1 flowid 1:$cid";
system "tc qdisc add dev eth1 parent 1:$cid handle $handl:0 sfq perturb 10";
print "| Kolejka na eth0 RUCH WYCHODZACY dla IP:$1 rate: $4kbit cail: $5kbit\n";
system "tc class add dev eth0 parent 1:2 classid 1:$cid htb rate $4kbit ceil $5kbit quantum 3 burst 3k";
system "tc qdisc add dev eth0 parent 1:$cid handle $handl:0 sfq perturb 10";
system "tc filter add dev eth0 protocol ip preference 2 parent 1:0 handle $zrodlo fw flowid 1:$cid";
system "iptables -t mangle -D UPIERDALACZ_ETH0 -p tcp -s $1 -j MARK --set-mark $zrodlo >>/dev/null";
system "iptables -t mangle -A UPIERDALACZ_ETH0 -p tcp -s $1 -j MARK --set-mark $zrodlo";
$cid = $cid + 1;
$handl = $handl + 1;
$zrodlo = $zrodlo + 1;
}
} # end while
} # end if seek
} # end for
close PLIK_SHIT;
system "iptables -t mangle -A UPIERDALACZ_ETH0 -m mark --mark 0 -j MARK --set-mark 2000";
_____________________________________________________________________________________________________
PLIK upierdalacz.list
# Configuration uperdalacz.list for eth1
# :::::::::::::::::::::::::::::::::::::::::::::::::
# | IP | GW | MAX | Opis
# :::::::::::::::::::::::::::::::::::::::::::::::::
192.168.65.2 ; 32 ; 150 ; 6 ; user1
192.168.65.3 ; 32 ; 150 ; 6 ; user2
192.168.65.4 ; 32 ; 150 ; 6 ; user3
192.168.65.5 ; 32 ; 150 ; 6 ; user4
192.168.65.6 ; 32 ; 150 ; 6 ; user5
192.168.65.7 ; 32 ; 150 ; 6 ; user6
192.168.65.8 ; 32 ; 150 ; 6 ; user7
192.168.65.9 ; 32 ; 150 ; 6 ; user8
192.168.65.10 ; 32 ; 150 ; 6 ; user9
itd...
Oczywiście nic nie przycina wszystko szaleje.
Po odpaleniu dostaje komunikat.
[root@dotnet upierdalacz]# ./kolejka
---------------------------------------------
KOLEJKOWANIE ETH0
---------------------------------------------
RTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
iptables: Chain already exists
[root@dotnet upierdalacz]# ./kolejka restart
---------------------------------------------
KOLEJKOWANIE ETH0
---------------------------------------------
iptables: Chain already exists
Poradzcie coś prosze!
Offline


Członek DUG



Temat umarł?
Offline
Do trzymania danych zamiast plikow lepiej uzyc bazy danych. Nie musi to byc nic duzego jak mysql, wystarczy sqlite.
Userzy w bazie to duza wygoda, i latwiej zrobic np. panel do zarzadzania przez www.
Offline