Configurando o Ubuntu Linux 16.04 como um roteador dentro de uma VM

0

(Migrado de link )

Eu quero configurar uma VM do Ubuntu como um roteador que executa o atcd para que eu possa fazer testes direcionados de um único dispositivo sob uma variedade de condições de rede. Eu consegui partes trabalhando, mas estou preso com a obtenção do gateway para rotear meus pacotes.

Gist do que eu tentei:

  • Crie uma VM do Ubuntu 16.04 ( "router" ) em um host do Ubuntu 16.04 ( "laptop" )
  • Criaram duas NICs para a VM, ambas conectadas ao único adaptador WiFi do host
  • Defina a primeira NIC ( enp0s3 ) a ser configurada estatisticamente como o gateway, em 192.168.0.199
  • Defina a segunda NIC ( enp0s8 ) para ser configurada automaticamente pelo DHCP, por exemplo, 192.168.0.100
  • Usou as seguintes regras de iptables (de aqui e < um href="https://www.revsys.com/writings/quicktips/nat.html"> aqui ) em router : %código%
  • Dispositivo / host em teste ( 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 ) configurado para estar no IP estático 192.168.0.77, configurado para usar 192.168.0.199 como o gateway.

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

router é capaz de fazer ping de hosts na Internet, no entanto, não é possível configurar conexões TCP com eles (por exemplo, test-device falha com "Destino inacessível".

Algumas outras coisas valem a pena compartilhar:

Configuração de curl www.google.com em iptables :

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         

router 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 

Não sei o que fazer a seguir e posso usar alguma ajuda!

    
por scorpiodawg 08.02.2018 / 08:26

1 resposta

-1

Você não ativou o encaminhamento de IP em sysctl ...

Para executar o roteamento IP no Ubuntu Linux:

sudo nano sysctl.conf

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

sudo sysctl -p
    
por 07.09.2018 / 01:51