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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2006-09-01 17:00:40

  vicool - Użytkownik

vicool
Użytkownik
Skąd: Szczecin
Zarejestrowany: 2005-12-05

ipp2p + htb

Witam
Mam taki skrypcik do zarzadania pasmem, nie powiem sprawdza sie calkiem calkiem ale chcial bym w nim uzyc ipp2p zamias ograniczania ludzi na portach. Codzi mi o to zeby twozyc kolejke dac jej kawalek pasma a potem ladowac tam cale p2p. Mecze sie juz z tym ale nic mi nie wychodzi. Markuje ruch p2p(tak mi sie wydaje) ale nie wchodzi w kolejke ktora dla niego przeznaczam(nie ma tego w tym skrypcie)

# czyscimy wszystko
tc qdisc del dev $IF_WORLD root 2> /dev/null
tc qdisc del dev $IF_LAN   root 2> /dev/null
tc qdisc del dev $IF_WORLD ingress 2> /dev/null
tc qdisc del dev $IF_LAN   ingress 2> /dev/null

# output IF_WORLD
DEV=$IF_WORLD

echo
echo "Interfejs wychodzacy" $DEV

tc qdisc add dev $DEV root handle 1: htb default 20

tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK_SPEED_WORLD} burst 10k
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK_SPEED_WORLD_H} ceil ${UPLINK_SPEED_WORLD_H_MAX} burst 10k prio
1
tc class add dev $DEV parent 1:1 classid 1:20 htb rate ${UPLINK_SPEED_WORLD_M} ceil ${UPLINK_SPEED_WORLD_M_MAX} burst 10k prio
2
tc class add dev $DEV parent 1:1 classid 1:30 htb rate ${UPLINK_SPEED_WORLD_L} ceil ${UPLINK_SPEED_WORLD_L_MAX} burst 10k prio
3

tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10

for port in $INTERACT_PORTS
do
echo 'Ustawiam port' $port 'jako interaktywny';
tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip sport ${port} 0xffff flowid 1:10
tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dport ${port} 0xffff flowid 1:10
done

echo 'Ustawiam TOS 0x10 jako interaktywny';
tc filter add dev $DEV parent 1:0 protocol ip prio 3 u32 match ip tos 0x10 0xff  flowid 1:10

echo 'Ustawiam ICMP jako interaktywny';
tc filter add dev $DEV parent 1:0 protocol ip prio 3 u32 match ip protocol 1 0xff flowid 1:10

tc filter add dev $DEV parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xf
fc0 at 2 match u8 0x10 0xff at 33 flowid 1:10

for port in $P2P_PORTS
do
echo 'Ustawiam port' $port 'jako p2p';
tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip sport ${port} 0xffff flowid 1:30
tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dport ${port} 0xffff flowid 1:30
done

echo 'Ustawiam reszte portow jako porty masowe';

k=1
for host in $INTERACT_HOSTS
do
echo 'Ustawiam host' $host 'jako interaktywny';
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 match ip dst $host flowid 1:10
done

# input IF_WORLD
echo
echo "Interfejs przychodzacy" $DEV

tc qdisc add dev $DEV handle ffff: ingress

k=1
for port in $PORT_SPEED
do
p=1;
parametry=`echo $port | sed "y/,/ /"`
for param in $parametry
do
params[$p]=$param;
((p++))
done
echo 'Ustawiam predkosc downlink dla portu' ${params[1]} 'na' ${params[2]}
tc filter add dev $DEV parent ffff: protocol ip prio 1 u32 match ip sport ${params[1]} 0xffff police rate ${params[2]} burst 1
0k drop flowid :${k}
((k++))
done

echo 'Ustawiam predkosc downlink dla reszty portow na' ${DOWNLINK_SPEED_WORLD}
tc filter add dev $DEV parent ffff: protocol ip prio 2 u32 match ip src 0.0.0.0 police rate ${DOWNLINK_SPEED_WORLD} burst 6k d
rop flowid :${k}

# output IF_LAN
DEV=$IF_LAN

echo
echo "Interfejs wychodzacy" $DEV

tc qdisc add dev $DEV root handle 2: htb default 2

echo 'Ustawiam predkosc downlink dla LAN' $LAN_IP 'na' ${DOWNLINK_SPEED_LAN}
tc class add dev $DEV parent 2: classid 2:2 htb rate ${DOWNLINK_SPEED_WORLD_ALL} burst 10k prio 1
tc class add dev $DEV parent 2: classid 2:1 htb rate ${DOWNLINK_SPEED_LAN} burst 20k prio 2

tc qdisc add dev $DEV parent 2:1 handle 3: sfq perturb 10
tc filter add dev $DEV parent 2: protocol ip prio 1 u32 match ip src ${LAN_IP} flowid 2:1
tc filter add dev $DEV parent 2: protocol ip prio 1 u32 match ip protocol 1 0xff flowid 2:1

k=2
for ip in $DOWNLINK_IP
do
p=1;
parametry=`echo $ip | sed "y/,/ /"`
for param in $parametry
do
params[$p]=$param;
((p++))
done
echo 'Ustawiam predkosc downlink dla' ${params[1]} 'na' ${params[2]}/${params[3]} 'z prio' ${params[4]};
tc class add dev $DEV parent 2:2 classid 2:${k}0 htb rate ${params[2]} burst 6k prio ${params[4]} ceil ${params[3]}
tc qdisc add dev $DEV parent 2:${k}0 handle ${k}0: sfq perturb 10
tc filter add dev $DEV parent 2: protocol ip prio 2 u32 match ip dst ${params[1]} flowid 2:${k}0
((k++))
done

# input IF_LAN
echo
echo "Interfejs przychodzacy" $DEV

tc qdisc add dev $DEV handle ffff: ingress

echo 'Ustawiam predkosc uplink dla LAN' $LAN_IP 'na' ${UPLINK_SPEED_LAN}
tc filter add dev $DEV parent ffff: protocol ip prio 1 u32 match ip dst ${LAN_IP} police rate ${UPLINK_SPEED_LAN} burst 20k dr
op flowid :1
tc filter add dev $DEV parent ffff: protocol ip prio 1 u32 match ip protocol 1 0xff police rate ${UPLINK_SPEED_LAN} burst 20k
drop flowid :1

k=2
for ip in $UPLINK_IP
do
p=1;
parametry=`echo $ip | sed "y/,/ /"`
for param in $parametry
do
params[$p]=$param;
((p++))
done
echo 'Ustawiam predkosc uplink dla' ${params[1]} 'na' ${params[2]}
tc filter add dev $DEV parent ffff: protocol ip prio 2 u32 match ip src ${params[1]} police rate ${params[2]} burst 10k drop f
lowid :${k}
((k++))

Z gory dzieki za pomoc.
Pozdrawiam


Debian

Offline

 

#2  2006-09-02 16:40:51

  vicool - Użytkownik

vicool
Użytkownik
Skąd: Szczecin
Zarejestrowany: 2005-12-05

Re: ipp2p + htb

Witam
Zastosowalem cos takie, mam nadzieje ze bedzie dzialac.

iptables -t mangle -A PREROUTING -p tcp -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -p tcp -m mark ! --mark 0 -j ACCEPT
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --edk -j MARK --set-mark 0x300
iptables -t mangle -A PREROUTING -p tcp -m mark --mark 0x300 -j CONNMARK --save-mark

iptables -t mangle -A POSTROUTING -o eth1 -m mark --mark 0x300 -j CLASSIFY --set-class 2:3
tc class add dev eth1 parent 2: classid 2:3 htb rate 64kbit burst 30k prio 3
tc qdisc add dev eth1 parent 2:3 sfq perturb 10

Prosze o korekte jak by cos.
Pozdrawiam


Debian

Offline

 

#3  2006-09-04 12:42:11

  vicool - Użytkownik

vicool
Użytkownik
Skąd: Szczecin
Zarejestrowany: 2005-12-05

Re: ipp2p + htb

Witam
Wszystko dziala.
Pozdrawiam


Debian

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.007 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00064 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.148.112.15' WHERE u.id=1
0.00093 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.148.112.15', 1738428597)
0.00031 SELECT * FROM punbb_online WHERE logged<1738428297
0.00101 SELECT topic_id FROM punbb_posts WHERE id=40030
0.00101 SELECT id FROM punbb_posts WHERE topic_id=5119 ORDER BY posted
0.00029 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=5119 AND t.moved_to IS NULL
0.00027 SELECT search_for, replace_with FROM punbb_censoring
0.00045 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=5119 ORDER BY p.id LIMIT 0,25
0.00091 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=5119
Total query time: 0.00595 s