Étape 6: Priorisation des paquets
Priorisation des paquets avec ALTQSi votre connexion WAN reste assez saturée (avec des choses comme bittorrent), puis je suis sûr que vous avez vécu votre juste part des délais, retard ou chargement de la page lent. Paquet prioritzation offre une solution à ce problème. Au lieu de dépenser 100 $+ sur un routeur qui dispose de cette fonctionnalité, vous pouvez plutôt utiliser ALTQ avec PF pour accomplir la même chose.
ALTQ est très facile à installer. La chose plus compliquée, que vous avez à faire est de recompiler votre noyau. Ne vous inquiétez pas, c’est beaucoup plus facile que vous pensez. Il suffit de suivre mes instructions et vous devriez être bien. Un nouveau noyau est nécessaire, car le support ALTQ est désactivé par défaut dans FreeBSD.
Ajouter le support ALTQ dans votre noyau
Pour commencer, lire thorougly construction et installation d’un noyau personnalisé . Après avoir lu que, lu Permettant ALTQ.
Je vais utiliser la méthode « nouveau ». Après la duplication du fichier de configuration du noyau GENERIC, éditez-le avec votre éditeur favori (pico est idéal pour les débutants). Maintenant, ajoutez les lignes suivantes à la fin du fichier :
Maintenant, enregistrez le fichier (j’ai appelé le mien FIREWALLKERNEL), puis procédez comme suit (à partir du manuel) pour compiler :
1. Accédez au répertoire/usr/src.
2. compiler le noyau.
3. installer le nouveau noyau.
Si tout fonctionne, votre nouveau noyau est prêt à l’emploi. FreeBSD est aimable même assez pour placer le nouveau noyau dans votre chemin d’accès de démarrage. Tout ce que vous avez à faire est de redémarrer votre système ("shutdown - r maintenant"). Maintenant, vous devriez avoir soutien ALTQ compilé dans votre noyau. Notre prochaine étape consiste à configurer en fait ALTQ
Configuration de ALTQ
ALTQ prend en charge deux types de priorisation des paquets : basés sur une classe (CBQ) et basé sur les priorités (PRIQ).
Files d’attente basés sur une classe divise le trafic en « classes ». Une partie spécifique de votre bande passante globale est alors allouée à chacune de ces classes.
Queueing basé sur les priorités, comme il a nom l’indique, assigne des priorités aux paquets. Les paquets avec la priorité la plus élevée sont traités en premier.
Il y a aussi quelques fonctionnalités supplémentaires que vous avez à votre disposition : aléatoire détection précoce et la notification explicite de congestion (ECN).
La détection précoce au hasard, ou rouge, calcule la taille de la file d’attente moyenne, puis tombe ou transfère les paquets selon le niveau de congestion. Si la taille de la file d’attente moyenne est supérieure à un seuil maximum, tous les paquets seront abandonnés. Si la taille de la file d’attente est inférieure à un seuil minimum, aucun paquet ne sera abandonnée. N’importe où entre ces seuils, et les paquets seront abandonnées selon la taille de la file d’attente comment étroit est aux seuils supérieurs et inférieurs.
La notification explicite de congestion, ou ECN, définit un indicateur dans des paquets aux armées de notifier de congestion du réseau. Lorsqu’un hôte qui prend en charge les ECN reçoit un paquet marqué avec cet indicateur, il répond par étranglement arrière son activité.
J’ai choisi la priorité-files d’attente, parce que mon réseau voit une grande variété de différents types de trafic. File d’attente de priorité utilisations nombres de 1 à 15 de hiérarchiser le trafic, numéro 1 étant la plus haute priorité. Dans mon fichier de configuration de PF (pf.conf), j’ai assigné une priorité par défaut au nombre 10. Cela signifie que tout le trafic qui correspond à mes règles de pare-feu n’est pas donné une priorité par défaut est le niveau de priorité 10. J’ai ensuite donné bittorrent un niveau de priorité du 15. En faisant cela, je suis capable d’avoir bittorrent en cours d’exécution sans arrêt sur mon réseau, sans augmentation notable de latence ou de débit. J’ai aussi donné SSH une priorité haute de 1, en raison de sa nature évanescents. Voici à quoi ressemblent mes configurations PRIQ ($int_if est mon interface interne, dispositif rl0 ; et $ext_if est mon interface externe, périphérique dc0) :
Notez mes options « bande passante » sur les première et deuxième lignes. J’ai mis la taille de file d’attente ALTQ sur mon interface externe de 5 Mo. Bien que mon interface externe peut être raccordé à 10 Mbits/s, je suis seulement attribué 5 Mbps par mon FAI. C’est important, parce que la priorité des paquets s’appuie sur le niveau de saturation sur une interface pour déterminer quand commencer queuing des paquets. Vous remarquerez que j’ai affecté également 100 % de la bande passante sur mon interface interne à ALTQ. Cela signifie que tout le trafic qui coule à travers mon interface interne aura 100 % de la bande passante de 100 Mbits/s.
Maintenant que j’ai déterminé mon niveaux de priorité, il est temps de les assigner en fait mes règles de pare-feu. C’est très facile. Il suffit d’ajouter "queue < queue_name >" à la fin de toutes les règles que vous souhaitez attribuer le niveau de priorité identifiée par < nom_file_attente >.
Et c’est tout. Priorisation des paquets est aussi simple que cela. Me laisser un commentaire pour me faire savoir si cette aide n’importe qui. Il m’a certainement aidé.
J’ai joint une version révisée de mon pf.conf qui inclut les configurations de ALTQ.