(Artículo contribuido por @SAn @Meul @nicopace)
A medida que vamos usando el LibreRouter vamos notando sus múltiples usos y necesidades.
Darle energía al LibreRouter dependerá de estos usos.
En particular, en algunas instalaciones hemos notado que las fuentes que veníamos usando no eran suficientemente potentes para soportar estos escenarios, por lo que nos decidimos a probarlo.
Estos son las formas que hemos visto de conectarlos:
Escenarios
1. LibreRouters en POE passthrough
Que un LibreRouter le de energía a otro LibreRouter.
2. Radioenlace de larga distancia en POE passthrough
Hay otros casos similares como este, como por ejemplo cuando usamos equipamiento para enlaces de larga distancia:
3. Alto tráfico de un sólo LibreRouter
Probablemente mucho más frecuente que los otros, es que dentro de la mesh cada nodo esté intercambiando mucha información por sus dos radios de 5ghz y por su radio de 2.4ghz.
Definición de la prueba
Para poder testear estos escenarios, armaremos un contexto de prueba para hacer que el LibreRouter consuma tanto como sea posible, y probaremos diferentes fuentes de alimentación disponibles en el mercado para verificar que puedan sostener el tráfico sin reiniciar el router.
Para poder generar el tráfico necesario para un máximo consumo necesitamos:
- que lás dos radios de 5ghz estén consumiendo el máximo de energía posible
- Que la radio de 2.4ghz esté consumiendo el máximo de energía posible
- que el CPU esté cargado permanentemente
Para lograr esto , usaremos la herramienta wperf
que generará tráfico en todas las radios.
Para cargar lo que quede libre del CPU se puede usar el comando yes > /dev/null
, que cargará al 100% el CPU.
Procedimiento
Crea un archivo llamado power_test que tenga el siguiente contenido
#!/bin/sh
if [[ "`uci get lime-community.wifi.country`" != "TZ" ]]
then
uci set lime-community.wifi.country='TZ'
lime-config
lime-apply
reboot
fi
iw phy phy0 interface add mon0 type monitor
iw phy phy1 interface add mon1 type monitor
iw phy phy2 interface add mon2 type monitor
ip link set dev mon0 up
ip link set dev mon1 up
ip link set dev mon2 up
# 2. Ajustar potencia
iw dev mon0 set txpower fixed 2600
iw dev mon1 set txpower fixed 2700
iw dev mon2 set txpower fixed 2700
# 3. Ajustar bitrates
iw mon0 set bitrates legacy-2.4 6
iw mon1 set bitrates legacy-5 6
iw mon2 set bitrates legacy-5 6
# 4. tirar comando wperf (ajustar el bandwith de wperf)
/root/wperf_mips -M mon0 --dhost 00:01:02:03:04:AA -S 00:01:02:03:04:BB --bssid 00:01:02:03:04:CC --mtu 1400 -b 410k 1>/dev/null 2>&1 &
/root/wperf_mips -M mon1 --dhost 00:01:02:03:04:AA -S 00:01:02:03:04:BB --bssid 00:01:02:03:04:CC --mtu 1400 -b 410k 1>/dev/null 2>&1 &
/root/wperf_mips -M mon2 --dhost 00:01:02:03:04:AA -S 00:01:02:03:04:BB --bssid 00:01:02:03:04:CC --mtu 1400 -b 410k 1>/dev/null 2>&1 &
# 5. ejecutar carga de CPU
time yes > /dev/null &
Luego desde la carpeta en la que está este archivo, estando conectados al router sobre el que estaremos haciendo las pruebas (por cable o wifi) haz lo siguiente:
wget https://github.com/spiccinini/wperf/releases/download/2.0/wperf_2.0_mips.zip
unzip wperf_2.0_mips.zip
scp wperf_mips power_test root@10.13.0.1:/root
ssh root@10.13.0.1 '/root/power_test'
Esta última linea, la primera vez que la ejecutemos reiniciará el router para aplicar configuraciones.
Tendremos que ejecutarlo una segunda vez para que inicie el proceso que se pone a consumir.
En el caso del escenario en el que tiene concetado un segundo LibreRouter en el puerto POE passthrough (el que se encuentra más hacia afuera del router), para activar la provisión de energía en ese puerto hay que hacer lo siguiente:
ssh root@10.13.0.1 'echo "1" > /sys/class/gpio/export; echo "out" > /sys/class/gpio/gpio1/direction; echo "1" > /sys/class/gpio/gpio1/value'
Luego de hacer esto se prenderá el segundo LibreRouter. Ahora habrá que repetir el proceso antes citado para el segundo LibreRouter.
Pruebas realizadas
Probamos con uno o dos LibreRouters a su máximo consumo conectados con las fuentes a probar vía POE con cables STP de exteriores de distintas longitudes.
Cable Polaris:
* Marca Polaris
* Descripción: FTP Cat 5e polaris exterior pantalla aluminio Bobina De 305 Metros Doble Vaina Negro/Gris.
* Datasheet: http://www.upspolaris.com/nv/download/Cable-FTPCAT-5E-EXTERIOR.pdf
* Resistividad: 0.27 ohm/metro.
Cable Firenet:
* Marca Firenet
* Descripción: UTP 4ps CAT 5e P/EXTERIOR (NEGRO) CJA X 305 Mts 24 AWG, cobre puro
* Datasheet: http://www.symnet.com.ar/cable-utp-cat-exterior-negro-cja-305-mts-firenet-p-137.html
* Resistividad: 0.1 ohm/metro
Para ambas marcas de cable medimos la resistencia de cada filamento del cable. En el cable Polaris fue de es de 8 ohms en 30 metros o sea 0.27 ohm/metro.
Como el recorrido de ida y vuelta de la señal es del doble de la longitud pero se usan dos filamentos por señal (GND y VCC) entonces la resistencia total del circuito es igual a la de 1 filamento, por lo que se puede pensar como si fuera un solo filamento y usando la longitud del cable para calcular la resistencia total de cada cable.
Cables:
- Polaris 30m: 8Ω
- Firenet 50m: 5Ω
- Firenet 100m: 10Ω
Resultados
Escenarios | BELSIC 24V 2A | BELSIC 36V 1A | Art&Facts 24V 4.1A |
---|---|---|---|
Un router máximo consumo, cable 30m Polaris (8Ω) | OK | OK | OK |
Dos routers máximo consumo, cable 30m Polaris (8Ω) | FALLO | OK | FALLO |
Un router máximo consumo, cable 50m Cobre (5Ω) | OK | OK | OK |
Dos routers máximo consumo, cable 50m Firenet (5Ω) | OK | OK | OK |
Un router máximo consumo, cable 100m Firenet (10Ω) | OK | OK | OK |
Dos routers máximo consumo, cable 100m Firenet (10Ω) | FALLO | OK | FALLO |
Máximo consumo: todas las radios y cpu al maximo consumo.
El fallo en general está asociado a que el segundo dispositivo conectado se reinicia cuando intenta consumir mucho (por ejemplo, cuando hay mucho tráfico pasando por él).
Además aprovechamos y medimos las tensiones en cada uno de los escenarios:
Escenarios | BELSIC 24V 2A | BELSIC 36V 1A | Art&Facts 24V 4.1A |
---|---|---|---|
Un router con todas sus radios y cpu al maximo consumo 30m Polaris | 19.7v (10.6W) | 34.6v (6.1W) | 20.4v (9.2W) |
Dos routers con todas sus radios y cpu al maximo consumo 30m Polaris | FALLO | 30.1v (22.2W) | FALLO |
Además hicimos unas pruebas con un patchcord de 1 metro como comparación:
Escenarios | Art&Facts 24V 4.1A |
---|---|
Un router con todas sus radios y cpu al maximo consumo | 22.7v |
Dos routers con todas sus radios y cpu al maximo consumo | 21.4v |
Conclusiones
La resistencia del cable UTP o SFTP es alta. Si el cable es de aleación (30ohms/100m) es al menos 3 veces mas alta que si el cable es de cobre puro (10ohms / 100m). Para las fuentes testeadas el problema lo dió primero la caida de tensión en el cable antes que la corriente máxima que puede entregar la fuente.
Cuanta menor tensión se use para alimentar al LibreRouter, se consumirá más corriente, ya que siempre consume la misma potencia: Potencia = Tensión * Corriente. Entonces si cae 20% de la tensión en el cable, la corriente aumenta para compensar. Este aumento de corriente hace que la tensión que cae en el cable sea mayor. En definitiva lo mejor es lograr que caiga lo menor posible en el cable, eso se logra usando la fuente con mayor tension posible y con un cable lo mas corto y con menor resistencia posible.
Al comprar un cable es importante saber su resistividad si la longitud del cable será grande.
Recomendaciones
Para alimentar un LR:
- hasta 20m podremos usar 24V 1A (o superior) con cable de aleación de calidad standard
- hasta 30m podremos usar 24V 1.5A o 36V 1A con cable de aleación de calidad standard
- entre 50m y 100m podemos usar 24V 1.5A o 36V 1A con cable de cobre puro.
Para alimentar dos librerouters:
- hasta 50m podremos usar 24V 1.5A o 36V 1A con cable de cobre puro.
- entre 50m y 100m deberemos usar si o sí 36V 1A con cable de cobre puro.
Análisis teórico de la fuente necesaria
El circuito simplificado es el siguiente:
Si pensamos al librerouter como una resistencia entonces su valor depende de la potencia que esté consumiendo y podemos escribirla dependiendo de la corriente total del circuito.
Si hacemos una malla en todo el circuito nos queda la siguiente ecuación cuadrática
R_cable_ohm * i**2 - Vg_v * i + librerouter_max_power_w = 0
Entonces, según el gráfico, si tenemos un cable de 10 ohm, necesitaremos una fuente mayor a 22V para alimentar 1 LR y una fuente de al menos 31V para alimentar dos LR.
Test extremo
Decidimos ver cuanto se podía extender el cable de red probando con la fuente de 36V1A.
Para ello utilizamos la bobina de cable que teníamos con el remanente de cable (270mts). Crimpeamos sus extremos y lo probamos con esta fuente.
El router inicia y permite conectarse vía la radio 2.4ghz.
Ni bien iniciamos tráfico intensivo con una de las radios se reinicia.
Medición de consumo
Con la fuente de 36V, el cable de 30m:
* Caida de tension en el cable (IDLE): .41 - .52 V
* Caida de tension en el cable (FULL): 1.4V ± 0.1V
* Medición de tensión dentro del LR (IDLE): 35V
* Medición de tensión dentro del LR (FULL): 32.9V
Fuente de 24V, el cable de 30m:
* Caida de tension en el cable (FULL): 2.7V ± 0.1V
* .15 - .19V (caida interna)
* Medicion de tension dentro del LR (IDLE): 23.8V