Mostrando las entradas con la etiqueta ucarp. Mostrar todas las entradas
Mostrando las entradas con la etiqueta ucarp. Mostrar todas las entradas

domingo, septiembre 13, 2015

VRRP en Vyos/UBNT EdgeRouter

VRRP (Virtual Router Redundancy Protocol) es un protocolo de redundancia a nivel IP definido en el RFC3768. Fue diseña para permitir alta disponibilidad en la puerta de enlace por defecto en una subred, aunque se puede utilizar tambien para permitir alta disponibilidad de servicios (servidores web, Telefonía, etc). 
En este ejemplo revisaremos la funcionalidad original, alta disponibilidad de la puerta de enlace. Se presupone que ambos Vyos ya tienen acceso a internet, tienen configuradas interfaces, rutas, regla de NAT y de filtrado. El diagrama es el siguiente:


Los datos relevantes son:

Subred: 10.0.0./24
IP virtual: 10.0.0.10
IP router1: 10.0.0.11
IP router2: 10.0.0.12

El router1 sera el principal, tendrá mayor prioridad, y ademas tendra configurado el comando preempt que le permitira recuperar la IP virtual luego de una caida o reinicio.

Router1

set interfaces ethernet eth0 vrrp vrrp‐group 10
set interfaces ethernet eth0 vrrp vrrp‐group 10 virtual‐address 10.0.0.10/24
set interfaces ethernet eth0 vrrp vrrp‐group 10 preempt true
set interfaces ethernet eth0 vrrp vrrp‐group 10 priority 150
commit
save
#
show interfaces ethernet eth0 vrrp 
vrrp‐group 10 {
  preempt true
  priority 150
  virtual‐address 10.0.0.10/24
}
 

Router2


set interfaces ethernet eth0 vrrp vrrp‐group 10
set interfaces ethernet eth0 vrrp vrrp‐group 10 virtual‐address 10.0.0.10/24
set interfaces ethernet eth0 vrrp vrrp‐group 10 priority 100
commit
save
#
show interfaces ethernet eth0 vrrp 
vrrp‐group 10 {
  priority 100
  virtual‐address 10.0.0.10/24
}


Con esta configuración ya tendremos corriendo VRRP entre nuestro routers. Router1 en modo normal recibirá el trafico desde la subred, ante una caida de este Router2 obtendrá la IP virtual y permitira que el flujo de trafico a internet no se interrumpa.

Las opciones del comando VRRP en Vyos son las siguientes:

interfaces ethernet eth0 vrrp 
   vrrp-group <1-255> #VRRP group number
      advertise-interval <1-255> #Advertise interval (default 1)
      authentication
      description  #Description
      disable  #VRRP group disabled
      hello-source-address  #Source address for vrrp hello packets (optional)
      preempt  #Preempt mode
      preempt-delay <0-1000> #Preempt Delay in seconds
      priority <1-255> #Priority
      rfc3768-compatibility
      run-transition-scripts  #Scripts for VRRP state-transitions
      sync-group  #Add this vrrp group to a sync group
      virtual-address  #Virtual IP address (up to 20 per group)


lunes, noviembre 23, 2009

Alta disponibilidad y sincronizacion de configuraciones



Objetivos

En este documento se mostrara la forma de implementar un cluster Activo/Pasivo con replicacion de configuración, todo esto de manera simple, sin necesidad de particiones o características especiales del núcleo de Linux.

Escenario

El escenario se muestra en la figura siguiente:








Es necesario mantener una IP virtual activa, la 192.168.100.20, por la cual se prestaran los servicios, ademas es necesario mantener sincronizado ciertos archivos de configuración, esto se realizara usando ssh y unison.


IP Virtual

Para la creación y mantencion de la IP virtual, es necesario tener instalado el paquete ucarp:

sudo apt-get install ucarp

ucarp es una aplicación de espacio de usuario que controla una Ip virtual entre distintos nodos, es una variante de vrrp pero totalmente libre de patentes.

Configurar ucarp en el Servidor Primario

El primer paso es crear los scripts de inicio y parada de ucarp, o sea cuando un nodo ucarp pasa a estado máster se ejecuta el script de inicio y cuando el nodo pasa a estado backup se ejecuta el script de parada. Desde el script de inicio es necesario activar la IP virtual y ademas se pueden activar servicios necesarios para servir desde la IP virtual. Desde el script de parada es necesario desactivar la IP virtual y desactivar los servicios dados por la IP virtual.
El segundo paso es activar el ucarp desde la consola, esto también se puede hacer desde el inicio de Linux.

Paso 1

En el Servidor Primario y Secundario
sudo nano /etc/vip-up.sh
#!/bin/bash
/sbin/ifconfig eth0:1 192.168.100.20/24 up
/etc/init.d/asterisk start

sudo nano /etc/vip-down.sh
#!/bin/bash
/sbin/ifconfig eth0:1 down
/etc/init.d/asterisk stop

Paso 2

En el Servidor Secundario

ucarp -i eth0 -s 192.168.100.4 -v 10 -p secret -a 192.168.100.20 --upscript=/etc/vip-up.sh –downscript=/etc/vip-down.sh
[INFO] Local advertised ethernet address is [54:52:00:14:a6:80]
[WARNING] Switching to state: BACKUP
SIOCSIFFLAGS: Cannot assign requested address
[WARNING] Spawning [/etc/vip-down.sh eth0]

En el Servidor Primario

ucarp -i eth0 -s 192.168.100.3 -v 10 -p secret -a 192.168.100.20 --upscript=/etc/vip-up.sh --downscript=/etc/vip-down.sh -P
[INFO] Local advertised ethernet address is [54:52:00:14:a6:80]
[WARNING] Switching to state: MASTER
[WARNING] Spawning [/etc/vip-up.sh eth0]


Con esto el servidor Primario quedara con la IP Virtual activa y el Secundario queda como Backup.

Paso 3

Para que ucarp arranque al inicio del sistema operativo es necesario agregar el comando de ucarp al arranque:

sudo nano /etc/rc.local
ucarp -i eth0 -s 192.168.100.3 -v 10 -p secret -a 192.168.100.20 --upscript=/etc/vip-up.sh --downscript=/etc/vip-down.sh -P