Probowalem zrobic load balancing wedlug tego:
#!/bin/sh -x
IFI= #interfejs LAN
IPI= #ip LAN
NMI= #maska LAN
NWI= #adres sieci LAN
IFE1= #interfejs DSL1
IFE2= #interfejs DSL2
IPE1= #ip DSL1
IPE2= #ip DSL2
NWE1= #siec DSL1
NWE2= #siec DSL2
NME1= #maska DSL1
NME2= #maska DSL2
BRD1= #adres rozgloszeniowy DSL1
BRD2= #adres rozgloszeniowy DSL2
GWE1= #brama DSL1
GWE2= #brama DSL2
echo 1 >>/proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -j keep_state
iptables -t nat -A POSTROUTING -j keep_state
iptables -t nat -A OUTPUT -j keep_state
iptables -t filter -A INPUT -j keep_state
iptables -t filter -A FORWARD -j keep_state
iptables -t filter -A OUTPUT -j keep_state
iptables -t filter -N keep_state
iptables -t filter -A keep_state -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A keep_state -j RETURN
iptables -t nat -N keep_state
iptables -t nat -A keep_state -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A keep_state -j RETURN
ip link set $IFI up
ip addr add $IPI/$NMI brd + dev $IFI
ip rule add prio 50 table main
ip route del default table main
ip link set $IFE1 up
ip addr flush dev $IFE1
ip addr add $IPE1/$NME1 brd $BRD1 dev $IFE1
ip link set $IFE2 up
ip addr flush dev $IFE2
ip addr add $IPE2/$NME2 brd $BRD2 dev $IFE2
ip rule add prio 201 from $NWE1/$NME1 table 201
ip route add default via $GWE1 dev $IFE1 src $IPE1 proto static table 201
ip route append prohibit default table 201 metric 1 proto static
ip rule add prio 202 from $NWE2/$NME2 table 202
ip route add default via $GWE2 dev $IFE2 src $IPE2 proto static table 202
ip route append prohibit default table 202 metric 1 proto static
ip rule add prio 222 table 222
ip route add default table 222 proto static nexthop via $GWE1 dev $IFE1 nexthop via $GWE2 dev $IFE2
iptables -t nat -A POSTROUTING -o $IFE1 -s $NWI/$NMI -j SNAT --to $IPE1
iptables -t nat -A POSTROUTING -o $IFE2 -s $NWI/$NMI -j SNAT --to $IPE2
i 2 sposób:
#!/bin/sh
IF0=eth2
IF1=eth0
IF2=eth1
IP0=ip serwera na LANie
IP1=ip zewnetrzne dsl1
IP2=ip zewnetrzne dsl2
P1=brama dsl1
P2=brama dsl2
P0_NET=adres LAN
P1_NET=adres dsl1
P2_NET=adres dsl2
ifconfig $IF0 $IP0 broadcast BROADCAST netmask MASKA up
ifconfig $IF1 $IP1 broadcast BROADCAST netmask MASKA up
ifconfig $IF2 $IP2 broadcast BROADCAST netmask MASKA up
echo 1 >>/proc/sys/net/ipv4/ip_forward
ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2
ip route add $P0_NET dev $IF0 table T1
ip route add $P2_NET dev $IF2 table T1
ip route add 127.0.0.0/8 dev lo table T1
ip route add $P0_NET dev $IF0 table T2
ip route add $P1_NET dev $IF1 table T2
ip route add 127.0.0.0/8 dev lo table T2
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip route add default scope global nexthop via $P1 dev $IF1 weight 10 nexthop via $P2 dev $IF2 weight 1
#wrzucamy ustawienia tabelek
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
ip route flush cache
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF1 -j SNAT --to $IP1
iptables -t nat -A POSTROUTING -s $P0_NET -o $IF2 -j SNAT --to $IP2
Nie uzywam net_confa, ani firewalla zciecha (interfejsy sa podnoszone w plikach i na czas testowania zmienilem policy wszystkich lancuchow na accept), dodalem odpowiednie wpisy do /etc/resolv.conf i /etc/iproute2/rt_tables. Balancing lacza dziala ladnie w obydwoch przypadkach, tylko co jakis czas (niereglarnie) polaczenia z NATU sa samoczynncie rozlaczane (gg, irc, counter-strike). Ma ktos pojecie dlaczego tak sie dzieje?