Discuta este tópico no fórum

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

segunda-feira, 3 de novembro de 2014

OpenWRT: Barrier Breaker (14.07)

Salve pessoal! Mais um artigo da série do OpenWRT.

Quem está acompanhando as notícias do mundo de TI deve ter notado que foi lançada uma nova versão do OpenWRT, a Barrier Breaker (a.k.a BB, 14.07). Como fazem dois anos desde a última versão estável, é uma significativa mudança. Então quer dizer que eu vou atualizar e minha vida vai mudar?! Não é bem assim. Dependendo do caso, você nem vai notar. Afinal, o que a BB trouxe de novo? Vamos aos destaques:
  • Kernel atualizado para 3.10
Isto traz diversas correções, atualizações de drivers e outras funcionalidades desde o kernel 3.3. Se você nunca precisou olhar qual a versão do kernel no seu OpenWRT, provavelmente não sentirá diferença. Existe diversas correções para problemas com placas atheros, mas parece que nem todos os problemas antigos foram sanados. Atualização: mas resolveu todos os que eu tinha ;-)
  • Suporte nativo IPv6
Para sortudos que já tem acesso à redes IPv6 nativa, a nova versão do OpenWRT deve ser uma das mais adaptadas ao mundo de pilha dupla. Para os demais, continuamos a depender de gambi... estratégias de contorno técnicas como túneis, que já comentei anteriormente. Você vai observar também o surgimento de uma nova interface wan6, dedicada ao suporte IPv6. Ela muda a forma de configurar IPv6, a exemplo do uso de túneis. Devo atualizar o artigo de IPv6 em breve.
  • Novo init: procd
O procd seria o equivalente ao systemd no OpenWRT. Com a alteração, os scripts de iniciação dos serviços precisam de ajustes. Caso tenha feito algum, deve ser necessário atualizá-lo. Como ele substituiu o hotplug2, pode ter algum efeito colateral nos scripts em /etc/hotplug.d/, como as funções acionadas por botão. Entretanto, parece que ao menos nesta versão, ele tem comportamento compatível com scripts antigos.
  • Suporte a snapshot e rollback
Ainda não tive a oportunidade de mexer neste recurso mas ele permite que você crie fotos de seu ambiente (no caso, as mudanças da overlay) e permite que você retorne a um estado anterior em caso de falha. Contudo, isto mexe um pouco a forma de trabalho, exigindo que você explicitamente save o estado atual do disco antes de reiniciar o roteador. Vou deixar isto para um artigo futuro.
  • Pacotes atualizados!
Entre os diversos pacotes disponíveis no OpenWRT, muitos sofreram atualização. Isto pode trazer aquele recurso que você sentia falta e nem sabia. Ou não.
  • Novo tema no Luci
Esta sim é uma mudança perceptível! A parte de "melhoria visual" é pessoal mas achei o novo tema mais limpo.
Se nenhum dos itens acima te motivou, resta o argumento do suporte. A versão anterior cairá em desuso. Neste blog, por exemplo, todos os novos trabalhos serão em relação ao BB. Deixarei as referências ao AA e posso citar como deveria funcionar na versão anterior mas as configurações não serão testadas. O mesmo vale para fóruns, wiki e outros meios.

E algum motivo sério para não atualizar? Sim, se você tem uma conexão com a internet de mais de 180MBit/s. Houve relatos de redução na capacidade de roteamento via NAT, antes em algo como 240Mbit/s, com a atualização. Provavelmente é um problema do kernel ou mesmo do compilador (ou uma interação entre eles). De qualquer forma, vai ser difícil a solução. Melhorias já ocorreram na versão em desenvolvimento mas são marginais. Simplesmente falta capacidade de processamento da CPU (lembre-se, ela normalmente roda em algo como 400Mhz!).

Se você está neste limite e precisa de algo mais rápido, provavelmente o firmware original seja o mais indicado. Ele possui o recurso de aceleração de NAT por hardware, que libera o uso da CPU. Com ele, você vai poder realizar NAT a quase a velocidade do fio (uns 900MBit/s). Como não existe um driver aberto para este recurso, dificilmente ele estará no curto prazo no OpenWRT. Acredito que quem está com uma conexão internet via fibra de mais de 150Mbit/s já deve ter trocado o roteador de R$100 por algo melhor ;-)

Logo vou atualizar o artigo de atualização do OpenWRT para incluir o BB.

E a próxima versão? CC? Sim, Chaos Calmer. Prometeram para o final deste ano mas acho difícil. Não acredito no prazo não tanto pela base do OpenWRT mas sim pelos pacotes extras, os feeds. Muitos pacotes estavam abandonados e desatualizados. Um dos prováveis motivos era a necessidade de enviar as atualizações via lista e esperar a boa vontade de alguém com permissão de commit para aplicá-lo. Isto pode funcionar para o núcleo do OpenWRT mas não é muito prático para as várias centenas de pacotes extra. Desta forma, os pacotes anteriores foram congelados em oldpackages e uma nova fonte foi construída no github. Se seu pacote favorito já não estiver no novo repositório do github e você não quiser que seu pacote desapareça do OpenWRT CC, você pode adotá-lo. Eu já fiz a minha parte adotando o ruby.

Até a próxima.

9 comentários:

  1. Oi, Luiz. Pode me ajudar? Estou utilizando Vivo Fibra, e pesquisando na internet vi que existe uma necessidade de configurar uma vlan específica no roteador para que possa ser conectado corretamente no serviço. Mais pesquisa e descobri outros firmwares para roteadores, como o OpenWrt aqui em diversos posts. Estou usando esse última versão, no TP-Link Archer C7, v2. Consegui instalar o OpenWrt e fazer diversas configurações, mas na mais importante, a vlan, não consigo. Consigo criar diversas vlans, mas todo vez que preciso setar tagged e dou save and aplly, o roteador trava, o que me obriga a resetá-lo (obrigado pela orientação). Faz idéia porque isso pode estar ocorrendo ou o que posso estar fazendo errado?

    ResponderExcluir
    Respostas
    1. Olá jim,

      Não tenho vivo fibra aqui mas vi que ele necessita de uma vlan 10 com tag na interface wan. Já fiz um post sobre este tema mas em relação a LAN, não na interface WAN (http://luizluca.blogspot.com.br/2012/02/openwrt-turbine-seu-roteador.html). Não deveria travar se você não mexer com as portas/interface LAN. Provavelmente você está alterando a vlan1, que deve ser mantida em paz.

      Se não resolver, manda a conf inicial das vlan (pode ser diferente para cada roteador) e as mudanças que não deram certo (antes do apply).

      Googlando, achei este vídeo específicamente sobre este tema no openwrt. Não é meu e não testei mas parece estar tudo certo.
      Travar quer dizer "não responder pela rede"? Olhei rapidamente e vi que a c

      Excluir
    2. Obrigado pela resposta, Luiz!
      Infelizmente nem cheguei perto da vlan1...
      A configuração inicial das vlan está no link: https://drive.google.com/file/d/0B_6rdesmozirMVFaSGE2MHlWTjA/view?usp=sharing
      O video que vc mencionou deve ser o do Fraga. Me orientei na config vlan dele para tentar habilitar meu roteador. Nesse video dele, tanto a CPU quanto a Port1 estão como tagged (note que na minha config inicial, eles estão como untagged).
      Note nessa segunda imagem que consigo criar a vlan10. Deixei a Port1 como tagged. Gostaria de deixar a CPU como tagged também, como no video.
      https://drive.google.com/file/d/0B_6rdesmozirbXhuNE03bEczbnc/view?usp=sharing
      Quanto ao travamento, toda alteração que faço no roteador, clico em "Save and Apply" e faz a atualização. Qualquer tentativa de selecionar tagged, em qualquer porta em qualquer outra vlan (criei vlan5, vlan6, vlan7 como teste) faz esse travamento. Basicamente clico em "Save and Apply", aí ele faz que vai atualizar e fica em looping, fica a mensagem de que está atualizando e nada acontece. Deixei uns 20 minutos, até dar tempo limite esgotado. Tento conectar no roteador e não consigo, nada acontece. Não responde mais, como se não o encontrasse. Só consigo voltar a utilizá-lo se fizer o "firstboot".

      Excluir
    3. jim,

      os roteadores residenciais são um computador com um switch embutido. A porta CPU seria a porta que liga o switch embutido ao "computador roteador". Ela é a eth0 que você vê no seu roteador. Se a vlan não estiver ativada (tagged) nesta porta, o roteador não vai ver o tráfego desta vlan. O tráfego das vlan aparece como eth0.x onde x é o número da vlan. eth0 sem o (.x) é para o tráfego untagged na porta CPU, normalmente não usado. Podem existir portas não usadas pois é comum ter mais portas no switch embutido do que porta externa + porta interna da cpu (como é o caso do 2543nd)

      Alguns roteadores tem uma placa dedicada para a wan (caso do 740ndv1). Neste caso, não existe vlan para esta interface e ela aparecerá no roteador como eth1. Creio que seja para usar um switch com apenas 4 portas e evitar portas extras não utilizadas.

      Bem estranho a configuração inicial. Existe cabo de rede nas portas 2 e 6 (e "virtualmente" na cpu). Pelo que a interface diz, você estará usando a eth0 (sem .x). A vlan2 está somente nas portas 1 e 6 e sem tag. Nesta situação, seu roteador não deveria ver o tráfego desta vlan (cpu não tem tag).

      O normal seria:

      cpu: tagged para vlan 1 e 2
      portas lan: untagged para vlan1
      porta wan: untagged para vlan2
      demais portas extras: sem uso (off)

      Desconsiderando bugs na interface, se você aplicar a configuração inicial e o roteador estiver configurado para a situação que eu mencionei acima (usando eth0.1 e eth0.2), ele não vai responder mesmo.

      Minha hipótese é que existe algum bug na interface ou mesmo na nomeação das portas. Tente descobrir qual porta é qual trocando o cabo de rede. Uma delas nunca ficará "no link", e será a CPU. As demais serão a WAN (1) ou LAN (4) e creio que uma é sem uso (pelas fotos, seu roteador tem 4+1 portas).

      Veja se os nomes conferem, se sua configuração que funciona usa eth0.x ou apenas eth0 e manda um pastebin.com de "swconfig dev switch0 show". Pode ser bug da interface que não lê corretamente a configuração do seu switch (mas aplica "corretamente"). Se for o caso, creio que apenas colocar a CPU como tagged para todas as vlans resolveria.

      Excluir
    4. jim,

      Lendo as msg da lista openwrt, vi uma referência ao seu problema.

      https://lists.openwrt.org/pipermail/openwrt-devel/2014-November/029534.html

      Pelo que eu li, seu roteador tem 2 portas internas do switch para o OpenWRT (0 - eth1 e 6 - eth0). Desta forma, ele não precisa de vlan para uso normal wan-lan (nada tem tag).

      0 eth1
      1 WAN
      2 LAN1
      3 LAN2
      4 LAN3
      5 LAN4
      6 eth0
      http://wiki.openwrt.org/toh/tp-link/tl-wdr7500#configuration

      Para seu problema, teria que criar uma vlan 10, colocar como tagged na porta 0(cpu) e 1. Isto criará uma eth1.10, que estará ligada na porta 1 com tag 10, como parace ser a necessidade da vivo.

      Alternativamente, se não precisar manter a porta sem tag na wan, pode trocar simplesmente o número da vlan 2 por 10 e trocar de untagged para tagged a porta 1. Neste segundo caso, você usuará a eth1 e não a eth1.10 como wan.

      Excluir
  2. Luiz, bom dia. No meu caso, possuo um WR941nd v5. É normal quando coloco o cabo na WAN e todos ficam no-link exceto a CPU? Se sim, seria o caso de eu trocar a wan por uma das portas lan? Já tentei criar a vlan 10 e tentei a conexao ppoe na porta wan e não conecta. Quando coloco o cabo na porta 1 do router, aparece no openwrt (web) a porta 2 com link. Não sei se é o caso de deixar a cpu e mais a porta 2 como tagged. Consegue me ajudar? Obrigado novamente. abs.

    ResponderExcluir
    Respostas
    1. Tiago,

      Nao eh normal. CPU estah sempre conectada mesmo. As vezes, o mapeamento das portas estah errado. Confie no que o roteador diz e nao no numero das portas.

      Se ao conectar na wan nenhuma porta fica up, desconfie da porta ou do cabo.

      Nao mexa na porta CPU nas vlans existentes. Soh adicione a vlan10 como tagged. E na porta onde serah a wan, colocar a 10 tagged tbm. Nao precisa colocar nenhuma porta como untagged para a vlan10

      Excluir
    2. Olha como deixei minhas configurações. Mas mesmo assim não conecta.
      http://imageshack.com/a/img538/4657/DuxWoJ.png
      http://imageshack.com/a/img633/9526/zqOwZB.png
      http://imageshack.com/a/img673/9482/4PJ9eE.png
      http://imageshack.com/a/img538/8613/FqaLPB.png

      Excluir
    3. Tiago, muito estava sua configuração. Pelo que vi, VC tem 2 interfaces de rede. Normalmente nesta conf, eth0 é lan e eth1 wan. Pode até ser invertido no seu caso. Aí a configuração de VLAN desta porta isolada não fica na configuração de switch. Para não mudar muito, é mais fácil roubar uma porta da lan, desligando da VLAN 1.

      O fato de todas as portas da eth1 estarem em tagged vai fazer ela não aparece para equipamentos normais. Exceto pela porta da vivo ou da cpu, todas deveriam ser untragged ou off. Como era a conf original?

      Outra coisa, o fato da eth1.10 estar tanto na LAN como wan não deve prestar. Deveria estar só na wan

      Excluir