Hallo,
ich möchte mit dem folgenden Script Load Balancing machen. Der Ping (UDP) zu externen Seiten funtkioniert. Nur wenn ich eine Seite im Browser aufrufe dauert dies meist 20 Sekunden z.B. für google. Findet jemand einen Fehler im folgenden Script? Ich Markiere eingehende externe Verbindungen damit diese immer über das gleiche Interface laufen, z.b. für einen internen Webserver. Ausgehende Verbindungen werden über die Multipath-Route geregelt außer Sie wurden bereits markiert.
Das ganze ist mit VMware realisiert. Das IFWAN1 Interface ist im Bridge Mode und IFWAN2 im NAT Mode.
Das Gateway für IFWAN1 ist 192.168.2.1 und für IFWAN2 192.168.5.2. Es gibt scheinbar probleme bei TCP-Verbindungen. (z.B. bei HTTP)
Schonmal vielen Dank
Grüße
ich möchte mit dem folgenden Script Load Balancing machen. Der Ping (UDP) zu externen Seiten funtkioniert. Nur wenn ich eine Seite im Browser aufrufe dauert dies meist 20 Sekunden z.B. für google. Findet jemand einen Fehler im folgenden Script? Ich Markiere eingehende externe Verbindungen damit diese immer über das gleiche Interface laufen, z.b. für einen internen Webserver. Ausgehende Verbindungen werden über die Multipath-Route geregelt außer Sie wurden bereits markiert.
Das ganze ist mit VMware realisiert. Das IFWAN1 Interface ist im Bridge Mode und IFWAN2 im NAT Mode.
Das Gateway für IFWAN1 ist 192.168.2.1 und für IFWAN2 192.168.5.2. Es gibt scheinbar probleme bei TCP-Verbindungen. (z.B. bei HTTP)
Code:
#!/bin/bash
sysctl -w net.ipv4.ip_forward=1 > /dev/null
#WEIGHTS für Multipath-Route
WEIGHT1=1
WEIGHT2=1
#WAN 1
IFWAN1=eth1
IPWAN1=192.168.2.128
NWWAN1=192.168.2.0/24
#WAN 2
IFWAN2=eth2
IPWAN2=192.168.5.128
NWAN2=192.168.5.0/24
#LAN
IFLAN1=eth0
IPLAN1=192.168.3.1
NWLAN1=192.168.3.0/24
IPISP1=192.168.2.1
IPISP2=192.168.5.2
ip route del default
#Markierung 1
iptables -t mangle -N MARK-T1
iptables -t mangle -A MARK-T1 -j MARK --set-mark 1
iptables -t mangle -A MARK-T1 -j CONNMARK --save-mark
#Markierung 2
iptables -t mangle -N MARK-T2
iptables -t mangle -A MARK-T2 -j MARK --set-mark 2
iptables -t mangle -A MARK-T2 -j CONNMARK --save-mark
#Routing table für Tabelle T1
ip route add default dev $IFWAN1 via $IPISP1 table T1
ip route add $NWWAN1 dev $IFWAN1 table T1
ip route add $NWLAN1 dev $IFLAN1 table T1
#Routing table für Tabelle T2
ip route add default dev $IFWAN2 via $IPISP2 table T2
ip route add $NWWAN2 dev $IFWAN2 table T2
ip route add $NWLAN1 dev $IFLAN1 table T2
#Traffic der über IFWAN1 kommt soll mit 1 markiert werden, damit eingehender er immer über das gleiche Interface beantwortet wird
iptables -t mangle -A PREROUTING -i $IFWAN1 -j MARK-T1
#Traffic der über IFWAN2 kommt soll mit 2 markiert werden, damit eingehender er immer über das gleiche Interface beantwortet wird
iptables -t mangle -A PREROUTING -i $IFWAN2 -j MARK-T2
#bei bereits aufgebauten Verbindungen soll die Markierung wiederhergestellt werden
iptables -t mangle -A PREROUTING -i $IFLAN1 -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
#Regel damit Traffic mit Mark 1 immer in table T1 geht
ip rule add fwmark 1 table T1
#Regel damit Traffic mit Mark 2 immer in table T2 geht
ip rule add fwmark 2 table T2
#Multipath-Route für neue Verbindungen vom internen Netz (Load Balancing)
ip route add default scope global nexthop via $IPISP1 dev $IFWAN1 weight $WEIGHT1 nexthop via $IPISP2 dev $IFWAN2 weight $WEIGHT2
#NAT
iptables -t nat -A POSTROUTING -o $IFWAN1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $IFWAN2 -j MASQUERADE
Schonmal vielen Dank
Grüße