• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]Load Balancing / Internetzugang über 2 DSL-Leitungen

OP
M

M4j3stic

Newbie
So, hier das Skript, mit dem alles problemlos läuft:

Code:
#!/bin/sh

# Pfade zu den Programmen

IP=/sbin/ip
IPTABLES=/usr/sbin/iptables
ECHO="/bin/echo"

GATEWAY_IP1=192.168.178.1
GATEWAY_IP2=192.168.178.1


GATEWAY_IF1="eth1"
GATEWAY_IF2="eth2"


SOURCE_NW="192.168.1.0/24"

TABLE1="DSL1"
TABLE2="DSL2"


$ECHO "Lösche alte Regeln"

$IP route del table $TABLE1
$IP route del table $TABLE2


$IP rule del table $TABLE1
$IP rule del table $TABLE2


$IPTABLES -F
$IPTABLES -t nat -F
$ECHO "Setze neue Regeln"

# Diese Schleife markiert alle rausgehenden Pakete
#
for i in PREROUTING OUTPUT; do
        $IPTABLES -t mangle -A "$i" -m conntrack --ctstate NEW -j CONNMARK --set-mark 1;
# it einer Wahrscheinlickeit von 50% bekommt er die marke 2

        $IPTABLES -t mangle -A "$i" -m conntrack --ctstate NEW -m statistic --mode random --probability 0.5 -j CONNMARK --set-mark 2;

        $IPTABLES -t mangle -A "$i" -j CONNMARK --restore-mark;
done;

$IP route add default via $GATEWAY_IP1 table $TABLE1 dev $GATEWAY_IF1

$IP route add default via $GATEWAY_IP2 table $TABLE2 dev $GATEWAY_IF2


$IP rule add from $SOURCE_NW table $TABLE1 fwmark 1

$IP rule add from $SOURCE_NW table $TABLE2 fwmark 2


# Zum Schluss noch die Interfaces maskieren

$IPTABLES -t nat -A POSTROUTING -o $GATEWAY_IF1 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o $GATEWAY_IF2 -j MASQUERADE

Hoffe, einer von euch kann es auch gebrauchen.
Nochmals vielen Danke an alle, die mir hier bei geholfen haben.

Grüße,

Stephan
 
Oben