KVM & Port forward från host till guest

Permalänk
Medlem

KVM & Port forward från host till guest

Hej,

Jag är nybörjare på virtualisering så ha överseende

Jag har satt upp Ubuntu med KVM och en Ubuntu guest. Jag har 1 ip-adress så jag har satt upp det med NAT.
Hosten har ip 192.168.0.212 och guesten 192.168.122.92.

Jag har apache på port 80 på guesten och vill göra en port forward från hosten till guesten och har förstått att jag ska använda mig av iptables. Men exakt hur?

Det jag gjort är:
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.122.92:80
sudo iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT

Det ger inte riktigt önskat resultat.
* På hosten: Jag kan surfa till http://localhost/ och landar på guesten men surfar jag till 192.168.0.212 gör jag det inte??
* Utifrån: Jag kan surfa till 192.168.0.212 och landar på guesten.
* På guesten: Jag kan surfa till 192.168.122.92 och localhost, men inte 192.168.0.212 OCH jag kan heller inte surfa till andra sidor via http. Https och annan nätverkstrafik fungerar.

Tack på förhand!

Permalänk
Medlem

Brygga nätverkskortet istället då hamnar din vm på samma nät som resten av datorerna med en egen ip.

Permalänk
Medlem
Skrivet av Kamouflage:

Jag har 1 ip-adress

Skrivet av jocke92:

Brygga nätverkskortet istället då hamnar din vm på samma nät som resten av datorerna med en egen ip.

Rimmar illa, men tack för förslaget!

Permalänk
Medlem
Skrivet av Kamouflage:

Rimmar illa, men tack för förslaget!

Aha då förstår jag, kändes som om du satt på ett internt nätverk och inte var begränsad till antal ip.
Har du provat att slå upp localhost med dig/nslookup? Kanske ger svar på en fråga

Permalänk
Medlem
Skrivet av jocke92:

Aha då förstår jag, kändes som om du satt på ett internt nätverk och inte var begränsad till antal ip.

Du gissar rätt, det är på ett internt nätverk just nu tills jag får det här att fungera, då kommer den hamna externt och vara begränsad av 1 ip

Permalänk
Medlem

Tror jag har en lösning:

sudo iptables -t nat -I PREROUTING -p tcp -d 192.168.0.212 --dport 80 -j DNAT --to-destination 192.168.122.92:80

istället för

sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.122.92:80

Alltså en aningens mer specifik regel så att ALL trafik på port 80 inte studsar tillbaka till hosten, utan bara om man försöker nå just 192.168.0.212 på port 80!

Det fungerar fortfarande inte som tänkt i dessa case dock:
host: Kan inte surfa till http://192.168.0.212/ eller http://localhost/ men 192.168.122.92 fungerar
guest: Kan inte surfa till http://192.168.0.212/ men localhost och övriga scenarion fungerar, inklusive vanlig surf.
externt: Fungerar

Det fungerar alltså gott nog för mina behov som det är nu men har någon något förslag för att fixa det sista är jag öppen för att testa!

*edit*
Google säger mig att trafik till loopback inte berörs av "PREROUTING" så man lär göra såhär:
sudo iptables -t nat -I OUTPUT -p tcp -o lo --dport 80 -j DNAT --to-destination 192.168.122.92:80

Det löser att host kan surfa till 192.168.0.212, men det går fortfarande inte med 'http://localhost/' konstigt nog.

Undrar om man måste göra något liknande på guesten också, men det känns fel.. blir ett projekt för morgondagen hur som helst!