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 ltm 1600 Irules: Cerrando conexiones con http 1.0 y keepalived

Restringimos el tráfico de nuestros servidores virtuales de los F5, a través de una irule de throttle.

Básicamente, guardamos una subtabla con el número de peticiones en una ventana (1 hora), y cuando sobre pasa el límite, fijamos el estado de la IP a bloqueado.

La irule, se basa en el evento: when HTTP_REQUEST.

Hemos detectado, que se nos pasaban algunas peticiones.

Los que abren conexiones http 1.0 con el flag de keepalived. Estas conexiones, sólo lanzan el evento de HTTP_REQUEST en el primer Request (get o post).

  • El primer GET por la conexión, lanza el evento, y se devuelve el código de error.
  • Los siguientes, ya no aplica la irule, y se sirven.

Se añade a la lógica del programa el cierre TCP, para evitar que la conexión la mantengan abierta:

HTTP::respond 403 content “RequestLimit: THROTTLED”
TCP::close

Si usamos HTTP::Close, el cierre de http es demasiado brusco, y los navegadores no  devuelven el error que enviamos desde los F5. Lo que se ve es “Connection reset by server”

 

 

 

 

 

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.