Você está perdendo a regra de encaminhamento.
sudo iptables -A FORWARD -i wlan0 -o eth0 -m estado -o estado RELACIONADO, ESTABELECIDO -j ACEITAR
sudo iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
Eu tenho a seguinte configuração:
A > 169.254.8.125/16 < - (ad-hoc) - > 169.254.9.109/16 < B > 192.168.178.21 / 24 < - (wifi) - > 192.168.178.1/24 < AP / roteador > internet
Eu quero conectar A à internet via B. Até agora, a tabela de roteamento de A se parece com isso:
default via 169.254.6.109 dev eth0
169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.8.125
A tabela de roteamento de B se parece com isso:
default via 192.168.178.1 dev wlan0 proto static
169.254.0.0/16 dev eth0 proto kernel scope link src 169.254.6.109 metric 1
192.168.178.0/24 dev wlan0 proto kernel scope link src 192.168.178.21 metric 2
Na máquina B, habilitei o encaminhamento de IP fazendo sysctl net.ipv4.ip_forward=1
e
Eu adicionei uma regra de NAT ao iptables: iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Estou ciente de que ainda não tenho nenhum DNS para A.
Eu posso pingar B de A e vice-versa. Isso não deveria dar acesso à Internet ou pelo menos permitir o ping do roteador? O que estou perdendo?