(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
iptables
reglas (deaquíyaquí) enrouter
: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 router
a 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-device
puede hacer ping a los hosts en Internet, sin embargo, no puede configurar conexiones TCP con ellos (por ejemplo, curl www.google.com
falla con "Destino inalcanzable").
Algunas otras cosas que vale la pena compartir:
iptables
configuració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 route
entradas
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
Tú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