Configurando o Ubuntu Linux 16.04 como roteador dentro de uma VM

Configurando o Ubuntu Linux 16.04 como roteador dentro de uma VM

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

Quero configurar uma VM Ubuntu como um roteador em execuçãoatcdpara que eu possa fazer testes direcionados de um único dispositivo sob diversas condições de rede. Consegui fazer com que as peças funcionassem, mas não consegui fazer com que o gateway roteasse meus pacotes.

Síntese do que tentei:

  • Crie uma VM Ubuntu 16.04 ( "router") em um host Ubuntu 16.04 ( "laptop")
  • Criou duas NICs para a VM, ambas interligadas ao único adaptador WiFi do host
  • Defina a primeira NIC ( enp0s3) a ser configurada estaticamente para ser o gateway, em 192.168.0.199
  • Defina a segunda NIC ( enp0s8) para ser configurada automaticamente via DHCP, por exemplo, 192.168.0.100
  • Usei as seguintes iptablesregras (deaquieaqui) sobre 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 em teste ( "test-device") configurado para estar no IP estático 192.168.0.77, configurado para usar 192.168.0.199 como gateway.

Neste ponto, consigo acessar um servidor HTTP em execução routerpor meio de 192.168.0.199 e 192.168.0.100 de outras máquinas na LAN que estão configuradas para ainda usar o roteador Wifi como gateway (192.168.0.1).

test-deviceé capaz de executar ping em hosts na Internet, no entanto, não consegue configurar conexões TCP para eles (por exemplo, curl www.google.comfalha com "Destino inacessível".

Algumas outras coisas que valem a pena compartilhar:

iptablesconfiguração em 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 

Não sei o que fazer a seguir e preciso de ajuda!

Responder1

Vocênão ativou o encaminhamento de IPem sysctl...

Pararealizar roteamento IPno UbuntuLinux:

sudo nano sysctl.conf

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

sudo sysctl -p

informação relacionada