Entrar por SSH en equipos Netapp antiguos

Esta es una entrada de las que antiguamente hacía para guardarme como referencia cosas que de vez en cuando necesito hacer. De cuando en cuanto tengo que entrar en arrays Netapp que ya tienen sus horas de vuelo. Sin embargo, los métodos de cifrado usados por estos equipos antiguos no están soportados en muchos casos.

Eliminar mensaje no matching key exchange method found en Netapp

javi@trabajo:~$ ssh root@EquipoNetappViejo
Unable to negotiate with 10.10.10.10 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

En este caso, podemos usar la opción -oKexAlgorithms=+diffie-hellman-group1-sha1 para forzar el método de intercambio de claves que ofrece el Netapp.

Eliminar mensaje no matching cipher found en Netapp

javi@trabajo:~$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 root@EquipoNetappViejo
Unable to negotiate with 10.10.10.10 port 22: no matching cipher found. Their offer: 3des-cbc

Pues vaya, ahora volvemos a tropezar. Para saltarnos este error, debemos añadir otra coletilla a nuestro comando ssh, -c3des-cbc

javi@trabajo:~$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c3des-cbc root@EquipoNetappViejo
root@EquipoNetappViejo's password:
EquipoNetappViejo>

Bingo, ya podemos trabajar con este almacenamiento.

Eliminar el mensaje Invalid key length al conectar a un Netapp

Otro problema que podemos encontrarnos al conectar a dispositivos Netapp por SSH es que nos salga un error como el siguiente:

javi@trabajo:~$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c3des-cbc  root@EquipoNetappViejo
ssh_dispatch_run_fatal: Connection to 10.10.10.12 port 22: Invalid key length

Este problema se debe a un cambio introducido en el cliente openssh a partir de la versión 7.6. Con este cambio, si la longitud de la clave del otro extremo es menor a 1024 bit, no se permite la conexión.

Para solucionar el problema de Invalid key length al conectar a estos Netapp, tenemos dos opciones, recompilarnos el cliente openssh por nuestra cuenta, o conectar desde un equipo con un cliente ssh más viejo.

Si no tienes un equipo con cliente SSH previo a 7.6, deberás recompilar. El cambio que hay que hacer en el código fuente es en el archivo sshkey.h donde te encontrarás la siguiente línea:

#define SSH_RSA_MINIMUM_MODULUS_SIZE  1024

Si cambias el valor de 1024 a algo inferior (en versiones anteriores a 7.6, este valor era 768) y recompilas, debería funcionar.

Eliminar el mensaje SSH dispatch failed from address

A veces cuando conectamos a un equipo por SSH nos puede empezar a salir algo así:

Thu May 16 05:37:01 GMT [EquipoNetappViejo:openssh.dispatch.protocol:warning]: SSH dispatch failed from address 172.16.0.1, type 80, packet 23.  
Thu May 16 05:37:11 GMT [EquipoNetappViejo:openssh.dispatch.protocol:warning]: SSH dispatch failed from address 172.16.0.1, type 80, packet 24.
Thu May 16 05:37:22 GMT [EquipoNetappViejo:openssh.dispatch.protocol:warning]: SSH dispatch failed from address 172.16.0.1, type 80, packet 25.
Thu May 16 05:37:32 GMT [EquipoNetappViejo:openssh.dispatch.protocol:warning]: SSH dispatch failed from address 172.16.0.1, type 80, packet 26.

Este mensaje puede resultar muy molesto cuando estamos trabajando en un equipo. Lo causa un keepalive que envía nuestro cliente SSH y es sencillo de eliminar. Podemos añadir -oServerAliveInterval=0 en nuestro cliente ssh a la hora de conectar y dejará de aparecer.

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c3des-cbc -oServerAliveInterval=0 root@EquipoNetappViejo

Comandos útiles en Ontap 7 Mode por SSH

Ya que me estoy haciendo una chuleta de Netapp, voy a incluir algun otro comando que puede sernos útil (Netapp Ontap 7-Mode)

Listar los discos en un almacenamiento Netapp

EquipoNetappViejo> storage show disk
DISK SHELF BAY SERIAL VENDOR MODEL REV
0a.00.0 0 0 PVJ7ERKB NETAPP X422_HCOBD NA02
0a.00.1 0 1 PVJ6SD6B NETAPP X422_HCOBD NA02
0a.00.2 0 2 PVJ6S7BB NETAPP X422_HCOBD NA02
0a.00.3 0 3 PVJ4XPPB NETAPP X422_HCOBD NA02
0a.00.4 0 4 PVJ257SB NETAPP X422_HCOBD NA02
0a.00.5 0 5 PVJ6UN2B NETAPP X422_HCOBD NA02
0a.00.6 0 6 KSJL3VHF NETAPP X422_HCOBE NA01
0a.00.7 0 7 PVJ7VJZB NETAPP X422_HCOBD NA02
0a.00.8 0 8 PVHT7AHB NETAPP X422_HCOBD NA02
0a.00.9 0 9 PVJ7ETKB NETAPP X422_HCOBD NA02
0a.00.10 0 10 PVJ5DM3B NETAPP X422_HCOBD NA02
0a.00.11 0 11 PVJ5G7ZB NETAPP X422_HCOBD NA02
0a.00.12 0 12 PVJ4XK1B NETAPP X422_HCOBD NA02
0a.00.13 0 13 PVJ5DMWB NETAPP X422_HCOBD NA02
0a.00.14 0 14 PVJ5G7KB NETAPP X422_HCOBD NA02
0a.00.15 0 15 PVJ7SU2B NETAPP X422_HCOBD NA02
0a.00.16 0 16 PVJ7ENPB NETAPP X422_HCOBD NA02
0a.00.17 0 17 PVJ6SD9B NETAPP X422_HCOBD NA02
0a.00.18 0 18 6XR4ETN20000B340DCDR NETAPP X422_SCOMP NA01
0a.00.19 0 19 PVHTDUDB NETAPP X422_HCOBD NA02
0a.00.20 0 20 PVJ7GZEB NETAPP X422_HCOBD NA02
0a.00.21 0 21 PVJ7HB7B NETAPP X422_HCOBD NA02
0a.00.22 0 22 PVJ6UJ7B NETAPP X422_HCOBD NA02
0a.00.23 0 23 PVHWYH9B NETAPP X422_HCOBD NA02

Mostrar discos rotos en Netapp

EquipoNetapp> vol status -f       
Broken disks
RAID Disk Device HA SHELF BAY CHAN Pool Type RPM Used (MB/blks) Phys (MB/blks)
--------- ------ ------------- ---- ---- ---- ----- -------------- --------------
failed 0a.00.1 0a 0 1 SA:B 0 SAS 10000 560000/1146880000 572325/1172123568

Mostrar estado de un disco específico

EquipoNetapp> disk show 0a.00.1
DISK OWNER POOL SERIAL NUMBER HOME DR HOME
------------ ------------- ----- ------------- ------------- -------------
0a.00.1 EquipoNetapp(1789999999) FAILED PVJ6SD6B EquipoNetapp(1789999999)

Obtener numero de serie de una controladora Netapp

EquipoNetapp> sysconfig -a
NetApp Release 8.2.2 7-Mode: Fri Aug 22 01:46:52 PDT 2014
System ID: 1789999999 (ControladoraNetapp1); partner ID: 1789999998 (ControladoraNetapp2)
System Serial Number: 650000021812 (ControladoraNetapp1)
System Rev: B1

Otro método para obtener el número de serie sería ir a leerlo directamente del fichero donde se almacena:

EquipoNetapp> rdfile /etc/serialnum
650000012345

Comprobar el estado de los interfaces de red en Netapp

EquipoNetapp> ifstat -a

-- interface e0c (1580 days, 17 hours, 46 minutes, 57 seconds) --
RECEIVE
Frames/second: 1116 | Bytes/second: 2120k | Errors/minute: 0
Discards/minute: 0 | Total frames: 454g | Total bytes: 2578t
Total errors: 0 | Total discards: 24268k | Multi/broadcast: 0
No buffers: 0 | Non-primary u/c: 0 | L2 terminate: 0
Tag drop: 0 | Vlan tag drop: 0 | Vlan untag drop: 0
Vlan forwards: 0 | Vlan broadcasts: 0 | Vlan unicasts: 0
CRC errors: 0 | Alignment errors: 0 | Runt frames: 0
Long frames: 0 | Frame length err: 0 | IP checksum erro: 0
Frame Dropped: 24268k | Pause frame: 645m
TRANSMIT
Frames/second: 795 | Bytes/second: 290k | Errors/minute: 0
Discards/minute: 0 | Total frames: 379g | Total bytes: 1300t
Total errors: 0 | Total discards: 0 | Multi/broadcast: 4608k
Queue overflows: 0 | No buffers: 0 | Transmit error: 0
Frame Dropped: 0 | Pause frame: 1735k
LINK_INFO
Current state: up | Up to downs: 2 | Speed: 10000m
Duplex: full | Flowcontrol: full

Si no queremos tanto detalle de estadísticas, es mejor usar ifconfig -a