[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

routing



Witam ma dwa łącza i chciałem zrobić coś takiego wybrane usługi puścić
jednym łączem , a całą resztę drugim.
Moje pytanie jest takie, ponieważ eth0 i eth2 to interfejsy zewnętrzne, do
eth1 mam podpiętą sieć lokalną i sieć z adresami publicznymi otrzymanymi od
mojego providera,
Mam taki problem z tymi zewnętrznymi, że np. user, który używa direct
connecta dane od niego upload idzie przez eth2, a download idzie przez eth0,
a ja chciałbym, żeby ruch dla tych adresów routowalnych odbywał się tak samo
jak dla adresów lokalnych, jak coś wchodzi jednym to chcę, żeby wracało tym
samym łączem. Nie wiem, gdzie popełniłem błąd
Ale zamarkowałem tablice i ustawiłem chyba odpowiednio markowanie pakietów
na iptables.
Proszę o pomoc, ponieważ nie wiem co z tym zrobić, chce, żeby user
korzystający z direct connecta i innych nie zmarkowanych pakietów w iptables
szedł łączem drugim przez, które idzie domyślnie cały ruch. Poniżej
przedstawiam skrypt może ktoś zauważy w nim jakieś błędy.

Pozdrawiam
Adam.

#!/bin/sh
IP="/usr/sbin/ip"
IPT="/usr/local/sbin/iptables"
IP_ZEW="xxx.xxx.xxx.xxx"
IP_ZEW2="yyy.yyy.yyy.yyy"
GATEWAY="xxx.xxx.xxx.ggg"
GATEWAY2="yyy.yyy.yyy.ggg"
SIEC="xxx.xxx.xxx.sss"
SIEC2="yyy.yyy.yyy.sss"
$IP rule del fwmark 0x20 lookup 20
$IP rule del from xxx.xxx.xxx.xxx lookup 20
$IP route add xxx.xxx.xxx.sss dev eth0 src xxx.xxx.xxx.xxx table 20
$IP route add default via xxx.xxx.xxx.ggg table 20
$IP rule add fwmark 0x20 table 20

$IP route add xxx.xxx.xxx.sss dev eth0 src xxx.xxx.xxx.xxx
$IP route add yyy.yyy.yyy.sss dev eth2 src yyy.yyy.yyy.yyy

$IP rule del fwmark 0x30 lookup 30
$IP rule del from yyy.yyy.yyy.yyy lookup 30
$IP route add yyy.yyy.yyy.sss dev eth2 src yyy.yyy.yyy.yyy table 30
$IP route add default via yyy.yyy.yyy.ggg table 30
$IP rule add fwmark 0x30 table 30

$IP rule add from xxx.xxx.xxx.xxx table 20
$IP rule add from yyy.yyy.yyy.yyy table 30

$IP rule add from SIEC_ROUTOWALNA/28 to xxx.xxx.xxx.sss table LANR
$IP rule add from xxx.xxx.xxx.sss to SIEC_ROUTOWALNA/28 table LANR
$IP rule add from SIEC_ROUTOWALNA/28 to yyy.yyy.yyy.sss table LANR
$IP rule add from yyy.yyy.yyy.sss to SIEC_ROUTOWALNA/28 table LANR

$IP rule add from 192.168.0.0/24 to xxx.xxx.xxx.sss table LAN
$IP rule add from xxx.xxx.xxx.sss to 192.168.0.0/24 table LAN
$IP rule add from 192.168.0.0/24 to yyy.yyy.yyy.sss  table LAN
$IP rule add from yyy.yyy.yyy.sss to 192.168.0.0/24  table LAN

$IP route add via 192.168.0.1 dev eth1 table LAN
$IP route add via BRAMA_DLA_ADRESOW_ROUTOWALNYCH dev eth1 table LANR

#na koniec ustalam brame domyślną
$IP route add default via yyy.yyy.yyy.ggg dev eth2
$IP route flush ciche

$IPT -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to
xxx.xxx.xxx.xxx
$IPT -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth2 -j SNAT --to
yyy.yyy.yyy.yyy

#markowanie pakietów
$IPT -t mangle -A PREROUTING -p icmp --icmp-type echo-request -j MARK
--set-mark 0x20
# www
$IPT -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 0x20
$IPT -t mangle -A PREROUTING -p tcp --dport 80 -j RETURN
$IPT -t mangle -A PREROUTING -p udp --dport 80 -j MARK --set-mark 0x20
$IPT -t mangle -A PREROUTING -p udp --dport 80 -j RETURN
$IPT -t mangle -A PREROUTING -p tcp --dport 8080 -j MARK --set-mark 0x20
$IPT -t mangle -A PREROUTING -p tcp --dport 8080 -j RETURN
$IPT -t mangle -A PREROUTING -p udp --dport 8080 -j MARK --set-mark 0x20
# www - szyfrowane
$IPT -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 0x20
$IPT -t mangle -A PREROUTING -p tcp --dport 443 -j RETURN
$IPT -t mangle -A PREROUTING -p udp --dport 443 -j MARK --set-mark 0x20
$IPT -t mangle -A PREROUTING -p udp --dport 443 -j RETURN



Reply to: