Configurando OpenWRT como extensor de rede wireless
Sabe quando você está em uma rede wireless e precisa extender o sinal um cadin mais para chegar em outro cômodo da casa ou até o pátio? Essa guia é para você.
Lembrando, que se você está pensando em extender um sinal que já está capenda, sinto muito, essa extensão só te trará mais frustações, analise a sua situação antes de sair mudando as configurações do seu roteador.
O que faremos basicamente será conectar o nosso roteador, através do sinal de wifi à uma rede wireless, onde já temos a senha.
Materiais necessários:
- Uma rede wifi - Um roteador com OpenWRT instalado - Computador ou celular com app de terminal para realizar as configurações
Antes de qualquer coisa, faça um backup dos seguintes arquivos que iremos editar, pois assim, em caso de erro, fica mais recuperar o roteador:
- /etc/config/wireless - /etc/config/network - /etc/config/firewall - /etc/config/dhcp
Índice
Pacotes necessários
Precisamos instalar o pacote relayd, no terminal de comandos digite:
root@cajita.lan:~# opkg update && opkg install relayd
Caso não tenha internet no roteador nesse momento, pode instalar o pacote depois das configurações.
Obter SSID, BSSID e Tipo de autenticação
Para escanear a rede e coletar dados que iremos usar na configuração, ative o wifi do roteador "extensão":
root@cajita.lan:~# uci del wireless.@wifi-device[0].disabled root@cajita.lan:~# uci commit root@cajita.lan:~# wifi
- Remove a opção disabled para habilitar o sinal de wifi
- Salva a configuração
- Liga o wireless usando o comando wifi
Agora podemos listar as redes que estão próximas do roteador, usando o comando:
root@cajita.lan:~# iw dev wlan0 scan
O resultado será algo similar a:
BSS 38:6b:1c:27:be:e0(on wlan0)
TSF: 950862677544 usec (11d, 00:07:42)
freq: 2412
beacon interval: 100 TUs
capability: ESS (0x0411)
signal: -95.00 dBm
last seen: 21110 ms ago
Information elements from Probe Response frame:
SSID: AbreLaPuerta
HT capabilities:
Capabilities: 0x11ee
HT20/HT40
SM Power Save disabled
RX HT20 SGI
RX HT40 SGI
TX STBC
RX STBC 1-stream
Max AMSDU length: 3839 bytes
DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 4 usec (0x05)
HT RX MCS rate indexes supported: 0-15, 32
HT TX MCS rate indexes are undefined
HT operation:
* primary channel: 1
* secondary channel offset: above
* STA channel width: any
RSN: * Version: 1
* Group cipher: CCMP
* Pairwise ciphers: CCMP
* Authentication suites: PSK
* Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)
Nesse exemplo:
- BSS 38:6b:1c:27:be:e0 é o bssid
- SSID: AbreLaPuerta é o ssid
- Authentication suites: PSK o tipo de autenticação usado pela rede AbreLaPuerta
- primary channel: 1 é o canal em que está operando a rede que extenderemos
Configurando nossa extensão
Para o nosso roteador trabalhar como relay, ou seja, uma extensão da rede wireless, precisaremos criar 2 interfaces de rede, uma será chamada repetidora e a outra wwan, além de mudar o ip do nosso roteador para não conflitar com o endereço do roteador que vamos extender:
root@cajita.lan:~# uci set network.lan.ipaddr='192.168.2.1' root@cajita.lan:~# uci set network.repetidora=interface root@cajita.lan:~# uci set network.repetidora.proto='relay' root@cajita.lan:~# uci add_list network.repetidora.network='lan' root@cajita.lan:~# uci add_list network.repetidora.network='wwan' root@cajita.lan:~# uci set network.wwan=interface root@cajita.lan:~# uci set network.wwan.proto='dhcp' root@cajita.lan:~# uci commit network
Para compartilhar a internet, precisamos adicionar essas novas 2 interfaces às permissões de firewall:
root@cajita.lan:~# uci add_list firewall.@zone[0].network='repetidora' root@cajita.lan:~# uci add_list firewall.@zone[0].network='wwan' root@cajita.lan:~# uci commit firewall
Precisamos desabilitar a entrega de IP feita pela rede lan porque quem cuidará disso será o roteador onde nos conectaremos:
root@cajita.lan:~# uci set dhcp.lan.ignore='1' root@cajita.lan:~# uci commit dhcp
Configure o roteador extensor para conversar no mesmo canal que a rede que extenderemos:
root@cajita.lan:~# uci set wireless.radio0.channel='1'
Adicione uma interface extra de wifi que se conectará à rede:
root@cajita.lan:~# uci set wireless.wwan=wifi-iface root@cajita.lan:~# uci set wireless.wwan.device='radio0' root@cajita.lan:~# uci set wireless.wwan.network='wwan' root@cajita.lan:~# uci set wireless.wwan.mode='sta' root@cajita.lan:~# uci set wireless.wwan.ssid='AbreLaPuerta' root@cajita.lan:~# uci set wireless.wwan.bssid='38:6B:1C:27:BE:E0' root@cajita.lan:~# uci set wireless.wwan.encryption='psk' root@cajita.lan:~# uci set wireless.wwan.key='A senha da rede que extenderemos'
E configure a interface de wifi já existente para que seja o AP, onde cada celular ou computador se conectará:
root@cajita.lan:~# uci set wireless.@wifi-iface[0].network='lan' root@cajita.lan:~# uci set wireless.@wifi-iface[0].mode='ap' root@cajita.lan:~# uci set wireless.@wifi-iface[0].ssid='Extendendo a rede' root@cajita.lan:~# uci set wireless.@wifi-iface[0].encryption='none'
Salve as mudanças:
root@cajita.lan:~# uci commit wireless
E reinicie os serviços alterados:
root@cajita.lan:~# wifi reload root@cajita.lan:~# /etc/init.d/odhcpd restart root@cajita.lan:~# /etc/init.d/firewall restart root@cajita.lan:~# /etc/init.d/network restart
Pelas alterações, provavelmente você foi chutada do roteador XD Faça o teste, veja se a rede Extendendo a rede está ativa e se ela te permite conectar à internet. Configuramos essa rede de forma aberta, ou seja, sem senha. Por questões de segurança, idealmente adicione uma senha à ela e use preferencialmente o protocolo psk2 por ser mais forte.
Adicionar configuração para IPv6
Caso queira adicionar suporta para IPv6, precisa adicionar umas configurações extras para dhcp:
root@cajita.lan:~# uci set dhcp.wan.interface=wwan root@cajita.lan:~# uci set dhcp.wan.ra=relay root@cajita.lan:~# uci set dhcp.wan.ndp=relay root@cajita.lan:~# uci set dhcp.wan.master=1 root@cajita.lan:~# uci commit dhcp
Reinicie o serviço de DHCP:
root@cajita.lan:~# /etc/init.d/odhcpd restart
A internet não tá funcionando?
- Certifique-se que a rede que você quer extender esteja funcionando e se conectando à internet;
- Certifique-se que o roteador extensor está recebendo um IP e que está podendo acessar à internet, para isso conecte-se ao roteador através do wifi ou cabo e abra novamente o terminal do roteador. Como desabilitamos o dhcp da rede lan do roteador extensor, você deverá conectar-se através do hostname, no nosso exemplo seria ssh root@cajita.lan. Se por um acaso você não lembra o hostname do seu roteador, adicione manualmente o ip 192.168.2.9 ao teu computador e tente novamente acessar o terminal do roteador através do comando ssh root@192.168.2.1.
- Depois de conectar-se ao termianl do roteador, faça:
root@cajita.lan:~# ip a
Sairá algo assim:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel master br-lan state DOWN qlen 1000 link/ether c4:6e:1f:3a:d8:64 brd ff:ff:ff:ff:ff:ff 4: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether c4:6e:1f:3a:d8:64 brd ff:ff:ff:ff:ff:ff inet 192.168.2.1/24 brd 192.168.2.255 scope global br-lan valid_lft forever preferred_lft forever inet6 fd23:da5f:e7e5::1/60 scope global valid_lft forever preferred_lft forever inet6 fe80::c66e:1fff:fe3a:d864/64 scope link valid_lft forever preferred_lft forever 5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether c4:6e:1f:3a:d8:64 brd ff:ff:ff:ff:ff:ff inet 192.168.0.103/24 brd 192.168.0.255 scope global wlan0 valid_lft forever preferred_lft forever inet6 fe80::c66e:1fff:fe3a:d864/64 scope link valid_lft forever preferred_lft forever
- Verifique que wlan0 tenha um IP em inet
- Verifique que o roteador esteja se conectando à internet
root@cajita.lan:~# ping 1.1.1.1
Se aparecer algo assim:
PING 1.1.1.1 (1.1.1.1): 56 data bytes 64 bytes from 1.1.1.1: seq=0 ttl=53 time=52.599 ms 64 bytes from 1.1.1.1: seq=1 ttl=53 time=53.559 ms 64 bytes from 1.1.1.1: seq=2 ttl=53 time=62.949 ms
Significa que seu roteador está conectando-se à internet
- Verifique que tenha o pacote relayd instalado:
root@cajita.lan:~# opkg info relayd Package: relayd Version: 2016-02-07-ad0b25ad-2 Depends: libc, libubox Status: install user installed Architecture: mips_24kc Installed-Time: 1624390786