Mudanças entre as edições de "TP-Link CPE 210 FailSafe e TFTP"

De Wiki Coolab
Ir para navegação Ir para pesquisar
 
Linha 1: Linha 1:
 +
== TP-Link CPE 210 FailSafe e TFTP ==
  
'''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...
  
Em caso de problema com alguma gravação no cpe, precisaremos usar o modo de failsafe para executar nova gravação e restaurar o sistema e para isso precisamos seguir os seguintes passos:
+
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:
  
1- Para entrar em failsafe, desligar o roteador pelo cabo de rede, contar 5 segundos, colocar um pino em reset, ligar contando até 10, o led da lan deve ligar sem ter nada conectado nela…
+
<pre>systemctl stop NetworkManager</pre>
 +
e conferir com
  
2 - 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 está por padrão de fábrica 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.
+
<pre>systemctl status NetworkManager
<code>
 
$ systemctl stop NetworkManager
 
</code>
 
e conferir com
 
<code>
 
$ systemctl status NetworkManager ```
 
 
● NetworkManager.service - Network Manager
 
● NetworkManager.service - Network Manager
  Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: disabled)
+
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
+
Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
 
       └─NetworkManager-ovs.conf
 
       └─NetworkManager-ovs.conf
  Active: inactive (dead) since Wed 2019-01-23 18:06:42 -02; 8s ago ``` após isso adicionar ip na interface:
+
Active: inactive (dead) since Wed 2019-01-23 18:06:42 -02; 8s ago</pre>
 +
após isso adicionar ip na interface
 +
 
 +
<pre>ip a add 192.168.0.100/24 dev enp5s0</pre>
 +
conferir com tcpdump apontando para a interface local
 +
 
 +
<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>
 +
 
 +
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.
  
$ ip a add 192.168.0.100/24 dev enp5s0
+
<pre> # atftpd --daemon --bind-address 192.168.0.100 /tftpboot/</pre>
</code>
+
e os logs do journalctl:
3- Conferir com tcpdump apontando para a interface local
 
<code>
 
$ tcpdump -nli enp5s0
 
  
1280 ARP, Request who-has 192.168.0.254 tell 192.168.0.100, length 28
+
<pre>jan 23 18:17:38 Darth atftpd[5947]: Advanced Trivial FTP server started (0.7.1)  
18:16:31.181334 ARP, Reply 192.168.0.254 is-at ba:be:fa:ce:08:41, length 46
+
jan 23 18:17:38 Darth atftpd[5948]: atftpd: can't bind port 192.168.0.100:69/udp </pre>
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
 
</code>
 
4 - O failsafe esta pronto para pedir um arquivo por tftp para a maquina .100, por isso colocamos o ip no passo anterior, agora precisamos subir um servidor local e depois colocar o arquivo solicitado em uma pasta que esse servidor utilize . Para isso criamos a pasta /tftpboot com permissão geral e dono nobody:
 
<code>
 
$ mkdir /tftpboot
 
$ chmod 777 /tftpboot
 
$ chown nobody /tftpboot
 
</code>
 
Nesse tcpdump acima também vemos que o roteador esta pedindo um arquivo chamado recovery.bin, que será usado nos próximos passos, mas antes vamos iniciar o serviço de tftp em nossa maquina:
 
<code>
 
# atftpd --daemon --bind-address 192.168.0.100 /tftpboot/
 
</code>
 
e conferir os logs do journalctl:
 
<code>
 
journactl -f
 
...
 
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
 
</code>
 
 
como user normal não deu certo, tentar como root:
 
como user normal não deu certo, tentar como root:
<code>
+
 
$ atftpd --daemon --bind-address 192.168.0.100 /tftpboot/
+
<pre>$ atftpd --daemon --bind-address 192.168.0.100 /tftpboot/</pre>
</code>
 
 
e os logs:
 
e os logs:
<code>
 
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.
 
</code>
 
conferindo no sistema, vi que /etc/group não existia o grupo “nogroup”, então para isso foi criado com o comando:
 
<code>
 
$ groupadd nogroup
 
</code>
 
e acompanhando o terminal de logs por
 
<code>
 
# journalctl -F
 
</code>
 
vemos que o servidor iniciou sem problemas agora!
 
<code>
 
: 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
 
</code>
 
6 - Agora que o servidor local ja reconhece a pasta e o roteador como cliente, precisamos identificar o que o roteador está solicitando através do terminal do tcpdump:
 
<code>
 
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
 
</code>
 
o tcpdump esta mostrando que a requisição (RRQ) do arquivo esta dando timeout, o que siginifica que não está achando o arquivo chamado recovery.bin para servir.
 
  
7 - Finalmente, precisamos copiar para a pasta /tftpboot o firmware a ser utilizado, prestando atenção que seja a versao factory, e neste processo renomear para recovery.bin:
+
<pre>jan 23 18:19:27 Darth atftpd[5979]: Advanced Trivial FTP server started (0.7.1)
<code>
+
jan 23 18:19:27 Darth sudo[5978]: pam_unix(sudo:session): session closed for user root
mv /home/rt/firmwareoriginal.bin /tftpboot/recovery.bin
+
jan 23 18:19:27 Darth atftpd[5980]: atftpd: can't change identity to nobody.nogroup, exiting. </pre>
</code>
+
conferindo no sistema, vi que /etc/group não tinha o nogroup, criado:
e acompanhar pelo terminal do tcpdump o inicio ao fim da troca de dados.
+
 
<code>
+
<pre>groupadd nogroup</pre>
18:42:34.859906 ARP, Request who-has 192.168.0.100 tell 192.168.0.254, length 46
+
: 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
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
+
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:
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
+
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
18:42:34.860675 IP 192.168.0.100.33171 > 192.168.0.254.1878: UDP, length 516
+
 
</code>
+
copiar para a pasta o firmware versao factory, renomear para recovery.bin
E agora é só ver o fluir dos pacotes na rede… quando os pacotes param de apresentar timeout e iniciam a troca entre maquina e router significa que a imagem esta se movimentando para o router e assim que ela acabar o roteador vai reiniciar.
 
  
Agora para sabermos se a imagem está se comportando como deveria precisamos reativar o network manager e receber ip via cabo lan!
+
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
<code>
 
$ systemctl start NetworkManager
 
$ dhclient enp5s0 -v
 
</code>
 
Se tudo isso deu certo, temos uma versão funcional de cpe/roteador novamente!
 
  
Happy Easy Debricking!
+
e ver o fluir da rede... o roteador vai reiniciar... reativar o networka managerr e receber ip via cabo!

Edição atual tal como às 14h01min de 2 de dezembro de 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 networka managerr e receber ip via cabo!