Cómo upgradear/patchear el OS de los switchs/routers de Huawei?

La idea del presente tutorial es poner al día a los dispositivos Huawei, dándoles así una nueva vida y tal vez un uso que anteriormente no tenían.

Para completar el tutorial se necesitará de:

  • Las credenciales (un usuario preferentemente lvl15) del dispositivo de red Huawei al cual vayamos a upgradear.
  • Conocimientos básicos del CLI de Huawei (se agradecen pero no son imprescindibles si se sigue el paso a paso del presente tutorial).
  • Una PC (preferentemente con un puerto serial físico disponible, ya sea un conector DB9 o USB).
  • Conexión a internet para descargar los OS de los dispositivos.
  • Un poco de paciencia (se explicará en su debido momento la razón).

Por qué hacerle un upgrade del OS a nuestros dispositivos de red?

Pues, además de las nuevas versiones de los OS traer parches para esas molestas fallas en la seguridad que acarrean las viejas versiones hemos encontrado algunos beneficios prácticos, por ejemplo:

  • En routers un tanto viejos como el AR158E (corriendo el OS V200R003C01SPC300) la única interfaz que podía enrutar era el puerto WAN (eth0) (cosa entendible, pues es un router xDSL) mientras que las demás interfaces se comportaban como un switch lvl3, o sea solo podía asignársele una IP a esas interfaces vía Vlanif, pero no podían enrutar. Una vez completado el upgrade (a la versión V200R010C10SPC700) todas las interfaces fueron capaces de enrutar.
  • En switchs como el S5700-28C-EI-24S antes de actualizar (V200R003C00SPC300) solo podrian ser declaradas 2 Vlanif mientras que luego del upgrade (V200R005C00spc500) se pueden declarar hasta mas de 10 Vlanif.
  • En routers WiFi como el AP7110DN es necesario el upgrade de su OS de fábrica para cambiar de modos entre los modos fat/cloud.

Comencemos:

1- Registro en el foro de Huawei (IMPORTANTE)

Creánlo o no, cuando vamos a realizar cualquier tipo de upgrade es necesario conocer al detalle todo lo que acarrea dicho upgrade, pues con cada uno puede que ocurran cambios importantes, por ejemplo: puede que se implemente de manera diferente algun protocolo de videoconferencias (H.323 o SIP), puede que el ICMP esté bloqueado para todos los puertos por defecto, puede que se experimente un de/crecimiento del filesystem del dispostivo, puede que la gestión web no pueda estar disponible luego del update… Siempre hay que estar preparado para lo peor. Y qué mejor manera de informarse que la documentación oficial por muy cansina que a veces resulte?

Es importante señalar que para obtener archivos importantes como el Upgrade guide o el mismo archivo del OS a upgradear de cada dispositivo es vital estar logueados en el sitio enterprise de Huawei.

Voy a asumir que todos saben lo que es un foro y que todos saben como crearse una cuenta en ellos, así que qué esperan? Vayan a loguearse en el sitio enterprise de Huawei. Como dato interesante: los integrantes del foro de Huawei son una comunidad muy activa y muuucho menos agresiva de sitio como StackExchange. Mi recomendación es que elijan la opción de registro email.

2- Información y archivos a upgradear desde el sitio oficial

Cualquiera pudiera pensar que para descargar los OS nuevos (y los viejos los necesitamos para hacer un downgrade y están disponibles) de los dispositivos a manejar uno necesita pagar, pues al menos en Huawei no es así. Ellos solo requieren de tu alma y que te conviertas en cliente (customer) de ellos. Sin convertirte en customer puedes acceder a la información pública de su sitio, pero no a la que nos interesa a nosotros, pues nos aparecerá con un candado que nos impedirá descargar nada realmente importante (solo los Users Manuals e Installations Guides).

Para convertirte en customer de Huawei solo tienes que registrar un producto dando algunos datos sencillos (algunos más que cuando te registraste en el sitio).

Luego de dirigirnos a este enlace hacemos click en My Product Permission y luego en Product Registration:

Esperamos una página como la siguiente:

En la imagen hay par de campos que pueden provocar alguna confusión:

  • SN: No es más que el Serial Number del dispositivo en el que vamos a trabajar. Con cada versión del OS el comando para buscar el SN varía, pueden ir aquí (switchs series S) o aquí (routers) para búsquedas mas profundas. Los comandos que siempre me han funcionado:
<HUAWEI>display esn

<HUAWEI>display sn
  • En el campo nombre intenten ser lo más preciso posible. Ejemplo: trabajo con varios switchs modelo S5700, pero cada uno tiene nombre y apellidos, así que en vez de poner solo S5700 (que tambien es aceptable), en la documentacion oficial aconsejan poner el nombre completo del dispositivo, por ejemplo: S5700-28C-EI-24S
  • Cuba sí aparece, bajo la region de Norte América.

Rellenamos todos los campos y luego de completar el captcha (uno de los captchas mas pesados que he visto!!!):

Si luego de dar OK nos desplazamos hacia abajo en esa misma página, bajo la sección de Application submitted veremos que nuestra petición esta siendo registrada (Pending approval):

Recuerdan cuando les mencioné en los requisitos para este tutorial paciencia? Pues ahora es cuando tienen que esperar unas cuantas horas. Personalmente en cada ocasión me tomó menos de 12h pero nunca fue rechazada una petición con datos correctos. Es un proceso sencillo pero un tanto largo y burocrático, pero es lo que hay.

Una vez el estado pasa de Pending approval a Approved ya tenemos acceso total a la información, upgrades y patchs para nuestro dispositivo.

Puede darse el caso de que hayamos registrado nuestro producto con un SN erróneo, de ser ese el caso Huawei nos contestará con un correo parecido a este:

3- Descargando el upgrade/patchs

Ya una vez todo el proceso anterior está hecho ya solo falta lo más fácil, descargar los archivos que vamos a utilizar para hacer el upgrade/patch de nuestro dispositivo.

Para esto nos dirigimos a la página de support de Huawei, desde donde buscaremos nuestro dispositivo (nótese que del mismo dispositivo hay mas de un tipo, tener en cuenta a la hora de descargar el upgrade/patch, pues puede que no sea el mismo para todos los dipositivos de la misma familia):

Una vez entremos en la sección de nuestro dispositivo iremos a la pestaña de Software Download:Intentaremos siempre utilizar los links que contengan la manito con el pulgar arriba, al parecer es al versión más estable según los propios usuarios.

Seleccionamos el archivo (usualmente vienen en formato zip o en .cc) y le damos a descargar, aceptamos y el proceso de descarga comienza.

4- Upgrade (ejemplo práctico con Router AR158E)

4.1- Nos logueamos en el dispositivo, ya sea por puerto serie o por SSH.

4.2.1- Nos fijamos en la versión del sistema:

<HUAWEI-viejo-2>display version
Huawei Versatile Routing Platform Software
VRP (R) software, Version 5.120 (AR150 V200R003C01SPC300)
Copyright (C) 2011-2013 HUAWEI TECH CO., LTD
Huawei AR158E Router uptime is 0 week, 0 day, 3 hours, 10 minutes

MPU 0(Master) : uptime is 0 week, 0 day, 3 hours, 10 minutes
SDRAM Memory Size    : 512     M bytes
Flash Memory Size    : 512     M bytes
MPU version information :
1. PCB      Version  : AR01SRU0B VER.A
2. MAB      Version  : 0
3. Board    Type     : AR158E
4. CPLD0    Version  : 102
5. BootROM  Version  : 452
SubBoard[1]:
1. PCB      Version  : AR01DLS1XA VER.A

Aquí podremos ver también otros datos como: el nombre del dispositivo (no solo la serie), la RAM (SDARM), la capacidad de almacenamiento (Flash), versión del PCB, la versión del OS actual…

4.2.2- Verificamos el sistema de archivos:

<HUAWEI-viejo-2>display startup
MainBoard:
  Startup system software:                   flash:/ar200-v200r003c01spc300.cc
  Next startup system software:              flash:/ar200-v200r003c01spc300.cc
  Backup system software for next startup:   null
  Startup saved-configuration file:          flash:/vrpcfg.zip
  Next startup saved-configuration file:     flash:/vrpcfg.zip
  Startup license file:                      null
  Next startup license file:                 null
  Startup patch package:                     flash:/ar200-v200r003sph003.pat
  Next startup patch package:                flash:/ar200-v200r003sph003.pat
  Startup voice-files:                       null
  Next startup voice-files:                  null

El archivo .cc es el OS que el dispositivo carga. En el Startup system software vemos el OS que corre actualmente, mientras que en Next startup system software vemos el OS que usará el dispositivo en el próximo reinicio, como es obvio ahora mismo ambas variables son iguales, pero luego cambiará. En este menú podremos ver otras informaciones.

4.2.3- Ahora comprobamos el estado del dispositivo:

<HUAWEI-viejo-2>display device
AR158E's Device status:
Slot  Sub Type                Online   Power     Register      Alarm     Primary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
0     -   AR158E              Present  PowerOn   Registered    Normal    Master

Si el dispositivo funciona correctamente, el valor en el campo Online es Presente, el valor en el campo Register es Registered y el valor en el campo Alarm es Normal.

Si el valor del campo Alarm es Abnormal, la placa no está funcionando correctamente.

4.3-  Hay que mencionar que en este paso simplemente se buscará vía para enviar el (OS) .cc descargado desde Huawei. En la documentación oficial presentan varias vías: TFTP, FTP, o SFTP, Serial, ocupando el dispositivo el rol de cliente o servidor en el protocolo según sea el caso necesario.

En dependencia de la vía o protocolo que se seleccione para realizar la transferencia el proceso será más o menos rápido. En este caso se seleccionó el protocolo FTP, ya sabemos que es un protocolo obsoleto, pero hace la magia… En este caso el dispositivo de red asumirá el roll de servidor mientras que una PC será el cliente, con un cliente de FTP cualquiera.

4.4- Para poder utilizar el protocolo FTP ambos dispositivos (Router/Switch) tendrán que estar en la misma subred, para eso el primer paso es poner un IP en la interfaz 0 (en este caso Ethernet0/0/0) del dispositivo.

(NOTA: en la documentación oficial comentan que para esta vía se puede utilizar cualquier interfaz/puerto, pero recomiendan encarecidamente utilizar la interfaz 0)

<Huawei>system-view  
Enter system view, return user view with Ctrl+Z. 
[Huawei]interface Ethernet 0/0/0 
[Huawei-Ethernet0/0/0]undo portswitch  
[Huawei-Ethernet0/0/0]ip address 10.7.5.103 
[Huawei-Ethernet0/0/0]quit
<Huawei>save

La única gran diferencia a la hora de upgradear un Switch y un Router es a la hora de configurarle la interfaz de red a la cual accederemos. Mientras que en el ejemplo anterior (un Router) se le puede asignar directamente el IP a una interfaz, en el ejemplo siguiente (un Switch hay que configurale el IP a una vlanif y luego asignarla a una interfaz):

<Huawei>system-view

[Huawei]vlan 100

[Huawei-vlan100]description VLAN de Gestion de Activos

[Huawei-vlan100]quit



[Huawei]interface Vlanif 100

[Huawei-Vlanif100]ip address 10.7.100.12 255.255.255.0

[Huawei-Vlanif100]description IP de Gestion del switch

[Huawei-Vlanif100]quit

[Huawei]interface GigabitEthernet 0/0/1

[Huawei-GigabitEthernet0/0/1]port link-type access

[Huawei-GigabitEthernet0/0/1]port default vlan 100

[Huawei-GigabitEthernet0/0/1]quit


[Huawei]quit

<Huawei>save

4.5-Configurar un usuario y “darle permisos” para dejarlo loguearse utilizando el protocolo FTP. Se puede utilizar un usuario previamente creado o simplemente crear uno nuevo, en este caso crearemos un usuario llamado huawei con el password huawei:

(NOTA: Recordar que a la hora de otorgar permisos en el cli de Huawei, los permisos no son aditivos, o sea que si se desea añadir un permiso a los que el usuario ya tiene no basta solo con setear el permiso deseado, sino que tiene que setear, además del permiso que se desea todos los anteriores. Ejemplo: si un usuario que previamente tenía permisos para loguearse usando la consola serial y el protocolo SSH y se le setea local-user AR service-type ftp perderá el permiso para loguearse por consola, por lo que la manera correcta seria: local-user AR service-type terminal ftp ssh):

[Huawei] aaa  
[Huawei-aaa] local-user huawei password cipher huawei  
info: A new user added  
[Huawei-aaa] local-user huawei ftp-directory flash:  
[Huawei-aaa] local-user huawei service-type ftp  
[Huawei-aaa] local-user huawei privilege level 15
[Huawei-aaa]quit
[Huawei]quit
<Huawei>save

4.6- Levantamos el servidor FTP:

[Huawei]ftp server enable
Info: Succeeded in starting the FTP server

4.7- Ahora, se debería checkear que el dispositivo tenga suficiente espacio libre, como vemos tiene 400MB libres:

<HUAWEI-viejo-2>dir flash:
Directory of flash:/

  Idx  Attr     Size(Byte)  Date        Time(LMT)  FileName
    0  -rw-     61,132,672  Apr 19 2013 10:39:08   ar200-v200r003c01spc300.cc
    1  -rw-              0  Jul 18 2014 02:41:42   brdxpon_snmp_cfg.efs
    2  -rw-            396  Aug 30 2013 19:12:16   rsa_host_key.efs
    3  -rw-            540  Aug 30 2013 19:12:34   rsa_server_key.efs
    4  -rw-        286,620  Jul 18 2014 02:42:50   sacrule.dat
    5  -rw-        257,192  Sep 02 2021 07:35:20   mon_file.txt
    6  drw-              -  Aug 30 2013 19:13:42   dhcp
    7  drw-              -  Aug 30 2013 19:13:54   logfile
    8  -rw-        349,312  Aug 30 2013 19:19:30   ar200-v200r003sph003.pat
    9  -rw-            264  Jul 17 2014 15:07:40   test.txt
   10  -rw-            859  Sep 02 2021 11:06:42   vrpcfg.zip
   11  -rw-            407  Sep 02 2021 11:06:42   private-data.txt
   12  -rw-          1,024  Aug 13 2018 12:37:52   boot_logfile
   13  -rw-      1,204,224  Jan 13 2019 14:50:20   web2019010013145003.zip
   14  -rw-      6,463,488  Mar 28 2019 15:14:04   web2019030028151315.zip
   15  -rw-      1,839,104  Sep 16 2020 20:13:42   web2020090016201319.zip
   16  -rw-      6,465,536  Sep 25 2020 13:56:44   web2020090025135549.zip
   17  -rw-      3,743,744  Aug 31 2021 16:27:28   web2021080031162655.zip

468,336 KB total (400,576 KB free)

Como se puede apreciar en la línea 0 tenemos el OS, incluso un archivo test.txt que le enviamos anteriormente de prueba.

4.8- El siguiente paso es utilizar el cliente FTP de elección y loguearnos en nuestro dispositivo usando el nombre de usuario y password configurados anteriormente (recordar que ambos dispositivos tienen que estar en el mismo segmento de red).

Es recomendable guardar toda la información que tenga el dispositivo, en caso de desastre.

4.9- Copiar el OS al dispositivo utilizando el mismo cliente FTP. Una vez terminada la copia (en mi caso nunca llego a los 100kB/s de transferencia, y hay momentos en los que parece que no copia, solo dale su tiempo) se comprueba que se haya copiado el OS listando los ficheros:

<Huawei>dir
Directory of flash:/

  Idx  Attr     Size(Byte)  Date        Time(LMT)  FileName
    0  -rw-     61,132,672  Apr 19 2013 10:39:08   ar200-v200r003c01spc300.cc
    1  -rw-              0  Jul 16 2014 02:20:40   brdxpon_snmp_cfg.efs
    2  -rw-            396  Aug 30 2013 11:21:26   rsa_host_key.efs
    3  -rw-            540  Aug 30 2013 11:21:32   rsa_server_key.efs
    4  -rw-        286,620  Jul 16 2014 02:21:48   sacrule.dat
    5  -rw-        252,153  Sep 02 2021 17:32:48   mon_file.txt
    6  drw-              -  Aug 30 2013 11:22:52   dhcp
    7  drw-              -  Aug 30 2013 11:23:04   logfile
    8  -rw-        349,312  Aug 30 2013 11:27:28   ar200-v200r003sph003.pat
    9  -rw-            749  Sep 02 2021 17:45:24   vrpcfg.zip
   10  -rw-            407  Sep 02 2021 17:45:24   private-data.txt
   11  -rw-            264  Jul 17 2014 15:01:58   test.txt
   12  -rw-    175,421,824  Sep 02 2021 18:22:48   ar150-v200r010c10spc700.cc

468,336 KB total (236,032 KB free)

En este caso vemos que se copió al final del almacenamiento.

4.10-Anteriormente se utilizó el comando display startup para comprobar que OS utiliza el dispositivo, tenerlo en cuenta por ahora, pues se volverá a utilizar en unos momentos.

Ahora toca decirle al dispositivo que en su siguiente reinicio levante el OS que le copiamos vía FTP:

<Huawei>startup system-software flash:/ar150-v200r010c10spc700.cc
This operation will take several minutes, please wait...............
Info: Succeeded in setting the file for booting system

(NOTA: cuando le damos la dirección del nuevo OS al almacenamiento y presionamos TAB para que autocomplete no lo hará, hay que ponerlo a mano)

Y ahora solo resta comprobar que el dispositivo haya cargado el OS:

<Huawei>display startup
MainBoard:
  Startup system software:                   flash:/ar200-v200r003c01spc300.cc
  Next startup system software:              flash:/ar150-v200r010c10spc700.cc
  Backup system software for next startup:   null
  Startup saved-configuration file:          null
  Next startup saved-configuration file:     flash:/vrpcfg.zip
  Startup license file:                      null
  Next startup license file:                 null
  Startup patch package:                     flash:/ar200-v200r003sph003.pat
  Next startup patch package:                flash:/ar200-v200r003sph003.pat
  Startup voice-files:                       null
  Next startup voice-files:                  null

Por ahora solo nos resta reiniciar el dispositivo…

(NOTA: Durante el proceso de upgrade el dispositivo se reiniciará par de veces, en mí caso tomó alrededor de 8-10 minutos para completar el proceso)

4.11- Comprobar que el proceso se completó correctamente:

4.12- Con el objetivo de ahorrar espacio, procedemos a borrar el archivo del sistema (.cc) anterior:

<Huawei>delete /unreserved ar200-v200r003c01spc300.cc

(NOTA: Al borrar con la opción /unreserved estamos borrando totalmente, sin pasar por la papelera de reciclaje interna, el archivo)

5- Update (ejemplo práctico con Switch S5700)

Existirán veces en las que tengamos nuestros dispositivos con el ultimo OS disponible pero Huawei publica regularmente parches de seguridad. Para hacernos con estos archivos se realiza el mismo procedimiento que se siguió para obtener el OS en el ejemplo práctico pasado: nos registramos en el foro, registramos nuestro producto convirtiéndonos en Customers, esperamos por la notificación de confirmación y procedemos al sitio de nuestro dispositivo ya registrado para obtener los parches, activamos el servidor FTP interno del dispositivo y le pasamos el archivo… Justo como en el ejemplo anterior!!!

5.1- Una vez subido el parche (en este caso un archivo nombrado S5700EI-V200R005SPH038.pat) a la raíz de la memoria interna, especificamos el fichero, para que sea utilizado al inicio del sistema:

<Huawei> startup patch S5700EI-V200R005SPH038.pat
Info: Succeeded in setting main board resource file for system.

5.2- Reiniciamos el S5700 (recomendamos hacerlo por consola):

<Huawei>reboot
Info: The system is now comparing the configuration, please wait.
Warning: The configuration has been modified, and it will be saved to the next startup saved-configuration file flash:/sw12-s5700.zip. Continue? [Y/N]:y
Now saving the current configuration to the slot 0..
Save the configuration successfully.
Info: If want to reboot with saving diagnostic information, input 'N' and then execute 'reboot save diagnostic-information'.
System will reboot! Continue?[Y/N]: Y

El parche no debe tardar más de 3 minutos.

5.3- Accedemos nuevamente por SSH (o consola, incluso desde el FTP server) y borramos el anterior parche del sistema, que se encontraba antes de subir el nuevo. En este caso, fue el siguiente:

<Huawei>delete /unreserved s5700ei-v200r003sph010.pat
Warning: The contents of file flash:/s5700ei-v200r003sph010.pat cannot be recycled. Continue? [Y/N]:y
Info: Deleting file flash:/s5700ei-v200r003sph010.pat...succeeded.

5.4- Verificamos que se haya aplicado el parche correctamente:

<Huawei>display patch-information
Patch Package Name :flash:/s5700ei-v200r005sph038.pat
Patch Package Version:V200R005SPH038
The state of the patch state file is: Running
The current state is: Running

************************************************************************
* Information about hot patch errors is as follows: *
************************************************************************

Slot CurrentVersion
------------------------------------------------------------

No hot patch error occurs on any board.

************************************************************************
* The hot patch information, as follows: *
************************************************************************

Slot Type State Count Time(YYYY-MM-DD HH:MM:SS)
------------------------------------------------------------------------
0 C Running 320 2061-09-06 02:16:17-05:13

Podemos ver que se aplicó correctamente el parche “V200R005SPH038” y se encuentra en uso, por el sistema.

5.5- Verificamos el dispositivo:

<Huawei>display device
S5700-28C-EI's Device status:
Slot Sub Type Online Power Register Status Role
-------------------------------------------------------------------------------
0 - S5700-28C-EI Present PowerOn Registered Normal Master
1 ES510G4S Present PowerOn Registered Normal NA
3 FAN Present PowerOn Registered Normal NA
4 POWER Present PowerOn Registered Normal NA

5.6- Por último verificamos los softwares del sistema que se están usando y el fichero de configuración:

<Huawei>display startup
MainBoard:
Configured startup system software: flash:/s5700ei-v200r005c00spc500.cc
Startup system software: flash:/s5700ei-v200r005c00spc500.cc
Next startup system software: flash:/s5700ei-v200r005c00spc500.cc
Startup saved-configuration file: flash:/sw12-s5700.zip
Next startup saved-configuration file: flash:/sw12-s5700.zip
Startup paf file: default
Next startup paf file: default
Startup license file: default
Next startup license file: default
Startup patch package: flash:/s5700ei-v200r005sph038.pat
Next startup patch package: flash:/s5700ei-v200r005sph038.pat

6- Y listo!!! Ya tenemos nuestros dispositivos upgradeados y con sus parches de seguridad aplicados!!!

Autores:

  • Frank Morales
  • Franco Díaz

 

 

 

 

 

¿De cuánta utilidad te ha parecido este contenido?

Frank Morales

Compartir
Publicado por
Frank Morales

Entradas recientes

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

8 meses hace

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

1 año hace

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

1 año hace

Home automation (Parte 1)

Desde hace varios meses vengo con la idea de automatizar la casa donde vivo. Poco…

1 año hace

Cocinando una imagen personalizada de OpenWRT

El artículo describe el uso para un caso particular de OpenWRT y la creación de…

1 año hace