¿Disminuye la velocidad de las conexiones individuales que pasan por un enrutador Linux?

8

Tenemos un servidor Linux que actúa como enrutador / firewall para nuestra oficina. Ocasionalmente, alguien cargará un archivo grande que ocupa todo nuestro ancho de banda. No quiero implementar ninguna regla compleja o configuración del tráfico, pero me pregunto si hay una manera de ralentizar una sola conexión en el acto. Encontré tcpnice , pero no ralentiza las transferencias en mis pruebas.

davr
fuente

Respuestas:

6

Si la configuración del tráfico no configura el tráfico correctamente para las cargas activas y de shell (creo que puede, pero no estoy seguro), entonces podría:

a) ejecute ssh en dos puertos: puede priorizar uno para transferencias de archivos y otro para trabajo interactivo.

b) limite las velocidades ssh totales: el único problema es si llena la capacidad de carga del enlace y ssh funcionará de manera interactiva si limita la velocidad a algo así como 50 kbps (esto obligará a los usuarios a usar algún otro protocolo para transferencias de archivos más grandes) )

c) priorice el tráfico en la dirección de origen si puede

Además, la configuración del tráfico debería hacer que el tráfico sea más equilibrado, independientemente de que la conexión única no monopolice todo el enlace.

EDITAR: Aquí hay un ejemplo que usa un script bash. Menciona que ssh de hecho establece TOS en interactivo a interactivo, por lo que supongo que Wondershaper se aprovecha de eso.

Si quieres otras opciones además de Wondershaper, asegúrate de echar un vistazo a wallwall o pyshape .

Shorewall es bastante maduro y tiene un buen equilibrio de flexibilidad, potencia y simplicidad.

Insensatez
fuente
4

Wondershaper puede hacer maravillas, y es bastante fácil de configurar. Aparte de eso, puede encontrar algunos programas de usuario para hacer eso. En Linux hay Trickle , puede haber equivalentes para Windows.

Pero realmente, usted quiere modelar el tráfico: la gente se olvidará de ejecutar el programa, etc. Limitar las cargas a un poco menos de su capacidad total probablemente le hará mucho bien.

alex
fuente
1
El principal problema que tengo con la configuración del tráfico es que AFAIK no tiene que esperar para distinguir la carga de un archivo a través de SFTP / SCP de una sesión SSH interactiva. Quiero dar prioridad a mis sesiones interactivas de SSH, pero al hacerlo también daría prioridad a mis cargas,
frustrando
2
Creo que ssh diferencia el uso interactivo (ssh) del no interactivo (scp / sftp) usando un encabezado TOS TCP / IP, y wondershaper lo usa.
alex
Desafortunadamente, ni Putty (cliente SSH interactivo) ni Filezilla (cliente SFTP de transferencia de archivos) establecen banderas TOS TCP / IP. Entonces mi firewall no puede diferenciar entre ellos.
davr
También Wondershaper tiene 8 años ... parece una eternidad en internet.
davr
2

Eche un vistazo a connrate en la página de manual de iptables (8). Puede igualar la velocidad de conexión y ralentizar una conexión que se está cargando demasiado rápido, ya sea colocándola en una clase de tc apropiada o soltando o tarpit o lo que sea que funcione para usted.

Aleksandar Ivanisevic
fuente
1

¿Has pensado en configurar un proxy Squid inverso y configurar grupos de retardo ? También puede hacer esto con la directiva de límite de iptables.

El único problema que tengo con su solicitud es que parece que desea comenzar a limitar la velocidad de transferencia de una conexión ya establecida que será bastante difícil de hacer, ya que todo lo que se me ocurra va a querer comenzar a operar en un nueva conexión, y dejará funcionando las conexiones existentes.

Tengo que estar de acuerdo con Alex en que probablemente necesitarás algún tipo de moderador de tráfico, lo que quieres ver es paquetes por segundo, ya que un shell interactivo tendrá un valor significativamente menor que una transferencia de archivos modesta.

d34dh0r53
fuente