I. Introduction 1. contexte et justification Des nos jours toutes les entreprises rencontrent souvent un problème de lenteur d’accès à l’internet dû à une mauvaise utilisation de la bande passante qui entrave le bon fonctionnement des services qui sont tributaires de la disponibilité et surtout de la qualité du service Internet. Le manque d’une bonne politique de gestion de la bande passante amène souvent les entreprises à augmenter la bande passante, et dans la plus part de cas changer de fournisseur d’accès à l’internet afin de résoudre le problème rencontré. Par ce point de vu les entreprise pensent qu’une bande passante plus importante et le changement de fournisseur d’accès à l’internet vont améliorer leur confort de travail, mais ne fait que masquer temporairement les problèmes le plus souvent. Cette attitude peut masquer d’autres signaux d’alerte qui mériteraient une attention immédiate et particulière, tel qu’un poste infecté qui essaye de propager un malware saturant ainsi la bande passante de l’entreprise. Ainsi à travers ce projet nous voulons montrer comment définir et mettre en œuvre une bonne politique de gestion de la bande passante qui sera une source d’efficacité et d’économies substantielles pour les entreprises. Pour mieux gérer la bande passante dans le cadre de notre projet nous avons catégorisé les utilisateurs en fonction de leur degré de dépendance à l’utilisation de la connexion internet, et avons utilisé des fil d’attente par connexion sur un routeur mikrotik en recourant à la table mangle de son pare-feu. 2. Revue de la littérature Pour rendre notre projet intelligible et compréhensible nous nous sommes proposé de définir certains concepts que nous avons utilisés tels que : 2.1. La bande passante Pour les réseaux informatiques, le terme de bande passante est synonyme de taux de transfert de données, c'est-à-dire le volume de données pouvant être transporté d'un point à un autre dans un laps de temps donné (généralement une seconde). Dans cette acceptation, la bande passante d'un réseau est généralement exprimée en bits par seconde (bit/s). Sur les réseaux modernes, le débit est mesuré en millions de bits par seconde (mégabits par seconde, ou Mbit/s) ou en milliards de bits par seconde (gigabits par seconde, ou Gbit/s). Un test de bande passante permet de mesurer le débit. La bande passante n'est pas le seul facteur qui affecte les performances du réseau : la perte de paquets, la latence et la gigue sont d'autres facteurs qui dégradent le débit d'un réseau et ramènent le fonctionnement d'une liaison au niveau de celle d'une bande passante inférieure. 2.2. Le routeur mikrotik Un routeur est un équipement réseau informatique assurant le routage des paquets. Son rôle est de faire transiter des paquets d'une interface réseau vers une autre, au mieux, selon un ensemble de règles. Le routeur Mikrotik est un équipement fabriqué par Mikrotīkls Ltd., dont le système d'exploitation est bâti sur le kernel Linux. Ce système permet de transformer un ordinateur personnel en routeur, incluant des fonctionnalités telles qu'un Pare-Feu, un serveur et un client VPN, contrôler le trafic en fonction d'une qualité de service (QOS), un accès réseau sans fil. Le système peut également être utilisé afin de créer un portail captif. Ce système d'exploitation possède une licence multi-niveaux, chaque niveau offrant davantage de fonctionnalités. Les frais de licence seront définis sur le niveau sélectionné. Une interface graphique, nommé Winbox, est également disponible afin de configurer le système. Enfin, une API permet de personnaliser le système et le surveiller. 2.3. Le pare-feu et la table mangle 2.3.1. Le pare-feu A l’Origine du terme et selon le contexte, le terme avait différentes significations : dans le domaine de la lutte contre les incendies de forêt, il se réfère aux allées pare-feu destinées à contenir l'extension des feux de forêts ; au théâtre, le déclenchement d'un mécanisme « pare-feu » (ou « coupe-feu ») permet d'éviter la propagation du feu de la salle vers la scène ; dans le domaine de l'architecture, il fait référence aux portes coupe-feu ou à tout autre dispositif constructif destiné à contenir l'extension d'un incendie ; en informatique, l'usage du terme « pare-feu » est donc métaphorique. Il représente un mur virtuel qui bloque tout ce qui tente d'entrer avec l'intention de nuire dans une machine ou un réseau. Il établit une barrière de protection contre les intrusions et les contaminations venant de l’extérieur De nos jours le terme pare-feu (de l'anglais firewall) désigne un logiciel et/ou un matériel qui permet de faire respecter la politique de sécurité du réseau, en définissant quels sont les types de communications autorisés sur ce réseau informatique. l surveille et Page 2 contrôle les applications et les flux de données (paquets). Un pare-feu est parfois appelé coupe-feu, garde-barrière, barrière de sécurité, ou encore firewall. 2.3.2. La table mangle Une table est en fait un ensemble de chaînes, sous forme des règles, qui permettent d’appliquer la politique de sécurité du réseau. Il existe pour l'instant 3 tables : Filter, NAT et Mangle 2.3.2.1. La table Filter Comme son nom l'indique, cette table sert à filtrer les paquets réseaux. C'est à dire que nous allons pouvoir trier les paquets qui passent à travers le réseau, et supprimer ceux qui ne nous intéressent pas, ou que nous trouvons dangereux. Pour cela, la table "Filter" n'utilise que 3 chaînes : INPUT : Cette chaîne contrôle les paquets à destination des applications. OUTPUT : Elle analyse les paquets qui sortent des applications. FORWARD : Elle filtre les paquets qui passent d'une interface réseau à l'autre. Notez au passage que les paquets de ce type ne passent jamais par les chaînes INPUT et OUTPUT. 2.3.2.2. La table NAT La table NAT (Network Adress Translation, ou Traduction d'Adresses Réseau). Nous avons besoin là encore de 3 chaînes : PREROUTING : Les paquets vont être modifiés à l'entrée de la pile réseaux, et ce, qu'ils soient à destination des processus locaux où d'une autre interface. OUTPUT : Les paquets sortant des processus locaux sont modifiés. POSTROUTING : les paquets qui sont près à être envoyés aux interfaces réseaux sont modifiés. 2.3.2.3. La table Mangle utilisée dans le cadre de ce projet Le rôle principal de cette table devrait être de modifier des paquets. En d'a utres termes, vous pouvez utiliser en toute liberté les correspondances de la table mangle, qui permettent de changer les champs de TOS (type de service), et d'autres. Les cibles suivantes sont valides uniquement dans la table mangle. Elles ne doivent pas être utilisées en dehors de cette table : TOS TTL MARK SECMARK CONNSECMARK La cible TOS permet de définir et/ou modifier le champ de Type de Service d'un paquet. C'est utile pour définir des stratégies réseau concernant le choix de routage des paquets. Sachez que, d'une part ceci n'a pas été perfectionné, d'autre part ce n'est pas vraiment implémenté sur Internet car la majorité des routeurs ne se préoccupent pas de ce champ, et quelquefois même, ils adoptent un comportement erroné. Bref, ne Page 3 configurez pas ce champ sur les paquets qui naviguent sur Internet, sauf si vous souhaitez leur appliquer des décisions de routage, avec iproute2. La cible TTL permet de modifier le champ durée de vie ou TTL(Time To Live) d'un paquet. Il est possible par exemple de spécifier aux paquets d'avoir un champ TTL spécifique. Ceci peut se justifier lorsque vous ne souhaitez pas être rejeté par certains Fournisseurs d'Accès à Internet (FAI) trop indiscrets. En effet, il existe des FAI qui désapprouvent les utilisateurs branchant plusieurs ordinateurs sur une même connexion, et de fait, quelques-uns de ces FAI sont connus pour vérifier si un même hôte génère différentes valeurs TTL, supposant ainsi que plusieurs machines sont branchées sur la même connexion. La cible MARK permet d'associer des valeurs de marquage particulières aux paquets. Elles peuvent ensuite être identifiées par les programmes iproute2 pour appliquer un routage différent en fonction de l'existence ou de l'absence de telle ou telle marque. On peut ainsi réaliser de la restriction de bande passante et de la gestion de priorité (Class Based Queuing). La cible SECMARK peut être utilisée pour placer des marques dans un contexte de sécurité sur des paquets dans SELinux ou tout autre système de sécurité capable de gérer ces marques. CONNSECMARK sert à copier un contexte de sécurité vers ou depuis un simple paquet ou vers une connexion complète. Elle est utilisée par SELinux ou autre système de sécurité pour affiner cette sécurité au niveau connexion. Nous avons besoin là encore de 3 chaînes : PREROUTING : Les paquets vont être marqués en entrée de la couche réseau, en fonction de certains critères, de type de service (grâce aux numéros de ports source et/ou de destination), d'adresses IP de source et/ou de destination, de taille des paquets, etc. Ces informations seront utilisées par un programme fonctionnant dans l'espace kernel. INPUT : Les paquets sont marqués juste avant d'être envoyés aux processus locaux. FORWARD : Les paquets passant d'une interface réseau à l'autre sont marqués. OUTPUT : Là, ce sont les paquets générés par les applications locales (un client web par exemple) qui vont être marqués, tout comme les paquets entrant dans la couche réseau. POSTROUTING : Les paquets prêts à être envoyés sur le réseau sont marqués. L'utilisation de cette chaîne dans la table Mangle n'est cependant pas très évidente. 2.4. La file d’attente par connexion Les files d’attente de stockage d’information en réseau que nous avons utilisées dans ce projet nous ont permis de de limiter et hiérarchiser le trafic. L'implémentation des files d’attente (queue) dans MikroTik RouterOS est basée sur Hierarchical Token Bucket (HTB), qui permet de créer une structure de file d'attente hiérarchique et de déterminer les relations entre ces files d'attente. Sous RouterOS, ces structures hiérarchiques peuvent être attachées à deux endroits Page 4 différents. Il existe deux manières différentes de configurer les files d’attente dans RouterOS: Queue simple conçu pour faciliter la configuration de tâches simples et quotidiennes de mise en file d'attente (telles que la limitation d'envoi / téléchargement d'un seul client, la limitation de trafic p2p, etc.). Queue tree (en français arborescence des files d'attente) - pour la mise en œuvre de tâches de mise en file d'attente avancées (telles que la stratégie de priorité globale, les limitations du groupe d'utilisateurs) qui requiert des flux de paquets marqués provenant de / ip firewall mangle facility. 2.4.1. Queue Simple Le moyen le plus simple de limiter le débit de données d'adresses IP spécifiques et / ou de sous-réseaux consiste à utiliser des files d'attente simples. Vous pouvez également utiliser des files d'attente simples pour créer des applications QoS avancées. Ils ont des fonctionnalités intégrées utiles: Mise en file d'attente du trafic d'égal à égal Application de règles de file d'attente sur des intervalles de temps choisis Les priorités Mise en forme (planification) du trafic bidirectionnel (une limite pour le total de téléchargement + téléchargement) Les files d'attente simples ont un ordre strict: chaque paquet doit passer par chaque file d'attente jusqu'à atteindre une file d'attente conditionnée par les paramètres de paquet ou jusqu'à ce que la liste des files d'attente soit atteinte. (Dans le cas de 1000 files d'attente, le paquet de la dernière file d'attente devra passer par 999 files d'attente avant d'atteindre la destination). 2.4.2. Queue Tree Queue Tree (L'arbre de file d'attente en français) crée une seule file d'attente directionnelle dans l'un des HTB. C'est aussi la seule façon d'ajouter une file d'attente sur une interface séparée. De cette façon, il est possible de simplifier la configuration de mangle - vous n'avez pas besoin de marques distinctes pour le téléchargement et le téléchargement - seul le téléchargement parviendra à l'interface publique et seul le téléchargement atteindra l'interface privée. L'arborescence des files d'attente n'est pas ordonnée - tout le trafic la passe ensemble. 2.4.3. Les types de file d’attente Les types de file d'attente ou les algorithmes de mise en file d'attente (ordonnancement) décrivent quel paquet sera transmis ensuite en ligne. Le RouterOS prend en charge plusieurs algorithmes de mise en file d'attente: BFIFO, PFIFO, MQ PFIFO ROUGE Page 5 SFQ PCQ Dans le cadre de ce projet nous allons plus nous focaliser sur l’algorithme PCQ (Per Connection Queuing) qui est la mise en file d'attente par connexion. Il est possible de choisir des identifiants de flux (à partir dst-address | dst-port | srcaddress | src-port). Par exemple, si vous classifiez les flux par adresse src sur une interface locale (interface avec vos clients), chaque sous-flux PCQ correspond au téléchargement d'un client particulier. Il est possible d’attribuer une limitation de vitesse aux sous-flux avec l’option pcq-rate. Si pcq-rate = 0, les sous-flux diviseront le trafic disponible de manière égale. II. Objectif général L’objectif général poursuivit par ce projet de la gestion de la bande passante est de catégoriser les trafic de l’entreprise en fonction des besoins des utilisateurs. Et pour ce faire, nous avons divisé le trafic en quatre catégories : 1. Basic users : pour les utilisateurs qui se servent juste de l’internet pour envoyer et recevoir les e-mails et s’informer à travers les moteurs de recherche 2. Standard users : pour les utilisateurs dont leurs activistes professionnelles dépendent de la qualité de la connexion internet 3. Vip users : pour le staff dirigeant de l’entreprise 4. Vtc users : pour les équipements dédiés à la vidéoconférence. III. Objectifs spécifiques Les objectifs spécifiques visé par ce projet peuvent être résumés de la manière suivante : 1. Catégorisation des utilisateurs et définition de la bande passante par catégorie ; 2. Création des catégories reprises dans le tableau ci-dessus et affectation des adresses IP à chacune d’elles à travers le firewall address list du routeur ; 3. Marquage des connexions et paquets par catégories et par flux entrée et sortie ; 4. Création des paramètres des bandes passantes pour les files d’attente par connexion, conformément à la catégorisation faite et par flux entrée et sortie ; 5. Création de l’arbre des files d’attente à partir des files d’attente par catégorie, et part flux entrée et sortie ; 6. Affectation des bandes passantes à chaque file d’attente par catégorie et par flux entrée et sortie ; IV. méthodologie Pour mener à bon port notre projet nous avons procédé de la manière suivante : 1. Catégorisé les utilisateurs faite en fonction de leur degré de dépendance à l’utilisation de la connexion internet : Catégorie Identifiant Bande passante en Kbps Page 6 Catégorie Identifiant Bande passante en Kbps up Down Contention 1 Basic 1024 1596 1:1 2 Standard 1596 2304 1:1 3 Vip 2048 2304 1:1 4 Vtc 2048 3092 1:1 2. Création des catégories reprises dans le tableau ci-dessus et affectation des adresses IP à chacune d’elles à travers le firewall address list du routeur 3. Marquage des connexions et paquets par catégories et par flux entrée et sortie Page 7 4. Création des paramètres des bandes passantes pour les files d’attente par connexion, conformément à la catégorisation faite, et par flux entrée et sortie 5. Création de l’arbre des files d’attente à partir des files d’attente par catégorie et part flux entrée et sortie ; Page 8 Page 9 6. Affectation des bandes passantes à chaque file d’attente par catégorie et par flux entrée et sortie 1. Flux d’entré (Download Speed) pour la catégorie Vtc à titre d’exemple 2. Flux de sortie (Upload Speed) pour la catégorie Vtc à titre d’exemple Page 10 V. Résultats obtenus La configuration de l‘arbre des files d’attente en fonction de la politique de gestion de la bande passante nous a permit en utilisant le site http://speed.test.xfinty.com d’obtenir les résultats suivants par catégorie, et sur lesquels vous pouvez voir les valeurs de flux d’entré (Download speed) et de sorti (Upload speed) : 1. Basic users 2. Standard users Page 11 3. Vip users : pour le staff dirigeant de l’entreprise 4. Vtc user Des résultats approximatifs peuvent être obtenus en utilisant les sites suivants : https://www.sfr.fr/mire-test-debit/ https://www.nperf.com/en/ https://www.speedtest.net/ VI. Budget d’acquisition d’un routeur mikrotik pour une petite et moyenne entreprise L’acquisition de ce routeur coûte environ 70,00 $ dollars USD. Page 12