Moje konfigi
Skrypt do ponoszenia routingu i markowania pakietów (DZIAŁA)
#!/bin/bash
IF0="eth1" # LAN
IF1="eth2" # DSL2 www,poczta,ping,itp
IF2="eth0" # DSL1 lacze p2p i reszta pakietow nieoznakowanych
IP0="192.168.5.1" # IP LAN
IP2="83.xx.xx.114" # IP DSL1
IP1="83.xx.xx.202" # IP DSL2
IP0_NET="255.255.255.0" # MASKA LAN
IP1_NET="255.255.255.248" # MASKA DSL1
IP2_NET="255.255.255.248" # MASKA DSL2
IP0_BC="192.168.1.255" # BROADCAST LAN
IP2_BC="83.xx.xx.119" # BROADCAST DSL1
IP1_BC="83.xx.xx.207" # BROADCAST DSL2
P2="83.xx.xx.113" # BRAMKA DSL1
P1="83.xx.xx.201" # BRAMKA DSL2
P0_NET="192.168.5.0/24" # ADRES SIECI LAN
P2_NET="83.xx.xx.112/29" # ADRES SIECI DSL1
P1_NET="83.xx.xx.200/29" # ADRES SIECI DSL2
ifconfig $IF0 $IP0 netmask $IP0_NET broadcast $IP0_BC
ifconfig $IF1 $IP1 netmask $IP1_NET broadcast $IP1_BC
ifconfig $IF2 $IP2 netmask $IP2_NET broadcast $IP2_BC
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_generic_timeout
echo 5 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close
echo 20 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait
echo 320 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo 20 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_fin_wait
echo 30 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_last_ack
echo 8192 > /proc/sys/net/ipv4/ip_conntrack_max
echo 8192 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
ip route del default
ip route del table www
ip route add default via $P2 dev $IF2
ip route add $P1_NET src $IP1 dev $IF1 table www
ip route add $P0_NET src $IP0 dev $IF0 table www
ip route add default via $P1 dev $IF1 table www
ip rule del fwmark 0x800 table www
ip rule add fwmark 0x800 table www
ip rule del fwmark 0x900 table main
ip rule add fwmark 0x900 table main
ip route flush cache
# CZYSZCZENIE WPISOW W TABLICY MANGLE
iptables -F -t mangle
iptables -X -t mangle
# OGRANICZENIE ILOSCI AKTYWNYCH POLACZEN TCP
iptables -t mangle -A FORWARD -o eth0 -p tcp -m connlimit --connlimit-above 50 -j DROP
iptables -t mangle -A FORWARD -o eth2 -p tcp -m connlimit --connlimit-above 30 -j DROP
# PRZYWROCENIE WARTOSCI MARK DLA NAWIAZANYCH POLACZEN
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
# JESLI SIE OKAZE,ZE JAKIES P2P NIE DZIALAJA NA PORTACH PREFEROWANYCH,
# TO ZOSTANA ZAZNACZONE I PRZEKAZANE NA LACZE DLA P2P
iptables -t mangle -A PREROUTING -p tcp -m ipp2p --ipp2p -j MARK --set-mark 0x900
# ZACHOWANIE DLA POTOMNYCH
iptables -t mangle -A PREROUTING -p tcp -m mark --mark 0x900 -j CONNMARK --save-mark
# JESLI JAKIS PAKIET JEST JUZ OZNACZONY,TO WYCHODZI Z MANGLE DO NASTEPNEJ TABLICY
iptables -t mangle -A PREROUTING -m mark ! --mark 0x0 -j RETURN
iptables -t mangle -A PREROUTING -p icmp -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 53 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p udp --dport 53 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 51122 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p udp --dport 51122 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p udp --dport 80 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p udp --dport 443 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 8074 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p udp --dport 8074 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 1550 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p udp --dport 1550 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 25 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 110 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 993 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 995 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 20 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp --dport 21 -j MARK --set-mark 0x800
iptables -t mangle -A PREROUTING -p tcp -m mark --mark 0x800 -j CONNMARK --save-mark
pakiety przekierowane idą DSL2 a cała reszta DSL1 (default) ale mam problem z przydzieleniem zewnętrznego IP dla poszczególnego komputera
oraz z programami p2p, ponieważ mam kilku ssaczy i zatruwają mi życie.
skrypt dodawania zewnętrznego IP (niestety nie działa)
#!/bin/sh
i="/usr/sbin/iptables"
ifconfig -a eth0:3 83.xx.xx.115 netmask 255.255.255.248 broadcast 83.xx.xx.119
ifconfig -a eth0:6 83.xx.xx.116 netmask 255.255.255.248 broadcast 83.xx.xx.119
ifconfig -a eth0:4 83.xx.xx.117 netmask 255.255.255.248 broadcast 83.xx.xx.119
ifconfig -a eth0:5 83.xx.xx.118 netmask 255.255.255.248 broadcast 83.xx.xx.119
ifconfig -a eth2:3 83.xx.xx.203 netmask 255.255.255.248 broadcast 83.xx.xx.207
ifconfig -a eth2:4 83.xx.xx.204 netmask 255.255.255.248 broadcast 83.xx.xx.207
ifconfig -a eth2:5 83.xx.xx.205 netmask 255.255.255.248 broadcast 83.xx.xx.207
ifconfig -a eth2:6 83.xx.xx.206 netmask 255.255.255.248 broadcast 83.xx.xx.207
#dodane
$i -A FORWARD -i eth0 -d 192.168.5.3 -j ACCEPT
$i -A POSTROUTING -t nat -s 192.168.5.3 -o eth0 -j SNAT --to-source 83.xx.xx.115
$i -A PREROUTING -t nat -d 83.xx.xx.115 -j DNAT --to 192.168.5.3
$i -A FORWARD -i eth0 -d 192.168.5.48 -j ACCEPT
$i -A POSTROUTING -t nat -s 192.168.5.48 -o eth0 -j SNAT --to-source 83.xx.xx.116
$i -A PREROUTING -t nat -d 83.xx.xx.116 -j DNAT --to 192.168.5.48
#koniec dodane
maskarada w firewallu zastąpiona jest
$i -t nat -A POSTROUTING -o $EXTIF2 -s 192.168.5.0/24 -j SNAT --to-source 83.16.102.202
$i -t nat -A POSTROUTING -o $EXTIF -s 192.168.5.0/24 -j SNAT --to-source 83.18.26.114
Odnośnie programów p2p to problem polega na bardzo powolnym sciąganiu plików rozłączaniu z serwerami.
Proszę o pomoc w rozwiązaniu problemu, jezeli jakiej informacji nie podałem to podpowiedzcie jaka.
Jest jeszcze problem z uploadem jak w temacie
http://forum.niceshaper.jedwabny.net/vi ... .php?t=561 tam niestety nie uzyskałem odpowiedzi