miércoles, 24 de septiembre de 2025

Configurar Intel AX200 como Access Point en OPNsense

Configurar Intel AX200 como Access Point en OPNsense

Configurar Intel AX200 como Access Point en OPNsense

En este tutorial se explica paso a paso cómo detectar y configurar una tarjeta Intel AX200 en OPNsense para usarla como punto de acceso inalámbrico (AP). Los pasos incluyen la instalación del firmware, creación de la interfaz y configuración de la red Wi-Fi.

1. Detectar la tarjeta Wi-Fi

Primero, se verifica que OPNsense detecta la tarjeta en el bus PCI:

pciconf -lv | grep -A1 -B3 network
iwlwifi0@pci0:1:0:0:
    vendor     = 'Intel Corporation'
    device     = 'Wi-Fi 6 AX200'
    class      = network
---

2. Instalar el firmware necesario

OPNsense requiere el firmware para que la tarjeta funcione correctamente. Con fwget se identifica el paquete:

fwget pci
Needed firmware packages: 'wifi-firmware-iwlwifi-kmod-22000'

Se instala con:

pkg install wifi-firmware-iwlwifi-kmod-22000

Luego se reinicia el sistema para que el firmware se cargue:

reboot
---

3. Comprobar detección del driver

Después del reinicio, verificamos que el módulo del driver esté cargado:

kldstat | grep iwn

Si el módulo if_iwn ya está presente, significa que el driver está cargado.

---

4. Crear la interfaz Wi-Fi

En FreeBSD/OPNsense, hay que crear la interfaz manualmente sobre el dispositivo detectado:

ifconfig wlan0 create wlandev iwlwifi0
ifconfig wlan0 up
ifconfig wlan0

Esto genera la interfaz wlan0 lista para usar.

Para que se cargue automáticamente al iniciar:

echo 'if_iwn_load="YES"' >> /boot/loader.conf.local
---

5. Configurar la interfaz en OPNsense

1. Acceder a la GUI de OPNsense y asignar la interfaz wlan0 como nueva interfaz llamada, por ejemplo, WiFiAP.

2. Habilitar la interfaz y asignar una IP estática, por ejemplo 192.168.X.1/24.

---

6. Configurar como Access Point

En la GUI de OPNsense:

  • Ir a Services → Wireless → Access Point.
  • Seleccionar la interfaz WiFiAP.
  • Configurar el SSID, modo Access Point, canal y seguridad WPA2 Personal.
  • Guardar y aplicar los cambios.
---

7. Configurar DHCP para clientes

1. Ir a Services → DHCP Server → WiFiAP.

2. Activar DHCP y asignar un rango de direcciones IP, por ejemplo 192.168.X.100-192.168.X.200.

---

8. Verificar funcionamiento

Clientes Wi-Fi deberían poder detectar el SSID y conectarse. Para verificar el estado desde la shell:

ifconfig wlan0
clog /var/log/system.log | grep wlan0

Con esto, la tarjeta Intel AX200 está funcionando como punto de acceso en OPNsense.

viernes, 12 de septiembre de 2025

OPNsense: ¿Nativo o Virtual? Una comparativa de rendimiento con interfaz de 2.5Gb

Parte 1 

Introducción

En este artículo, nos sumergiremos en una comparación de rendimiento entre dos configuraciones populares de OPNsense: instalado directamente en un hardware dedicado (barebone) y como una máquina virtual en Proxmox. Ambas opciones tienen sus ventajas, pero ¿cuál ofrece un mejor rendimiento?


Equipo Utilizado

Hardware: Placa base BKHN-NVR con procesador Intel Celeron N5105 y cuatro interfaces de red 2.5Gb/s, 32GB de memoria, NVME monando un SSD de 256GB y raspberry pi 4 como servidor iperf3 local.

Software: OPNsense y Proxmox.

Herramientas de prueba: iperf3, speedtest-cli, y medidor de consumo Shelly plug S

Configuración

OPNsense Nativo: Instalación estándar de OPNsense en el hardware dedicado.

OPNsense Virtual: Máquina virtual en Proxmox con asignación de los cuatro núcleos del procesador y la totalidad de la RAM disponible. Las interfaces de red están configuradas en modo bridge para un acceso directo al hardware.

Metodología de prueba

Para evaluar el rendimiento de ambas configuraciones, realizaremos una serie de pruebas de transferencia de datos utilizando con iperf3 y speedtest-cli. 

Como servidor iperf3 utilizaremos algunos de los disponibles en public-iperf3-servers

Cliente se conectara al servidor mediante el router local, un FRITZ!Box 6590 Cable, usando el puerto 5201. Estas pruebas medirán la velocidad de subida y bajada, así como la latencia. Adicionalmente, mediremos el consumo en ambos escenarios. 

El cliente es un ordenador Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz con 16GiB de RAM, usando  Fedora 38: 6.8.9-100.fc38.x86_64. El cliente esta conectado a la red local en el puerto ethernet igc0  de 2.5Gb/s del ordenador N5105 donde se esta ejecutando OpenSense mediante un cable CAT5 aunque  el puerto del cliente es de 1 Gbit/s


Para realizar las pruebas de velocidad en local, hemos utilizado un raspberry pi4 conectada al mismo router FRITZ!Box.



Comandos Sugeridos:  iperf3 y speedtest-cli

Servidor: 

iperf3 -s

Cliente: 

iperf3 -c <IP del servidor> -P 4 -t 30 (4 hilos, 30 segundos)

speedtest-cli --server <ID del servidor> --threads 4 (4 hilos)


Preparación

Primer paso ha sido actualizar la raspeberry pi 4 con los siguientes comandos:

  1. sudo apt update.
  2. sudo apt full-upgrade.
  3. sudo reboot.
  4. sudo apt autoremove.
  5. sudo apt clean.
  6. sudo rpi-eeprom-update.
  7. sudo rpi-eeprom-update -a.
  8. sudo reboot.


A continuación, instalo en comando iperf3 en la raspberry pi 4 con:

sudo apt-get install iperf3

Ahora, para evitar fisgones, cambio el prompt.

Para mostrar el prompt actual usamos:

[\u@\h \W]\$ echo "$PS1"
[\u@\h \W]\$

Para cambiar el prompt, usamos:
PS1='[\D{%F %T}]\$'

Resultados y análisis

Resultados de las pruebas de velocidades máximas alcanzadas en configuracion standalone con iperf3

Repetimos la prueba con cuatro servidores diferentes:


con el segundo servidor:


con el tercer servidor:


Con el ultimo servidor:



Con el siguiente bash script hacemos que los resultados se muestren en una tabla html:

cat comparativa_iperf3.sh 

#!/bin/bash

# Lista de servidores
SERVIDORES=("spd-desrv.hostkey.com" "a205.speedtest.wobcom.de" "a209.speedtest.wobcom.de" "speedtest.novoserve.com")

# Función para ejecutar iperf3 y extraer los resultados
function ejecutar_iperf3 {
  servidor=$1
  modo=$2
  puerto=5201

  # Comando iperf3
  comando="iperf3 -c $servidor -p $puerto -t 10 $modo"

  # Ejecutar el comando y extraer las líneas sender y receiver
  resultado=$(eval $comando 2>&1)
  sender=$(echo "$resultado" | grep sender | tail -n 1)
  receiver=$(echo "$resultado" | grep receiver | tail -n 1)
  echo $servidor $sender
  echo $servidor $receiver

  # Extraer los valores de cada línea
  IFS=' ' read -ra AD_sender <<< "$sender"
  IFS=' ' read -ra AD_receiver <<< "$receiver"

  # Formatear los resultados para la tabla HTML
  echo "" >> resultados.html
  echo "  $servidor" >> resultados.html
  echo "  $modo" >> resultados.html
  echo "  ${AD_sender[4]}" >> resultados.html  # Tasa de bits sender
  echo "  ${AD_receiver[4]}" >> resultados.html  # Tasa de bits receiver
  echo "" >> resultados.html
}

# Crear el archivo HTML
echo "" > resultados.html
echo "" >> resultados.html
echo "" >> resultados.html
echo "" >> resultados.html
echo "" >> resultados.html
echo "" >> resultados.html
echo "

Resultados de las pruebas iperf3

" >> resultados.html echo "" >> resultados.html echo " " >> resultados.html echo " " >> resultados.html echo " " >> resultados.html echo " " >> resultados.html echo " " >> resultados.html echo " " >> resultados.html # Iterar sobre los servidores y modos for servidor in "${SERVIDORES[@]}"; do for modo in "" "-R"; do ejecutar_iperf3 "$servidor" "$modo" done done echo "
ServidorModoTasa de bits Sender (Mbits/s)Tasa de bits Receiver (Mbits/s)
" >> resultados.html echo "" >> resultados.html echo "" >> resultados.html echo "Resultados guardados en resultados.html"




Evaluacion del consumo electrico:


Consistencia: Evalúa la consistencia de los resultados a lo largo de múltiples pruebas.

Latencia: Compara la latencia de red en ambas configuraciones.

Sobrecarga del sistema: Observa si hay signos de sobrecarga del sistema en alguna de las configuraciones.

Conclusión

[Resume los hallazgos principales de tu prueba y ofrece una recomendación sobre cuál configuración es más adecuada para diferentes escenarios].


Factores a Considerar:


Requisitos específicos: Las necesidades de cada usuario pueden variar.

Complejidad de la configuración: OPNsense nativo puede ser más sencillo de configurar para usuarios menos experimentados.

Flexibilidad: Las máquinas virtuales ofrecen una mayor flexibilidad en términos de migración y escalabilidad.

En este artículo, hemos explorado las diferencias de rendimiento entre OPNsense instalado de forma nativa y como máquina virtual en Proxmox. Los resultados obtenidos [inserta tus conclusiones aquí] pueden servir como una guía para elegir la configuración más adecuada para tu entorno específico.


Preguntas para la Comunidad

¿Has realizado pruebas similares? ¿Cuáles fueron tus resultados?

¿Qué otras herramientas o metodologías recomendarías para evaluar el rendimiento de OPNsense?

¿Cuáles son tus experiencias con OPNsense en entornos virtuales y físicos?

¡Espero que este artículo te haya resultado útil!

OPNsense nativo en Zimaboard 832

Instalación y pruebas de rendimiento de OPNsense en ZimaBoard 832

Instalación y pruebas de rendimiento de OPNsense en ZimaBoard 832

En esta entrada detallo los pasos que seguí para instalar y configurar OPNsense en una ZimaBoard 832, así como las pruebas de rendimiento realizadas tanto en la red local como hacia servidores externos.

1. Instalación de OPNsense

Descargué la imagen de OPNsense, la copié a Ventoy y seguí el procedimiento de instalación mostrado en el vídeo aquí.

2. Configuración inicial y seguridad

  • Configuré la red local.
  • Activé HTTP Strict Transport Security (HSTS).
  • Configuré Google Authenticator como servidor MFA.
  • Habilité MFA para el usuario root.

3. Consola HDMI siempre activa

Se ajustó el archivo /boot/loader.conf para que la consola permanezca activa aunque no haya monitor conectado:

kern.vty=vt
hw.vga.textmode=0
kern.multicons=1

4. Creación de usuario con SSH

Se creó un usuario adicional para administración, añadido al grupo Admins, utilizando autenticación por claves SSH:

# Generación de claves SSH
ssh-keygen -t ed25519

# Copiar clave pública al servidor OPNsense
ssh-copy-id usuario@opnsense-ip

El usuario root permanece habilitado, pero la administración se realiza preferentemente con este nuevo usuario.

5. Pruebas de rendimiento LAN interna

Se instaló el plugin os-iperf en OPNsense y se realizaron pruebas TCP y UDP:

Prueba TCP interna

# En PC LAN como servidor
iperf3 -s

# En OPNsense como cliente
iperf3 -c 172.16.1.5 -l 64k

Resultado: ~943 Mbit/s promedio, 1.10 GB transferidos en 10 s, 150 retransmisiones.

Prueba UDP interna (1 Gbit/s)

# En OPNsense
iperf3 -c 172.16.1.5 -u -b 1G

Resultado: 955–956 Mbit/s, 1.11 GB transferidos, jitter 0.002–0.013 ms, sin pérdidas de paquetes.

6. Pruebas hacia servidores externos

Se realizaron pruebas TCP y UDP desde el PC LAN hacia distintos servidores externos:

Servidor Modo Tasa Sender (Mbit/s) Tasa Receiver (Mbit/s)
spd-desrv.hostkey.com 59.4 57.6
spd-desrv.hostkey.com -R 423 413
a205.speedtest.wobcom.de 60.2 58.9
a205.speedtest.wobcom.de -R 585 566
a209.speedtest.wobcom.de 61.4 59.4
a209.speedtest.wobcom.de -R 454 419
speedtest.novoserve.com - -
speedtest.novoserve.com -R - -

Conclusión

Las pruebas muestran que la red LAN interna del ZimaBoard 832 con OPNsense alcanza velocidades cercanas a 1 Gbit/s tanto en TCP como en UDP, mientras que las pruebas hacia Internet dependen del ancho de banda y la latencia de los servidores externos, mostrando variaciones entre 40 y 585 Mbit/s según el servidor y el modo de prueba.