F5 LTM: Migración a versión 11.6.0 HF3

f5.2.5

Aviso: En el momento de hacer este tutorial, la versión 11.6.0 resultó absolutamente inestable y decidimos volver a la versión 11.5, pese a la falta de monitorización.

Hemos tenido un problema con la versión 11.5, y la monitorización mediante nagios. Básicamente, al recoger los identificadores de ltm, han dejado de responder mediante snmp:

snmpwalk  -v 2c -c $community $host .1.3.6.1.4.1.3375.2.2.5.5

Por ello, nos lanzamos a la migración a la versión 11.6

Pasos en la migración

Descargamos los archivos de la web de F5

Esta vez, para subir los archivos, lo haremos directamente por scp, a la carpeta /shared/images.

[root@server:Active:In Sync] config # ls /shared/images/
BIGIP-11.5.1.0.0.110.iso  Hotfix-BIGIP-11.5.1.7.0.167-HF7.iso  Hotfix-BIGIP-11.6.0.3.36.412-HF3-ENG.iso
BIGIP-11.6.0.0.0.401.iso  Hotfix-BIGIP-11.6.0.3.0.412-HF3.iso

Verificamos que en la interfaz web aparezcan:

imagen de disco

hotfix
hotfix

Instalamos la imagen en alguna partición en ambos nodos y activamos

f5.2.4

Dejamos el pasivo con los virtual servers, y rompemos el grupo de disponibilidad. Para ello, solemos utilizar la funcionalidad “Reset Device group”.

A partir de este momento, ambos elementos están aislados, y cada uno, de forma manual debe tener sus Virtual Server sin que haya conflicto de IPs.

f5.2.5

A partir de aquí, cuando tengamos probados los virtual servers en la nueva versión, ya se puede re-crear el grupo de sincronización y

 Resultado de la migración

Al hacer las pruebas de estrés de los servidores virtuales, detectamos que la interfaz es absolutamente inestable.

Parece tener problemas de pérdida de memoria, y dan errores de buffer las peticiones a partir de las 300 peticiones en 10 threads simultáneos.

Por ello, volvemos a la versión 11.5 a la espera de nuevos hotfix en versión 11.6

F5 ltm: Crear un grupo de disponibilidad

f5.dg.4

Para crear un grupo de disponibilidad, partimos de una situación en la que tenemos dos nodos standalone:

f5.2.5

Primero, en uno de los nodos, configuramos la lista de pares con los otros nodos:

f5.dg.1

Cuando ya está añadido con IP, podemos ir al grupo de failover, y añadir tantos nodos, como se hayan presentado:

f5.dg.2

Por último, pasamos la configuración para que estén sincronizados:

f5.dg.3

Activación de licencias en F5

Activación de licencias en modo consola

En este punto, es necesario introducir la licencia. Se recomienda seguir esta guía : http://support.f5.com/kb/en-us/solutions/public/2000/500/sol2595.html?sr=27505445

get_dossier -b KEY_HEXADECIMAL > f1.dossier.txt

Una vez activadas las licencias en la web de F5, se colocan en el sistema de archivos y se carga la licencia:

mv f1.txt /config/bigip.license
reloadlic

F5 Virtual Edition 11.4

Para hacer las pruebas de nuestro entorno de producción, vamos a optar por un despliegue temporal de F5 virtual.

En primer lugar, descargamos la imagen, con el último hotfix que vamos a utilizar.

El usuario de la edición virtual es root:default.

En la consola, sacamos la configuración inicial mediante el comando config.

e1

Con red, ya es posible pasar a configurar vía red el equipo, con el usuario admin:admin.

Las pruebas requieren licencia de trial que se pueden conseguir a través de la web de F5.

 

 

 

 

 

F5 Diferencias TCL entre versión 11.2.1 y 11.3

Comparador !

En 11.2.1, el operador !, sirve para

if  { ([HTTP::method] eq "POST") and
! (  [HTTP::header SOAPAction]  eq ""  ) }

 

En 11.3, lo tenemos que sustituir por:

if { ([HTTP::method] eq "POST") and
( [HTTP::header SOAPAction] ne "" ) }

Toda la información de los operadores en TCL (irule) está en la página de F5.

String map para quitar el identificador de vlan

Se puede quitar varios identificadores de vlan a la vez, con un único map:

# Remove vlan identifier
set my_client_ip [string map { "%123" "" "%512" "" } [IP::remote_addr]]

Depuración Errores TCL

grep -i  "tcl error"  ltm | cut -d' ' -f12-26 |uniq

Actualización F5 Big IP 11.3.0 HF 8

La descarga de imágenes se hace desde la web de F5:

https://downloads.f5.com/esd/product.jsp?sw=BIG-IP&pro=big-ip_v11.x&ver=11.3.0

Hotfix-BIGIP-11.3.0-3144.0-HF8 11.3.0 HotFix 10/14/2013 Hotfix-BIGIP-11.3.0-3144.0-HF8
11.3.0 11.3.0 Release 12/17/12 11,3,0

Dado que en F5 no se distinguen por su madurez al sacar versiones, hemos optado por pasar de una 11.2.1 a una 11.3.0 con HF8. Existen versiones más recientes, pero de hace sólo 15 días.

Se suben las imágenes al equipo a actualizar, en una partición no utilizada:

 

Del mismo modo, se sube el hotfix

Si queremos actualizar por la interfaz web, selecionamos install y la partición que vamos a utilizar. Debe ser una que no esté ya en uso

Se instala también el HF:

Si queremos actualizar por tmsh, una vez subidas las imágenes, podemos aplicarlas sobre un volumen existente:

Por tmsh, se instala en un volumen existente

admin@f5pre(Standby)(/Common)(tmos)# install sys software image BIGIP-11.3.0.2806.0.iso volume HD1.2

 O, sobre un volumen nuevo:

admin@f5pre(Standby)(/Common)(tmos)# install sys software image BIGIP-11.3.0.2806.0.iso volume HD1.4 create-volume

En caso de tener varios nodos, es necesario que estén en la misma versión, para mantener el grupo de device.

 

F5. Monitorización del estado de un nodo de un pool en F5

Hemos llegado a un punto en que la monitorización del propio nodo está bien, pero a nivel de F5 puede estar deshabilitado. Hay dos razones para ello:

  • Un usuario lo ha configurado manualmente (Force Offline)
  • El monitor lo está marcando abajo.

Para ello, hemos desarrollado un script de nagios capaz de monitorizar en todo momento el estado del nodo en un pool concreto del F5:

check_bigip_node_status.sh

La verficación se basa en snmp, por lo que es necesario tener activado snmp en los F5, tener configurado una community, y tener visibilidad entre el motor de nagios y los F5 por el puerto 161 (snmp)-

Ejemplos de uso:

./check_bigip_node_status.sh -h bigip-p community -P Pool -n node

Para funcionar, requiere que tengamos cargados las MIBS de f5 en el directorio de snmp:

/usr/share/snmp/mibs/F5-BIGIP-APM-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-LOCAL-MIB.txt
/usr/share/snmp/mibs/F5-EM-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-COMMON-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-SYSTEM-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-GLOBAL-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-WAM-MIB.txt

 

F5. Monitorización de tmm mem con snmp

Para poder extraer el valor de la memoria que usa un f5 bigip tmm en un momento dado desde nagios, se ha desarrollado a medida un script que usa los valores de la MIB propia de f5.

Para hacer búsquedas de valores en la MIB de f5, os recomiendo mibbrowser  y cargar las MIBS propias de los f5.

Los OID que yo he utilizado para este script son:

  • .1.3.6.1.4.1.3375.2.1.1.2.21.37.0  sysGlobalTmmStatMemoryUsedKb.0
  • .1.3.6.1.4.1.3375.2.1.1.2.21.38.0 sysGlobalTmmStatMemoryTotalKb.0

Finalmente, el script / plugin / check para nagios es:

check_bigip_snmp_mem.sh

Para funcionar, requiere que tengamos cargados las MIBS de f5 en el directorio de snmp:

/usr/share/snmp/mibs/F5-BIGIP-APM-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-LOCAL-MIB.txt
/usr/share/snmp/mibs/F5-EM-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-COMMON-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-SYSTEM-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-GLOBAL-MIB.txt
/usr/share/snmp/mibs/F5-BIGIP-WAM-MIB.txt

F5 Icontrol Powershell. Función para fijar una partición activa en los cmd-lets

A los scripts de devcentral, en el caso de estar usando particiones, será necesario en el inicio, la configuración de la partición activa como una carpeta.

#
# Set active partition
#
function  Set-Active-Partition (){

(Get-F5.iControl).SystemSession.set_active_folder($partition);
$folder = (Get-F5.iControl).SystemSession.get_active_folder();

}

Al igual que para tmsh, las particiones se ven como carpetas.

F5. Uso de api de Icontrol en poweshell

Es necesario descargar de la página de devcentral el componente iControlSnapInSetup.msi.

Tras el instalador, se abre power shell y se cambia la política de ejecución de Powershell como mínimo a RemoteSigned.

PS C:\Program Files> Set-ExecutionPolicy RemoteSigned

Se registra el componente en la consola de powershell, para poder usar sus llamadas. Para windows de 32 bits:

PS C:\Program Files> cd “C:\Program Files (x86)\F5 Networks\iControlSnapIn

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> .\setupSnapIn.ps1

En windows de 64 bits, hace falta copiar el archivo de 64 bits a mano. Por alguna razón el instalador por defecto no funciona. (Más información)

Si todo ha ido correcto, aparecerá en el listado de Componentes de powershell:

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Get-PSSnapin

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Get-PSSnapin -registered

Para borrar un snapin:

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Remove-PSSnapin -name iControlSnapIn