Como você mesmo disse, usar o NAT (via masquerade do iptables) não transforma o RaspPi em uma ponte. E há uma razão técnica (modo de 3 endereços na rede WLAN), porque você não pode apenas interligar WLAN e LAN, independentemente do tipo de hardware.
O que o NAT faz é fingir que o tráfego vindo da LAN por trás do RaspPi realmente se origina do próprio RaspPi, então a WLAN só vê cada um dos hosts (o RaspPi). O que a WLAN não faz é de alguma forma encaminhar as transmissões da camada 2 da WLAN para a LAN. Mas isso é necessário para o DHCP.
E nenhuma quantidade de mexer com iptables
fará isso por você.
Portanto, a opção mais simples é executar um servidor DHCP no RaspPi. Isso é o que eu faço e realmente funciona bem.
Se, por algum motivo, você tiver para usar as informações DHCP fornecidas pelo servidor DHCP na WLAN, porque isso oferece às suas máquinas informações personalizadas super especiais que só podem ser descobertas dessa maneira (improvável) , fica mais complicado. O limite ainda é que todo o assembly deve aparecer como um único host na WLAN, mas você pode usar WLAN_Kabel para fingir que este host é um dispositivo único na LAN do RaspPi. Isso funciona ignorando a pilha de rede Linux (e iptables) e reescrevendo os quadros da camada 2 diretamente, encaminhando-os entre LAN e WLAN. Ele também tornará seu RaspPi inacessível na WLAN.
Se isso não for suficiente, e você tiver para ter vários dispositivos, a única maneira é ativar o modo de quatro endereços na sua WLAN. Isso precisa ser suportado por todos os dispositivos WLAN, e vem com suas próprias dores de cabeça, então este é realmente o último recurso.