[iptables] port forward

Pagina: 1
Acties:
  • 54 views sinds 30-01-2008

  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
Dag mensen,

Na veel gezoek kom ik er niet uit.

Ik wil graag op een server een portforward regelen met het volgende commando:
/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d 123.123.123.123 --dport 80 -j DNAT --to 124.124.124.124:80

Hierna als ik browse naar http://123.123.123.123/ probeert hij verbinding te openen, maar er gebeurd niets. Ik verwacht dat de connectie heen wel gemaakt wordt, maar dat terug niet goed werkt.

Weet iemand hoe je dit kan oplossen?

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 10:59

BoAC

Memento mori

Staat de gateway van je machine met IP 124.124.124.124 wel goed?

  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
Ja, het is een webserver die in bedrijf is.

Het betreft 2 servers bij een andere colo-provider. De servers worden verhuist van colo A aar colo A.

De oude server in colo A, heeft een aantal sites draaien die niet uit de lucht mogen. Maar bij verhuizing naar colo B, gaan de ip adressen wel veranderen. Omdat DNS 24u nodig heeft om overal gerefreshed te zijn, zullen er over die periode op beide ip-adressen aanvragen binnenkomen. Die wil ik beide opvangen en naar de colo A ip-adressen sturen. Daarvoor heb ik een machine in de nieuwe colo B, neergezet, die die nieuwe ips moet gaan forwarden naar de oude machine. Zodra 24u om is, kunnen de oude servers naar de nieuwe colo, en daar zijn nieuwe ip krijgen..

[ Voor 5% gewijzigd door ebas op 24-09-2003 13:54 ]


Verwijderd

wordt 124.124.124.124 wel genat door 123.123.123.123 ?

  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
Euhm nee.. ik dacht dus al wel dat dat een probleem zou zijn; maar ik kan nergens vinden hoe je een portforward doet naar een 'onafhankelijke' server

Verwijderd

html heeft vast wel handige forward opties iet smet meta dacht ik.

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 10:59

BoAC

Memento mori

Misschien moet je alle pakketten die terug worden gestuurd ook weer terug 'NATTEN'

/usr/sbin/iptables -t nat -A PREROUTING -p tcp -s 124.124.124.124 --sport 80 -j SNAT --to 123.123.123.123:80

Dus dan zet je de source terug naar 123.123.123.123 :?
Is ook maar een probeerseltje hoor :P

op http://www.netfilter.org/ staat daar toch wel een voorbeeldje van?

* BoAC vindt trouwen webmin met zijn firewall config-tooltje ontzettend handig

[ Voor 12% gewijzigd door BoAC op 24-09-2003 14:19 ]


  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
:) dat gaat niet werken natuurlijk; waar ga ik naar redirecten dan? een ip-nummer? Er draait meer dan 1 site op die server :) bovendien zitten er in die sites een hoop links en redirects in naar de hostname..

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 10:59

BoAC

Memento mori

Hoho ik doe nu een source nat voor alles wat de server terug stuurt vanaf poort 80!

[ Voor 42% gewijzigd door BoAC op 24-09-2003 14:20 ]


  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
sorry :) was reactie op AdminHenk

Verwijderd

ebas: ja heb je in principe gelijk in.
maar met iptables gaat het niet werken, ik kan ook niet ff een DNAT vanuit mijn linux bakkie naar www.tweakers.net maken, om het maar eens 'visueel' uit te leggen.

Voor het redirect probleem, er is toch vast wel iets, wat 1 specifieke virtual server kan redirecten naar een ander ip (waar dezelfde virt server draait.), beschikbaar zijn?

  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
Dan zou ik voor iedere site zoiets moeten maken, nee ik wil gewoon een portforward; want dat kan gewoon, ik moet alleen weten hoe..

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 27-04 22:58
Weet niet of je Apache gebruikt (vermoedelijk wel als je ook iptables gebruikt), maar je kunt ook mod_proxy in reverse mode hiervoor gebruiken volgens mij.

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 08:10

RvdH

Uitvinder van RickRAID

ebas schreef op 24 september 2003 @ 13:54:
Ja, het is een webserver die in bedrijf is.

Het betreft 2 servers bij een andere colo-provider. De servers worden verhuist van colo A aar colo A.

De oude server in colo A, heeft een aantal sites draaien die niet uit de lucht mogen. Maar bij verhuizing naar colo B, gaan de ip adressen wel veranderen. Omdat DNS 24u nodig heeft om overal gerefreshed te zijn, zullen er over die periode op beide ip-adressen aanvragen binnenkomen. Die wil ik beide opvangen en naar de colo A ip-adressen sturen. Daarvoor heb ik een machine in de nieuwe colo B, neergezet, die die nieuwe ips moet gaan forwarden naar de oude machine. Zodra 24u om is, kunnen de oude servers naar de nieuwe colo, en daar zijn nieuwe ip krijgen..
Waarom laat je die webserver in colo A niet gewoon een paar dagen doordraaien totdat iedereens DNS up-to-date is?

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 10:59

BoAC

Memento mori

Ik neem toch aan dat dit de situatie is:
code:
1
2
3
4
5
     ------        ---------------      ---------------
    |      |      |               |    |               |
    |Client|------|123.123.123.123|----|124.124.124.124|
    |      |      |               |    |               |
     ------        ---------------      ---------------

Waarvoor geldt dat 123.123.123.123 2 NIC's heeft :?

Well dan moet je toch alle verkeer dat naar 123.123.123.123:80 doorrouten naar 124.124.124.124:80 maar ook alle verkeer dat vanaf 124.124.124.124:80 'terugzetten' als zijnde verkeer vanaf 123.123.123.123:80. Anders snapt de client niet waar de data die hij binnen krijgt op de poort die hij geopend heeft vandaan komt?

Verwijderd

gewoon doen wat rick adviseert ;)

  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
Dan zijn die sites dus een tijd down hè :) Dat wil ik juist niet

BoAC: En de servers hangen allebei los ergens in internet...

[ Voor 35% gewijzigd door ebas op 24-09-2003 14:38 ]


  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 23-04 13:06
code:
1
2
3
4
./iptables -t nat -A PREROUTING -d xxx -p tcp --dport 80 -j DNAT --to-destination 192.168
.2.1:80
./iptables -I INPUT -i ppp0 -p tcp -d 192.168.2.1 -s 0.0.0.0/0 --destination-port 80 -j ACCEPT
./iptables -I OUTPUT -o ppp0 -p tcp -s 192.168.2.1 -d 0.0.0.0/0 --source-port 80 -j ACCEPT


Zo het ik het en dat zou bij jouw ook moeten werken. Een reverse proxy kan ook.

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 10:59

BoAC

Memento mori

ebas schreef op 24 September 2003 @ 14:36:
Dan zijn die sites dus een tijd down hè :) Dat wil ik juist niet

BoAC: En de servers hangen allebei los ergens in internet...
Dat is me nu ook duidelijk omdat je een eerder bericht wijzigde 8)7 8)7 |:(

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 08:10

RvdH

Uitvinder van RickRAID

ebas schreef op 24 September 2003 @ 14:36:
Dan zijn die sites dus een tijd down hè :) Dat wil ik juist niet
Euh, als je webservers draaien op 123.123.123.123 en op 124.124.124.124, dan zijn je websites juist 100% up, ongeacht of iemands DNS up to date is of niet.

Dan hou je de logfiles in de gaten op de oude webserver, en zodra er geen requests meer binnenkomen, dan draait de website volledig op de server in colo B.

Is toch niet zo moeilijk?

Voorbeeld:

client 1: DNS is up to date, voert in z'n browser www.website.nl in, en krijgt van zn DNS 124.124.124.124 terug. Browser connect met 124.124.124.124 waarop jij de webserver draait. Klaar.

client 2: DNS is nog niet up te date, voert in z'n browser www.website.nl in, en krijgt van z'n dns 123.123.123.123 terug. Browser connect daarmee, waarop niets is verandert en dus ook die website aanwezig is. Klaar.

Dan moet je dus alleen zorgen dat op bijde servers dezelfde websites geinstalleerd zijn, dezelfde files aanwezig zijn etc. Lijkt me heel wat minder werk als moeilijk doen met forwarden!

[ Voor 41% gewijzigd door RvdH op 24-09-2003 14:50 ]


  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
Het moeilijke eraan is, is dat ik dan 2 server zou moeten hebben die die sites draaien, die heb ik niet, en ik heb geen zin om helemaal een server te configureren met die sites, en al die sites met code van anderen, zo te gaan configureren dat ze 1 mysql-server gebruiken in plaats van de hard gecodeerde 127.0.0.1 overal. Daarbij draaien er ook nog wat perl scriptjes op die eigen filetje hebben wat ze als DB gebruiken, en er worden plaatjes e.d. geupload naar het filesysten. Hiervoor zou ik dus een tunnel moeten maken voor een NFS verbinding, om alles in sync te houden...

Dat vind ik iets meer werk dan een simpele portforward...

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 10:59

BoAC

Memento mori

RickJansen schreef op 24 September 2003 @ 14:47:
[...]


Euh, als je webservers draaien op 123.123.123.123 en op 124.124.124.124, dan zijn je websites juist 100% up, ongeacht of iemands DNS up to date is of niet.
Nee waarschijnlijk bestaat zijn 123.123.123.123:80 niet meer maar wil hij daarvandaan alles door-routen naar 124.124.124.124. Zeg ik dat goed? Volgens mij kun je dat nog steeds oplossen met iptables:

Het vervelende wordt alleen dat je na het natten niet meer weet waarnaartoe je het packet moet sturen als je responce krijgt :'( van de server

[ Voor 18% gewijzigd door BoAC op 24-09-2003 14:57 ]


  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
Maar die werken niet :)

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 10:59

BoAC

Memento mori

Maar waarom geen redirect naar met een IP-nummer? dmv een simpele webserver??

Verwijderd

BoAC: kan niet met iptables.

Je zou het eens kunnen kijken of er progamma's a la ftp bouncers zijn.

  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
er draaien veel sites op die server, en die hebben niet allemaal een ip-nummer; redirect naar ip gaat dus niet. Bovendien zijn er een hoop gratis php forums, php shops, enz die erop staan, en die willen nog wel eens terugspringen naar de hostname... en dat loopt dan spaak natuurlijk.

Ik kan ook alles een nieuwe hostname geven, maar dan is gewoon -te- veel werk..

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 08:10

RvdH

Uitvinder van RickRAID

Als je name-based vhosts hebt dan kun je het zowiezo wel vergeten met dat redirect verhaal.
ebas schreef op 24 september 2003 @ 14:52:
Het moeilijke eraan is, is dat ik dan 2 server zou moeten hebben die die sites draaien, die heb ik niet, en ik heb geen zin om helemaal een server te configureren met die sites,
scp httpd.conf user@nieuweserver:~
user@nieuweserver: $ ./replace_alle_oude_ip's_met_nieuwe httpd.conf
user@nieuweserver: $ apachectl restart
en al die sites met code van anderen zo te gaan configureren dat ze 1 mysql-server gebruiken in plaats van de hard gecodeerde 127.0.0.1 overal.
grep -r "mysql_connect" /webroot, filetjes aanpassen, klaar..
Daarbij draaien er ook nog wat perl scriptjes op die eigen filetje hebben wat ze als DB gebruiken, en er worden plaatjes e.d. geupload naar het filesysten. Hiervoor zou ik dus een tunnel moeten maken voor een NFS verbinding, om alles in sync te houden...
There is more than one way to do it. NFS hoeft niet perse door een tunnel. Synchen hoeft niet perse via NFS. Elk uur ff rsyncen?
Dat vind ik iets meer werk dan een simpele portforward...
Zo simpel is het toch niet, anders had je het nu allang voor elkaar of niet?

  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
Als je het weet is het waarschijnlijk simpel :)

en in andersmans sites geautomatiseerd scripts aanpassen :S Doe ik liever niet; als het foutgaat zoek je je een breuk.

en als het zo was dat ik een hele schone nieuwe server tot mijn beschikking heb, waar ik alles 1 op 1 kan kopieren.. ok Die heb ik niet :) ik heb zelf een server in Colo B staan die ik wel even wil gebruiken voor de verhuizing.. Dus dan moet ik de configs toch gaan intergreren met elkaar.

Ik hoop nog steed op iemand die een paar regeltjes post waarme het gewoon lukt

[ Voor 9% gewijzigd door ebas op 24-09-2003 15:25 ]


  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Wat ik zou doen:
Een copy maken van de harddisk op je server (met rsync zodat je hem ieder gewenst moment kan synchroniseren), naar een disk (wel zelfde type scsi of ide).
Die draait in een systeem wat i.i.g. ook scsi of ide is, hoeft niet een echte server te zijn, een oude PIII desktop kan ook.
Zet alle TTL's van je websites op 10 minuten.
Wacht een week.
Ga naar de nieuwe colo en zet je temp systeempje neer op de plek waar je server naar toe gaat.
Zet alle schrijfacties op de live server dicht zodat je content niet meer verandert.
Synchroniseer je temp systeempje en boot vanaf die disk.
Verander je DNS. Vanaf dit punt gaan de queries op je temp systeem komen.
Rij naar je oude server toe en haal hem weg (zal een uurtje later zijn gok ik), en breng hem naar zijn definitieve plek.
Als je daar in het colo hok zit zet je de temp server uit en breng je de oude up.

Het idee is dat je DNS TTL's heel klein maakt en de content readonly.
Dan switchen, content read/write maken, en TTL's weer goed zetten (dit hoeft niet direct maar kan ook een paar weken later).

Het enige wat je nodig hebt is een tijdelijk systeempje maar dat hoeft niet spectaculair te zijn.

  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
Zo zou ik het ook doen :) Ik zou dat uurtje down voor lief nemen.
Ware het niet dat ik een domeinen heb, waarvan ik de DNS niet draai....

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 08:10

RvdH

Uitvinder van RickRAID

Trouwens, het verhaal van 'na 24u redirect opzeggen en servers verhuizen' is ook zo lek als een mandje. Je hebt absoluut geen garantie dat na 24 uur elke dns op de wereld up-to-date is. Ik heb inmiddels zoveel domeinverhuizingen gedaan dat ik weet dat het kan voorkomen dat sommige dns'en er wel een week over doen.

Dit soort verhuizingen zijn gewoon niet in 2/3 dagen te doen. Als je zonder downtime wilt verhuizen zul je moeten zorgen dat tijdens de overlappingsperiode op beide locaties dezelfde data beschikbaar is.

Daarbij is er iets fundamenteels fout met het idee om mensen die op de nieuwe server terecht komen, terug te sturen naar de oude server. Het idee is toch juist dat ze daar *niet* meer terechtkomen? Als je dan iets dergelijks doet, zorg dan dat iedereen op de *nieuwe* server terecht komt..

  • Tweeker
  • Registratie: April 2003
  • Laatst online: 01-10-2023

Tweeker

1 + 1 = 3

/usr/sbin/iptables -t nat -A PREROUTING -p tcp -d 123.123.123.123 --dport 80 -j DNAT --to 124.124.124.124:80

dit is goed, maar je moet niet vergeten poort 80 in ieder geval ook te accepteren. download anders de monmotha scripts.... simpel en goed http://monmotha.mplug.org

1 + 1 = 3


  • ebas
  • Registratie: Maart 2001
  • Laatst online: 20-04-2017
RickJansen schreef op 24 september 2003 @ 15:31:
Ik heb inmiddels zoveel domeinverhuizingen gedaan dat ik weet dat het kan voorkomen dat sommige dns'en er wel een week over doen.
Dan moeten ze maar op een normale dns server zitten; volgens mij valt het wel mee met dat aantal. En ik heb gewoon niet de resources om zoiets uitgebreids uit te halen. Deze maand moeten die servers bij colo A vandaan zijn, dat is een gegeven, en daar moet ik het mee doen. Nog een week bij colo A een server laten staan is dus geen doen. Ik ga verhuizen, ik neem die servers daar mee, en er blijft niets achter. Vandaar dat ik het niet andersom doe.

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 08:10

RvdH

Uitvinder van RickRAID

ebas schreef op 24 september 2003 @ 15:44:
[...]


Dan moeten ze maar op een normale dns server zitten; volgens mij valt het wel mee met dat aantal. En ik heb gewoon niet de resources om zoiets uitgebreids uit te halen. Deze maand moeten die servers bij colo A vandaan zijn, dat is een gegeven, en daar moet ik het mee doen. Nog een week bij colo A een server laten staan is dus geen doen. Ik ga verhuizen, ik neem die servers daar mee, en er blijft niets achter. Vandaar dat ik het niet andersom doe.
Als je zo weinig resources daarvoor hebt, dan zullen je klanten het vast okee vinden als hun sites onbereikbaar zijn voor who-knows hoe lang..

  • Martkrui
  • Registratie: Februari 2002
  • Laatst online: 26-04 13:59
Ik heb hetzelfde probleem omdat ikzelf ga verhuizen en mijn servertje natuurlijk meeneem.

De gemakkelijkste oplossing voor mij is een machientje achterlaten met een ssh tunnel naar het nieuwe ip adres en poort forwarding op 25 en 80 zodat mail en http tenminste blijven werken.

Eigenlijk zoek ik nog zo'n tunnen prog zonder de overhead van encryptie, maar voor die paar dagen maakt het eigenlijk weinig uit, en SSH is wel lekker vertrouwd.

Ik wil nog proberen om de port forwarding door m'n Alcatel speed touch pro te laten doen, maar volgens mij kan die alleen naar intern forwarden.

Stom idee of lekker gemakkelijk ?

I haven't lost my mind! It's backed up on tape somewhere!


Verwijderd

NOS policy - updated 01/04/03

Het kicken van een topic is niet toegestaan. Zie ook de nos policy. Op slot.
Pagina: 1

Dit topic is gesloten.