Einrichten von Ubuntu Linux 16.04 als Router innerhalb einer VM

Einrichten von Ubuntu Linux 16.04 als Router innerhalb einer VM

(Migriert vonhttps://serverfault.com/questions/895250/setting-up-ubuntu-linux-16-04-as-a-router-within-a-vm)

Ich möchte eine Ubuntu-VM als Router einrichten, auf dematcdSo kann ich ein einzelnes Gerät unter verschiedenen Netzwerkbedingungen gezielt testen. Teile davon funktionieren, aber ich komme nicht weiter damit, dass das Gateway meine Pakete weiterleitet.

Wesentliches, was ich versucht habe:

  • Erstellen Sie eine Ubuntu 16.04 VM ( "router") auf einem Ubuntu 16.04 Host ( "laptop")
  • Zwei Netzwerkkarten für die VM erstellt, beide mit dem einzigen WLAN-Adapter des Hosts verbunden
  • Legen Sie die erste Netzwerkkarte ( enp0s3) so fest, dass sie statisch als Gateway konfiguriert wird, und zwar auf 192.168.0.199.
  • Stellen Sie die zweite Netzwerkkarte ( enp0s8) so ein, dass sie automatisch über DHCP konfiguriert wird, beispielsweise auf 192.168.0.100
  • Verwendet wurden die folgenden iptablesRegeln (ausHierUndHier) An router: iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE iptables -A FORWARD -i enp0s8 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i enp0s3 -o enp0s8 -j ACCEPT
  • Zu testendes Gerät/Host ( "test-device") mit der statischen IP-Adresse 192.168.0.77 und der Konfiguration zur Verwendung von 192.168.0.199 als Gateway.

An diesem Punkt kann ich routervon anderen Maschinen im LAN aus, die so konfiguriert sind, dass sie weiterhin den WLAN-Router als Gateway (192.168.0.1) verwenden, einen HTTP-Server erreichen, der sowohl über 192.168.0.199 als auch über 192.168.0.100 läuft.

test-devicekann Hosts im Internet anpingen, kann jedoch keine TCP-Verbindungen zu ihnen aufbauen (schlägt beispielsweise curl www.google.commit der Meldung „Ziel nicht erreichbar“ fehl).

Weitere Dinge, die es wert sind, mitgeteilt zu werden:

iptablesKonfiguration auf router:

root# iptables -L -v
Chain INPUT (policy ACCEPT 12012 packets, 5058K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  enp0s8 enp0s3  anywhere             anywhere             state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  enp0s3 enp0s8  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT 3220 packets, 271K bytes)
 pkts bytes target     prot opt in     out     source               destination         

ip routeEinträge

root# ip route
default via 192.168.0.1 dev enp0s3 onlink 
169.254.0.0/16 dev enp0s3  scope link  metric 1000 
192.168.0.0/24 dev enp0s3  proto kernel  scope link  src 192.168.0.199 
192.168.0.0/24 dev enp0s8  proto kernel  scope link  src 192.168.0.121 

Ich weiß nicht, was ich als nächstes tun soll und könnte etwas Hilfe gebrauchen!

Antwort1

Duhabe die IP-Weiterleitung nicht aktiviertim sysctl...

ZuIP-Routing durchführenin Ubuntu Linux:

sudo nano sysctl.conf

net.ipv4.ip_forward=1
net.ipv4.conf.all.forwarding=1

sudo sysctl -p

verwandte Informationen