LibreVPN:Eventos
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
yhosts/nodo-down
.lvpn install-script
todavía no soporta esto.