Le marquage de paquets et la répartition de charge avec la queue netfilter

Magazine
Marque
GNU/Linux Magazine
Numéro
127
Mois de parution
mai 2010


Résumé

Avec la queue netfilter, nous sommes plus souvent limités par notre imagination que par la technique. Il faut dire que l'idée de « faire des règles iptables » était peu attrayante et nous bridait un peu. Dans les numéros précédents, nous avons vu comment, à l'aide de bindings, nous pouvions accéder à cette queue et émettre un verdict. Ici, nous allons utiliser une autre fonctionnalité : le marquage de paquet.


1. Introduction

La libnetfilter_queue a considérablement changé le principe de décision qui, délégué en userspace, nous permet d'envisager des scénarios qu'il était difficile de mettre en œuvre auparavant. Nous allons utiliser la libnetfilter_queue pour construire un répartiteur de charge et de haute disponibilité relativement sommaire, mais qui nous permettra par l'exemple d'appréhender le marquage de paquet.

Pour connaître la charge des serveurs, nous utiliserons SNMP, mais bien des scénarios sont envisageables, du ping au programme dédié sur les serveurs, d'où l'intérêt d'utiliser un langage de haut niveau et pour changer un peu, nous utiliserons Vala [1], parce que, entre autres : Vala, c'est sympa !

2. Le marquage

Par défaut, un paquet n'est pas marqué ou plutôt sa mark (un uint32) est à 0. Le marquage de paquet se fait à l'aide de la cible MARK et son utilisation est limitée à la table mangle :

La suite est réservée aux abonnés. Il vous reste 95% à découvrir.
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Envie de lire la suite ? Rejoignez Connect
Je m'abonne maintenant