![]()
Cuando se producen bloqueos hacia servicios protegidos por Cloudflare, muchos usuarios optan por activar una VPN global. El inconveniente es claro: todo el tráfico pasa por el túnel, afectando rendimiento y latencia.
La solución que vamos a implementar aquí consiste en aplicar policy routing, enviando exclusivamente el tráfico cuyo destino sean redes de Cloudflare a través de una VPN WireGuard, manteniendo el resto del tráfico por la salida WAN habitual.
El procedimiento está probado sobre:
- pfSense CE 2.8.1
- pfSense Plus
- OPNsense
- RouterOS
Nivel técnico requerido
Esta configuración no es básica. Es necesario conocer:
- Creación de interfaces virtuales
- Gestión avanzada de gateways
- Reglas de firewall con gateway específico
- Conceptos de WireGuard
- Alias dinámicos
Se recomienda probar primero en laboratorio.
1. Requisitos previos
Router compatible
No es viable en routers domésticos convencionales. Se requiere:
- Cliente WireGuard u OpenVPN
- Soporte de interfaz virtual del túnel
- Creación de alias
- Policy routing por gateway
Hardware mínimo recomendado
| Elemento | Mínimo | Recomendado |
|---|---|---|
| CPU | x86-64 1 GHz | Intel i5 o superior |
| RAM | 2 GB | 4–8 GB |
| Disco | 32 GB | 256 GB |
| Interfaces | 2 | 3 o más |
2. Servicio VPN
Necesitamos un proveedor que ofrezca configuración WireGuard descargable.
Opciones habituales:
| Alternativa | Protocolo | Coste | Uso recomendado |
|---|---|---|---|
| Cloudflare WARP | WireGuard | Gratis | Pruebas |
3. Instalación de WireGuard en pfSense
Acceder a:
System → Package Manager → Available Packages
Instalar paquete WireGuard.
4. Configuración del túnel WireGuard
Ir a:
VPN → WireGuard → Add Tunnel
Ejemplo de archivo de configuración
Este sería un ejemplo típico proporcionado por el proveedor:
[Interface]
PrivateKey = xxxxx
Address = 10.10.0.2/32
DNS = 1.1.1.1[Peer]
PublicKey = yyyyy
PresharedKey = zzzzz
AllowedIPs = 0.0.0.0/0
Endpoint = vpn.ejemplo.com:51820
PersistentKeepalive = 25
Parámetros del túnel
En la sección Add Tunnel:
- Enable → activado
- Description → WG_TUNEL
- Listen Port → opcional
- Interface Keys → pegar PrivateKey
Guardar.
Configuración del Peer
Seleccionar Add Peer y definir:
- Enable → activado
- Tunnel → WG_TUNEL
- Dynamic Endpoint → desactivado
- Endpoint → vpn.ejemplo.com
- Port → 51820
- Keepalive → 25
- Public Key → yyyyy
- Preshared Key → zzzzz (si existe)
- Allowed IPs → 0.0.0.0 / 0
Guardar.
Activar servicio
Ir a:
VPN → WireGuard → Settings
Marcar Enable.
Verificar estado en:
Status → WireGuard
Debe existir intercambio de handshake.
5. Asignación de interfaz
Ruta:
Interfaces → Assignments
En Available Network Ports seleccionar:
tun_wg0
Add → Save → Apply.
Editar interfaz creada:
- Enable
- Description → WG_TUNEL
- IPv4 Configuration Type → Static IPv4
- IPv6 → None
- IPv4 Address → 10.10.0.2 /32
Guardar y aplicar.
6. Configuración del Gateway
Ir a:
System → Routing → Gateways → Add
Definir:
- Interface → WG_TUNEL
- Address Family → IPv4
- Name → GW_WIREGUARD
- Gateway → 10.10.0.2
- Monitor IP → 10.10.0.1
- Gateway Monitoring → desactivado
- Gateway Action → desactivado
En Advanced activar:
✔ Use non-local gateway through interface specific route
Guardar y aplicar cambios.
7. Creación de Alias
Ir a:
Firewall → Aliases
Alias de origen
Nombre: ORIGEN_VPN
Tipo: Host(s)
Añadir IPs locales que queremos que puedan tunelizar tráfico hacia Cloudflare.
Guardar.
Alias de destino (Cloudflare)
Obtener listado oficial de redes IPv4 desde:
Cloudflare
URL:
https://www.cloudflare.com/ips-v4/
Crear alias:
- Nombre → REDES_CLOUDFLARE
- Tipo → Network(s)
Importar todas las subredes manualmente
o usar tipo URL con actualización cada 1 día.
Guardar y Apply Changes.
8. Creación de regla de firewall
Acceder a:
Firewall → Rules → LAN
Crear nueva regla (Add, al final inicialmente):
- Action → Pass
- Interface → LAN
- Address Family → IPv4
- Protocol → any
- Source → ORIGEN_VPN
- Destination → REDES_CLOUDFLARE
En Advanced Options:
- Gateway → GW_WIREGUARD
Guardar.
⚠ Reordenar la regla y colocarla en segunda posición.
Si permanece al final, quedará anulada por reglas superiores.
9. Comprobación del funcionamiento
Ejecutar desde un equipo cliente:
tracert 104.16.0.1
La ruta debe salir por el túnel VPN.
Probar con otro destino fuera de Cloudflare: debe salir por WAN.
Problemas frecuentes
| Síntoma | Posible causa |
|---|---|
| No pasa tráfico por VPN | Regla mal posicionada |
| Gateway aparece Down | Monitor IP incorrecta |
| Sin handshake | Endpoint o claves erróneas |
| Todo el tráfico usa VPN | AllowedIPs mal definido |
Resultado final
Tras completar la configuración:
- Solo tráfico con destino a Cloudflare se enruta por VPN
- El resto mantiene la salida normal
- Se minimiza impacto en latencia
- No se altera geolocalización general
