Configurar Ubuntu Linux 16.04 como enrutador dentro de una VM

Configurar Ubuntu Linux 16.04 como enrutador dentro de una VM

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

Quiero configurar una VM Ubuntu como enrutador ejecutandoatcdpor lo que puedo realizar pruebas específicas de un solo dispositivo en una variedad de condiciones de red. He conseguido que algunas piezas funcionen, pero no puedo lograr que la puerta de enlace enrute mis paquetes.

Resumen de lo que he probado:

  • Cree una máquina virtual Ubuntu 16.04 ( "router") en un host Ubuntu 16.04 ( "laptop")
  • Se crearon dos NIC para la máquina virtual, ambas conectadas en puente al único adaptador WiFi del host.
  • Configure la primera NIC ( enp0s3) para que se configure estáticamente como puerta de enlace, en 192.168.0.199
  • Configure la segunda NIC ( enp0s8) para que se configure automáticamente a través de DHCP, por ejemplo 192.168.0.100
  • Usó las siguientes iptablesreglas (deaquíyaquí) en 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
  • Dispositivo/host bajo prueba ( "test-device") configurado para estar en la IP estática 192.168.0.77, configurado para usar 192.168.0.199 como puerta de enlace.

En este punto, puedo acceder a un servidor HTTP que se ejecuta routera través de 192.168.0.199 y 192.168.0.100 desde otras máquinas en la LAN que están configuradas para seguir usando el enrutador Wifi como puerta de enlace (192.168.0.1).

test-devicepuede hacer ping a los hosts en Internet, sin embargo, no puede configurar conexiones TCP con ellos (por ejemplo, curl www.google.comfalla con "Destino inalcanzable").

Algunas otras cosas que vale la pena compartir:

iptablesconfiguración en 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 routeentradas

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 

¡No sé qué hacer a continuación y me vendría bien un poco de ayuda!

Respuesta1

No he activado el reenvío de IP.en sistema...

Arealizar enrutamiento IPen UbuntuLinux:

sudo nano sysctl.conf

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

sudo sysctl -p

información relacionada