Para encaminhar o pedido NAT, você deve ativar o Masquerading no iptables:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Mais detalhes podem ser encontrados na documentação .
Estou construindo um ambiente all-in-one openstack em uma máquina CentOS7.4. Por alguma razão eu tenho apenas uma interface de rede (eth0) e um endereço ip, então criei uma ponte linux (br0), e enviei dados para eth0 usando o comando iptables:
iptables -t nat -A POSTROUTING -s {bridge virtual ip} -j SNAT --to {eth0 ip}
Mas parece que não funciona.
Quando faço ping para 8.8.8.8 de br0 e executo o tcpdump, vejo que os dados podem ser encaminhados para eth0 e enviados para 8.8.8.8, mas quando os dados são enviados de volta para eth0, eles não podem ser encaminhados para br0 .
Ip forwarding
, net.bridge.bridge-nf-call-iptables
e net.bridge.bridge-nf-call-ip6tables
estão definidos como 1.
Como posso resolver este problema?
Para encaminhar o pedido NAT, você deve ativar o Masquerading no iptables:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Mais detalhes podem ser encontrados na documentação .