LibreVPN:Eventos

De HackLab
Saltar a: navegación, buscar


Tincd soporta tres tipos de eventos: cuando inicia o apaga, cuando un nodo se conecta o se desconecta y cuando una subred es alcanzable o no. Esta lógica se encuentra en los scripts tinc-up, tinc-down, host-up, host-down, subnet-up y subnet-down.

En la rama develop existe la herramienta lvpn install-script que se encarga de configurar los scripts que se van a correr para cada uno de los eventos.

Para preparar un nodo preexistente, hay que moverse a la rama develop y actualizar el repositorio y los archivos de configuración:

 git fetch origin
 git checkout develop
 git pull origin develop
 
 lvpn update-skel tu-nodo

Luego, se puede obtener la ayuda y el listado de eventos y scripts disponibles con lvpn install-script -h :)

Instalar un script

 lvpn install-script tu-nodo evento script

Ver un ejemplo en LibreVPN:IPv6#Agregar_la_ruta_por_defecto.

Crear un script

El esqueleto de un script es el siguiente:

 #!/bin/sh
 
 case $1 in
   up)   ;;
   down) ;;
 esac

Cada script tiene que aceptar los comandos up y down (aunque puede ignorarlos). Entre medio puede ir cualquier acción. Ver la ayuda para más detalles sobre los eventos.

Variables de entorno

lvpn le pasa a los scripts las siguientes variables de entorno: NETNAME NAME DEVICE INTERFACE NODE REMOTEADDRESS REMOTEPORT SUBNET WEIGHT.

El significado de cada una está detallado en man tinc.conf.

Notas

  • Hay que tratar de escribir los scripts pensando en que tienen que funcionar en dispositivos embebidos, por eso se recomienda /bin/sh. Aunque se puede usar cualquier lenguaje de programación :)


TODO

  • Tinc también soporta correr scripts para hosts específicos, si es lo guarda en hosts/nodo-up y hosts/nodo-down. lvpn install-script todavía no soporta esto.