Estou construindo uma rede virtual com 6 máquinas virtuais no virtualBox.
Um deles atua como roteador / nat / firewall.
Esta primeira máquina usa 4 placas de rede:
eth0 -> Internet
eth1 -> Subnet 1
eth2 -> Subnet 2
eth3 -> Host-Only Network
Cheguei ao ponto em que as máquinas nas sub-redes podiam se conectar à internet definindo o nat no "roteador" como:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Então comecei a configurar uma terceira sub-rede que sai de outra máquina virtual na sub-rede 2 com essas placas de rede:
eth0 -> Subnet 2
eth1 -> Subnet 3
Apenas uma outra máquina se conecta à sub-rede 3, mas vou configurar um servidor ssh para que eu precise rotear do roteador para a máquina na sub-rede 2 para a outra.
Para isso eu usei:
iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 192.168.20.46:22
No "roteador" e
iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 192.168.30.50:22
Na máquina do servidor ssh.
Além disso, para fazer com que todas as máquinas "vejam" uma a outra, usei:
route add default gw 192.168.20.46
route add -net 192.168.30.0 netmask 255.255.255.0 gw 192.168.20.46
Na máquina "roteador".
Agora, todas as máquinas podem fazer ping de tudo, desde as outras máquinas até o 8.8.8.8 e rastreá-las. No entanto,
apt-get update
em qualquer uma das máquinas, mas o roteador envia o pacote para o roteador e nenhuma resposta volta e fica preso na primeira linha:
0% Connecting ftp....(82.194.78.250)...
E nunca vai além disso. (apenas erros quando expirar)
Meu palpite é que o nat está enviando os pacotes corretamente, mas no caminho de volta eles não podem alcançar as máquinas de sub-rede.