← Back to team overview

sslug-teknik team mailing list archive

Re: forward/nat med iptables ????

 

Jesper Lund wrote:

On Tue, 7 Oct 2003 11:46:37 +0200
"Hans-Henrik Andresen" <hha@xxxxxxxxxx> wrote:

Hej, har prøvet i netværk, men ingen responce så jeg prøver her.

(TEORI) Jeg har 2 servere der identiske, med fælles disksystem, den
ene server er i drift, den anden enten ved at blive opdateret eller
klar som standby-server.

REALSERVER1 10.0.0.1
REALSERVER2 10.0.0.2

så vil jeg have en linuxbox med iptables som 'virtuel server',

VIRTSERVER 10.0.0.10

på min virtuelle server vil jeg så enten forwarde eller nat'te ALLE
porte undtagen ssh til REALSERVER1 eller REALSERVER2 alt efter hvilken
en der er i'drift'.

Så mine klienter skal altså web'e, ftp'e, samba mm. til VIRTSERVER.

Hvordan er det så lige min iptables skal se ud ????

Er spørgsmålet forstået ??

iptables -t nat -A PREROUTING -d 10.0.0.10 -p tcp --dport ! 22 -j DNAT
--to 10.0.0.1 iptables -t nat -A PREROUTING -d 10.0.0.10 -p udp -j DNAT
--to 10.0.0.1 iptables -t nat -A PREROUTING -d 10.0.0.10 -p icmp -j DNAT
--to 10.0.0.1

Sådan vil jeg tro. Hvis dine klienter sidder på samme netværk, 10.0.0.X,
skal der noget snat til. Så bliver det lidt mere besværligt, og det vil
jeg alde være en øvelse til den opmærksomme læser. :)


Mvh. Jesper

Hans-Henrik,
Hvis du bruger Jespers udmærkede forslag (som vel er ment som to forskellige ipt.setups som styres af et overvågnings script) så vil du slå alle forbindelser ihjel når du skifter (da den anden server intet kender til de eksisterende forbindelser)...Er det godt nok? Husk at du mister alle forbindelser (bortset fra ssh) til den server du skifter fra, du kan f.eks. ikke bruge dns. ftp og http mere - dem plejer jeg da at bruge når jeg opdaterer servere.

Forslag #1:
Du kunne jo lave et mellemstadie hvor du sender alle "tcp syn" pakker til den server der skal skiftes til, således at ny (tcp) trafik flyttes uden at nogen opdager noget. Også køre dette script en time (?) før du laver en 100% omdirigering af trafikken (og kvæler serveren).


Forslag #2:
Hvis alt trafik er tcp baseret så vil jeg forslå dig at bruge en simpel loadbalancing istedet: "tcp syn" pakker sendes til en tilfældig af de to servere, således at hvis den ene server er nede, så rammer et af retry'ene den anden sever.


mvh
Henrik Bork Steffensen












Follow ups

References