Difference between revisions of "TP-Link CPE 210 como Backhaul usando LiMe - Adicionando porta WAN"

From Wiki Coolab
Jump to navigation Jump to search
(Criou página com ' A instalação padrão do LibreMesh que compilamos para a CPE 210 v3 vem com a unica porta de rede ativa como Lan, assim como possivelmente em outras versões de roteadores...')
 
Line 1: Line 1:
 +
== TP-Link CPE 210 FailSafe e TFTP ==
  
 +
Em caso de pŕoblemas com alguma gravação no cpe, precisaremos usar o modo de failsafe para executar nova gravação e restaurar o sistema, para isso precisamos seguir os seguintes passos:
  
A instalação padrão do LibreMesh que compilamos para a CPE 210 v3 vem com a unica porta de rede ativa como Lan, assim como possivelmente em outras versões de roteadores com uma unica porta LAN. Para poder compartilhar internet precisamos ter uma porta WAN ativa, e o bom é que conseguimos resolver isso mudando algumas configurações no roteador que servirá de borda para a instalação.
+
para entrar em failsafe, desligar o roteador pelo cabo de rede, contar 5 segundos, colocar um pino em reset, ligar contando até 10, luz da lan deve ligar sem ter nada conectado nela...
Cenário:
 
  
inicialmente o cenário que estamos trabalhando é o seguinte:
+
assim que ela ligar colocar cabo da lan no roteador e na maquina, colocar a maquina local em ip 192.168.0.100/24 pois o roteador esta em 192.168.0.254. Isso pode ser feito de distintas maneiras, via terminal é aconselhado desligar o gerenciador de rede e após isso fixar o ip:
  
internet -> router caseiro 192.168.0.1 -> cabo rede  roteador lime 4300 porta wan - wifi lan 4300 -> via mesh -> cpe 210
+
<pre>systemctl stop NetworkManager</pre>
 +
e conferir com
  
partindo desse cenario, supomos que a CPE esta acessivel via ssh e tem acesso a internet
+
<pre>systemctl status NetworkManager
 +
● NetworkManager.service - Network Manager
 +
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: disabled)
 +
Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
 +
      └─NetworkManager-ovs.conf
 +
Active: inactive (dead) since Wed 2019-01-23 18:06:42 -02; 8s ago</pre>
 +
após isso adicionar ip na interface
  
'''Ajustes iniciais'''
+
<pre>ip a add 192.168.0.100/24 dev enp5s0</pre>
 +
conferir com tcpdump apontando para a interface local
  
Como a compilação que estamos usando ainda não incluiu o pacote de admin, após acessar o roteador CPE 210 por ssh partindo de sua maquina conectada a ele por meio da mesh, iremos atualizar a fonte de pacotes e instalar o gerenciador grafico para auxiliar no processo de visualização:
+
<pre>tcpdump -nli enp5s0 </pre>
 +
<code>1280 ARP, Request who-has 192.168.0.254 tell 192.168.0.100, length 28 18:16:31.181334 ARP, Reply 192.168.0.254 is-at ba:be:fa:ce:08:41, length 46 18:16:32.462956 IP 192.168.0.254.3422 &gt; 192.168.0.100.69:  31 RRQ &quot;recovery.bin&quot; octet timeout 2 18:16:32.463009 IP 192.168.0.100 &gt; 192.168.0.254: ICMP 192.168.0.100 udp port 69 unreachable, length 67 18:16:35.663035 IP 192.168.0.254.3422 &gt; 192.168.0.100.69:  31 RRQ &quot;recovery.bin&quot; octet timeout 2 18:16:35.663100 IP 192.168.0.100 &gt; 192.168.0.254: ICMP 192.168.0.100 udp port 69 unreachable, length 67</code>
  
ssh root@thisnode.info -v
+
o failsafe esta pronto para pedir um arquivo por tftp para a maquina .100, por isso colocamos o ip antes, mas agora precisamos subir um servidor local e depois colocar o arquivo solicitado la dentro e também vemos que o roteador esta pedindo um arquivo chamado recovery.bin.
  
opkg update
+
<pre> # atftpd --daemon --bind-address 192.168.0.100 /tftpboot/</pre>
 +
e os logs do journalctl:
  
opkg install luci-mod-admin-full
+
<pre>jan 23 18:17:38 Darth atftpd[5947]: Advanced Trivial FTP server started (0.7.1)
 +
jan 23 18:17:38 Darth atftpd[5948]: atftpd: can't bind port 192.168.0.100:69/udp </pre>
 +
como user normal não deu certo, tentar como root:
  
apos o pacote instalado ja sera possivel observar quais interfaces estao disponiveis e quais não atraves do navegador web, acessando:
+
<pre>$ atftpd --daemon --bind-address 192.168.0.100 /tftpboot/</pre>
 +
e os logs:
  
http://thisnode.info
+
<pre>jan 23 18:19:27 Darth atftpd[5979]: Advanced Trivial FTP server started (0.7.1)
 +
jan 23 18:19:27 Darth sudo[5978]: pam_unix(sudo:session): session closed for user root
 +
jan 23 18:19:27 Darth atftpd[5980]: atftpd: can't change identity to nobody.nogroup, exiting. </pre>
 +
conferindo no sistema, vi que /etc/group não tinha o nogroup, criado:
  
e indo na pagina de administração e interefaces:
+
<pre>groupadd nogroup</pre>
 +
: Advanced Trivial FTP server started (0.7.1) jan 23 18:26:03 Darth sudo[6244]: pam_unix(sudo:session): session closed for user root jan 23 18:26:03 Darth atftpd[6248]: Serving recovery.bin to 192.168.0.254:3487
  
Luci - administration - interfaces
+
agora o servidor local ja reconhece a pasta e o roteador como cliente, precisamos mover o arquivo que usaremos para restaurar a imagem para a pasta que criamos:
  
no nosso caso nao existia nenhuma interface relacionando a wan e a eth0 como interface solo tambem, como observado no 4300 que esta servindo de borda nesse momento.
+
o tcpdump esta mostrando que a busca do arquivo esta dando timeout: 18:28:46.456018 IP 192.168.0.254.1842 &gt; 192.168.0.100.69: 31 RRQ &quot;recovery.bin&quot; octet timeout 2 18:28:46.456311 IP 192.168.0.100.52866 &gt; 192.168.0.254.1842: UDP, length 19
  
para isso podemos criar as varias interfaces na mão ou acessar o roteador e criar as interfaces que estao faltando atraves do vi:
+
copiar para a pasta o firmware versao factory, renomear para recovery.bin
  
ssh root@thisnode.info
+
18:42:34.859906 ARP, Request who-has 192.168.0.100 tell 192.168.0.254, length 46 18:42:34.859945 ARP, Reply 192.168.0.100 is-at 28:d2:44:2c:31:53, length 28 18:42:34.859998 IP 192.168.0.254.1878 &gt; 192.168.0.100.69: 31 RRQ &quot;recovery.bin&quot; octet timeout 2 18:42:34.860449 IP 192.168.0.100.33171 &gt; 192.168.0.254.1878: UDP, length 12 18:42:34.860516 IP 192.168.0.254.1878 &gt; 192.168.0.100.33171: UDP, length 4 18:42:34.860675 IP 192.168.0.100.33171 &gt; 192.168.0.254.1878: UDP, length 516
  
vi /etc/config/network
+
e ver o fluir da rede... o roteador vai reiniciar... reativar o network manager e receber ip via cabo!
 
 
basicamente serão adicionadas as interfaces:
 
 
 
wan, wan6, lm_net_eth0, lm_net_eth0_batadv_dev, lm_net_eth0_batadv_if
 
 
 
e para referencia, segue meu arquivo de interfaces que está funcionando:
 
 
 
config interface 'loopback'
 
option ifname 'lo'
 
option proto 'static'
 
option ipaddr '127.0.0.1'
 
option netmask '255.0.0.0'
 
 
 
config globals 'globals'
 
 
 
config interface 'lan'
 
option type 'bridge'
 
option proto 'static'
 
option ip6assign '60'
 
option ipaddr '10.13.155.136'
 
option netmask '255.255.0.0'
 
option mtu '1500'
 
option ifname 'bat0'
 
 
 
config device 'lm_net_br_lan_anygw_dev'
 
option type 'macvlan'
 
option name 'anygw'
 
option ifname 'br-lan'
 
option macaddr 'aa:aa:aa:0d:fe:aa'
 
 
 
config interface 'lm_net_br_lan_anygw_if'
 
option ifname 'anygw'
 
option auto '1'
 
option netmask '255.255.0.0'
 
option proto 'static'
 
option ipaddr '10.13.0.1'
 
option ip6addr '2a00:1508:a0d:fe00::1/64'
 
 
 
config rule6 'lm_net_anygw_rule6'
 
option src '2a00:1508:a0d:fe00::1/128'
 
option lookup '170'
 
 
 
config route6 'lm_net_anygw_route6'
 
option interface 'lm_net_br_lan_anygw_if'
 
option target '2a00:1508:a0d:fe00::/64'
 
option table '170'
 
 
 
config rule 'lm_net_anygw_rule4'
 
option src '10.13.0.1/32'
 
option lookup '170'
 
 
 
config route 'lm_net_anygw_route4'
 
option interface 'lm_net_br_lan_anygw_if'
 
option target '10.13.0.0'
 
option netmask '255.255.0.0'
 
option table '170'
 
 
 
config interface 'lm_net_batadv_dummy_if'
 
option ifname 'dummy0'
 
option macaddr 'aa:4e:26:df:9b:88'
 
option proto 'batadv'
 
option mesh 'bat0'
 
 
 
config interface 'lm_net_wlan0_mesh'
 
option proto 'none'
 
option mtu '1536'
 
option auto '1'
 
 
 
config device 'lm_net_wlan0_mesh_batadv_dev'
 
option type '8021ad'
 
option name 'wlan0-mesh_29'
 
option ifname '@lm_net_wlan0_mesh'
 
option vid '29'
 
option mtu '1532'
 
 
 
config interface 'lm_net_wlan0_mesh_batadv_if'
 
option auto '1'
 
option ifname 'wlan0-mesh_29'
 
option proto 'batadv'
 
option mesh 'bat0'
 
 
 
config device 'lm_net_wlan0_mesh_bmx6_dev'
 
option type '8021ad'
 
option name 'wlan0-mesh_13'
 
option ifname '@lm_net_wlan0_mesh'
 
option vid '13'
 
option mtu '1500'
 
 
 
config device 'lm_net_eth0_batadv_dev'
 
option type '8021ad'
 
option name 'eth0_29'
 
option ifname 'eth0'
 
option vid '29'
 
option mtu '1532'
 
 
 
 
 
config interface 'lm_net_wlan0_mesh_bmx6_if'
 
option auto '1'
 
option ifname 'wlan0-mesh_13'
 
option proto 'static'
 
option ipaddr '169.254.155.136'
 
option netmask '255.255.255.255'
 
 
 
config interface 'lm_net_eth0'
 
option mtu '1500'
 
option proto 'none'
 
option ifname 'eth0'
 
option auto '1'
 
 
 
config interface 'lm_net_eth0_batadv_if'
 
option auto '1'
 
option proto 'batadv'
 
option ifname 'eth0_29'
 
option mesh 'bat0'
 
 
 
config interface 'lm_net_eth0'
 
option proto 'none'
 
option auto '1'
 
option ifname 'eth0'
 
option mtu '1500'
 
 
 
config interface 'wan'
 
option proto 'dhcp'
 
option ifname 'eth0'
 
 
 
config interface 'wan6'
 
option proto 'none'
 
option ifname 'eth0'
 
 
 
e adicionar as zonas certas ao firewall, que no router se encontra em /etc/config/firewall e adicionar ao fim da zona lan a interface lm-net-eth0-batadv-if:
 
 
 
config zone
 
option name 'lan'
 
option input 'ACCEPT'
 
option output 'ACCEPT'
 
option forward 'ACCEPT'
 
option network 'lan lm_net_br_lan_anygw_if lm_net_batadv_dummy_if lm_net_wlan0_mesh_batadv_if lm_net_wlan0_mesh_bmx6_if lm_net_eth0_batadv_if'
 
 
 
Testes:
 
 
 
Feitos em varios passos:
 
partindo do router cpe:
 
 
 
desconectar o cabo de internet que estava no outro roteador da malha em wan e conectar ao cpe em wan , reiniciar o CPE e desligar o outro router.
 
 
 
ssh root@thisnode.info
 
 
 
    ping partindo do router para o roteador caseiro 192.168.1.1
 
    ping partindo do router para fora, ex 8.8.8.8
 
    ping via dns, ex ping riseup.net
 
 
 
    opkg update
 
    ligar outro router
 
    ip n para ver vizinhos
 
    esperar router aparecer (ou monitorar por bmx)
 
    pingar outro router da malha
 
 
 
partindo de computador cliente conectado na cpe
 
 
 
    ping 10.13.0.1
 
    ping 8.8.8.8
 
    ping eff.org
 
    http
 
 
 
se tudo estiver ok até agora significa que o roteador esta com a porta wan ok, agora precisamos conferir os outros nodos da rede:
 
partindo de outro roteador na malha conectado ao cpe
 
 
 
    ligar o outro nodo da rede que antes tinha a wan
 
    trocar de rede
 
    conectar pc ao outro roteador
 
    acessar thisnode.info
 
    ping 10.13.0.1
 
    ping ip cpe
 
    ping 8.8.4.4
 
    ping qualquernome.com
 
    http
 
 
 
se tudo isso funcionar, siginifica que deu certo!
 
 
 
Happy Backhauling!
 
 
 
ps: nos meus testes, com as placas certas mas o firewall não, ele funcionava partindo da cpe mas nao dos outros nodos, ao ajustar o firewall e reiniciar a malha, tudo voltou a vida!
 

Revision as of 13:51, 2 December 2019

TP-Link CPE 210 FailSafe e TFTP

Em caso de pŕoblemas com alguma gravação no cpe, precisaremos usar o modo de failsafe para executar nova gravação e restaurar o sistema, para isso precisamos seguir os seguintes passos:

para entrar em failsafe, desligar o roteador pelo cabo de rede, contar 5 segundos, colocar um pino em reset, ligar contando até 10, luz da lan deve ligar sem ter nada conectado nela...

assim que ela ligar colocar cabo da lan no roteador e na maquina, colocar a maquina local em ip 192.168.0.100/24 pois o roteador esta em 192.168.0.254. Isso pode ser feito de distintas maneiras, via terminal é aconselhado desligar o gerenciador de rede e após isso fixar o ip:

systemctl stop NetworkManager

e conferir com

systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: disabled)
 Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
       └─NetworkManager-ovs.conf
 Active: inactive (dead) since Wed 2019-01-23 18:06:42 -02; 8s ago

após isso adicionar ip na interface

ip a add 192.168.0.100/24 dev enp5s0

conferir com tcpdump apontando para a interface local

tcpdump -nli enp5s0 

1280 ARP, Request who-has 192.168.0.254 tell 192.168.0.100, length 28 18:16:31.181334 ARP, Reply 192.168.0.254 is-at ba:be:fa:ce:08:41, length 46 18:16:32.462956 IP 192.168.0.254.3422 > 192.168.0.100.69: 31 RRQ "recovery.bin" octet timeout 2 18:16:32.463009 IP 192.168.0.100 > 192.168.0.254: ICMP 192.168.0.100 udp port 69 unreachable, length 67 18:16:35.663035 IP 192.168.0.254.3422 > 192.168.0.100.69: 31 RRQ "recovery.bin" octet timeout 2 18:16:35.663100 IP 192.168.0.100 > 192.168.0.254: ICMP 192.168.0.100 udp port 69 unreachable, length 67

o failsafe esta pronto para pedir um arquivo por tftp para a maquina .100, por isso colocamos o ip antes, mas agora precisamos subir um servidor local e depois colocar o arquivo solicitado la dentro e também vemos que o roteador esta pedindo um arquivo chamado recovery.bin.

 # atftpd --daemon --bind-address 192.168.0.100 /tftpboot/

e os logs do journalctl:

jan 23 18:17:38 Darth atftpd[5947]: Advanced Trivial FTP server started (0.7.1) 
jan 23 18:17:38 Darth atftpd[5948]: atftpd: can't bind port 192.168.0.100:69/udp 

como user normal não deu certo, tentar como root:

$ atftpd --daemon --bind-address 192.168.0.100 /tftpboot/

e os logs:

jan 23 18:19:27 Darth atftpd[5979]: Advanced Trivial FTP server started (0.7.1) 
jan 23 18:19:27 Darth sudo[5978]: pam_unix(sudo:session): session closed for user root 
jan 23 18:19:27 Darth atftpd[5980]: atftpd: can't change identity to nobody.nogroup, exiting. 

conferindo no sistema, vi que /etc/group não tinha o nogroup, criado:

groupadd nogroup
Advanced Trivial FTP server started (0.7.1) jan 23 18:26:03 Darth sudo[6244]: pam_unix(sudo:session): session closed for user root jan 23 18:26:03 Darth atftpd[6248]: Serving recovery.bin to 192.168.0.254:3487

agora o servidor local ja reconhece a pasta e o roteador como cliente, precisamos mover o arquivo que usaremos para restaurar a imagem para a pasta que criamos:

o tcpdump esta mostrando que a busca do arquivo esta dando timeout: 18:28:46.456018 IP 192.168.0.254.1842 > 192.168.0.100.69: 31 RRQ "recovery.bin" octet timeout 2 18:28:46.456311 IP 192.168.0.100.52866 > 192.168.0.254.1842: UDP, length 19

copiar para a pasta o firmware versao factory, renomear para recovery.bin

18:42:34.859906 ARP, Request who-has 192.168.0.100 tell 192.168.0.254, length 46 18:42:34.859945 ARP, Reply 192.168.0.100 is-at 28:d2:44:2c:31:53, length 28 18:42:34.859998 IP 192.168.0.254.1878 > 192.168.0.100.69: 31 RRQ "recovery.bin" octet timeout 2 18:42:34.860449 IP 192.168.0.100.33171 > 192.168.0.254.1878: UDP, length 12 18:42:34.860516 IP 192.168.0.254.1878 > 192.168.0.100.33171: UDP, length 4 18:42:34.860675 IP 192.168.0.100.33171 > 192.168.0.254.1878: UDP, length 516

e ver o fluir da rede... o roteador vai reiniciar... reativar o network manager e receber ip via cabo!