La prémisse:
Emplacement rural, peu d'options pour les connexions Internet à large bande passante. L'Internet par satellite est de loin le plus rapide, mais il est cher (équipement et coût mensuel, et présente des inconvénients de latence), donc plusieurs ménages aimeraient le partager.
C'est simple en soi - configurez un routeur avec un sous-réseau pour chaque foyer (VLAN ou ports physiques), bloquez le trafic entre eux et configurez le modem pour qu'il route vers ces sous-réseaux ou configurez un double NAT.
Le problème:
Le fonctionnement normal de TCP signifie que chaque connexion TCP obtiendra plus ou moins 1 / n de la bande passante disponible, où n est le nombre de connexions. Donc, si un ménage / utilisateur crée de nombreuses connexions, il obtiendra une plus grande part de la connexion globale. Ce n'est pas particulièrement juste - avec un lien saturé, chaque ménage devrait obtenir une part égale. En revanche, lorsque personne d'autre n'utilise la connexion, il devrait être possible d'utiliser toute la bande passante.
Par exemple, supposons que 4 ménages partagent une connexion descendante à 12 Mbits / s. Si l'un d'eux télécharge / diffuse / quoi que ce soit, il devrait être en mesure d'utiliser le 12 Mbit / s (ou presque). Si 2 ménages utilisent la connexion, ils devraient obtenir 6 Mbit / s chacun, indépendamment du fait qu'un ménage télécharge 1 fichier et l'autre 11. (sans aucune gestion de la bande passante, chaque fichier serait téléchargé à environ 1 Mbit / s dans ce cas) 3 ménages obtenir 4Mbit / s chacun et ainsi de suite.
Ce que j'ai découvert jusqu'à présent:
Le meilleur endroit pour mettre en œuvre une politique comme celle-ci (pour l'aval) serait à l'autre extrémité du tuyau étroit, c'est-à-dire au niveau du FAI. De toute évidence, ce n'est pas possible dans ce cas, il serait donc bon de pouvoir l'approcher d'une manière ou d'une autre. Mais comment? Existe-t-il des routeurs standard qui prennent en charge quelque chose comme ça? Puis-je configurer une box Linux ou BSD pour le faire? Il ne doit pas être à l'épreuve des balles - un serveur TCP mal agissant ou un service UDP agressif pourrait vraisemblablement contourner tout ce que je peux faire de mon côté - mais cela devrait fonctionner pour le cas commun de la plupart du trafic composé de beaucoup de conformité RFC Connexions TCP.
Pour être clair, je ne parle pas de prioriser des applications spécifiques, mais plutôt d'agréger le trafic vers / depuis des périphériques Ethernet particuliers ou des plages d'adresses IP. Donner à certains trafics une priorité plus élevée que les autres trafics semble être bien pris en charge, mais la situation est moins claire lorsqu'on essaie d'allouer également la bande passante aux classes de trafic.
Il y a beaucoup d'informations mal écrites / irréfléchies régurgitées / autrement non informées sur la configuration du trafic sur le Web. La documentation sur le matériel du routeur est terriblement peu spécifique, donc je semble tourner en rond.
Si je comprends bien, le moyen pour que TCP se comporte de cette façon est en fait de simuler un tuyau légèrement plus étroit que ce qui est réellement disponible et de supprimer artificiellement des paquets pour le faire reculer. Je pense donc qu'il serait assez simple de donner à tout le monde exactement 3 Mbit / s dans l'exemple ci-dessus en supprimant artificiellement tous les paquets supplémentaires. Cela n'utilise pas vraiment la connexion efficacement car la plupart du temps il y a de la capacité disponible.
Existe-t-il un moyen de faire ce que je demande? Est-ce que je me trompe? Je suis (ou plutôt les ménages en question) sont prêts à dépenser de l'argent pour cela - que ce soit un routeur / appareil standard à prix modéré ou une boîte générique pour exécuter une distribution Linux ou BSD.
OpenWRT semble le supporter, même si je ne l'ai jamais utilisé moi-même. Vous pouvez jeter un coup d'œil à la page Network Traffic Control sur leur site Web, et en particulier le deuxième exemple: le partage simple et simple de la bande passante (aka mise en forme du trafic) avec HTB . Cela implique de simples appels à qdisc, donc n'importe quelle boîte Linux pourrait le faire.
la source
tc
règles. Le shaper de trafic de Linux semble certainement prometteur.La configuration décrite dans /superuser//a/1210164/257859 fait exactement cela:
la source