11.4. Cible CONNMARK

La cible CONNMARK sert a placer une marque sur une connexion, comme le fait la cible MARK. Elle peut alors être utilisée avec la correspondance connmark pour sélectionner la connexion dans le futur. Par exemple, nous voyons un comportement spécifique dans un en-tête, et nous ne voulons pas marquer juste le paquet, mais la connexion complète. La cible CONNMARK est une solution parfaite dans ce cas.

La cible CONNMARK est disponible dans toutes les chaînes et toutes les tables, mais souvenez vous que la table NAT n'est traversée seulement que par le premier paquet dans une connexion, ainsi la cible CONNMARK n'aura pas d'effet si vous essayez de l'utiliser sur les paquets suivants le premier. Elle peut prendre une des quatre options différentes ci-dessous :

Tableau 11.3. Options de la cible CONNMARK

Option --set-mark
Exemple iptables -t nat -A PREROUTING -p tcp --dport 80 -j CONNMARK --set-mark 4
Explication Cette option place une marque sur la connexion. La marque peut être un entier long non signé, ce qui indique que des valeurs entre 0 et 4294967295l sont valides. Chaque bit peut aussi être marqué par la commande --set-mark 12/8. Ceci permettra seulement aux bits du masque d'être en dehors des bits de la marque. Dans cet exemple, seul le 4e bit sera placé, pas le 3e. 12 traduit en binaire (1100), et 8 (1000), et seulement les bits placés dans le masque sont autorisés. Hormis cela, seul le 4e bit, ou 8, est placé dans la marque.
Option --save-mark
Exemple iptables -t mangle -A PREROUTING --dport 80 -j CONNMARK --save-mark
Explication L'option de la cible --save-mark sert à sauvegarder les paquets marqués dans la marque de connexion. Par exemple, si vous avez placé un paquet marqué avec la cible MARK, vous pouvez alors déplacer cette marque pour marquer l'ensemble de la connexion avec la correspondance --save-mark. La marque peut aussi être masquée en utilisant l'option --mask décrite plus loin.
Option --restore-mark
Exemple iptables -t mangle -A PREROUTING --dport 80 -j CONNMARK --restore-mark
Explication Cette option de cible restaure le paquet marqué dans la marque de connexion comme défini par CONNMARK. Un masque peut aussi être défini par l'option --mask comme vu plus haut. Si une option mask est placée, seules les options masquées seront placées. Notez que cette option de cible n'est valide que dans la table mangle.
Option --mask
Exemple iptables -t mangle -A PREROUTING --dport 80 -j CONNMARK --restore-mark --mask 12
Explication L'option --mask doit être utilisée avec les options --save-mark et --restore-mark. L'option --mask spécifie que devraient être appliquées les valeurs de marque que fournissent les deux autres options. Par exemple, si restore-mark de l'exemple ci-dessus est à 15, ceci veut dire que la marque est 1111 en binaire, tandis que le masque est à 1100. 1111 et 1100 égale 1100.

[Note] Note

Fonctionne avec les noyaux Linux 2.6.