136185
Goto Top

Weiterleitung von IP-Adresse auf virtuelle Qemu-Maschine

Hallo zusammen,

ich versuche seit einigen Tagen meine virtuelle Maschine mit einer IP-Adresse zu verknüpfen. Ich besitzte einen Root Linux Server bei Strato mit 2 IP-Adresse und habe auf diesem eine virtuelle Ubuntu Maschine via Qemu-KVM laufen. Nun möchte ich, dass sämtliche Anfragen, die auf IP-Adresse 2 (eth1) hereinkommen an die Virtuelle Maschine redirected werden.

Die virtuelle Maschine ist mittels einer Virtuellen Brücken virbr0 verbunden und besitzt dadurch einen eigenen IP-Adressraum (Brücke auf Host 192.168.122.1, auf VM 192.168.122.58). Die Brücke ist über brctl mit dem Interface eth1 verknüpft.

Ich habe bereits versucht, sämtlichen traffic per
iptables -t nat -A PREROUTING  -p tcp -i eth1 -d XXX.XXX.XXX.XXX -j DNAT --to-destination 192.168.122.58
weiterzuleiten und auch
ip -4 route add XXX.XXX.XXX.XXX dev virbr0
scheint nicht zu funktionieren. Die virtuelle Maschine hat eine Internetverbindung nach draußen, allerdings wird bei myip.is die IP-Adresse 1, die eigentlich nur für den Root-Server gedacht ist angezeigt.

Vielen Dank im Voraus

Content-Key: 373674

Url: https://administrator.de/contentid/373674

Printed on: April 22, 2024 at 07:04 o'clock

Member: IrunGoldstein
IrunGoldstein May 12, 2018 at 06:25:22 (UTC)
Goto Top
Moin finnbrue,

den eingehenden Verkehr würde ich wie schon von dir versucht per DNAT im Prerouting mit folgendem Syntax verwenden:

Bsp.:

## Change destination addresses to 5.6.7.8 
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8
## Change destination addresses to 5.6.7.8, 5.6.7.9 or 5.6.7.10. 
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10 
## Change destination addresses of web traffic to 5.6.7.8, port 8080. 
# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 \ -j DNAT --to 5.6.7.8:8080

Der erste Fall würde deinem anwendungsfall entsprechen. Du brauchst die eingangs IP nicht angeben, da in diesem Fall das ganze Interface als Entscheidungsgrundlage genommen wird.

Eine Route sollte nicht von Nöten sein da dein Host seine angebundenen direkten Wege immer kennt.

Und den weg rückwärts raus aus dem Netzwerk, kannst du beispielsweise mit folgendem erledigen:

iptables -t nat -I POSTROUTING -p tcp -d MY_NETWORK/NETMASK -j SNAT --to-source IP 

Das sind alles nur Beispiele die natürlich auf deinen genauen IP adressraum angepasst werden müssen.

Beschäftige dich bitte mit dem Pre/Post Routing da es nicht ganz trivial ist und die Firewall ins Internet darstellt. Falscher Syntax kann dir Löcher einreissen.

http://ipset.netfilter.org/iptables.man.html

Grüße
Member: Lochkartenstanzer
Lochkartenstanzer May 12, 2018 at 09:32:28 (UTC)
Goto Top
Moin,

Aus Deiner Frage geht nicht ganz eindeutig hervor, ob Du für Deine VMs eigene IP-Adressen vom Provider hast oder mit RFC1918-Adressen und NAT arbeiten mußt.

Im Falle, daß Du eigene IP-Adressen für Deine VMs hast, mußt Du einfach nur pre tap-device die VMs ins gleiche Netze wie Deinen host hängen. Ansonsten mußt Du für Deine VMs passende NAT-Regeln einbauen.

lks