IP Vergabe für VMs

jogy

New Member
#1
Hallo!
Ich möchte für die VMs keine "echten" öffentlichen IPs vergeben, sondern nur interne nach dem Muster 192.168.x.x etc.
Mir genügt, wenn der Kunde seine VM über vmx.domain.tdl erreichen kann.
Gibt es da eine Anleitung, wie das zu routen und konfigurieren habe?

Danke im Voraus!
Gruß,
Jogy
 
#2
Das machste per Nat mit iptables im Hostystem. Dazu ne Frage bekommt der Kunde dann nur einen Port weitergeleitet so das sich mehrere VMs eine externe ip teilen. Oder willst im Host dann jeweils eine externe ip auf eine interne zur VM durchreichen?

Hier ein Beispiel wie man 1 externe IP komplett an eine interne durchreicht.
Wenns nur ein Port sein soll muss der jeweils noch in der Regel hinzugefügt werden. (vmbr0 kann natürlich auch ethX o.ä. sein... je nachdem wie deine Netzwerkconfig ausschaut)

Code:
#!/bin/sh
 
IPTABLES="/sbin/iptables"
 
#loesche alle Regeln
$IPTABLES -t nat --flush
 
# Routing fuer die virtuellen Maschinen
#
#####################################################################################################################
#####################################################################################################################
#
# 10.0.1.1 <-> 123.456.789.012 
#
#  VM1
#
# damit der VServer nach aussen kommunizieren kann:
$IPTABLES -t nat -A POSTROUTING -s 10.0.1.1 -o vmbr0 -j SNAT --to 123.456.789.012
# 
# und der Rückweg
$IPTABLES -t nat -A PREROUTING -d 123.456.789.012 -i vmbr0 -j DNAT --to-destination 10.0.1.1
Das hier muss natürlich auch noch in die sysctl.conf

Code:
#net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1
Mir genügt, wenn der Kunde seine VM über vmx.domain.tdl erreichen kann.
Wenn es sich nur um eine IP im Host handelt sind alle VMs über obige Domain erreichbar, wenn wie in meinem vorgenannten Beispiel jede VM ne IP durchgereicht bekommt so ist die Domain nicht zwingend nötig, da dann die VM auch extern per definierter IP erreichbar ist.
Was nicht geht ist .... port 22 Vm1ssh, port 23 VM2ssh mal als Beispiel... unter selber externe ip mit unterschiedlicher Domain .... bzw Port 22 unter einer IP doppelt nutzen und nur per Domain splitten wollen geht auch nicht.

Gruß Sven
 
Zuletzt bearbeitet:

jogy

New Member
#3
Herzlichen Dank Sven, für die ausführliche Antwort. :D
Ich möchte dem Kunden vorkonfigurierte VMs anbieten, die er dann nur über Web erreichen kann. Also:
Kunde1 = vm1.domain.tld = IP = 10.0.1.1
Kunde2 = vm2.domain.tld = IP = 10.0.1.2
...
Im Prinzip brauche ich doch dann doch nur 1 öffentliche IP und natte das Ganze dann, so dass ich dann im ISPconfig3 nur noch die internen 10.0.1.x Domains vergebe.
Kann Du mir da noch einmal einen Tip geben, wie ich das mit Iptables route?

Danke im Voraus,
Jogy
 
#4
Das ist genau das was ich im zweiten Teil von *was nicht geht* beschrieb ;)
Hintergrund, iptables arbeitet mit der IP, die Domaininfo steckt im Header, sprich wird erst vom Webserver ausgewertet der dann den entsprechenden vhost aufruft.
Du könntest noch im Host nen Proxy vorschalten, aber ob der Aufwand den Nutzen rechtfertigt ist natürlich ne andere Sache.

Gruß Sven
 
Zuletzt bearbeitet:

jogy

New Member
#5
Na ja, wenn ich rechne, dass 1 IP ca. 1 Euro kostet, sind das bei 100 Kunden = 100 Euro die ich sparen könnte. Hm.... gibt es denn da keine andere Lösung? ..... grübel.... grübel...
 
#6
Wozu für jede Webseite ne extra VM? Machs normal via vhost und fertig.
Für dein Vorhaben 100 VMs mit 100 Webseiten. Sorry ich erkenne da keinen Sinn dahinter.

Gruß Sven
 

jogy

New Member
#7
Auf den ersten Blick ist mein Vorhaben ja auch nicht leicht verständlich. Allerdings gehört zu der Webseite etwas mehr als nur Apache und eben das müssen die VM´s erzeugen ;-)
Wie könnte denn eine Lösung mittels Proxy aussehen? Gibt es da eine schlanke opensource Lösung? Squid ist wohl dafür zu groß oder wäre der ok?
 
#10
Die Frage ist halt .... bleibts bei ner reinen Webweiterleitung, da reichen apache und nginx (jo der kann das) völlig. Wenn jedoch noch mehr hinzukommt wirds nen bissl umfangreicher. Jede vm hat ja dann mindestens auch nen SSH mitlaufen, den würde ich dann durch unterschiedliche Ports basteln, weil ja alles 1 ip.
Sofern das keine geheime Sache ist würde mich der Hintergrund schon interessieren.
Denn auch auf Ressaurcenseite ists ja nicht grade sparsam jeder Webseite ne eigene VM zu verpassen.

gruß Sven
 
#12
Wenn ich mir das mal so vorstelle, kommen ja noch mailserver/ftp/Dns/Jails dazu.
Da wird das in deinem Vorhaben echt schwierig und ich würde mir einen Hoster suchen bei dem ich die VMs mit sauberen IPs versorgen kann.
ip-projects.de werf ich Dir dazu mal so an die Backe ;) (ips bekommste dort für lau dazu.... reine Verhandlungssache)

Gruß Sven
 
#14
Schau bei dem Hoster den ich nannte mal ins Forum. Dort landen monatlich Restposten mit zum Teil top Preisen.
Du hast halt Ansprüche die Dir ein Massenhoster eher nicht erfüllen kann. Wobei es auch bei H die Möglichkeit gibt entsprechend große Subnetze hinzuzumieten.
Da biste dann weit unter 1 euro/ip.
Jedoch ist dein 1 IP Vorhaben so wie Du es bisher geschildert hast nicht wirklich zufriedenstellend zu lösen.

Gruß Sven
 

Werbung