Skip to main content

Configuración de Keepalived

Una vez instalado Keepalived en todas y cada una de las máquinas que conforman el entorno de trabajo de balanceo de carga, el fichero a configurar con un editor de textos (Vim, Nano, etcétera) es el siguiente:

/etc/keepalived/keepalived.conf

Configuración de instancias

  • vrrp_instance contendrá el nombre de la instancia de balanceo de carga, el cual debe ser el mismo en todos los nodos.
  • En interface se asignará el nombre de la interfaz de red (NIC) utilizada para el balanceo de carga, por ejemplo eth1.
  • El token state será diferente en cada nodo, por ejemplo, el principal pudiera ser llamado state primary y los demás state secondary1, state secondary2, y así sucesivamente (el orden de jerarquía debería ser cónsono con el siguiente token, priority).
  • priority un valor numérico que indica la prioridad, siendo el principal el valor más alto y se irá disminuyendo en cada uno de los nodos acorde con el token anterior (state).
  • unicast_src_ip en cada nodo especifica la dirección IP propia que atenderá en el balanceo de carga.
  • unicast_peer las direcciones IP del resto de los nodos.

Configuración de dirección IP flotante

En la instancia definida, en una sección aparte denominada virtual_ipaddress se colocará las direcciones IP posibles a ser servidas, por ejemplo:

virtual_ipaddress { <vip>/24 }

Configuración de seguridad

En la instancia definida, en una sección aparte denominada authentication se colocará un método de autenticación por contraseña (auth_type PASS) y la contraseña en sí misma (longitud de 8 caracteres exactos), por ejemplo:

authentication {
  auth_type PASS
  auth_pass <8_digit_pass>
}

Ejemplo

En esquema denominado VI_1 con un nodo principal denominado MASTER y uno secundario llamado BACKUP con direcciones IP fijas <ha1_ip> y <ha2_ip>, y una dirección IP flotante (<vip>) a balancear su carga:

En HA1:

vrrp_instance VI_1 {
  state MASTER
  interface <if_name_1>
  virtual_router_id 55
  priority 150
  advert_int 1
  unicast_src_ip <ha1_ip>
  unicast_peer {
    <ha2_ip>
  }

  authentication {
    auth_type PASS
    auth_pass <8_digit_pass>
  }

  virtual_ipaddress {
    <vip>/24
  }
}

En HA2:

vrrp_instance VI_1 {
  state BACKUP
  interface <if_name_2>
  virtual_router_id 55
  priority 100
  advert_int 1
  unicast_src_ip <ha2_ip>
  unicast_peer {
    <ha1_ip>
  }

  authentication {
    auth_type PASS
    auth_pass <8_digit_pass>
  }

  virtual_ipaddress {
    <vip>/24
  }
}