Como elegir, usar y configurar una VPN en Rocks Cluster Distribution (Comparativa)

VPN en Rocks Cluster Distribution: ¿por qué y para quién?

Rocks Cluster Distribution está diseñada para construir y gestionar clústeres HPC, partiendo de CentOS/RHEL 7 y adaptando sus propios “rolls” (paquetes especializados) para todo, desde el head node hasta los compute nodes. Su gestor de paquetes es yum (o dnf en versiones más recientes), y normalmente no cuenta con entorno de escritorio en los nodos de cálculo en el head node puede haber ligeros entornos como Xfce o acceso Web (Open OnDemand). Los usuarios son administradores de sistemas e investigadores que requieren robustez, bajo overhead y configuraciones repetibles vía scripts y automatización.

En un entorno así, una VPN ha de cumplir requisitos de rendimiento (latencia mínima), facilidad de despliegue en múltiples nodos, integración con systemd y repositorios RPM, y ser lo suficientemente ligera para no interferir con la interconexión MPI o InfiniBand.

Las VPNs más aptas para tu clúster Rocks

  • OpenVPN: muy estable, disponible en EPEL, bien documentada, fácil de integrar con systemd y scripts de arranque en head node y nodos de login.
  • WireGuard: inclusión en kernel en backports (ELRepo), ultra ligera, baja latencia, gestión de peers mediante ficheros de configuración sencillos.
  • Tinc: VPN en modo malla (mesh), ideal para topologías distribuidas, auto-descubrimiento de nodos y cifrado punto a punto, útil en clústeres con nodos repartidos en diferentes centros.

Comparativa de características

VPN Protocolo/Capa Integración RPM Rendimiento Enlace de documentación
OpenVPN TLS/SSL (UDP/TCP) Paquete openvpn en EPEL Muy bueno (aunque ligero overhead por TLS) Guía oficial
WireGuard Kernel module (UDP) kmod-wireguard y wireguard-tools en ELRepo Excelente (código mínimo y optimizado) Quickstart
Tinc Mesh VPN (UDP/TCP) Paquete tinc en EPEL/CentOS Bueno en mallas complejas Documentación

Guías de instalación y configuración

1. OpenVPN

Sobre el head node y cualquier nodo de acceso (login node):

# Habilitar repositorio EPEL
yum install -y epel-release

# Instalar OpenVPN y easy-rsa
yum install -y openvpn easy-rsa

# Copiar plantillas y generar PKI
cp -r /usr/share/easy-rsa/ /etc/openvpn/
cd /etc/openvpn/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server

# Generar parámetros Diffie-Hellman
./easyrsa gen-dh

# Crear fichero de configuración /etc/openvpn/server.conf
cat > /etc/openvpn/server.conf << EOF
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
user nobody
group nogroup
status /var/log/openvpn-status.log
verb 3
EOF

# Iniciar y habilitar servicio
systemctl enable openvpn@server
systemctl start openvpn@server

En los nodos de usuario, generar creds, copiar .ovpn y arrancar con openvpn --config cliente.ovpn, o bien configurar otro systemd unit.

2. WireGuard

Se recomienda usar ELRepo para kernel-backports:

# Instalar ELRepo
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

# Instalar módulo y herramientas
yum install -y kmod-wireguard wireguard-tools

# Cargar módulo
modprobe wireguard

# Generar claves en el head node
mkdir -p /etc/wireguard  cd /etc/wireguard
wg genkey  tee server_priv.key  wg pubkey > server_pub.key

# Configuración básica /etc/wireguard/wg0.conf
cat > /etc/wireguard/wg0.conf << EOF
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = (cat server_priv.key)

# Peer ejemplo (nodo de login)
[Peer]
PublicKey = 
AllowedIPs = 10.0.0.2/32
EOF

# Ajustar permisos
chmod 600 /etc/wireguard/

# Iniciar interfaz
wg-quick up wg0

# Habilitar en arranque
systemctl enable wg-quick@wg0

En cada nodo cliente, generar su par de claves, copiar la sección [Peer] dentro de la conf del servidor y lanzar wg-quick con su propia IP (ej. 10.0.0.2/32).

3. Tinc

Ideal para mallas de nodos sin un único punto de fallo:

# Instalar tinc
yum install -y epel-release
yum install -y tinc

# Directorio de configuración
mkdir -p /etc/tinc/cluster/{hosts,links-up}

# Generar clave para este nodo
tincd -n cluster -K4096

# /etc/tinc/cluster/tinc.conf
cat > /etc/tinc/cluster/tinc.conf << EOF
Name = nodo01
AddressFamily = ipv4
Interface = tinc-cluster
EOF

# /etc/tinc/cluster/hosts/nodo01
cat > /etc/tinc/cluster/hosts/nodo01 << EOF
Address = 192.168.1.1   # IP real de nodo01
Subnet = 10.10.0.1/32
-----BEGIN RSA PUBLIC KEY-----
(cat /etc/tinc/cluster/rsa_key.pub)
-----END RSA PUBLIC KEY-----
EOF

# Archivo links-up (para arrancar túnel)
cat > /etc/tinc/cluster/links-up << EOF
ifconfig INTERFACE 10.10.0.1 netmask 255.255.255.0
EOF
chmod  x /etc/tinc/cluster/links-up

# Iniciar servicio
systemctl enable tinc@cluster
systemctl start tinc@cluster

Los demás nodos “nodo02”, “nodo03” siguen el mismo patrón, intercambiando los ficheros de hosts y claves.

Conclusión

Cada VPN aporta sus ventajas: OpenVPN es la opción más universal y sencilla de desplegar desde EPEL WireGuard ofrece un rendimiento sobresaliente con poco overhead, ideal para tráfico interno MPI y Tinc brilla en mallas complejas con múltiples nodos sin punto único de fallo. Según tu topología de clúster y necesidades de latencia, elige la que mejor encaje y automatiza el despliegue con Ansible o tu herramienta favorita de roll de Rocks.

Download TXT




Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *