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-05-03 16:00:25

  Punisher999 - Użytkownik

Punisher999
Użytkownik
Skąd: Kielce
Zarejestrowany: 2005-07-15
Serwis

Kierowanie ruchu p2p na osobny interfejs - jak to zrobić?

Witam chciałbym zrobić coś takiego żeby zeby ruch p2p skierowac na osobny fizyczny interfejs który posiada swoje publiczne ip za pomoca ipp2p.
Obecnie moje udostępnienie netu wygląda tak:
$ETH_LAN - eth1 do lanu
$ETH_NET - to eth z netem (eth0)
$ETH_P2P - tu chce sierowc p2p
$IP0X - to ip kolejnych userów
$MAK0X - to mac kolejnych userów
$IP_NET - to pierwszy publiczny ip ruterka
$IP_P2P - to drógi publiczny ip ruterka do p2p

Kod:


iptables -A FORWARD -p udp -m ipp2p --bit --apple --winmx --soul --ares -j DROP
iptables -A FORWARD -p udp -m ipp2p --ipp2p-data -j DROP
iptables -A FORWARD -p udp -m ipp2p --ipp2p -j DROP

# ustawienie polityki dzialania
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# polaczenia nawiazane
iptables -A INPUT -p all -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -p all -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -p all -j ACCEPT -m state --state ESTABLISHED,RELATED

#### dla #### puni
iptables -t nat -A POSTROUTING -s 192.168.1.$IP00  -j SNAT --to-source=$IP_NET
iptables -A FORWARD -p tcp -s 192.168.1.$IP00 -m connlimit --connlimit-above $LOW_CONNLIMIT_DOWN -j DROP
iptables -A FORWARD -p tcp -d 192.168.1.$IP00 -m connlimit --connlimit-above $LOW_CONNLIMIT_UP -j DROP
iptables -A FORWARD -m mac --mac-source $MAK00 -s 192.168.1.$IP00 -j ACCEPT
iptables -t mangle -D UPIERDALACZ -s 192.168.1.$IP00 -j MARK --set-mark $IP00 >>/dev/null
iptables -t mangle -A UPIERDALACZ -s 192.168.1.$IP00 -j MARK --set-mark $IP00
iptables -A FORWARD -p tcp --dport 1$IP00 -d 192.168.1.$IP00 -j ACCEPT
iptables -A FORWARD -p udp --dport 1$IP00 -d 192.168.1.$IP00 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp --dport 1$IP00 -j DNAT --to 192.168.1.$IP00:1$IP00
iptables -A PREROUTING -t nat -p udp --dport 1$IP00 -j DNAT --to 192.168.1.$IP00:1$IP00

tc class add dev $ETH_LAN parent 1:2 classid 1:$IP00 htb rate $LOW_GWARANT_DO_USER ceil $LOW_MAX_DO_USER quantum 2 burst 10k prio 4
tc filter add dev $ETH_LAN protocol ip preference 3 parent 1:0 u32 match ip dst 192.168.1.$IP00 flowid 1:$IP00
tc qdisc add dev $ETH_LAN parent 1:$IP00 handle $IP00:0 sfq perturb 10

tc class add dev $ETH_NET parent 1:2 classid 1:$IP00 htb rate $LOW_GWARANT_OD_USER ceil $LOW_MAX_OD_USER quantum 2 burst 20k prio 5
tc filter add dev $ETH_NET protocol ip preference 1 parent 1:0 handle $IP00 fw flowid 1:$IP00
tc qdisc add dev $ETH_NET parent 1:$IP00 handle 1$IP00:0 sfq perturb 10


#### dla #### kwiecien
iptables -t nat -A POSTROUTING -s 192.168.1.$IP01 -j SNAT --to-source=$IP_NET
iptables -A FORWARD -p tcp -s 192.168.1.$IP01 -m connlimit --connlimit-above $LOW_CONNLIMIT_DOWN -j DROP
iptables -A FORWARD -p tcp -d 192.168.1.$IP01 -m connlimit --connlimit-above $LOW_CONNLIMIT_UP -j DROP
iptables -A FORWARD -m mac --mac-source $MAK01 -s 192.168.1.$IP01 -j ACCEPT
iptables -t mangle -D UPIERDALACZ -s 192.168.1.$IP01 -j MARK --set-mark $IP01 >>/dev/null
iptables -t mangle -A UPIERDALACZ -s 192.168.1.$IP01 -j MARK --set-mark $IP01
iptables -A FORWARD -p tcp --dport 1$IP01 -d 192.168.1.$IP01 -j ACCEPT
iptables -A FORWARD -p udp --dport 1$IP01 -d 192.168.1.$IP01 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp --dport 1$IP01 -j DNAT --to 192.168.1.$IP01:1$IP01
iptables -A PREROUTING -t nat -p udp --dport 1$IP01 -j DNAT --to 192.168.1.$IP01:1$IP01

tc class add dev $ETH_LAN parent 1:2 classid 1:$IP01 htb rate $LOW_GWARANT_DO_USER ceil $LOW_MAX_DO_USER quantum 2 burst 10k prio 4
tc filter add dev $ETH_LAN protocol ip preference 3 parent 1:0 u32 match ip dst 192.168.1.$IP01 flowid 1:$IP01
tc qdisc add dev $ETH_LAN parent 1:$IP01 handle $IP01:0 sfq perturb 10

tc class add dev $ETH_NET parent 1:2 classid 1:$IP01 htb rate $LOW_GWARANT_OD_USER ceil $LOW_MAX_OD_USER quantum 2 burst 20k prio 5
tc filter add dev $ETH_NET protocol ip preference 1 parent 1:0 handle $IP01 fw flowid 1:$IP01
tc qdisc add dev $ETH_NET parent 1:$IP01 handle 1$IP01:0 sfq perturb 10

Kąbinowałem na różne sposoby i zawsze coś nie trybi. Nie chce uzywac ( IMQ )

Offline

 

#2  2006-05-03 18:33:47

  zlyZwierz - Moderator

zlyZwierz
Moderator
Zarejestrowany: 2005-02-18
Serwis

Re: Kierowanie ruchu p2p na osobny interfejs - jak to zrobić?

makabrycznie zagmatwane .... jakby nie można było zwykłego nata postawić :)


[url=http://www.netfix.pro]www.netfix.pro[/url]

Offline

 

#3  2006-05-03 18:49:41

  Punisher999 - Użytkownik

Punisher999
Użytkownik
Skąd: Kielce
Zarejestrowany: 2005-07-15
Serwis

Re: Kierowanie ruchu p2p na osobny interfejs - jak to zrobić?

Nie rozumiem twojej wypowiedzi

Offline

 

#4  2006-05-03 18:57:03

  zlyZwierz - Moderator

zlyZwierz
Moderator
Zarejestrowany: 2005-02-18
Serwis

Re: Kierowanie ruchu p2p na osobny interfejs - jak to zrobić?

Tak jak to sobie zaplanowałeś - nie będzie działać.
IPP2P rozposnaje pakiety jako p2p już po nawiązaniu połączenia - nie można go już puścić drugim łączem.

Ustaw jedną bramę domyślną - nią poleci p2p , usługi, które mają iść innym łaczem zamarkuj po portach i puść tym drugim.

http://forum.inet.ll.pl/viewtopic.php?t=594&start=15 (4 posty  na dół - przykład dla DSL i POLPAK-a)


[url=http://www.netfix.pro]www.netfix.pro[/url]

Offline

 

#5  2006-05-03 19:26:26

  Punisher999 - Użytkownik

Punisher999
Użytkownik
Skąd: Kielce
Zarejestrowany: 2005-07-15
Serwis

Re: Kierowanie ruchu p2p na osobny interfejs - jak to zrobić?

Markowanie po portach nie jest satysfakcjonujące, jest cała masa gier które działają na bóg wi jakich portach i połowa programów p2p potrafi działać na porcie 80.
A da sie zamrkowac p2p za pomocą ipp2p?
Da sie ograniczyć ilość połaczeń connlimit-em tez  za pomocą ipp2p?

Offline

 

#6  2006-05-03 19:55:26

  zlyZwierz - Moderator

zlyZwierz
Moderator
Zarejestrowany: 2005-02-18
Serwis

Re: Kierowanie ruchu p2p na osobny interfejs - jak to zrobić?

Nie rozumiesz. Pomarkuj tylko to , co znasz i chcesz pomarkować , a reszte puść przez default gw.

.... z resztą , nie chcesz posłuchać to baw się z ipp2p :)

BTW ipp2p (layer-7) lepiej się spisuje w połączeniu z CONNMARK-iem


[url=http://www.netfix.pro]www.netfix.pro[/url]

Offline

 

#7  2006-05-04 19:45:57

  Punisher999 - Użytkownik

Punisher999
Użytkownik
Skąd: Kielce
Zarejestrowany: 2005-07-15
Serwis

Re: Kierowanie ruchu p2p na osobny interfejs - jak to zrobić?

Posłucham, posłucham dzieki serdeczne za pomoc.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.012 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00018 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00139 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='13.59.39.91' WHERE u.id=1
0.00139 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.59.39.91', 1738363145)
0.00065 SELECT * FROM punbb_online WHERE logged<1738362845
0.00098 SELECT topic_id FROM punbb_posts WHERE id=27713
0.00099 SELECT id FROM punbb_posts WHERE topic_id=3520 ORDER BY posted
0.00078 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=3520 AND t.moved_to IS NULL
0.00008 SELECT search_for, replace_with FROM punbb_censoring
0.00104 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=3520 ORDER BY p.id LIMIT 0,25
0.00125 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=3520
Total query time: 0.0088 s