ZeroTier: instalación y configuración básica¶
ZeroTier proporciona redes virtuales L2/L3 fáciles de desplegar entre dispositivos.
Arquitectura de ZeroTier¶
graph TB
subgraph "Controller"
ZT[ZeroTier Controller<br/>my.zerotier.com]
ZT --> NET[Redes Virtuales<br/>Network IDs]
ZT --> RULES[Flow Rules<br/>Políticas de tráfico]
ZT --> DNS[DNS Management]
end
subgraph "Nodos/Peers"
P1[Planet<br/>Root Server]
M1[Moon<br/>Controller Distribuido]
L1[Leaf 1<br/>Cliente Final]
L2[Leaf 2<br/>Servidor]
GW[Gateway<br/>con rutas]
end
ZT -->|Configuración| P1
ZT -->|Configuración| M1
ZT -->|Configuración| L1
ZT -->|Configuración| L2
ZT -->|Configuración| GW
P1 -->|Protocolo ZeroTier| M1
P1 -->|Protocolo ZeroTier| L1
P1 -->|Protocolo ZeroTier| L2
P1 -->|Protocolo ZeroTier| GW
M1 -->|Protocolo ZeroTier| L1
M1 -->|Protocolo ZeroTier| L2
M1 -->|Protocolo ZeroTier| GW
L1 -->|Protocolo ZeroTier| L2
L1 -->|Protocolo ZeroTier| GW
L2 -->|Protocolo ZeroTier| GW
GW -->|Bridging L2/L3| LAN[(Redes Físicas)]
style ZT fill:#e1f5fe
style P1 fill:#fff3e0
style M1 fill:#ffebee
style L1 fill:#f3e5f5
style L2 fill:#f3e5f5
style GW fill:#e8f5e8
Jerarquía de nodos¶
flowchart TD
A[Planets<br/>Servidores raíz<br/>Estables y públicos] --> B[Moons<br/>Controladores<br/>distribuidos<br/>opcionales]
B --> C[Leafs<br/>Clientes finales<br/>Dispositivos usuarios]
D[Controller<br/>my.zerotier.com<br/>o self-hosted] --> E[Redes Virtuales<br/>Network IDs]
E --> F[Miembros<br/>autorizados]
style A fill:#fff3e0
style B fill:#ffebee
style C fill:#f3e5f5
style D fill:#e1f5fe
Requisitos¶
- Debian/Ubuntu o equivalente con
curlysudo - Acceso a
https://my.zerotier.como controlador propio
Instalación¶
curl -s https://install.zerotier.com | sudo bash
Verifica servicio:
sudo zerotier-cli -v
sudo systemctl status zerotier-one
Unirse a una red¶
- Crea una red en
my.zerotier.com(obtén el Network ID) - En el host, únete a la red con el ID:
sudo zerotier-cli join <NETWORK_ID>
-
Autoriza el miembro desde el panel (Members → Authorize)
-
Comprueba interfaz y conectividad:
ip -br a | grep zt
ping <peer_ip>
Arranque y logs¶
sudo systemctl enable --now zerotier-one
journalctl -u zerotier-one -f
Hardening y configuración útil¶
- Rutas gestionadas: define subredes en la red para que ZeroTier las instale automáticamente en los miembros autorizados.
- Reglas de flujo (Flow Rules) básicas para limitar tráfico, ejemplo mínimo (solo ICMP y TCP 22 entre miembros):
accept icmp;
accept tcp dport 22;
drop;
- MTU: si ves fragmentación, prueba ajustar MTU de la interfaz
zt*(ej. 2800-9001 según entorno).
Override de systemd¶
sudo systemctl edit zerotier-one
[Unit]
After=network-online.target
Wants=network-online.target
Aplica:
sudo systemctl daemon-reload
sudo systemctl restart zerotier-one
Notas¶
- Configura rutas administradas y asignación de IPs desde el panel
- Evita solapamiento de subredes con la red local
Ejemplos con contenedores (Docker)¶
Conectar tus contenedores a la VPN¶
- Opción 1 (host networking): ZeroTier con
--network hostcrea interfazzt*en el host. - Opción 2 (sidecar): comparte namespace de red con tu app:
docker run -d --name zerotier \
--cap-add NET_ADMIN --device /dev/net/tun \
-v zt_state:/var/lib/zerotier-one \
--network container:miapp \
zerotier:latest
- Opción 3 (enrutador en contenedor): habilita NAT en el contenedor ZeroTier para que una red Docker alcance la VPN (iptables MASQUERADE).