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.
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
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!