Teve a situação exata como você, exceto pelo gateway (Cisco RV042G). No entanto, minha solução provavelmente não funcionará no E4200 devido à falta de recursos. Se for possível usando outros métodos, então está além do meu conhecimento. Estou adicionando a resposta para outras pessoas que podem estar procurando por uma solução como essa.
Vamos supor que 10.0.0.0/24 seja sua rede principal com o endereço de gateway 10.0.0.1 e 10.0.1.0/24 é a rede convidada. Etapas para reproduzir minha solução:
- Crie uma sub-rede diferente para os convidados no gateway. O gateway deve suportar esse recurso, pois cria várias tabelas NAT para rotear o tráfego da Internet para a sub-rede apropriada.
- Adicione uma regra de firewall para bloquear todo o tráfego de 10.0.1.0/24 a 10.0.0.0/24 no gateway.
- Use uma compilação do OpenWrt com o kernel 2.6+. O brcm-2.4 builds não será devido à falta de suporte ao ebtables. Eu usei uma build 12.06 com uma configuração baseada na configuração padrão brcm47xx. Com o opkg de imagem padrão não funciona enquanto eu não tentei 10.03. Eu recomendo um Debian 7 i386 para buildroot, já que perdi horas suficientes da minha vida com amd64 e vários erros aleatórios de compilação. Você pode usar o ImageBuilder, eu acho, mas eu não tentei. Para ebtables você precisa dos seguintes pacotes: ebtables, ebtables-utils, kmod-ebtables-ipv4. O módulo do kernel não é adicionado automaticamente como dependência , portanto tenha cuidado.
- Estas regras ebtables abaixo em /etc/firewall.user para bloquear a transmissão DHCP do gateway, se o gateway não suportar vários pools DHCP. RV042G não. Encontrou-os nos fóruns do OpenWrt, adaptou-os para o 12.06, que usa eth0.0 como nome de interface para o lan VLAN.
ebtables -F
ebtables -A INPUT --in-interface eth0.0 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP
ebtables -A INPUT --in-interface eth0.0 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -A FORWARD --in-interface eth0.0 --protocol ipv4 --ip-protocol udp --ip-destination-port 67:68 -j DROP
ebtables -A FORWARD --in-interface eth0.0 --protocol ipv4 --ip-protocol udp --ip-source-port 67:68 -j DROP
- Opcional: Configure a interface lan para a sub-rede secundária. Você precisa alterar o endereço se o gateway e o OpenWrt AP usarem os padrões (192.168.1.1).
config interface lan
option type bridge
option ifname "eth0.0"
option proto static
option ipaddr 10.0.1.2
option netmask 255.255.255.0
option gateway 10.0.1.1
option dns "8.8.8.8 8.8.4.4"
- Diga ao servidor DHCP qual gateway deve ser transmitido, como normalmente usaria o ipaddr da configuração da interface de lan:
config dhcp lan
option interface lan
option start 100
option limit 100
option leasetime 1h
list 'dhcp_option' '3,10.0.1.1'
- Configure o wireless como um ponto de acesso regular. Opcional: criptografia (recomendado), isolamento do cliente (também recomendado).
Encontrei apenas um problema com essa configuração: um convidado ainda pode entrar na sua rede principal se a sub-rede dessa rede for "adivinhada" e a configuração da rede for feita manualmente para a interface sem fio. Dado o fato de que os convidados ainda veem as transmissões arp da rede principal, não é tão difícil para as pessoas que entendem a afirmação anterior. Eu acho que pode ser corrigido com algumas regras de firewall no OpenWrt AP, mas eu tenho que pesquisar essa parte.