Instalando o OpenWRT em um Mikrotik RouterBoard

15 de junho de 2018 em Tech Life

Resumo da história: A Apple me deu duas pauladas nos últimos meses no que diz respeito à conectividade: Primeiro a linha AirPort foi descontinuada — o que me deixou com questionamentos sofre o futuro dos aparelhos no que diz respeito à atualizações — e depois o MacOS Mojave sumiu com o Back To My Mac no menu do iCloud. Esse último ponto não foi um cancelamento anunciado até então e talvez volte num beta futuro, mas não tenho muita fé nisso. A Apple claramente já não tem mais muito interesse em se manter no ramo de rede — e isso me levou a aposentar o meu AirPort Time Capsule como roteador e tirar do fundo da gaveta um Mikrotik RouterBoard 951Ui-2HnD (respira!) que me daria um trololó de possibilidades na rede doméstica.

Só tem um problema: O RouterOS, ainda que muito poderoso, é muito feio e desorganizado. Pro meu uso, é totalmente dispensável. Eu já havia instalado o OpenWRT no RB750 da firma, então resolvi instalar também em casa. O processo acabou sendo um pouquinho mais complicado que eu achei que seria (Afinal nos TP-Link é literalmente subir o arquivo do OpenWRT por dentro da interface web), então estou escrevendo esse texto aqui pra referência futura — e quem sabe para guiar alguém na mesma situação que eu.

Primeiro, a saber: Eu tive à minha disposição um MacBook rodando o High Sierra. O processo poderia ter sido mais fácil se eu estivesse numa rede com um controle melhor de DHCP — em que eu pudesse indicar o IP do servidor TFTP, por exemplo. Se for esse o seu caso, só siga a documentação oficial que vai ser bem mais simples.

O primeiro passo é alterar as configurações de boot do RouterBoard. Partindo de um aparelho com as configurações padrão, conecte-se à rede do RB e acesse o IP do Webfig em “192.168.88.1” ou seja lá qual for o IP do Gateway por aí. Geralmente é esse mesmo. Faça as seguintes alterações no menu System > Routerboard > Settings:

Boot device: Try ethernet once then NAND

Boot protocol: DHCP

Force Backup Booter: √

Salve e desligue o RouterBoard pelo menu (System > Shutdown). Reserve. (Sou a própria Ana Maria Braga dos tutoriais de computador).

Hora de preparar o Mac para instalar o OpenWRT no roteador. Primeiro, baixe a versão estável mais recente dele nessa página. Você vai precisar dos dois em algum momento, então baixe ambos (initramfs e sysupgrade) para algum diretório, como, digamos, “~/Desktop/tftp”. Feito isso, vamos instalar um servidor DHCP no Mac. Estou, como de costume, assumindo que você tenha o homebrew instalado e funcionando.

Roda aí num terminal: brew install dnsmasq

Depois disso vamos garantir que o BOOTP nativo do Mac não está rodando, já que ele roda na mesma porta do DHCP (no fim das contas o DHCP é meio que derivado dele, mas enfim):

$sudo launchctl unload -w /System/Library/LaunchDaemons/bootps.plist

Defina pelo System Preferences a sua interface de rede cabeada para utilizar algum IP fixo no bloco 192.168.1.0/24. Digamos, 192.168.1.10.

Agora podemos subir nosso servidor DHCP com os parâmetros necessários para o boot via TFTP utilizando os arquivos do OpenWRT. Note que no futuro esses valores podem mudar de acordo com a versão do OpenWRT e que o diretório “tftp-root” fica totalmente a seu critério — é onde estão os arquivos que você baixou:

$sudo dnsmasq -i en0 --dhcp-range=192.168.1.100,192.168.1.200 --dhcp-boot=lede-17.01.4-ar71xx-mikrotik-vmlinux-initramfs.elf --enable-tftp --tftp-root=/Users/matt/Desktop/tftp/ -u matt -d -p0 -K --log-dhcp --bootp-dynamic

(No meu caso, o brew não linkou direito o binário do dnsmasq então eu precisei chamar pelo caminho completo: /usr/local/opt/dnsmasq/sbin/)

Se estiver tudo rodando certinho, é só ligar a porta ETH1 (a primeira porta, no caso) do Mikrotik no Mac e esperar a magia acontecer. Eu não consegui fazer com que ele procurasse o TFTP automaticamente apesar das opções que defini no menu, então precisei forçar pelo botão Reset. É bem fácil:

  1. Deixe o cabo de rede ligado da forma que eu mencionei acima
  2. Tire o cabo de energia do Mikrotik e segure o botão de reset pressionado. Não solte até eu falar que pode.
  3. Ligue o cabo de energia do Mikrotik
  4. Fique de olho no LED de atividade. Ele vai ficar acendendo e apagando algumas vezes e eventualmente vai fazer um beep e piscar umas luz vermelha (acho. mas do beep eu tenho certeza).
  5. Pode soltar o botão de reset. Obrigado pela paciência.

Se deu tudo certo, você verá no log do dnsmasq o Routerboard se conectando e baixando os arquivos. Maravilha. Espera aí uns 2 minutos pra ter certeza de que ele já baixou tudo que precisava.

Finalize o dnsmasq e volte a sua interface de rede nas preferências para o modo DHCP. Troque o cabo que vai pro Mac para alguma outra porta do Mikrotik (da segunda em diante), já que ele assume por padrão que a porta 1 é a WAN. Você deverá conseguir pingar o OpenWRT no IP “192.168.1.1” — se você não consegue, ou eu falei algo errado ou você fez algo errado. Provavelmente o segundo, porque existe um de nós dois que está com o OpenWRT rodando normalmente e não é você. (NOTA AO EDITOR: Essa última frase pode ser um problema se eu mesmo estiver lendo no futuro)

Envie o arquivo do sysupgrade via scp para algum diretório do OpenWRT. Eu mandei pro /tmp/ mesmo porque tudo nessa vida é efêmero e todos nós vamos morrer um dia tal qual todo o conteúdo desse diretório com exceção daquele minerador de bitcoin que colocaram no teu servidor sem você perceber.

ENFIM. Envie o arquivo, logue no roteador via SSH e instale o sistema para a NAND (que é a memória “permanente” do seu roteador):

ssh [email protected]

sysupgrade -v /tmp/lede-17.01.4-ar71xx-mikrotik-nand-large-squashfs-sysupgrade.bin

O roteador será reiniciado após a instalação e está tudo certo — mas talvez você note que o LED vermelho do PoE na quinta porta está permanentemente aceso. Esse LED pode ser apagado com o seguinte comando:

echo 0 > /sys/class/gpio/gpio2/value

Coloque esse comando dentro do seu “/etc/rc.local” para que o LEDE sempre apague o LED (desculpa) no boot.

Agora é só aproveitar e configurar como quiser seu roteador poderoso, com interface razoável e 100% fabricado na Letônia.

Ah, sim: Sigo utilizando o TimeCapsule como Access Point (O WiFi dele é melhor que o do RouterBoard) e como disco pro Time Machine. O melhor dos mundos.

* * *