Yup, prerouting -i ethlan m-a scapat de freezuit :) dar din pacate tot nu functioneaza. Mai jos este scriptul la care am ajuns cu ajutorul lui Mircea mainly:

<inceput script>
./myflush
./politici2
#myflush goleste toate chainurile iar politici2 seteaza toate politicile pe accept #am incercat sa loghez `drumul` pachetului icmp
ipextern1="x.x.x.x";
ipextern2="y.y.y.y";

ethisp1="eth1";
ethisp2="eth3";
ethloc0="eth2";
match=" -p icmp ";

echo "1"> /proc/sys/net/ipv4/ip_forward
route del default
ip route add to default equalize nexthop dev $ethisp1 via $ipextern1 weight 4 nexthop dev $ethisp2 via $ipextern2 weight 1

ip rule add fwmark 1 lookup 1
ip rule add fwmark 2 lookup 2
ip route add table 1 to default dev $ethisp1 ip route add table 2 to default dev $ethisp2

iptables -A PREROUTING -t mangle $match -j LOG --log-prefix "\n========PRER-mangle" #iptables -A PREROUTING -t mangle -i $ethloc0 -m state --state NEW -j RETURN iptables -A PREROUTING -t mangle -i $ethloc0 -j CONNMARK --restore-mark

iptables -t mangle -I POSTROUTING $match -j LOG --log-prefix "\nPOSTR-mangle" iptables -A POSTROUTING -t mangle -j MARK --set-mark 1 -m state --state NEW -o $ethisp1 iptables -A POSTROUTING -t mangle -j MARK --set-mark 2 -m state --state NEW -o $ethisp2 iptables -A POSTROUTING -t mangle -j CONNMARK --save-mark -m state --state NEW

iptables -t nat -A POSTROUTING match -j LOG --log-prefix "\nPOSTR-nat" iptables -A POSTROUTING -t nat -m mark --mark 1 -j SNAT --to-source $ipextern1 -o $ethisp1 iptables -A POSTROUTING -t nat -m mark --mark 2 -j SNAT --to-source $ipextern2 -o $ethisp2

iptables -t mangle -I INPUT $match -j LOG --log-prefix "INP-mangle" iptables -t filter -I INPUT $match -j LOG --log-prefix "INP-filter" iptables -t filter -I OUTPUT $match -j LOG --log-prefix "OUTP-filter" iptables -t nat -I OUTPUT $match -j LOG --log-prefix "OUTP-nat" iptables -t mangle -I OUTPUT $match -j LOG --log-prefix "OUTPUT-mangle" iptables -t mangle -I FORWARD $match -j LOG --log-prefix "FORW-mangle" iptables -t filter -I FORWARD $match -j LOG --log-prefix "FORW-filter"

<sfarsit script>

Rezultatul: destination host unreachable si de pe statii si de pe server. Din ce am reusit sa urmaresc cu ajutorul logului din iptables lucrurile stau cam asa:

In Prerouting-mangle
   in=eth2 (interfata dinspre lan)
   out=
s=10.10.10.111 (ipul clientului din reteaua locala de unde dau ping inspre: d=66.102.9.99 (google .. din statia windows: ping 66.102.9.99 -t)

(aici are loc rutarea si nu stiu ?!? de ce alege intotdeauna interfata eth3 desi e setat weightul mai mare pe eth1)

In Forward-mangle,filter - se vede rezultatul rutarii inspre eth3
   in=eth2
   out=eth3
   s=10.10.10.111
   d=66.102.9.99

In Postrouting-mangle
   in=
   out=eth3
   s=10.10.10.111
   d=66.102.9.99

(de aici pachetul `dispare` nu se intoarce nimic inapoi .. nu stiu nici macar de ce nu se vede si in Postrouting-nat)

Alte info aditionale:
ip rule list
0:      from all lookup local
32764:  from all fwmark 0x2 lookup 2
32765:  from all fwmark 0x1 lookup 1
32766:  from all lookup main
32767:  from all lookup default

ip route show table 1
ip route default dev eth1  scope link

ip route show table 2
default dev eth3  scope link

ip route
x.x.x.0/25 dev eth1 proto kernel scope link src x.x.x.x y.y.y.0/24 dev eth3 proto kernel scope link src y.y.y.y 10.10.10.0/24 dev eth2 proto kernel scope link src 10.10.10.1
169.254.0.0/16 dev eth3  scope link
default equalize
nexthop via x.x.x.x dev eth1 weight 2 nexthop via y.y.y.y dev eth3 weight 1






----- Original Message ----- From: "Mircea Croitor" <[EMAIL PROTECTED]> To: "Romanian Linux Users Group" <[email protected]>
Sent: Sunday, March 26, 2006 10:57 AM
Subject: Re: [rlug] multihomed problem


cand ai facut scriptul respectiv, ai luat in considerare mersul pachetelor din reteaua interna spre cei doi ISP, numai ca nu ai pus
interfetele in unele reguli
verifica peste tot interfata de intrare sau iesire (dupa caz) conform
acestui sens

pentru sensul invers, in ce priveste forwardingul spre reteaua interna
merge automat

la POSTROUTING nu poti sa pui -i, doar -o, si nu mai are rost sa
verifici mark-ul

la -t mangle -A PREROUTING -j CONNMARK --restore-mark, adaugi -i
$iflan


_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui