Buenas, tengo una rpi3 como servidor DLNA, Samba, Apache, Nextcloud, Transmission y Amule.
El problema es que tengo bien configuradas las conexiones por cable y por wifi (la integrada y un usb-wifi), pero casi todo el tráfico pasa por el cable y las interfaces wifi no tienen apenas tráfico.
Cuando alguien está descargando algún fichero compartido a través de Nextcloud (Apache), el resto de servicios (DLNA, Samba, etc) sufren una bajada de rendimiento muy grande, ya que siguen usando la conexión por cable y se crea un cuello de botella.
¿Hay alguna manera de que Raspbian aproveche las tres interfaces para evitar el cuello de botella?.
Gracias por adelantado.
¿Solución a cuello de botella en interfaz ethernet?
- egrueda
- Pi God
- Mensajes: 3426
- Registrado: 10 Feb 2017, 19:31
- Agradecido: 7 veces
- Agradecimiento recibido: 269 veces
Si... pero no.
Si tienes dos redes wifi, puedes crear un bonding, si las dos interfaces son compatibles.
https://servidordebian.org/es/jessie/co ... rk/bonding
No obstante, el cuello de botella lo tienes entre el USB y el SoC, que al final es lo que limita la velocidad de transferencia.
En teoría, ganarás algo de velocidad (de ancho de banda), pero no lograrás el máximo teórico
Preguntas: ¿tienes conectada la raspi por cable y por wifi a la misma red? ¿A través de qué red acceden los usuarios?
¿Todos los servicios escuchan en la misma interfaz? ¿en todas? ¿O tienes unos servicios en wifi y otros en cable? (guiño, guiño)
Si tienes dos redes wifi, puedes crear un bonding, si las dos interfaces son compatibles.
https://servidordebian.org/es/jessie/co ... rk/bonding
No obstante, el cuello de botella lo tienes entre el USB y el SoC, que al final es lo que limita la velocidad de transferencia.
En teoría, ganarás algo de velocidad (de ancho de banda), pero no lograrás el máximo teórico
Preguntas: ¿tienes conectada la raspi por cable y por wifi a la misma red? ¿A través de qué red acceden los usuarios?
¿Todos los servicios escuchan en la misma interfaz? ¿en todas? ¿O tienes unos servicios en wifi y otros en cable? (guiño, guiño)
No respondo a privados ;-)
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
-
- Pi Alpha
- Mensajes: 30
- Registrado: 28 Jul 2017, 22:12
- Agradecido: 0
- Agradecimiento recibido: 0
La verdad es que la rpi empezó a ser un servidor DLNA y cliente de descargas, pero me picó la curiosidad y le instalé Apache y Nextcloud. Ahora la uso para compartir archivos con amigos y familiares.
Las tres interfaces están conectadas a la misma red local, el wifi lo tengo para conectarme por ssh y gestionar Nextcloud. Realmente la wifi integrada casi no la uso, la tengo de reserva por si falla el usb-wifi.
Como tengo 30Mbits de subida, teóricamente, si alguien descarga algún archivo a través de internet, aún quedarían 70Mbits teóricos para el resto de las aplicaciones. Pero soy incapaz de ver una película por DLNA de forma fluida, o examinar la red por Samba sin tener que esperar un mundo cada vez que cambio de carpeta.
Como cada interfaz tiene su ip fija configurada, estoy pensando en redirigir los puertos del router a la ip del wifi, pero no es lo que más me interesa por si falla el usb-wifi.
Ya conocía el problema del cuello de botella usb/ethernet, pero esperaba tener algo más de fluidez.
Un saludo y gracias.
Las tres interfaces están conectadas a la misma red local, el wifi lo tengo para conectarme por ssh y gestionar Nextcloud. Realmente la wifi integrada casi no la uso, la tengo de reserva por si falla el usb-wifi.
Como tengo 30Mbits de subida, teóricamente, si alguien descarga algún archivo a través de internet, aún quedarían 70Mbits teóricos para el resto de las aplicaciones. Pero soy incapaz de ver una película por DLNA de forma fluida, o examinar la red por Samba sin tener que esperar un mundo cada vez que cambio de carpeta.
Como cada interfaz tiene su ip fija configurada, estoy pensando en redirigir los puertos del router a la ip del wifi, pero no es lo que más me interesa por si falla el usb-wifi.
Ya conocía el problema del cuello de botella usb/ethernet, pero esperaba tener algo más de fluidez.
Un saludo y gracias.
-
- Pi Alpha
- Mensajes: 30
- Registrado: 28 Jul 2017, 22:12
- Agradecido: 0
- Agradecimiento recibido: 0
A ver si alguien me puede explicar como indicarle a Apache que interfaz debe escuchar, aún así tengo un poltergeist que no me lo explico:
Tengo la rpi3 por cable con la ip 192.168.0.16, y por wifi con la ip 192.168.0.18. Si redirigido los puertos 80 y 443 del router a la ip del wifi, no tengo conexión desde el exterior (timeout). Desde la red local, a la ip del wifi (192.168.0.18), me conecto sin problemas.
Tengo instalado Netdata para monitorizar la rpi3, y me he conectado por sftp a la ip del wifi para pasar un archivo grande (1,5GB). Miré el Netdata por curiosidad, y me indicaba que la interfaz eth0 (el cable) está recibiendo una media de 80-90Mb/s mientras que la wifi está a 0.
¿Es posible que ssh cambie el tráfico al cable?
¿Por qué no tengo conexión desde el exterior si los puertos están bien redirigidos y por red local si?
Espero que podais echarme un cable, porque estoy un poco perdido (lo normal en un novato)

P.D: Si algún admin considera que es mejor abrir otro hilo, que me lo indique, gracias.
Tengo la rpi3 por cable con la ip 192.168.0.16, y por wifi con la ip 192.168.0.18. Si redirigido los puertos 80 y 443 del router a la ip del wifi, no tengo conexión desde el exterior (timeout). Desde la red local, a la ip del wifi (192.168.0.18), me conecto sin problemas.
Tengo instalado Netdata para monitorizar la rpi3, y me he conectado por sftp a la ip del wifi para pasar un archivo grande (1,5GB). Miré el Netdata por curiosidad, y me indicaba que la interfaz eth0 (el cable) está recibiendo una media de 80-90Mb/s mientras que la wifi está a 0.
¿Es posible que ssh cambie el tráfico al cable?
¿Por qué no tengo conexión desde el exterior si los puertos están bien redirigidos y por red local si?
Espero que podais echarme un cable, porque estoy un poco perdido (lo normal en un novato)


P.D: Si algún admin considera que es mejor abrir otro hilo, que me lo indique, gracias.
- egrueda
- Pi God
- Mensajes: 3426
- Registrado: 10 Feb 2017, 19:31
- Agradecido: 7 veces
- Agradecimiento recibido: 269 veces
Para ilustrar, ejecuta este comando y comparte la salida:
Código: Seleccionar todo
sudo route -n
No respondo a privados ;-)
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
-
- Pi Alpha
- Mensajes: 30
- Registrado: 28 Jul 2017, 22:12
- Agradecido: 0
- Agradecimiento recibido: 0
Te paso la salida del comando:
Saludos.Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 202 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 303 0 0 wlan0
0.0.0.0 192.168.0.1 0.0.0.0 UG 304 0 0 wlan1
192.168.0.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 304 0 0 wlan1
- egrueda
- Pi God
- Mensajes: 3426
- Registrado: 10 Feb 2017, 19:31
- Agradecido: 7 veces
- Agradecimiento recibido: 269 veces
Gracias, es justo lo que esperaba encontrar.
Como ves, tienes tres gateways predeterminadas, es decir, tres rutas "0.0.0.0", una para cada interfaz.
Y con la red local ocurre lo mismo.
Las tres interfaces ofrecen una ruta, tanto para la red local (192.168.0.0) como para salir a internet (0.0.0.0)
Entonces, si la raspberry tiene que enviar un paquete, digamos a tu ordenador dentro de la red local, ¿cómo decide linux a traés de qué interfaz enviar los datos?
Para ello, consulta la tabla de rutas que me acabas de enviar y busca, en tu caso, las tres últimas líneas
¿Cuál de las tres usará, si las tres coinciden con el destino y son válidas? Pues en este caso usará la que tenga una métrica (Metric) más baja o más "barata", es decir, eth0. Y si tuviesen la misma métrica, el sistema usaría la primera regla que coincida con el destino, esto es, en base a la posición en la lista.
Este en realidad es un problema habitual cuando asignas varias interfaces en la misma red, que te genera rutas duplicadas (o en este caso, triplicadas)
Lo ideal en estos casos es tener redes separadas, por ejemplo 192.168.0.0 para cable y 192.168.1.0 para wifi, y así todos los equipos de la red tendían claro cómo comunicarse con cada una de las interfaces. Además, podrías tener servicios que escuchen en una interfaz o en la otra, y el NAT funcionaría. Eso sí, habría que ver si el router lo soporta y/o si te quieres complicar tanto la vida :-)
Como ves, tienes tres gateways predeterminadas, es decir, tres rutas "0.0.0.0", una para cada interfaz.
Y con la red local ocurre lo mismo.
Las tres interfaces ofrecen una ruta, tanto para la red local (192.168.0.0) como para salir a internet (0.0.0.0)
Entonces, si la raspberry tiene que enviar un paquete, digamos a tu ordenador dentro de la red local, ¿cómo decide linux a traés de qué interfaz enviar los datos?
Para ello, consulta la tabla de rutas que me acabas de enviar y busca, en tu caso, las tres últimas líneas
Código: Seleccionar todo
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 304 0 0 wlan1
Este en realidad es un problema habitual cuando asignas varias interfaces en la misma red, que te genera rutas duplicadas (o en este caso, triplicadas)
Lo ideal en estos casos es tener redes separadas, por ejemplo 192.168.0.0 para cable y 192.168.1.0 para wifi, y así todos los equipos de la red tendían claro cómo comunicarse con cada una de las interfaces. Además, podrías tener servicios que escuchen en una interfaz o en la otra, y el NAT funcionaría. Eso sí, habría que ver si el router lo soporta y/o si te quieres complicar tanto la vida :-)
No respondo a privados ;-)
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
-
- Pi Alpha
- Mensajes: 30
- Registrado: 28 Jul 2017, 22:12
- Agradecido: 0
- Agradecimiento recibido: 0
Gracias por la explicación, va a ser que no me voy a complicar mucho la vida. Lo voy a dejar así por ahora.
Lo que no me explico es por qué no me va la conexión desde el exterior al servidor Apache si mapeo los puertos a la ip del wifi.
Lo que no me explico es por qué no me va la conexión desde el exterior al servidor Apache si mapeo los puertos a la ip del wifi.
- egrueda
- Pi God
- Mensajes: 3426
- Registrado: 10 Feb 2017, 19:31
- Agradecido: 7 veces
- Agradecimiento recibido: 269 veces
Si funciona cuando mapeas eth0 y no funciona con wlan, sin duda es el NAT del router, porque entra por una interfaz y alarma por la otra, por tanto el NAT entrante funciona y en NAT saliente no.Sadrarin escribió:Lo que no me explico es por qué no me va la conexión desde el exterior al servidor Apache si mapeo los puertos a la ip del wifi.
No respondo a privados ;-)
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
👉 Particiones en una MicroSD
👉 Cómo pedir ayuda en el foro
Invítame a un café
-
- Pi Alpha
- Mensajes: 30
- Registrado: 28 Jul 2017, 22:12
- Agradecido: 0
- Agradecimiento recibido: 0
Muchas gracias egrueda, como mis conocimientos de NAT y linux son más bien pocos, por ahora lo dejo como está y ya veremos más adelante si me animo a poner a punto el servidor.
Muchas gracias de nuevo, un saludo.
Muchas gracias de nuevo, un saludo.