[linux] portforwarden

Pagina: 1
Acties:
  • 118 views sinds 30-01-2008
  • Reageer

  • shadax
  • Registratie: Mei 2000
  • Niet online
Is het mogelijk met linux dat als je meerdere servers hebt en ip dat je dan op hostnamen bij de goede server uitkomt? Dus als je naar http://server1.domein.dyndns.org surft dat je dan bij een andere machine uitkomt dan http://server2.domein.dyndns.org.

(Tuurlijk kan je iedere server een eigen poort geven en dan met http://domein.dyndns.org:80 en http://domein.dyndns.org:81 op 2 verschillende machines komen)

Verwijderd

Je kunt virtual servers draaien die je kunt aanspreken dmv de http header. Het enige probleem wat je houdt is dat poort 80 maar 1x te forwarden is, dus wanneer je meerdere sites host op verschillende servers kun je eventueel alle sites op beide servers planten, en via de PREF optie in de portfw module load balancen tussen de servers.

Ga er zelf ook mee spelen binnenkort, ben benieuwd naar ervaring van anderen.

  • imdos
  • Registratie: Maart 2000
  • Laatst online: 23-08 14:29

imdos

I use FreeNAS and Ubuntu

Dit heeft weinig met port forwarden te maken. Het lijkt mij gewoon een kwestie van dns draaien. Uiteraard moet het dan wel je eigen domein zijn. dus pietje.server.dyndns.org en pietje2.server.dyndns.org!

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


  • shadax
  • Registratie: Mei 2000
  • Niet online
Bedoeling is om meerdere machines met een private ip bereikbaar te maken vanaf internet.

  • imdos
  • Registratie: Maart 2000
  • Laatst online: 23-08 14:29

imdos

I use FreeNAS and Ubuntu

kan nog steeds (juist beter), ik dacht al dat ik je verhaal begreep :P Zodra je server domein.dyndns.org heeft kan je de sub-domeinen daarboven (pietje etc.) gewoon op je server toevoegen. Dit wordt dan alleen een intern ip-adres maar dat maakt niet uit voor de functionaliteit! De rest van de wereld ziet dan gewoon die andere pc's.
zoek eens info over dns opzetten!

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


  • shadax
  • Registratie: Mei 2000
  • Niet online
Ik heb een lokale dns server draaien, ik weet ook wel dat als je meerdere public ip's hebt dat het dan super simpel is. Dan heb je niet eens dns nodig. Maar ik heb maar 1 public ip.

  • imdos
  • Registratie: Maart 2000
  • Laatst online: 23-08 14:29

imdos

I use FreeNAS and Ubuntu

Het is toch zo met dns dat als jij op dat public-ip je domein opgeeft en een externe machine je opzoekt hij eerst naar dyndns gaat, dan jou ip-adres krijgt en dan is die op jou server.
Zet jij op jou server dan een dns-tabel neer met pietje.domein.dyndns.org met als adres 192.168.x dan zou het gewoon te bereiken zijn volgens mijn weten.
- Correct me if i'm wrong -

pvoutput. Waarom makkelijk doen, als het ook moeilijk kan! Every solution has a new problem


  • FatalError
  • Registratie: Juni 1999
  • Laatst online: 06:24
die 192.168.*.* vind ie echt niet van buitenaf. Wel zou je nu portforwarding kunnen installeren zodat als hij doorverwezen wordt (via DNS) naar een poort op jouw machine die weer geforward wordt naar een andere server in je interne netwerk.

If it ain't broken, tweak it! | gasloos sinds oktober 2025, hoekwoning 1978 | 10kWp PV, Panasonic K serie 7kW, Atlantic Explorer V5 270L | Tesla Model Y | 3x Victron MP2 6k5, 48kWh


Verwijderd

Het probleem blijft dat er twee dozen achter de firewall staan die ieder een eigen (sub)domein hebben. Deze (sub)domeinen staan in de DNS verwezen naar het publieke ip van de firewall, vanaf daar moet het verkeer gesplitst worden naar 1 van de 2 webservers.

Je kunt dit met ipchains alleen op poort nummer doen, en daar ligt het probleem, ze draaien beide onder 80.

  • FatalError
  • Registratie: Juni 1999
  • Laatst online: 06:24
"ze draaien beide onder 80."

Dat maakt nix uit, je kan ingaande data op b.v. poort 81 doorsturen naar poort 80.

If it ain't broken, tweak it! | gasloos sinds oktober 2025, hoekwoning 1978 | 10kWp PV, Panasonic K serie 7kW, Atlantic Explorer V5 270L | Tesla Model Y | 3x Victron MP2 6k5, 48kWh


Verwijderd

Ja, dat kan. Maar zoals je in de opening van deze thread kunt lezen is dit niet de bedoeling.

  • shadax
  • Registratie: Mei 2000
  • Niet online
Is er niet iets dat als je op port 80 naar
server1.mijndomein.com kijkt, dat hij dan naar port 81 gaat
server2.mijndomein.com kijkt, dat hij dan naar port 82 gaat
server3.mijndomein.com kijkt, dat hij dan naar port 83 gaat
Misschien kan dit met apache wel voor httpd, maar, ik wil het eigenlijk ook voor popmail, ftp, ssh enzo.

Verwijderd

ik zoek al een tijdje naar een faq voor zoiets maar die is er niet geloof ik.


zover ik weet kun je met virtuele domeinen werken in apache en die doorverwijzen naar andere bakken intern.
Je kunt ook met squid (www.squid.org dacht ik) port forwarden op zo een manier. Wat de voordelen zijn weet ik niet precies.

de email gaat nooit werken zo want dat gaat met mx records. ftp wel als je dat instelt natuurlijk bij apache (of gaat dat vanzelf?)

je moet maar eens zoeken bij www.apache.org.

Ikzelf zoek ook al tijden naar manieren om aan loadbalancing te doen met gratis middeleen onder linux maar ik heb nog niks gevonden.

Verwijderd

euhm.... het KAN zijn dat ik gewoon te simpel denk, maar als je in de local hosts file van de server die namen invoert en ze laat verwijzen naar het interne ip adres van die machine, dan zou er geen probleem mogen zijn. Voor zover ik kan beredeneren komen alle requests naar pietje.server.com en pietje2.server.com via dns routering op jouw bak uit. vervolgens kan via hosts de weg verder naar binnen worden gevonden (ervanuitgaande dat je firewall dat toestaat\)

Verwijderd

volgens mij is dat van die hostfile echte onzin, maar goed, wie ben ik.

wie weet werkt het wel

hc

  • Roel
  • Registratie: Februari 2000
  • Laatst online: 05-08 07:47

Roel

screen -x addict

idd..
ik denk dat je dit ongeveer bedoelt:
Je hebt kabel met 1 ip en 2 pc's erachter: client1, client2 en de server is server1.

Op alle 3 de pc's draait ftp of http en je wilt dat:
server1.dyn.dhs.org naar poort 80 op server1 gaat,
client2.dyn.dhs.org naar poort 80 op client1
etc
zonder poortnummers in te stellen.
Misschien dat het werkt om een poortnummer in de gegevens van dyn.dhs te zz ?
ik ga het iig nu uitproberen, eerst ff een http server voor windows downen :)

Resistance is futile (If < 1 Ohm)


  • shadax
  • Registratie: Mei 2000
  • Niet online
Een beetje wat ik wil voor http kan met apache:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^server2\.domein\.com$ [NC]
RewriteRule ^(.*) [url="http://server.com:81$1"]http://server.com:81$1[/url] [L]

Dit is nog een beetje brak, sowieso werkt het nog niet met subdomeinen voor "server2", maar dat moet vrij makkelijk te doen zijn.

Wat je nu wel hebt is dat als je server2.domein.com in je browser intikt, dat je adres in de adresbalk veranderd in domein.com:81. Maar is, volgens mij, niet echt goed op te lossen met apache.

Verwijderd

kun je dat even uitleggen?

waar tik je dat in?

  • shadax
  • Registratie: Mei 2000
  • Niet online
{VirtualHost virt.domein.com}
ServerAdmin webmaster@domein.com
DocumentRoot /www/domein.com/HTML/
ServerName www.domein.com
ServerAlias *domein.com
ErrorLog logs/domein.com-error_log
CustomLog logs/domein_log common
HostNameLookups on
RewriteEngine On
RewriteCond %{HTTP_HOST} ^server2.domein.com$ [NC]
RewriteRule ^(.*) [url="http://domein.com:81$1"]http://domein.com:81$1[/url] [L]
{/VirtualHost}

/edit maar ff {-jes gebruikt

Verwijderd

Portforwarden kan inderdaad naar meerdere interne hosts, alleen niet (en ik herhaal NIET) op basis van (sub) domeinnamen.
Deze domeinnamen worden namelijk altijd eerst omgezet in het bijbehorende IP nummer.

Dit is dus bij jou altijd het ene IP waarmee je aan de kabel/telfoonlijn o.i.d hangt;
Ook al heb je zelf een DNS-server op die computer hangen dan nog kun je niet op je interne host komen. Simpelweg omdat je DNS dan een private-ip terug geeft en laten alle internet-gebruikers dat IP nou net niet kunnen vinden op internet (het is niet voor niks een private ip).

De enige oplossing is om het verkeer via je firewall te (port)forwarden naar de verschillende interne hosts. Vervolgens ligt het dan aan het protocol dat gebruikt wordt of dit uberhaupt op domeinnaam mogelijk is.

HTTP bijvoorbeeld stuurt een host-header(domein-naam) mee.
Als je dus je interne hosts instelt dat de ene alleen op domein 1 reageert an de andere alleen op domein 2 reageert heb je precies wat je hebben wilt.

Houdt er echter wel rekening mee dat er ander protocollen zijn die geen host-header meesturen! Voorbeelden zijn FTP en TELNET.
Domein gebaseerde hosting op meerdere (interne) servers is met die protocollen dan ook niet mogelijk

  • lucid
  • Registratie: September 2000
  • Laatst online: 14-09-2023

lucid

If it ain't broken...tweak it!

<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR>Op 06 november 2000 03:13 schreef nelske het volgende:
Portforwarden kan inderdaad naar meerdere interne hosts, alleen niet (en ik herhaal NIET) op basis van (sub) domeinnamen.
Deze domeinnamen worden namelijk altijd eerst omgezet in het bijbehorende IP nummer.

Dit is dus bij jou altijd het ene IP waarmee je aan de kabel/telfoonlijn o.i.d hangt;
Ook al heb je zelf een DNS-server op die computer hangen dan nog kun je niet op je interne host komen. Simpelweg omdat je DNS dan een private-ip terug geeft en laten alle internet-gebruikers dat IP nou net niet kunnen vinden op internet (het is niet voor niks een private ip).

De enige oplossing is om het verkeer via je firewall te (port)forwarden naar de verschillende interne hosts. Vervolgens ligt het dan aan het protocol dat gebruikt wordt of dit uberhaupt op domeinnaam mogelijk is.

HTTP bijvoorbeeld stuurt een host-header(domein-naam) mee.
Als je dus je interne hosts instelt dat de ene alleen op domein 1 reageert an de andere alleen op domein 2 reageert heb je precies wat je hebben wilt.

Houdt er echter wel rekening mee dat er ander protocollen zijn die geen host-header meesturen! Voorbeelden zijn FTP en TELNET.
Domein gebaseerde hosting op meerdere (interne) servers is met die protocollen dan ook niet mogelijk[/quote]Kijk, hier hebben mensen wat aan, alleen mis ik nog het stukje waar in verteld wordt waar je dat portforwarding in je firewall doet.. Als je gaat zoeken op portforwading en firewalls op freebsd.org, google, altavista en redhat kom je niet verder..

  • shadax
  • Registratie: Mei 2000
  • Niet online
Over portforwarden met linux heb ik het een keertje gehad met Januz_ op dit forum, gebruik de search ff, topic titel was geloof ik iets met icq.

Verwijderd

Nog steeds heb je een probleem, forwarden gaat alleen op ip en poort.

Stel we hebben twee webservers achter een potrforwarder staan, www1.foo.com (192.168.1.1) & www2.foo.com (192.168.1.2). De forwarder heeft een publiek ip, laten we zeggen 1.2.3.4, een DNS lookup van zowel www1 & www2 door iemand op het internet geeft 1.2.3.4 als resultaat. Doet hij dit in een webbrowser dan komt hij aan op 1.2.3.4:80, deze wordt opgevangen door de forwarder op poort 80 en komt uit bij OF www1 OF www2 ( uiteraard afhankelijk van de gedefineerde forwarder ).

Zoals ik al eerder zei zou je middels de PREF optie in ipmasqadm de load kunnen balancen tussen www1 & www2, dit heeft alleen zin als beide servers dezelfde pages hosten.
Dit lost nog steeds niet de vraag op van de 1ste post... Wat je zou kunnen doen is al het verkeer op poort 80 laten uitkomen op www1, op die bak virtual servers draaien met de domeinen van www2 en deze vanaf deze bak (www1)laten redirecten naar www2.

Dit klinkt allemaal heel leuk, maar wanneer je gaat redirecten vanaf www1 naar www2 krijgt de browser van de bezoeker het private ip van www2 voor zijn kiezen (192.168.1.2) en dat gaat niet werken. Het zou dus mooi zijn wanneer iemand een oplossing zou weten om een virtual server te redirecten naar een andere bak zonder er verwezen wordt naar het private ip van de geredirecte virtual server.

hmmm, misschien een beetje warrig ;) maar goed, tot zover mijn visie...

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
De enige oplossing die ik kan bedenken is dat je op de gateway een http daemon zet die het alle packets inspecteert en dan kijkt naar welke server ze moeten.

  • shadax
  • Registratie: Mei 2000
  • Niet online
<BLOCKQUOTE><font size=1 face=Verdana, Arial, Helvetica>quote:</font><HR>Dit klinkt allemaal heel leuk, maar wanneer je gaat redirecten vanaf www1 naar www2 krijgt de browser van de bezoeker het private ip van www2 voor zijn kiezen (192.168.1.2) en dat gaat niet werken. Het zou dus mooi zijn wanneer iemand een oplossing zou weten om een virtual server te redirecten naar een andere bak zonder er verwezen wordt naar het private ip van de geredirecte virtual server.[/quote]Dat doe ik toch met apache een paar berichten terug?

Verwijderd

Sorry shadax, heb over de 81 gelezen...
Pagina: 1