Discuta este tópico no fórum

Se este conteúdo te ajudou, deixe um presente!

sexta-feira, 27 de janeiro de 2012

OpenWRT: Multiplique suas redes: MultiWLAN

Mais um artigo da série sobre o OpenWRT.

Um dos recursos mais úteis para ambientes corporativos é a possibilidade de multiplicar seu roteador com OpenWRT. A pedidos, neste artigo vou tratar o uso de múltiplas redes sem fio (MultiWLAN). Acho que vocês irão achar interessante. Em outros artigos na sequência, tratarei dos demais casos de "multiplicação de redes" como de múltiplas conexões com a Internet (MultiWAN) e múltiplas redes locais (MultiLAN).

Se seu roteador suportar (e a maioria suporta), você poderá criar diversas redes Wireless compartilhando o mesmo rádio. E para que serve isto? Bem, tive um problema recente na minha casa onde um computador visitante, com M$ Vista, não autenticava na minha rede WPA2/AES. Ele ganhava IP, enviava pacotes mas não os recebia. A solução mais "elegante" foi criar uma segunda rede Wireless com uma configuração de segurança diferenciada e um SSID próprio. E sim, WPA2/AES funcionou sem problemas quando usei um Linux LiveCD.

Outro caso que pode ser interessante é a utilização da rede Wireless para a conexão WAN. Não tem a rede aberta do vizinho que não pega muito bem? Pode usar um roteador Wireless para conectar como cliente da rede alheia ao mesmo tempo que você conecta normalmente na sua rede wireless local (mas não façam isto sem autorização, OK?). Para os casos mais avançados, poderia criar uma rede em malha, interligando diversos roteadores espalhados, como no caso de um condomínio, e difundir a Internet de um ponto central para todos os condôminos. Isto, ao mesmo tempo que os laptops continuam a conectar nos roteadores como se estes fossem roteadores "normais", conectados por cabo na Internet. Ainda não consegui reunir uma quantidade de roteadores significativa para realizar o teste da rede em malha (mesh), mas um dia chego lá.

Bem, tudo isto possui, eu diria, um "limitador". Todas as redes Wireless do seu roteador irão compartilhar as configurações de hardware como o canal e a potência. Afinal, mesmo com três antenas, você tem somente uma placa wireless. Contudo, acredito que não será um grande problema.

Agora a configuração: este é bem simples de ser feito. Pela interface Web, na configuração de rede, Wifi, clique em "Adicionar". A parte superior é a configuração do dispositivo, comum a todas as redes. A de baixo é a da sua rede, onde você pode escolher o modo, segurança, nome da rede Wireless, essas coisas. Uma configuração importante é a qual "interface" ela pertencerá. Não é a interface "Linux" tradicional mas as interfaces do OpenWRT, como já descrevi anteriormente (para os mais curiosos, a primeira interface wireless aparece como "wlan0" enquanto as demais ganham sufixos como "wlan0-1"). Você pode colocar esta rede como uma conexão LAN (ficando lado a lado com a rede local, assim como a rede wireless original) ou como uma conexão WAN (em conjunto com a interface já existente). Porém, o mais interessante são as configurações onde uma nova interface é criada.

O que eu vou colocar aqui é genérico e vale também para qualquer caso onde seja criado outras interfaces, como veremos em outro artigo sobre MultiLAN. Com a configuração de uma nova interface independente, você terá uma nova rede, com uma nova faixa de endereços IP, regras de firewall e tudo mais. Pode criar, por exemplo, um ambiente DMZ (zona desmilitarizada), com máquinas prestando serviços. Não confundir com o recurso DMZ dos roteadores wireless que apenas encaminham todas as requisições externas para um endereço IP interno que, para mim, não tem nada do conceito de "zona desmilitarizada". Está mais para "terra de ninguém".

Outra coisa interessante seria criar duas redes wireless. Uma rede segura, com somente máquinas "confiáveis", e com regras mais permissivas, e uma outra "de baixo escalão", para visitas indesejadas e máquinas Windows suspeitas. Pode também exercitar sua caridade "para com os outros" e criar uma rede "aberta", isolada das demais e fornecer acesso gratuito a quem conseguir alcançar seu roteador.

As redes são independentes e a comunicação entre elas é definida pelas regras do Firewall.  Bem, mas isto é assunto longo e para outro artigo. Ainda preciso escrever este artigo sobre regras do Firewall...

Boa noite e bom hacking!

24 comentários:

  1. Luiz, boa tarde. Tenho uma dúvida: acabo de instalar o openWRT num bullet M2 e gostaria de usar o mac de um ap que estava usando, pois, não gostaria de ter que reconfigurar a conexão dos clientes, me dá uma dica aí!!!

    Abraços

    ResponderExcluir
  2. Continuando, muito obrigado por seus artigos!

    ResponderExcluir
  3. Olá Anônimo,

    Só recomendo a clonagem do MAC se o roteador antigo realmente não irá mais funcionar. Duplicação de MAC em uma rede local causa alguns comportamentos estranhos...

    Não cheguei a testar mas acho que é uma operação simples. O mac address usado pela wireless é compartilhado pela bridge (br0, onde está o IP), rede local cabeada e rede local wireless, sendo que todas representam a "interface LAN" no OpenWRT. Em rede/interfaces/LAN/opções avançadas, existe uma opção para sobrescrever o endereço MAC.
    Você também poderia fazer isto pelo ssh editando o arquivo /etc/config/network e adicionado a opção "macaddr". Algo como:

    config 'interface' 'lan'
    option 'type' 'bridge'
    ...
    option 'macaddr' 'aa:bb:cc:dd:ee:ff'

    Talvez isto fará com que a sua rede wireless pare de funcionar pois a configuração está associada ao MAC e não ao dispositivo. Recrie a configuração da wireless (rede/interfaces/wifi) ou edite /etc/config/wireless.

    Se funcionar, ou não, mande notícias.

    ResponderExcluir
  4. Tentei das duas formas, só que não deu certo, perco a conexão com o dispositivo depois de reiniciar, se o servidor dhcp estiver ativo até o ip eu recebo, só que não consigo acessar, nem mesmo pingar.

    Claudilson Silva

    ResponderExcluir
    Respostas
    1. Respondendo pra mim mesmo: parece que é o firewall. Vou continuar estudando!!! Rsrsrsrsr

      Excluir
    2. Olá Claudilson,

      Espero que você tenha resolvido o seu problema. Para roteadores com placa broadcom, existe um campo na nvram que define o MAC address. Também seria uma alternativa mais radical.

      Atenciosamente,

      Excluir
  5. Boa noite Luiz, todas as formas que tentei não deu certo e também não descobri o que foi, porém, o que aconteceu foi o seguinte: quando fiz a instalação do bullet com o firmware original, muitos clientes com win7 não conseguiu conectar, não sei se foi porque ele não aceita um padrão (b, g ou n), é misto, só que depois que instalei openWRT, mesmo não clonando o mac, conectou normal, não sei se foi porque configurei em b, que foi o que me levou a chegar nessa maravilha que é o openWRT.

    Seu blog já está entre os meus favoritos.

    Claudilson Silva

    ResponderExcluir
    Respostas
    1. Normalmente os problemas de conexão com windows são resultado de incompatibilidades da parte de criptografia. Já tive problemas no passado com windows vista e WPA2.

      Para sanar o problema, criei uma segunda rede, no mesmo roteador, somente para esta máquina. Funcionou muito bem.

      Excluir
    2. Derlandes,

      O tema deste artigo não é bem o que você precisa. O que seria "liberação das portas"? Encaminhar uma porta no teu IP externo para um equipamento interno? Você sabe quais são as portas? Se for isto, olhe no firewall. Não precisa criar uma nova rede. Só precisaria se você quisesse isolar os equipamentos desta dos demais da rede.

      Excluir
  6. Luiz, tive problemas com mikrotik (usando cartão mini-pci engenius EMP-8602, pois adquiri uma rb433 e 3 cartões, os problemas foram: 1º - os cartões estavam sendo usados em 2.4 e há relatos de que ele não trabalha bem mudando a potência (gostaria de reduzi-la já que quando aumenta gera muita interferência), 2º - quando alguns clientes estavam com ACK alto toda a rede ficava lenta, principalmente a noite. Pesquisando equipamentos para substituir esse conjunto, comprei 3 bullet-m2-hp, minha primeira decepção foi como relatada nos primeiros comentários, foi o fato de não poder setar um padrão (no caso "B"). Foi aí que pesquisando cheguei até o openWRT, o problema agora é não é diferente, lentidão à noite, só que para piorar as coisas, eu não sei quais clientes estão com ACK alto, pois rodei tudo no openwrt e não achei como visualizar isso.

    Relendo esse seu artigo me veio em mente criar uma rede para cada cliente, imaginando eu que cada cliente numa rede, o sinal baixo ou ACK alto de um, não iria interferir no outro. O que você acha?

    Obs.: Os pings ficam baixos, o problema é na navegação;
    Seria no máximo 10 clientes por bullet, em bridge, pois faria o controle num mikrotik, ou seja, seria apenas para conexão.

    ResponderExcluir
  7. Lentidão a noite? Tem cara de perda de pacotes quando o sistema tem carga. Pode ser por extrapolar o limite da banda ou por interferência entre os clientes wireless. Para o último caso, reduzir a potência pode ajudar mas reduzirá o alcance.

    Não ficou claro o que você chama de ACK alto. ACK é a abreviação de ACKnowledge, ou ciente. Existe um ajuste de "ACK time" usado principalmente para ajustar a distância dos clientes. Isto, no openwrt, pode ser feito na configuração avançada da rede sem fio, ainda pela interface web. Existe um ajuste de otimização da distância. Porém, isto é por HW físico (por placa) e múltiplas WLAN não ajudariam.

    Se isolar só a parte wireless em redes independentes provavelmente não vai resolver o seu problema, seja qual ele for. Se criar subredes para cada cliente (múltiplas LAN), você eliminará a troca de pacotes Broadcast entre os clientes. Não sei se seria significativo ou mesmo se é desejado.

    Acho que a melhor saída é colocar um sniffer de rede, como o wireshark, em um cliente e ver o que está acontecendo com os pacotes quando a rede "está lenta". Acho que vou escrever mais adiante um artigo de como rodar um sniffer de rede dos pacotes que passam pelo OpenWRT.

    Ah, para ajudar a buscar informações sobre os clientes conectados, mudança de parâmetros das placas e outras coisas, você pode usar o comando "iw".

    ResponderExcluir
  8. Boa tarde. Carinha, tu é fera! Achei bem úteis seus posts (mesmo que em alguns eu não tenha conseguido ou entendido muito bem como procedê-los, mas culpo o meu "nível" no assunto). Por isso, gostaria que você me ajudasse em uma possível configuração para o meu router e do meu vizinho...

    Bem, eu e ele tem o mesmo modelo de roteador (cada um com seu provedor de internet), e eu também instalei o OpenWrt neles. Mas tem alguns pontos em que o sinal não é muito bom (mesmo na mesma casa onde está instalado) e reparei que pelo router o sinal é bem melhor.

    Nisso, configurei (seguindo +ou- o vídeo linkado abaixo) os dois roteadores para manter o sinal próprio e repetir a do outro. E até que deu certo. O problema é que eles estão compartilhando tanto a internet quanto reconhecendo dispositivos conectados a outra rede. E tanto eu como ele não queremos isso, pois na minha rede há impressora, servidor e smart tv's conectadas via wi-fi. Intencionando apenas abranger a cobertura do sinal, sem nenhuma interação uma rede com a outra. Tentei - até onde meu conhecimento me permitiu - configurar uma nova interface LAN, e separá-las entre outras coisas, mas nada funcionou. Ou ligava tudo ou não acessava nada.

    link do video: http://www.youtube.com/watch?v=tijtQyj7KvI

    ResponderExcluir
  9. Lukas,

    Se não quiser que as duas redes se conversem, a interface associada a configuração wifi deve ser uma própria e sem configuração de rede (sem ip).

    Como você já conectou as duas redes, já deve ter funcionado o wds. Para ambientes onde se quer estender o sinal, o ideal é usar o mesmo nome nos vários pontos (e mesma senha). Os clientes são responsáveis por escolher a melhor rede.

    Sugiro:

    a) roteador dovizinho
    1) usar uma conf de rede com o nome RedeDele e WDS ativo associada a interface lan

    b) roteador seu
    1) usar uma conf de rede com o nome MinhaRede associada a interface lan. (essa é sua)
    2) usar uma conf de rede com o nome RedeDele (onde ele vai conectar se usar seu roteador) associada a uma interface nova (ex: vizinho). Na própria configuração da wifi você pode criar a nova interface, ou faça na conf de interfaces.
    3) usar a conexão cliente wds conectando na RedeDele do roteador dele e associada a rede "vizinho", criada anteriormente
    4) por padrão, a nova interface "vizinho" está em "Não gerenciado". Ela não vai ter IP e será invisível para a sua rede local.


    Se quiser usar o roteador do vizinho para estender o sinal da sua rede, é só repetir as confs 2), 3) e 4) no rotaedor dovizinho mas com os papéis trocados.

    Deve funcionar. É uma boa ideia compartilhar o equipamento do vizinho para melhorar a abrangência da wifi.

    Se a cooperação for legal, você pode também usar a internet um do outro como backup caso a conexão de um caia. Neste caso, crie uma nova configuração cliente WDS, também associada a uma nova interface (ex: internetvizinho) mas esta você deve configurá-la como DHCP e na zona WAN. Deixe desconectada. Se desligar a sua wan e ligar esta wifi, seus clientes usarão a internet dele. Não é o ideal pelo duplo NAT mas quebra um galho sem complicar as configurações.

    Outra coisa, o ideal é criar um tópico no fórum para fazer perguntas. Tem o link lá em cima e no final da página.

    ResponderExcluir
  10. Luiz, bom dia!

    Estou com o seguinte problema:
    Installing luci-app-multiwan (git-16.018.33482-3201903-1) to root...
    Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/luci/luci-app-multiwan_git-16.018.33482-3201903-1_all.ipk.
    _____

    Collected errors:
    * satisfy_dependencies_for: Cannot satisfy the following dependencies for luci-app-multiwan:
    * multiwan *
    * opkg_install_cmd: Cannot install package luci-app-multiwan.

    O engraçado é que a dois dias atrás eu conseguir instalar o multiwan (agente) e depois instalei o luci-app-multiwan, nesta ordem. Porém agora o agente não conta na lista Available packages

    Router TP-Link WR1043ND v2.x

    ResponderExcluir
    Respostas
    1. Luiz, instalei o pacote:
      https://downloads.openwrt.org/ATTITUDE_ADJUSTMENT/12.09/ar71xx/generic/packages/multiwan_1.0.22-2_ar71xx.ipk

      Apesar do meu ser o Chaos Calmer 15.05.1 acredito que funcionará

      Agora conseguir instalar o luci-app-multiwan

      Pronto... lol

      Excluir
    2. Deve funcionar sim. Porém, o multiwan agora é o mwan3 (idem o pacote luci).
      Sugiro que tente a versão mais nova ;-)


      Excluir
    3. Obrigado!! Parabéns pela iniciativa.

      Luiz, estou começando agora neste "mundo cli" qual rota, livro, ... , você indicaria? Percebo que estou meio perdido, um fragmento de código aqui outro ali, penso que estou perdendo muito tempo.

      Excluir
    4. iWan, busque material para programação shell, gerencia de rede em linux. O openwrt não é muito diferente de um sistema linux para desktop. Muda basicamente como os serviços são disparados (e como as confs são mantidas).

      Excluir
    5. obrigado mais uma vez!

      Luiz é possível bloquear o acesso à pagina de configuração do openwrt da rede Convidado? Ou seja, ao tentar acessar o gateway 192.168.2.1 o convidado receba um erro-404 servidor não encontrado.

      Descobrir que é possível bloquear o acesso a GUI ativá-lo ou desativa-lo via PuTTY, Más queria uma solução mais simples, apenas bloqueando acesso à rede convidado.

      Excluir
    6. Sim. Para isto, a rede de convidado deve ser necessariamente um segmento diferente, que parece ser o seu caso (192.168.1.x e 192.168.2.x). Pode criar uma regra no firewall para esta rede bloqueando o acesso as portas 80 e 443 do roteador. Se quiser também controlar o que a rede guest acessa da rede "oficial", é bom também criar uma zona de firewall para ela. Fica mais elegante.

      Excluir
    7. Obrigado, mais uma!!

      Rede Guest com hotspot e login por Facebook / Google?

      https://forum.openwrt.org/viewtopic.php?id=51214
      https://www.google-melange.com/gsoc/project/details/google/gsoc2012/ntmq90/5668600916475904

      Sugestão de post?

      Excluir
    8. iWan, interessante. Vou marcar na minha lista de ideias. Obrigado.

      Excluir
  11. boa tarde Luiz, meu caro eu recentemente eu instalei o openwrt em um tplink-wr740n, a minha intenção é a seguinte eu preciso que ele funcione normal como um roteador comum, a wan em pppoe e wi-fi e tal...ate ai eu consegui tranquilo, so que eu precisava criar uma segunda rede wi-fi e precisava que essa rede saisse por uma wan secundaria para que essa segunda rede wi-fi aparecesse um pagina de hotspot, aqui eu configurei da seguinte maneira,wan1 em pppoe autenticando em um mikrotik,wi-fi 1 com um ssid e com criptografia, e as portas lan normal em dhcp, então criei mais uma wan com ip statico,criei uma vlan em bridge com a segunda rede wi-fi com ssid diferente da primeira e aberta, mais desse jeito não deu certo, o que vc me indica nesse senário?

    ResponderExcluir
    Respostas
    1. Luiz,

      Até funcionária. Não entendi porque da bridge da segunda se só teria a wifi. Bridge é para ligar mais de uma dispositivo por um "switch" virtual. Se somente a wifi falará com a wan2, bastaria cada uma ter uma interface no OpenWRT. Mas uma bridge só com a wifi nao é problema. quem mais está nesta bridge? Fazer a bridge entre a wan e lan não funciona.

      Voce precisa configurar o firewall com zonas próprias tanto para a wan2 como a "wlan2/lan2". Lá também deve configurar que a lan2 pode encaminhar para wan2 com mascaramento (nat). Neste ponto, ja deveria ter algo funcional. O problema é ter duas rotas padrão (wan e wan2) se desligando a wan funcionar a lan2 para a wan2, está no caminho certo.

      Para lidar com múltiplas rotas padrão, o mwan3 ou multiwan podem ajudar, desde que configurados com regras para o trafego sair exclusivamente por cada wan. Outra alernativa é usar uma tabela de roteamento diferente para estas duas interfaces (mas isto pode ser mais complicado...)

      Excluir