Ralentir les connexions individuelles passant par un routeur Linux?

8

Nous avons un serveur Linux servant de routeur / pare-feu pour notre bureau. Parfois, quelqu'un télécharge un fichier volumineux qui occupe toute notre bande passante. Je ne veux pas mettre en œuvre de règles complexes ou de mise en forme du trafic, mais je me demande s'il existe un moyen de ralentir une seule connexion sur place? J'ai trouvé tcpnice , mais cela ne ralentit pas les transferts dans mes tests.

davr
la source

Réponses:

6

Si la mise en forme du trafic ne modifie pas le trafic correctement pour le shell et les téléchargements actifs (je pense que c'est possible, mais pas sûr), vous pouvez:

a) exécutez ssh sur deux ports - vous pouvez en prioriser un pour les transferts de fichiers et un pour le travail interactif.

b) Limitez le débit total de ssh - le seul problème est que si vous remplissez la capacité de téléchargement du lien et que ssh fonctionnera bien de manière interactive si vous limitez le débit à quelque chose comme 50 kbps (cela obligera les utilisateurs à utiliser un autre protocole pour les transferts de fichiers plus volumineux) )

c) prioriser le trafic sur l'adresse source si vous le pouvez

en outre, la mise en forme du trafic devrait rendre le trafic plus équilibré, de manière à ce qu'une seule connexion ne monopolise pas la liaison entière.

EDIT: Voici un exemple qui utilise un script bash. Il mentionne que ssh définit effectivement TOS sur interactif à interactif, donc je suppose que Wondershaper en profite.

Si vous voulez d'autres options que Wondershaper, assurez-vous de jeter un œil à shorewall ou pyshape .

Shorewall est un équilibre assez mature et agréable de flexibilité, puissance et simplicité.

Déraisonnable
la source
4

Wondershaper peut faire des merveilles et est assez facile à configurer. En dehors de cela, vous pouvez trouver des programmes utilisateur pour le faire. Sous Linux, il y a Trickle , il peut y avoir des équivalents pour Windows.

Mais vraiment, vous voulez façonner le trafic - les gens oublieront d'exécuter le programme, etc. Le fait de limiter les téléchargements à un peu moins que votre pleine capacité vous fera probablement beaucoup de bien.

alex
la source
1
Le principal problème que j'ai avec la mise en forme du trafic est qu'AFAIK il n'y a pas d'attente pour distinguer un téléchargement de fichier via SFTP / SCP d'une session SSH interactive. Je veux prioriser mes sessions SSH interactives, mais cela donnerait également la priorité à mes téléchargements, ce qui irait à l'encontre du but: /
davr
2
Je crois que ssh différencie l'utilisation interactive (ssh) de la non-interactive (scp / sftp) en utilisant un en-tête TOS TCP / IP, et Wondershaper l'utilise.
alex
Malheureusement, ni Putty (client SSH interactif) ni Filezilla (client SFTP de transfert de fichiers) n'ont défini de drapeaux TCP / IP TOS. Mon pare-feu ne peut donc pas les différencier.
davr
Wondershaper a également 8 ans ... semble être une éternité dans le temps Internet.
davr
2

Jetez un œil à connrate dans la page de manuel iptables (8). Vous pouvez faire correspondre le taux de connexion et ralentir une connexion dont le téléchargement est trop rapide en le mettant dans une classe tc appropriée ou en supprimant ou en tarpit ou tout ce qui fonctionne pour vous.

Aleksandar Ivanisevic
la source
1

Avez-vous pensé à mettre en place un proxy Squid inverse et à mettre en place des pools de retards ? Vous pouvez également le faire avec la directive limit d'iptables.

Le seul problème que j'ai avec votre demande est qu'il semble que vous souhaitiez commencer à limiter le taux de transfert d'une connexion déjà établie, ce qui sera assez difficile à faire, car tout ce à quoi je pourrai penser va vouloir commencer à fonctionner sur un nouvelle connexion, et laissera les connexions existantes en cours.

Je dois être d'accord avec alex en ce que vous aurez probablement besoin d'une sorte de modulateur de trafic, ce que vous voulez regarder, c'est des paquets par seconde, car un shell interactif aura une valeur beaucoup plus petite qu'un transfert de fichier modeste.

d34dh0r53
la source