Question Quelle est la meilleure solution pour le contrôle du trafic dans un grand système (environ 2000 utilisateurs)?


situation suivante: nous sommes un groupe d’étudiants qui gérons la connexion Internet des salles de résidents locales, avec un total d’environ 2000 utilisateurs finaux.

Nous avons un système de points de trafic, chaque Mo de coûts de téléchargement ou de téléchargement, de nouveaux points sont ajoutés à l’heure. Pour le moment, nous bloquons l'accès Internet d'un utilisateur lorsqu'il a utilisé tous ses points (en le plaçant dans une stratégie REJECT dans REPOSER dans iptables sur notre routeur de passerelle Debian).

Nous aimerions seulement limiter la bande passante d'un utilisateur. Quelle est la meilleure façon de procéder?

La réponse simple serait de définir une limite de débit sur le port du commutateur de l'utilisateur (principalement des Cisco Catalyst 3550). Toutefois, cela n’est pas souhaitable, car le trafic dans notre propre réseau et vers le réseau de l’université devrait rester illimité. Existe-t-il un moyen de limiter la bande passante uniquement pour les paquets avec une certaine destination ou une certaine plage IP source (donc à la fois sortie et entrée) dans Cisco IOS? Je n'ai rien trouvé.

L'autre façon serait de contrôler le trafic sur notre routeur de passerelle. Plusieurs solutions me viennent à l’esprit:

  • tc ou tcng - semblent avoir une syntaxe plutôt obscure et n'offrent aucune fonctionnalité intéressante pour le contrôle du trafic par IP. Un QDisc dédié à de nombreuses personnes ralentirait probablement beaucoup le routeur. De plus, la documentation sur les deux est assez dépassée.

  • shorewall - semble avoir une syntaxe assez soignée pour les configurations, cependant, je ne sais pas s'il peut gérer cette quantité de trafic et d'utilisateurs et s'il convient à la limitation du trafic par IP

  • pfSense - ressemble à un système d'exploitation destiné à des objectifs comme le nôtre. Cependant, cela nous obligerait à réinstaller complètement notre routeur de passerelle. Nous n'avons pas d'autres systèmes BSD et pfSense devrait disposer de très bonnes capacités de comptabilité du trafic (nous utilisons actuellement fprobe-ulog et ulog-acctd).

Quelle est votre expérience? Quelle solution répond à nos besoins et peut être maintenue plus facilement? Avez-vous d'autres idées?

Si vous avez besoin d'informations supplémentaires sur notre système, n'hésitez pas à demander.

Merci d'avance.


MODIFIER: J'ai implémenté le système avec iptables et tc.

Chaque utilisateur a un / 28-sous-réseau, une IP VPN (tous les deux à partir de 10.0.0.0/8) et une IP externe, tous sont dirigés à travers une chaîne iptables. Cette chaîne a une seule règle, une simple RETURN.

Toutes les cinq minutes, un script Python lit les compteurs d'octets de ces règles. Il réinitialise les compteurs et met à jour le compte de point de trafic de l'utilisateur dans notre base de données PostgreSQL.

Si le solde de points d'un utilisateur diminue en dessous d'un certain seuil, deux classes tc sont créées pour cet utilisateur (une pour l'interface entrante, une pour l'interface sortante sur notre routeur de passerelle), les adresses IP sont entrées dans les filtres tc appartenant à ces classes. Les classes sont limitées en vitesse par un HTB.

Par rapport au système précédent avec fprobe-ulog et ulog-acctd c'est beaucoup plus rapide car le comptage d'octets est fait par iptables.

La vitesse du réseau s'est considérablement améliorée pour nos utilisateurs.


11
2017-12-16 23:15


origine




Réponses:


Je ne sais pas dans quelle mesure vous êtes intéressé par la reconfiguration de votre configuration entière (c'est-à-dire, remplacez Debian), ni dans quelle mesure il serait possible de placer quelque chose comme cela derrière votre passerelle, mais FreeBSD a une fonctionnalité appelée ipfw Dummynet. Comme il semble que vous n’ayez pas l’impression de vous procurer un transformateur de trafic matériel dédié, cette option est peut-être une option pour vous. Nous l'utilisons actuellement pour bloquer le trafic SMTP entrant et sortant via l'une de nos passerelles de proxy afin d'empêcher un système backend NFS vieillissant d'être submergé et de ne plus réagir.

Avec des scripts et une configuration intelligente de vos jeux de règles, il serait possible de contrôler le trafic de milliers d'adresses IP individuelles.


2
2017-12-17 16:10





Je vais devoir demander ce que nous utilisons, mais notre personnel ResTek a un appareil à la frontière Internet qui assure les fonctions de qualité de service. Il a une priorité par défaut pour les flux non classifiés et priorise les autres trafics en fonction de règles. C'est la fonctionnalité prioritaire qui le vend réellement, car ils exploitent également un cluster de mise en cache basé sur Squid qui est répertorié comme priorité absolue dans l'appliance de frontière. Les personnes de leur réseau ont ensuite le choix de surfer sur le Web selon une priorité standard (et plutôt sarcastique), ou d’utiliser le proxy pour obtenir une réponse très rapide. Ils prennent également en compte les demandes prioritaires des serveurs de jeux, car ils sont sensibles au temps de latence mais disposent d’une faible bande passante.

Il y a pas mal de travail de traitement des requêtes des serveurs de jeux, mais celles-ci disparaissent peu à peu, à mesure que de plus en plus de jeux s'éloignent des serveurs privés. Dans l’ensemble, j’entends dire que cela fonctionne assez bien pour eux. Ils peuvent empêcher des choses comme bittorrent d’éclipser tout le trafic, tout en maintenant la rapidité des temps de chargement des vidéos sur YouTube.


0
2017-12-17 00:29





Avec autant d'utilisateurs, la plupart des logiciels simples commenceront à s'effondrer.

Envisagez de regarder Packeteer et des appareils similaires. De nos jours, ils sont presque plus chers que d’acheter plus de bande passante (Aux États-Unis et en Europe, nous, les pauvres en Australie, avons encore des tarifs très élevés).


0
2017-12-17 01:00



Malheureusement, nous ne pouvons pas nous permettre d'investir beaucoup d'argent dans ce projet, ni pour un transformateur de paquets dédié, ni pour davantage de bande passante. Notre système fonctionne pour le moment. La question est de savoir comment, au lieu de bloquer les utilisateurs ayant dépassé le trafic qui leur est alloué, nous ne pouvons que réduire la bande passante à leur disposition. - Christoph Wurm


Dummynet est une très bonne suggestion à mon avis. Mais je suis sûr que iptables est capable de mise en forme du trafic aussi, alors vous pouvez simplement le faire sur votre boîte Debian.


0
2017-12-17 17:19





tc devrait fonctionner correctement .. Je crois que ce que vous voulez faire est de changer vos règles iptables actuelles pour marquer plutôt que le trafic REJECT, alors vous pouvez utiliser un petit nombre de règles tc pour appliquer la gestion du trafic à ces flux marqués.

aussi, regardez ipset pour gérer la liste des utilisateurs étranglés http://ipset.netfilter.org/


0
2018-01-01 17:51





Panneau de trafic semble être une solution. Parmi d'autres fonctionnalités:

  • Limiter la vitesse HTTP maximale par connexion
  • Limitation du trafic total de ressources Web par hôte de réseau local
  • Journalise le trafic Internet par hôte de réseau local
  • Limitation de la vitesse maximale du trafic par hôte de réseau local
  • Limitation du trafic Internet total par hôte de réseau local

En fait, je n'ai jamais essayé cette chose, mais ça a l'air d'aller.


0
2018-03-20 20:26