# Requisitos de red

Para alojar con éxito servidores GPU en Clore.ai, su red debe cumplir estos requisitos.

## Requisitos mínimos

| Parámetro             | Requisito                                  |
| --------------------- | ------------------------------------------ |
| Velocidad de descarga | Mínimo 100 Mbps                            |
| Velocidad de subida   | Mínimo 100 Mbps                            |
| Latencia              | < 100ms a regiones principales             |
| Tipo de IP            | Estática o dinámica (se prefiere estática) |

> **Nota:** Mayor ancho de banda resulta en mejores calificaciones del servidor y más alquileres.

## Puertos requeridos

Los siguientes puertos deben ser accesibles desde Internet:

| Puerto        | Protocolo | Propósito                                       |
| ------------- | --------- | ----------------------------------------------- |
| 22            | TCP       | Acceso SSH (o puerto SSH personalizado)         |
| 8080          | TCP       | Jupyter Notebook (si está habilitado)           |
| 3000-4000     | TCP       | Puertos de la aplicación (configurables)        |
| Personalizado | TCP/UDP   | Como se define en la configuración del servidor |

## Configuración del firewall

### UFW (Ubuntu)

```bash
# Permitir SSH
sudo ufw allow 22/tcp

# Permitir Jupyter
sudo ufw allow 8080/tcp

# Permitir rango de puertos para aplicaciones
sudo ufw allow 3000:4000/tcp

# Habilitar firewall
sudo ufw enable
```

### iptables

```bash
# Permitir SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Permitir Jupyter
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

# Permitir rango de puertos
iptables -A INPUT -p tcp --dport 3000:4000 -j ACCEPT

# Guardar reglas
iptables-save > /etc/iptables/rules.v4
```

## NAT / Reenvío de puertos

Si su servidor está detrás de un router:

1. **Acceder al panel de administración del router** (usualmente 192.168.1.1)
2. **Buscar la sección de reenvío de puertos**
3. **Reenviar los puertos requeridos** a la IP interna de su servidor
4. **Configurar IP interna estática** para su servidor

### Ejemplo de reglas de reenvío de puertos

| Puerto externo | IP interna    | Puerto interno | Protocolo |
| -------------- | ------------- | -------------- | --------- |
| 22022          | 192.168.1.100 | 22             | TCP       |
| 8080           | 192.168.1.100 | 8080           | TCP       |

## IP estática vs dinámica

### IP estática (Recomendado)

* Conexión consistente para los arrendatarios
* Mejor para DNS y marcadores
* Mayor calificación de fiabilidad del servidor

### IP dinámica

* Funciona pero requiere servicio DDNS
* Los cambios de IP pueden interrumpir brevemente los alquileres
* Configurar cliente DDNS en su servidor:

```bash
# Ejemplo con ddclient
sudo apt install ddclient
sudo nano /etc/ddclient.conf
```

## Consideraciones sobre el ancho de banda

### Impacto en las ganancias

| Velocidad | Impacto                                                     |
| --------- | ----------------------------------------------------------- |
| 100 Mbps  | Mínimo - alquileres básicos                                 |
| 500 Mbps  | Bueno - adecuado para la mayoría de cargas de trabajo de ML |
| 1 Gbps+   | Excelente - atrae a arrendatarios premium                   |

### Monitoreo del ancho de banda

```bash
# Instalar herramienta de monitoreo
sudo apt install iftop

# Monitorear en tiempo real
sudo iftop -i eth0
```

## Pruebas de red

### Prueba de velocidad

```bash
# Instalar speedtest
sudo apt install speedtest-cli

# Ejecutar prueba
speedtest-cli
```

### Prueba de latencia

```bash
# Probar a regiones comunes
ping -c 10 8.8.8.8        # DNS de Google
ping -c 10 1.1.1.1        # Cloudflare
```

### Prueba de accesibilidad de puertos

Desde fuera de su red, verifique que los puertos estén abiertos:

```bash
# Usando nmap desde otra máquina
nmap -p 22,8080 SU_IP_PÚBLICA

# O use un comprobador de puertos en línea
# https://www.yougetsignal.com/tools/open-ports/
```

## Resolución de problemas

### Puertos no accesibles

1. Verifique las reglas del firewall en el servidor
2. Verifique el reenvío de puertos en el router
3. Contacte al ISP - algunos bloquean el hosting
4. Pruebe con diferentes números de puerto

### Conexión lenta

1. Ejecute la prueba de velocidad
2. Verifique si hay limitación de ancho de banda
3. Considere actualizar el plan de Internet
4. Optimice la configuración de red del servidor:

```bash
# Aumentar tamaños de búfer de red
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
```

### Caídas de conexión

1. Verifique cambios en la dirección IP
2. Verifique la estabilidad del router
3. Monitoree los registros del sistema: `dmesg | grep -i network`
4. Considere usar ethernet en lugar de WiFi
