Acesso à Internet na rede interna com IPTables

Acesso à Internet na rede interna com IPTables

Em uma nuvem privada que estou configurando, tenho algumas VMs RHEL, redes e um roteador no openstack. Meu roteador está conectado à Internet pública e meu nó de gateway está conectado ao roteador e tem acesso à Internet através da eth0. O nó está conectado à rede interna na eth1. Tenho alguns nós RHEL internos conectados à rede interna em suas interfaces eth0. Todos os nós podem executar ping uns nos outros e acredito que os arquivos ifcfg de cada nó estão configurados corretamente.

Usando IPTables, tentei fornecer acesso à Internet aos nós internos:

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT  
iptables -A FORWARD -i eth0 -o eth1 -m conntrack -ctstate ESTABLISHED,RELATED -j ACCEPT  
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Também habilitei o encaminhamento ipv4 (desabilitado por padrão) no nível do kernel. Depois de salvar a configuração e o SSH em um nó interno, não consigo executar ping em endereços externos:

# ping 8.8.8.8
connect: Network is unreachable

Meu roteador no openstack tem uma rota estática com
CIDR de destino: minha rede interna
Next Hop: meu nó de gateway

Por que não consigo acesso à Internet nos meus nós internos? O que estou perdendo aqui?

Responder1

Pode ser que você não tenha habilitado o encaminhamento no kernel -

Tentar

echo 1 > /proc/sys/net/ipv4/forward

Se isso resolver o problema, torne-o permanente editando /etc/sysctl.conf e adicionando a linha

net.ipv4.ip_forward = 1

Responder2

Network is unreachablesignifica que não há rota definida para chegar a 8.8.8.8. Provavelmente, este é um problema retornado diretamente pela VM e que está na VM, não no host.

OpenStack tem muitas configurações de rede possíveis diferentes. Você acabou de escrever "redes" e não forneceu nenhuma informação sobre os IPs das VMs. Esperando que não haja nenhuma configuração desconhecida (redes intermediárias com NATs intermediários concluídos), em cada VM você precisa adicionar uma rota padrão através do IP definido na eth1interface do seu roteador. se esse IP fosse, por exemplo, 10.0.2.1, então isso seria suficiente:

ip route add default via 10.0.2.1

Para configurações permanentes, deve ser adicionado em seu arquivo de configuração específico (verRotas estáticas e o gateway padrãode Redhat).

informação relacionada